category.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278
  1. @extends('layouts.base')
  2. @section('content')
  3. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  4. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  5. <style>
  6. .main-panel{
  7. margin-top:50px;
  8. }
  9. .main-panel #re_content {
  10. padding: 10px;
  11. }
  12. .panel{
  13. margin-bottom:10px!important;
  14. padding-left: 20px;
  15. border-radius: 10px;
  16. }
  17. .panel .active a {
  18. background-color: #29ba9c!important;
  19. border-radius: 18px!important;
  20. color:#fff;
  21. }
  22. .panel a{
  23. border:none!important;
  24. background-color:#fff!important;
  25. }
  26. .content{
  27. background: #eff3f6;
  28. padding: 10px!important;
  29. }
  30. .con{
  31. padding-bottom:20px;
  32. position:relative;
  33. border-radius: 8px;
  34. min-height:100vh;
  35. background-color:#fff;
  36. }
  37. .con .setting .block{
  38. padding:10px;
  39. background-color:#fff;
  40. border-radius: 8px;
  41. }
  42. .con .setting .block .title{
  43. font-size:18px;
  44. margin-bottom:15px;
  45. display:flex;
  46. align-items:center;
  47. }
  48. .confirm-btn{
  49. width: calc(100% - 266px);
  50. position:fixed;
  51. bottom:0;
  52. right:0;
  53. margin-right:10px;
  54. line-height:63px;
  55. background-color: #ffffff;
  56. box-shadow: 0px 8px 23px 1px
  57. rgba(51, 51, 51, 0.3);
  58. background-color:#fff;
  59. text-align:center;
  60. }
  61. b{
  62. font-size:14px;
  63. }
  64. .upload-boxed .el-icon-close {
  65. position: absolute;
  66. top: -5px;
  67. right: -5px;
  68. color: #fff;
  69. background: #333;
  70. border-radius: 50%;
  71. cursor: pointer;
  72. }
  73. </style>
  74. <div id='re_content' >
  75. @include('layouts.newTabs')
  76. <div class="con">
  77. <div class="setting">
  78. <el-form ref="form" :model="form" label-width="15%">
  79. <div class="block">
  80. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>基础设置</b></div>
  81. <el-form-item label="分类级别" >
  82. <template>
  83. <el-radio-group v-model="form.cat_level">
  84. <el-radio label="2">二级</el-radio>
  85. <el-radio label="3">三级</el-radio>
  86. </el-radio-group>
  87. </template>
  88. </el-form-item>
  89. <el-form-item label="推荐品牌是否隐藏">
  90. <template>
  91. <el-switch
  92. v-model="form.cat_brand"
  93. active-value="1"
  94. inactive-value="0"
  95. >
  96. </el-switch>
  97. </template>
  98. </el-form-item>
  99. <el-form-item label="推荐分类是否隐藏" >
  100. <template>
  101. <el-switch
  102. v-model="form.cat_class"
  103. active-value="1"
  104. inactive-value="0"
  105. >
  106. </el-switch>
  107. </template>
  108. </el-form-item>
  109. <el-form-item label="分类绑定规格" >
  110. <template>
  111. <el-switch
  112. v-model="form.category_to_option"
  113. active-value="1"
  114. inactive-value="0"
  115. >
  116. </el-switch>
  117. </template>
  118. <div class="tip">不同分类绑定的规格前端进入分类页显示对应规格图片,进入详情页默认选中该规格并显示规格图片+其他图片,如果没有绑定规格按照原来展示</div>
  119. </el-form-item>
  120. </div>
  121. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  122. <div class="block">
  123. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>推荐分类页面广告设置</b></div>
  124. <el-form-item label="推荐分类广告" prop="head_img_url">
  125. <div class="upload-box" @click="openUpload('cat_adv_img',1,'one')" v-if="!form.cat_adv_img_url">
  126. <i class="el-icon-plus" style="font-size:32px"></i>
  127. </div>
  128. <div @click="openUpload('cat_adv_img',1,'one')" class="upload-boxed" v-if="form.cat_adv_img_url" style="height:75px;">
  129. <img :src="form.cat_adv_img_url" alt="" style="width:150px;height:75px;border-radius: 5px;cursor: pointer;">
  130. <div class="upload-boxed-text">点击重新上传</div>
  131. <i class="el-icon-close" @click.stop="clearImg('cat_adv_img')" title="点击清除图片"></i>
  132. </div>
  133. <div class="tip">分类页面中,推荐分类的广告图,建议尺寸640*320</div>
  134. </el-form-item>
  135. <!-- <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img> -->
  136. <upload-multimedia-img :upload-show="uploadShow" :type="type" :name="chooseImgName" :sel-Num="selNum" @replace="changeProp" @sure="sureImg"></upload-multimedia-img>
  137. <el-form-item label="推荐分类广告链接">
  138. <el-input v-model="form.cat_adv_url" placeholder="请填写指向的链接" style="width:60%;"></el-input><el-button @click="show=true" style="margin-left:10px;">选择链接</el-button>
  139. </el-form-item>
  140. <el-form-item label="小程序链接">
  141. <el-input v-model="form.small_cat_adv_url" placeholder="请填写指向的链接" style="width:60%;"></el-input><el-button @click="pro=true" style="margin-left:10px;">选择小程序链接</el-button>
  142. </el-form-item>
  143. </el-form>
  144. </div>
  145. </div>
  146. <div class="confirm-btn">
  147. <el-button type="primary" @click="submit">提交</el-button>
  148. </div>
  149. <pop :show="show" @replace="changeProp1" @add="parHref"></pop>
  150. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  151. </el-form>
  152. </div>
  153. </div>
  154. @include('public.admin.uploadMultimediaImg')
  155. @include('public.admin.pop')
  156. @include('public.admin.program')
  157. <script>
  158. var vm = new Vue({
  159. el: "#re_content",
  160. delimiters: ['[[', ']]'],
  161. data() {
  162. return {
  163. type:'',
  164. selNum:'',
  165. activeName: 'one',
  166. show:false,//是否开启公众号弹窗
  167. pro:false ,//是否开启小程序弹窗
  168. level:[],
  169. uploadShow:false,
  170. chooseImgName:'',
  171. uploadListShow:false,
  172. chooseImgListName:'',
  173. form:{
  174. cat_brand:'1',
  175. cat_class:'1',
  176. cat_level:'2',
  177. cat_adv_img:'',
  178. cat_adv_url:'',
  179. small_cat_adv_url:'',
  180. category_to_option:'0',
  181. },
  182. }
  183. },
  184. mounted () {
  185. this.getData();
  186. },
  187. methods: {
  188. clearImg(str,type,index) {
  189. if(!type) {
  190. this.form[str] = "";
  191. this.form[str+'_url'] = "";
  192. }
  193. else {
  194. this.form[str].splice(index,1);
  195. this.form[str+'_url'].splice(index,1);
  196. }
  197. this.$forceUpdate();
  198. },
  199. openUpload(str,type,sel) {
  200. console.log(type,'111111111111111')
  201. this.chooseImgName = str;
  202. this.uploadShow = true;
  203. this.type = type
  204. this.selNum = sel
  205. },
  206. changeProp(val) {
  207. if(val == true) {
  208. this.uploadShow = false;
  209. }
  210. else {
  211. this.uploadShow = true;
  212. }
  213. },
  214. sureImg(name,uploadShow,fileList) {
  215. if(fileList.length <= 0) {
  216. return
  217. }
  218. console.log(name)
  219. console.log(fileList)
  220. this.form[name] =fileList[0].attachment;
  221. this.form[name+'_url'] = fileList[0].url;
  222. console.log(this.form[name],'aaaaa')
  223. console.log( this.form[name+'_url'],'bbbbb')
  224. },
  225. //弹窗显示与隐藏的控制
  226. changeProp1(item){
  227. this.show=item;
  228. },
  229. //当前链接的增加
  230. parHref(child,confirm){
  231. this.show=confirm;
  232. this.form.cat_adv_url=child;
  233. },
  234. changeprogram(item){
  235. this.pro=item;
  236. },
  237. parpro(child,confirm){
  238. this.pro=confirm;
  239. this.form.small_cat_adv_url=child;
  240. },
  241. getData(){
  242. this.$http.post('{!! yzWebFullUrl('setting.shop.category') !!}').then(function (response){
  243. if (response.data.result) {
  244. if(response.data.data.set){
  245. for(let i in response.data.data.set){
  246. this.form[i]=response.data.data.set[i]
  247. }
  248. }
  249. }else {
  250. this.$message({message: response.data.msg,type: 'error'});
  251. }
  252. },function (response) {
  253. this.$message({message: response.data.msg,type: 'error'});
  254. })
  255. },
  256. submit() {
  257. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  258. this.$http.post('{!! yzWebFullUrl('setting.shop.category') !!}',{'category':this.form}).then(function (response){
  259. if (response.data.result) {
  260. this.$message({message: response.data.msg,type: 'success'});
  261. }else {
  262. this.$message({message: response.data.msg,type: 'error'});
  263. }
  264. loading.close();
  265. location.reload();
  266. },function (response) {
  267. this.$message({message: response.data.msg,type: 'error'});
  268. loading.close();
  269. })
  270. },
  271. },
  272. });
  273. </script>
  274. @endsection