category-edit.blade.php 9.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. @extends('layouts.base')
  2. @section('title', '案例分类详情')
  3. @section('content')
  4. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  5. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  6. <style>
  7. .dialog-cover{z-index:2001}
  8. .dialog-content{z-index:2002}
  9. .link1 .el-input__inner{padding:0}
  10. </style>
  11. <div class="all">
  12. <div id="app" v-cloak>
  13. <div class="vue-crumbs">
  14. <a @click="goParent">案例分类</a> > 案例分类详情
  15. </div>
  16. <div class="vue-main">
  17. <div class="vue-main-title">
  18. <div class="vue-main-title-left"></div>
  19. <div class="vue-main-title-content">案例分类详情</div>
  20. </div>
  21. <div class="vue-main-form">
  22. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  23. <el-form-item label="上级分类" v-if="parent&&parent.category_name">
  24. <el-input v-model="parent.category_name" style="width:70%;" placeholder="" disabled></el-input>
  25. </el-form-item>
  26. <el-form-item label="排序" prop="sort">
  27. <el-input v-model="form.sort" style="width:70%;" placeholder="请输入排序"></el-input>
  28. </el-form-item>
  29. <el-form-item label="分类名称" prop="category_name">
  30. <el-input v-model="form.category_name" style="width:70%;" placeholder="请输入分类名称"></el-input>
  31. </el-form-item>
  32. <el-form-item label="是否热门推荐" prop="is_hot">
  33. <el-switch v-model="form.is_hot" :active-value="1" :inactive-value="0"></el-switch>
  34. </el-form-item>
  35. <el-form-item label="是否显示" prop="show">
  36. <el-switch v-model="form.show" :active-value="1" :inactive-value="0"></el-switch>
  37. </el-form-item>
  38. </el-form>
  39. </div>
  40. </div>
  41. <!-- 分页 -->
  42. <div class="vue-page">
  43. <div class="vue-center">
  44. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  45. <el-button @click="goBack">返回</el-button>
  46. </div>
  47. </div>
  48. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  49. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  50. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  51. <!--end-->
  52. </div>
  53. </div>
  54. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  55. @include('public.admin.uploadImg')
  56. @include('public.admin.pop')
  57. @include('public.admin.program')
  58. <script>
  59. let category = {!! json_encode($category) !!};
  60. let parLevel = {!! json_encode($parLevel) !!};
  61. var app = new Vue({
  62. el:"#app",
  63. delimiters: ['[[', ']]'],
  64. name: 'test',
  65. data() {
  66. return{
  67. show:false,//是否开启公众号弹窗
  68. pro:false ,//是否开启小程序弹窗
  69. chooseLink:'',
  70. chooseMiniLink:'',
  71. parent:parLevel?parLevel:{},
  72. form:{
  73. id:category.id,
  74. pid:category.pid,
  75. category_name:category.category_name,
  76. level:category.level,
  77. is_hot:category.is_hot,
  78. show:category.show,
  79. sort:category.sort,
  80. },
  81. keyword:'',
  82. submit_url:'',
  83. link:"",
  84. uploadShow:false,
  85. chooseImgName:'',
  86. loading: false,
  87. uploadImg1:'',
  88. rules:{
  89. name:{ required: true, message: '请输入分类名称'}
  90. },
  91. }
  92. },
  93. created() {
  94. },
  95. mounted() {
  96. },
  97. methods: {
  98. clearImg(str,type,index) {
  99. if(!type) {
  100. this.form[str] = "";
  101. this.form[str+'_url'] = "";
  102. }
  103. else {
  104. this.form[str].splice(index,1);
  105. this.form[str+'_url'].splice(index,1);
  106. }
  107. this.$forceUpdate();
  108. },
  109. //弹窗显示与隐藏的控制
  110. changeLink(item){
  111. this.show=item;
  112. },
  113. //当前链接的增加
  114. parHref(child,confirm){
  115. this.show=confirm;
  116. // this.form.link=child;
  117. this.form[this.chooseLink] = child;
  118. },
  119. changeprogram(item){
  120. this.pro=item;
  121. },
  122. parpro(child,confirm){
  123. this.pro=confirm;
  124. // this.form.prolink=child;
  125. this.form[this.chooseMiniLink] = child;
  126. },
  127. showLink(type,name) {
  128. if(type=="link") {
  129. this.chooseLink = name;
  130. this.show = true;
  131. }
  132. else {
  133. this.chooseMiniLink = name;
  134. this.pro = true;
  135. }
  136. },
  137. clearGoods() {
  138. },
  139. submitForm(formName) {
  140. let that = this;
  141. let json = {
  142. id:this.form.id,
  143. category:{
  144. category_name:this.form.category_name,
  145. is_hot:this.form.is_hot,
  146. show:this.form.show,
  147. sort:this.form.sort,
  148. }
  149. };
  150. this.$refs[formName].validate((valid) => {
  151. if (valid) {
  152. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  153. this.$http.post('{!! yzWebFullUrl('plugin.case-library.admin.case-category.category-edit') !!}',json).then(response => {
  154. if (response.data.result) {
  155. this.$message({type: 'success',message: '操作成功!'});
  156. this.goBack();
  157. } else {
  158. this.$message({message: response.data.msg,type: 'error'});
  159. }
  160. loading.close();
  161. },response => {
  162. loading.close();
  163. });
  164. }
  165. else {
  166. console.log('error submit!!');
  167. return false;
  168. }
  169. });
  170. },
  171. goBack() {
  172. history.go(-1)
  173. },
  174. goParent() {
  175. window.location.href = `{!! yzWebFullUrl('plugin.case-library.admin.case-category.category-list') !!}`;
  176. },
  177. openUpload(str) {
  178. this.chooseImgName = str;
  179. this.uploadShow = true;
  180. },
  181. changeProp(val) {
  182. if(val == true) {
  183. this.uploadShow = false;
  184. }
  185. else {
  186. this.uploadShow = true;
  187. }
  188. },
  189. sureImg(name,image,image_url) {
  190. console.log(name)
  191. console.log(image)
  192. console.log(image_url)
  193. this.form[name] = image;
  194. this.form[name+'_url'] = image_url;
  195. },
  196. clearImg(str) {
  197. this.form[str] = "";
  198. this.form[str+'_url'] = "";
  199. this.$forceUpdate();
  200. },
  201. copyLink(type) {
  202. this.$refs[type].select();
  203. document.execCommand("Copy")
  204. this.$message.success("复制成功!");
  205. },
  206. // 字符转义
  207. escapeHTML(a) {
  208. a = "" + a;
  209. return a.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">").replace(/&quot;/g, "\"").replace(/&apos;/g, "'");;
  210. },
  211. },
  212. })
  213. </script>
  214. @endsection