shop.blade.php 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. @extends('layouts.base')
  2. @section('content')
  3. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  4. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  5. <style scoped>
  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. border-radius: 10px;
  15. padding-left: 20px;
  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:40px;
  32. position:relative;
  33. border-radius: 8px;
  34. }
  35. .con .setting .block{
  36. padding:10px;
  37. background-color:#fff;
  38. border-radius: 8px;
  39. }
  40. .con .setting .block .title{
  41. font-size:18px;
  42. margin-bottom:15px;
  43. display:flex;
  44. align-items:center;
  45. }
  46. .confirm-btn{
  47. width: calc(100% - 266px);
  48. position:fixed;
  49. bottom:0;
  50. right:0;
  51. margin-right:10px;
  52. line-height:63px;
  53. background-color: #ffffff;
  54. box-shadow: 0px 8px 23px 1px
  55. rgba(51, 51, 51, 0.3);
  56. background-color:#fff;
  57. text-align:center;
  58. }
  59. b{
  60. font-size:14px;
  61. }
  62. .el-checkbox__inner{
  63. border:solid 1px #56be69!important;
  64. }
  65. .upload-boxed .el-icon-close {
  66. position: absolute;
  67. top: -5px;
  68. right: -5px;
  69. color: #fff;
  70. background: #333;
  71. border-radius: 50%;
  72. cursor: pointer;
  73. }
  74. </style>
  75. <div id='re_content' >
  76. @include('layouts.newTabs')
  77. <div class="con">
  78. <div class="setting">
  79. <el-form ref="form" :model="form" label-width="15%">
  80. <div class="block">
  81. <div class="title">
  82. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  83. <b>基础设置
  84. </b></div>
  85. <el-form-item label="关闭站点">
  86. <template>
  87. <el-switch
  88. v-model="form.close"
  89. active-value="1"
  90. inactive-value="0"
  91. >
  92. </el-switch>
  93. </template>
  94. </el-form-item>
  95. <el-form-item label="商城名称" >
  96. <el-input v-model="form.name" placeholder="请输入商城名称" style="width:70%;"></el-input>
  97. </el-form-item>
  98. <el-form-item label="主题颜色" prop="theme_color">
  99. <el-input v-model="form.theme_color" style="width:20%;float:left;"></el-input>
  100. <el-color-picker v-model="form.theme_color" style="display:inline-block;float:left;"></el-color-picker>
  101. </el-form-item>
  102. <el-form-item label="商城LOGO" prop="head_img_url">
  103. <div class="upload-box" @click="openUpload('logo',1,'one')" v-if="!form.logo_url">
  104. <i class="el-icon-plus" style="font-size:32px"></i>
  105. </div>
  106. <div @click="openUpload('logo',1,'one')" class="upload-boxed" v-if="form.logo_url">
  107. <img :src="form.logo_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  108. <div class="upload-boxed-text">点击重新上传</div>
  109. <i class="el-icon-close" @click.stop="clearImg('logo')" title="点击清除图片"></i>
  110. </div>
  111. <div class="tip">正方型图片</div>
  112. </el-form-item>
  113. <!-- <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img> -->
  114. <upload-multimedia-img :upload-show="uploadShow" :type="type" :name="chooseImgName" :sel-Num="selNum" @replace="changeProp" @sure="sureImg"></upload-multimedia-img>
  115. <el-form-item label="商城海报" prop="head_img_url">
  116. <div class="upload-box" @click="openUpload('signimg',1,'one')" v-if="!form.signimg_url">
  117. <i class="el-icon-plus" style="font-size:32px"></i>
  118. </div>
  119. <div @click="openUpload('signimg',1,'one')" class="upload-boxed" v-if="form.signimg_url">
  120. <img :src="form.signimg_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  121. <div class="upload-boxed-text">点击重新上传</div>
  122. <i class="el-icon-close" @click.stop="clearImg('signimg')" title="点击清除图片"></i>
  123. </div>
  124. <div class="tip">推广海报,建议尺寸640*640</div>
  125. </el-form-item>
  126. </div>
  127. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  128. <div class="block">
  129. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>版权设置</b><span style="margin-left:15px;color:#999;font-size:12px;">显示在平台会员中心底部</span></div>
  130. <el-form-item label="版权信息" >
  131. <el-input v-model="form.copyright" placeholder="请输入版权信息" style="width:70%;"></el-input>
  132. <div style="font-size:12px;">版权所有 © 后面文字字样</div>
  133. </el-form-item>
  134. @if(YunShop::app()->role == 'founder') {{--判断是不是超级管理员--}}
  135. <el-form-item label="版权图片" >
  136. <div class="upload-box" @click="openUpload('copyrightImg',1,'one')" v-if="!form.copyrightImg_url">
  137. <i class="el-icon-plus" style="font-size:32px"></i>
  138. </div>
  139. <div @click="openUpload('copyrightImg',1,'one')" class="upload-boxed" v-if="form.copyrightImg_url">
  140. <img :src="form.copyrightImg_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  141. <div class="upload-boxed-text">点击重新上传</div>
  142. <i class="el-icon-close" @click.stop="clearImg('copyrightImg')" title="点击清除图片"></i>
  143. </div>
  144. </el-form-item>
  145. <el-form-item label="跳转链接">
  146. <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>
  147. </el-form-item>
  148. <el-form-item label="小程序链接">
  149. <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>
  150. </el-form-item>
  151. @endif
  152. </div>
  153. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  154. <div class="block">
  155. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>商城业绩</b><span style="margin-left:15px;color:#999;font-size:12px;">商城自营部分营业额在推广中心显示,指定会员等级可见!</span></div>
  156. <el-form-item label="商城业绩显示" >
  157. <template>
  158. <el-switch
  159. v-model="form.achievement"
  160. active-value="1"
  161. inactive-value="0"
  162. >
  163. </el-switch>
  164. </template>
  165. </el-form-item>
  166. <el-form-item label="会员等级查看权限" >
  167. <template>
  168. <el-checkbox-group v-model="form.member_level" text-color="#29ba9c" @change="getInfo">
  169. <el-checkbox label="-1">全部会员等级</el-checkbox>
  170. <el-checkbox :label="String(item.id)" v-for="(item,index,key) in level">[[item.level_name]]</el-checkbox>
  171. </el-checkbox-group>
  172. </template>
  173. </el-form-item>
  174. </div>
  175. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  176. <div class="block">
  177. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>其他设置</b></div>
  178. <el-form-item label="客服链接" >
  179. <el-input v-model="form.cservice" placeholder="请输入客服链接" style="width:70%;"></el-input>
  180. <div style="font-size:12px;color:#ccc;">
  181. 支持任何客服系统的聊天链接,例如在线客服插件,QQ,企点,53客服,百度商桥等;建议使用系统自带的在线客服插件!
  182. </div>
  183. </el-form-item>
  184. <el-form-item label="" >
  185. <el-input v-model="form.cservice_mini" placeholder="请输入小程序客服路径,仅支持在线客服插件!" style="width:70%;"></el-input>
  186. <div style="font-size:12px;color:#ccc;">
  187. 只支持在线客服插件小程序客服聊天路径,如留空则使用小程序官方客服功能!
  188. </div>
  189. </el-form-item>
  190. <el-form-item label="百度统计">
  191. <el-input v-model="form.baidu" placeholder="请输入百度统计站点ID" style="width:70%;"></el-input>
  192. <div style="font-size:12px;color:#ccc;">请填入百度统计的站点ID(百度统计只能统计域名下的流量统计,链接#号后面的百度统计可能会被默认截取掉)</div>
  193. </el-form-item>
  194. <el-form-item label="余额字样">
  195. <el-input v-model="form.credit" placeholder="请输入余额字样" style="width:70%;"></el-input>
  196. <div style="font-size:12px;color:#ccc;">前端余额字样的自定义功能</div>
  197. </el-form-item>
  198. <el-form-item label="积分字样">
  199. <el-input v-model="form.credit1" placeholder="请输入积分字样" style="width:70%;"></el-input>
  200. <div style="font-size:12px;color:#ccc;">前端积分字样的自定义功能</div>
  201. </el-form-item>
  202. </div>
  203. <div class="confirm-btn">
  204. <el-button type="primary" @click="submit">提交</el-button>
  205. </div>
  206. </div>
  207. <pop :show="show" @replace="changeProp1" @add="parHref"></pop>
  208. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  209. </el-form>
  210. </div>
  211. </div>
  212. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  213. <!-- @include('public.admin.uploadImg') -->
  214. @include('public.admin.tinymceee')
  215. @include('public.admin.uploadMultimediaImg')
  216. @include('public.admin.pop')
  217. @include('public.admin.program')
  218. <script>
  219. var vm = new Vue({
  220. el: "#re_content",
  221. delimiters: ['[[', ']]'],
  222. data() {
  223. return {
  224. activeName: 'one',
  225. level:[],
  226. uploadShow:false,
  227. chooseImgName:'',
  228. uploadListShow:false,
  229. chooseImgListName:'',
  230. show:false,//是否开启公众号弹窗
  231. pro:false ,//是否开启小程序弹窗
  232. form:{
  233. close:'0',
  234. https:'0',
  235. name:'',
  236. logo:'',
  237. signimg:'',
  238. copyright:'',
  239. copyrightImg:'',
  240. achievement:'0',
  241. member_level:['-1'],
  242. cservice:'',
  243. cservice_mini:'',
  244. baidu:'',
  245. credit:'',
  246. credit1:'',
  247. agreement:'',
  248. is_agreement:'0',
  249. agreement_name:'',
  250. theme_color:"",
  251. cat_adv_url:'',
  252. small_cat_adv_url:''
  253. },
  254. type:'',
  255. selNum:'',
  256. displayTinymceEditor:false
  257. }
  258. },
  259. mounted () {
  260. this.getData();
  261. },
  262. methods: {
  263. openUpload(str,type,sel) {
  264. this.chooseImgName = str;
  265. this.uploadShow = true;
  266. this.type = type;
  267. this.selNum = sel
  268. },
  269. changeProp(val) {
  270. if(val == true) {
  271. this.uploadShow = false;
  272. }
  273. else {
  274. this.uploadShow = true;
  275. }
  276. },
  277. sureImg(name,uploadShow,fileList) {
  278. if(fileList.length <= 0) {
  279. return
  280. }
  281. console.log(name)
  282. console.log(fileList)
  283. this.form[name] =fileList[0].attachment;
  284. this.form[name+'_url'] = fileList[0].url;
  285. console.log(this.form[name],'aaaaa')
  286. console.log( this.form[name+'_url'],'bbbbb')
  287. },
  288. getInfo(){
  289. this.$forceUpdate()
  290. },
  291. //弹窗显示与隐藏的控制
  292. changeProp1(item){
  293. this.show=item;
  294. },
  295. //当前链接的增加
  296. parHref(child,confirm){
  297. this.show=confirm;
  298. this.form.cat_adv_url=child;
  299. },
  300. changeprogram(item){
  301. this.pro=item;
  302. },
  303. parpro(child,confirm){
  304. this.pro=confirm;
  305. this.form.small_cat_adv_url=child;
  306. },
  307. getData(){
  308. this.$http.post('{!! yzWebFullUrl('setting.shop.shop-set-info') !!}').then(function (response){
  309. if (response.data.result) {
  310. console.log(response.data.data.shop)
  311. if(response.data.data.shop){
  312. for(let i in response.data.data.shop){
  313. this.form[i]=response.data.data.shop[i]
  314. }
  315. }
  316. this.level=response.data.data.level
  317. if(!this.form.hasOwnProperty('member_level')){
  318. this.form.member_level=['-1']
  319. }
  320. this.displayTinymceEditor=true;
  321. }else {
  322. this.$message({message: response.data.msg,type: 'error'});
  323. }
  324. },function (response) {
  325. this.$message({message: response.data.msg,type: 'error'});
  326. })
  327. },
  328. clearImg(str,type,index) {
  329. if(!type) {
  330. this.form[str] = "";
  331. this.form[str+'_url'] = "";
  332. }
  333. else {
  334. this.form[str].splice(index,1);
  335. this.form[str+'_url'].splice(index,1);
  336. }
  337. this.$forceUpdate();
  338. },
  339. submit() {
  340. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  341. this.$http.post('{!! yzWebFullUrl('setting.shop.shop-set-info') !!}',{'shop':this.form}).then(function (response){
  342. if (response.data.result) {
  343. this.$message({message: response.data.msg,type: 'success'});
  344. }else {
  345. this.$message({message: response.data.msg,type: 'error'});
  346. }
  347. loading.close();
  348. location.reload();
  349. },function (response) {
  350. this.$message({message: response.data.msg,type: 'error'});
  351. loading.close();
  352. })
  353. },
  354. },
  355. });
  356. </script>
  357. @endsection