set.blade.php 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link href="{{ static_url('yunshop/element-ui/2.10.1/css/index.css') }}" rel="stylesheet">
  5. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  6. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  7. <style>
  8. .dialog-cover{z-index:2001}
  9. .dialog-content{z-index:2002}
  10. </style>
  11. <div class="all">
  12. <div id="app" v-cloak>
  13. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  14. <div class="vue-head">
  15. <div class="vue-main-title">
  16. <div class="vue-main-title-left"></div>
  17. <div class="vue-main-title-content">基础设置</div>
  18. </div>
  19. <div class="vue-main-form">
  20. <el-form-item label="群活码" prop="is_open">
  21. <el-switch v-model="form.is_open" :active-value="1" :inactive-value="0"></el-switch>
  22. </el-form-item>
  23. <el-form-item label="H5聚合页链接" prop="display_order">
  24. <el-input v-model="page" style="width:70%;" readonly ref="page"></el-input>
  25. <el-button @click="copyLink('page')">复制</el-button>
  26. </el-form-item>
  27. <el-form-item label="小程序聚合页链接" prop="display_order">
  28. <el-input v-model="mini_page" style="width:70%;" readonly ref="mini_page"></el-input>
  29. <el-button @click="copyLink('mini_page')">复制</el-button>
  30. </el-form-item>
  31. <el-form-item label="使用权限" prop="auth_user">
  32. <el-checkbox-group v-model="form.auth_user">
  33. <el-checkbox v-for="(item,index) in auth_user" :key="index" :label="item.id">
  34. [[item.name]]
  35. </el-checkbox>
  36. <div class="tip">只有勾选的角色才能创建群二维码</div>
  37. </el-checkbox-group>
  38. </el-form-item>
  39. <el-form-item label="推荐权限" prop="auth_recommend">
  40. <el-switch v-model="form.auth_recommend" :active-value="1" :inactive-value="0"></el-switch>
  41. <div class="tip">开启后前端创建群活码时可以将群活码设置为推荐</div>
  42. </el-form-item>
  43. <el-form-item label="小程序顶部背景" prop="applets_background">
  44. <div class="upload-box" @click="openUpload('applets_background')"
  45. v-if="!form.applets_background_img">
  46. <i class="el-icon-plus" style="font-size:32px"></i>
  47. </div>
  48. <div @click="openUpload('applets_background')" class="upload-boxed"
  49. v-if="form.applets_background_img">
  50. <img :src="form.applets_background_img" alt=""
  51. style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  52. <div class="upload-boxed-text">点击重新上传</div>
  53. </div>
  54. <div class="tip">建议尺寸: 375*204</div>
  55. </el-form-item>
  56. <div class="vue-category-title">banner1</div>
  57. <el-form-item label="群活码聚合页banner1" prop="banner1">
  58. <div class="upload-box" @click="openUpload('banner1')" v-if="!form.banner1_img">
  59. <i class="el-icon-plus" style="font-size:32px"></i>
  60. </div>
  61. <div @click="openUpload('banner1')" class="upload-boxed" style="" v-if="form.banner1_img">
  62. <img :src="form.banner1_img" alt=""
  63. style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  64. <div class="upload-boxed-text">点击重新上传</div>
  65. </div>
  66. <div class="tip">建议尺寸: 350*160</div>
  67. </el-form-item>
  68. <el-form-item label="跳转链接" prop="banner1_url">
  69. <el-input v-model="form.banner1_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  70. <el-button @click="showLink('link','banner1_url')">选择链接</el-button>
  71. </el-form-item>
  72. <el-form-item label="小程序跳转链接" prop="banner1_applets_url">
  73. <el-input v-model="form.banner1_applets_url" style="width:70%;"
  74. placeholder=" 请选择链接"></el-input>
  75. <el-button @click="showLink('mini','banner1_applets_url')">选择小程序链接</el-button>
  76. </el-form-item>
  77. <div class="vue-category-title">banner2</div>
  78. <el-form-item label="群活码聚合页banner2" prop="banner2">
  79. <div class="upload-box" @click="openUpload('banner2')" v-if="!form.banner2_img">
  80. <i class="el-icon-plus" style="font-size:32px"></i>
  81. </div>
  82. <div @click="openUpload('banner2')" class="upload-boxed" v-if="form.banner2_img">
  83. <img :src="form.banner2_img" alt=""
  84. style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  85. <div class="upload-boxed-text">点击重新上传</div>
  86. </div>
  87. <div class="tip">建议尺寸: 350*160</div>
  88. </el-form-item>
  89. <el-form-item label="跳转链接" prop="banner2_url">
  90. <el-input v-model="form.banner2_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  91. <el-button @click="showLink('link','banner2_url')">选择链接</el-button>
  92. </el-form-item>
  93. <el-form-item label="小程序跳转链接" prop="banner2_applets_url">
  94. <el-input v-model="form.banner2_applets_url" style="width:70%;"
  95. placeholder=" 请选择链接"></el-input>
  96. <el-button @click="showLink('mini','banner2_applets_url')">选择小程序链接</el-button>
  97. </el-form-item>
  98. <div class="vue-category-title">banner3</div>
  99. <el-form-item label="群活码聚合页banner3" prop="banner3">
  100. <div class="upload-box" @click="openUpload('banner3')" v-if="!form.banner3_img">
  101. <i class="el-icon-plus" style="font-size:32px"></i>
  102. </div>
  103. <div @click="openUpload('banner3')" class="upload-boxed" v-if="form.banner3_img">
  104. <img :src="form.banner3_img" alt=""
  105. style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  106. <div class="upload-boxed-text">点击重新上传</div>
  107. </div>
  108. <div class="tip">建议尺寸: 350*160</div>
  109. </el-form-item>
  110. <el-form-item label="跳转链接" prop="banner3_url">
  111. <el-input v-model="form.banner3_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  112. <el-button @click="showLink('link','banner3_url')">选择链接</el-button>
  113. </el-form-item>
  114. <el-form-item label="小程序跳转链接" prop="banner3_applets_url">
  115. <el-input v-model="form.banner3_applets_url" style="width:70%;"
  116. placeholder=" 请选择链接"></el-input>
  117. <el-button @click="showLink('mini','banner3_applets_url')">选择小程序链接</el-button>
  118. </el-form-item>
  119. </div>
  120. </div>
  121. <div class="vue-head">
  122. <div class="vue-main-title">
  123. <div class="vue-main-title-left"></div>
  124. <div class="vue-main-title-content">商品详情页设置</div>
  125. </div>
  126. <div class="vue-main-form">
  127. <el-form-item label="商品详情页显示加群入口">
  128. <el-switch v-model="form.goods_entrance" active-value="1" inactive-value="0"></el-switch>
  129. {{--<div style="font-size:12px;"></div>--}}
  130. </el-form-item>
  131. <el-form-item label="引用文案" prop="">
  132. <el-input style="width: 70%;vertical-align:baseline" v-model="form.citation_copy"></el-input>
  133. <div style="font-size:12px;"></div>
  134. </el-form-item>
  135. <el-form-item label="加群跳转链接">
  136. <div style="line-height: 50px">
  137. <el-radio-group v-model="form.jump_mode">
  138. <el-radio label="home">群活码首页</el-radio>
  139. <el-radio label="appoint">
  140. 指定群活码
  141. <template>
  142. <el-select @change="selectGroupCode()" v-model="form.group_code_id" filterable clearable placeholder="输入名称搜索选择指定群活码" style="width:80%">
  143. <el-option v-for="(item,index) in groupCode" :key="index" :label="item.code_name" :value="item.id"></el-option>
  144. </el-select>
  145. {{--<el-input style="max-width:300px; margin-top: -6px" size="mini" placeholder="输入群活码名称搜索选择指定群活码" v-model="form.appoint_jump">--}}
  146. {{--</el-input>--}}
  147. {{--<el-button style="margin-top: -6px" size="mini" @click="showLink('link','appoint_jump')">选择链接</el-button>--}}
  148. {{--<el-button style="margin-top: -6px" size="mini" @click="showLink('mini','appoint_jump')">选择小程序链接</el-button>--}}
  149. </template>
  150. </el-radio>
  151. </el-radio-group>
  152. </div>
  153. </el-form-item>
  154. </div>
  155. </div>
  156. </el-form>
  157. <!-- 分页 -->
  158. <div class="vue-page">
  159. <div class="vue-center">
  160. <el-button type="primary" @click="submitForm('form')">保存设置</el-button>
  161. </div>
  162. </div>
  163. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  164. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  165. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  166. <!--end-->
  167. </div>
  168. </div>
  169. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  170. @include('public.admin.uploadImg')
  171. @include('public.admin.pop')
  172. @include('public.admin.program')
  173. <script>
  174. var app = new Vue({
  175. el:"#app",
  176. delimiters: ['[[', ']]'],
  177. name: 'test',
  178. data() {
  179. return{
  180. show:false,//是否开启公众号弹窗
  181. pro:false ,//是否开启小程序弹窗
  182. chooseLink:'',
  183. chooseMiniLink:'',
  184. auth_user:[],
  185. mini_page:'',
  186. page:'',
  187. form:{
  188. is_open:0,
  189. auth_recommend:0,
  190. applets_background:'',
  191. banner1:'',
  192. banner1_url:'',
  193. banner1_applets_url:'',
  194. banner2:'',
  195. banner1_url:'',
  196. banner2_url:'',
  197. banner2_applets_url:'',
  198. banner3:'',
  199. banner3_url:'',
  200. banner3_applets_url:'',
  201. auth_user:[],
  202. goods_entrance:0,
  203. group_code_id:0,
  204. code_url:'',
  205. code_mini_url:'',
  206. },
  207. groupCode:[],
  208. uploadShow:false,
  209. chooseImgName:'',
  210. loading: false,
  211. uploadImg1:'',
  212. rules:{
  213. name:{ required: true, message: '请输入品牌名称'}
  214. },
  215. }
  216. },
  217. created() {
  218. this.getData();
  219. },
  220. mounted() {
  221. },
  222. methods: {
  223. //弹窗显示与隐藏的控制
  224. changeLink(item){
  225. this.show=item;
  226. },
  227. //当前链接的增加
  228. parHref(child,confirm){
  229. this.show=confirm;
  230. // this.form.link=child;
  231. this.form[this.chooseLink] = child;
  232. },
  233. changeprogram(item){
  234. this.pro=item;
  235. },
  236. parpro(child,confirm){
  237. this.pro=confirm;
  238. // this.form.prolink=child;
  239. this.form[this.chooseMiniLink] = child;
  240. },
  241. showLink(type,name) {
  242. if(type=="link") {
  243. this.chooseLink = name;
  244. this.show = true;
  245. }
  246. else {
  247. this.chooseMiniLink = name;
  248. this.pro = true;
  249. }
  250. },
  251. copyLink(type) {
  252. this.$refs[type].select();
  253. document.execCommand("Copy")
  254. this.$message.success("复制成功!");
  255. },
  256. getData() {
  257. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0.2)'});
  258. this.$http.post('{!! yzWebFullUrl('plugin.group-code.admin.set.detail') !!}').then(function (response) {
  259. if (response.data.result){
  260. // this.auth_user = response.data.data.auth_user;
  261. let users = response.data.data.auth_user;
  262. for(let i in users) {
  263. this.auth_user.push({id:i,name:users[i]});
  264. }
  265. this.mini_page = response.data.data.mini_page;
  266. this.page = response.data.data.page;
  267. if (response.data.data.groupCode) {
  268. this.groupCode = response.data.data.groupCode
  269. }
  270. console.log(this.auth_user);
  271. if(response.data.data.data) {
  272. this.form = {...response.data.data.data}
  273. }
  274. }
  275. else {
  276. this.$message({message: response.data.msg,type: 'error'});
  277. }
  278. loading.close();
  279. },function (response) {
  280. this.$message({message: response.data.msg,type: 'error'});
  281. loading.close();
  282. }
  283. );
  284. },
  285. //返回群活码
  286. selectGroupCode() {
  287. if (this.form.group_code_id) {
  288. this.$http.post('{!! yzWebFullUrl('plugin.group-code.admin.group-code.extension') !!}',{id:this.form.group_code_id}).then(function(response) {
  289. if (response.data.result) {
  290. this.form.code_url = response.data.data.down_url;
  291. this.form.code_mini_url = response.data.data.down_mini_url;
  292. } else {
  293. this.$message({message: response.data.msg, type: 'error'});
  294. }
  295. }, function(response) {
  296. this.$message({
  297. message: response.data.msg,
  298. type: 'error'
  299. });
  300. });
  301. }
  302. },
  303. submitForm(formName) {
  304. let that = this;
  305. let json = {
  306. set:{
  307. is_open:this.form.is_open,
  308. auth_user:this.form.auth_user,
  309. auth_recommend:this.form.auth_recommend,
  310. applets_background:this.form.applets_background,
  311. banner1:this.form.banner1,
  312. banner1_url:this.form.banner1_url,
  313. banner1_applets_url:this.form.banner1_applets_url,
  314. banner2:this.form.banner2,
  315. banner1_url:this.form.banner1_url,
  316. banner2_url:this.form.banner2_url,
  317. banner2_applets_url:this.form.banner2_applets_url,
  318. banner3:this.form.banner3,
  319. banner3_url:this.form.banner3_url,
  320. banner3_applets_url:this.form.banner3_applets_url,
  321. goods_entrance:this.form.goods_entrance,
  322. citation_copy:this.form.citation_copy,
  323. jump_mode:this.form.jump_mode,
  324. code_url:this.form.code_url,
  325. code_mini_url:this.form.code_mini_url,
  326. group_code_id:this.form.group_code_id
  327. }
  328. };
  329. console.log(json);
  330. this.$refs[formName].validate((valid) => {
  331. if (valid) {
  332. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0.2)'});
  333. this.$http.post('{!! yzWebFullUrl('plugin.group-code.admin.set.update') !!}',json).then(response => {
  334. if (response.data.result) {
  335. this.$message({type: 'success',message: '操作成功!'});
  336. // this.goBack();
  337. } else {
  338. this.$message({message: response.data.msg,type: 'error'});
  339. }
  340. loading.close();
  341. },response => {
  342. loading.close();
  343. });
  344. }
  345. else {
  346. console.log('error submit!!');
  347. return false;
  348. }
  349. });
  350. },
  351. openUpload(str) {
  352. this.chooseImgName = str;
  353. this.uploadShow = true;
  354. },
  355. changeProp(val) {
  356. if(val == true) {
  357. this.uploadShow = false;
  358. }
  359. else {
  360. this.uploadShow = true;
  361. }
  362. },
  363. sureImg(name,image,image_url) {
  364. console.log(name)
  365. console.log(image)
  366. console.log(image_url)
  367. this.form[name] = image;
  368. this.form[name+'_img'] = image_url;
  369. },
  370. clearImg(str) {
  371. this.form[str] = "";
  372. this.form[str+'_img'] = "";
  373. this.$forceUpdate();
  374. },
  375. },
  376. })
  377. </script>
  378. @endsection