basic.blade.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/case-library/views/admin/index.css')}}">
  5. <style>
  6. .vue-main{background: #eff3f6;}
  7. /* 导航 */
  8. .el-radio-button .el-radio-button__inner,.el-radio-button:first-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;border-left: 0px;}
  9. .el-radio-button__inner{border:0;}
  10. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  11. </style>
  12. <div class="all">
  13. <div id="app" v-cloak>
  14. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  15. <div class="vue-head">
  16. <el-radio-group v-model="order_type">
  17. <el-radio-button label="1" @click.native="gotoOther(1)">基础设置</el-radio-button>
  18. <el-radio-button label="2" @click.native="gotoOther(2)">幻灯片</el-radio-button>
  19. <el-radio-button label="3" @click.native="gotoOther(3)">广告位</el-radio-button>
  20. <el-radio-button label="4" @click.native="gotoOther(4)">顶部导航</el-radio-button>
  21. <el-radio-button label="5" @click.native="gotoOther(5)">底部导航</el-radio-button>
  22. <el-radio-button label="6" @click.native="gotoOther(6)">管理员设置</el-radio-button>
  23. </el-radio-group>
  24. </div>
  25. <div class="vue-head">
  26. <div class="vue-main-title">
  27. <div class="vue-main-title-left"></div>
  28. <div class="vue-main-title-content">基础设置</div>
  29. </div>
  30. <div class="vue-main-form">
  31. <el-form-item label="插件名称" prop="name">
  32. <el-input v-model="form.name" style="width:70%;"></el-input>
  33. <div class="tip">默认“案例库”</div>
  34. </el-form-item>
  35. <el-form-item label="PC端页面样式" prop="pc_style">
  36. <el-radio v-model="form.pc_style" :label="0">H5样式</el-radio>
  37. <el-radio v-model="form.pc_style" :label="1">PC版样式</el-radio>
  38. </el-form-item>
  39. <el-form-item label="聚合页网址链接" prop="url">
  40. <el-input v-model="url" readonly style="width:70%;" ref="url"></el-input>
  41. <el-button @click="copyLink('url')">复制链接</el-button>
  42. </el-form-item>
  43. <el-form-item label="聚合页小程序路径" prop="mini_url">
  44. <el-input v-model="mini_url" readonly style="width:70%;" ref="mini_url"></el-input>
  45. <el-button @click="copyLink('mini_url')">复制链接</el-button>
  46. </el-form-item>
  47. </div>
  48. </div>
  49. <div class="vue-head" style="margin-top:20px">
  50. <div class="vue-main-title">
  51. <div class="vue-main-title-left"></div>
  52. <div class="vue-main-title-content">会员发布权限</div>
  53. </div>
  54. <div class="vue-main-form">
  55. <el-form-item label="" prop="auth_user">
  56. <el-checkbox-group v-model="form.auth_user">
  57. <!-- <el-checkbox v-for="(item,index) in store_widget" :key="index" :label="item.value">[[item.title]]</el-checkbox> -->
  58. <el-checkbox v-for="(item,index) in level" :key="index" :label="item.id">[[item.level_name]]</el-checkbox>
  59. </el-checkbox-group>
  60. <div class="tip">会员发布案例仅限PC端-PC版样式操作,发布后为未开启状态,需管理员后台开启!</div>
  61. </el-form-item>
  62. </div>
  63. </div>
  64. <div class="vue-head" style="margin-top:20px">
  65. <div class="vue-main-title">
  66. <div class="vue-main-title-left"></div>
  67. <div class="vue-main-title-content">LOGO</div>
  68. </div>
  69. <div class="vue-main-form">
  70. <el-form-item label="" prop="logo_src">
  71. <div class="upload-box" @click="openUpload('logo')" v-if="!form.logo_src">
  72. <i class="el-icon-plus" style="font-size:32px"></i>
  73. </div>
  74. <div @click="openUpload('logo')" class="upload-boxed" v-if="form.logo_src">
  75. <img :src="form.logo_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  76. <div class="upload-boxed-text">点击重新上传</div>
  77. </div>
  78. <div class="tip">建议尺寸160*40</div>
  79. </el-form-item>
  80. </div>
  81. </div>
  82. <div class="vue-head" style="margin-top:20px">
  83. <div class="vue-main-title">
  84. <div class="vue-main-title-left"></div>
  85. <div class="vue-main-title-content">客服设置</div>
  86. </div>
  87. <div class="vue-main-form">
  88. <el-form-item label="客服电话" prop="service_phone">
  89. <el-input v-model="form.service_phone" style="width:70%;"></el-input>
  90. </el-form-item>
  91. <el-form-item label="客服二维码" prop="service_qr_code">
  92. <div class="upload-box" @click="openUpload('service_qr_code')" v-if="!form.service_qr_code_src">
  93. <i class="el-icon-plus" style="font-size:32px"></i>
  94. </div>
  95. <div @click="openUpload('service_qr_code')" class="upload-boxed" v-if="form.service_qr_code_src">
  96. <img :src="form.service_qr_code_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  97. <div class="upload-boxed-text">点击重新上传</div>
  98. </div>
  99. <!-- <div class="tip">建议尺寸160*40</div> -->
  100. </el-form-item>
  101. </div>
  102. </div>
  103. </el-form>
  104. <!-- 分页 -->
  105. <div class="vue-page">
  106. <div class="vue-center">
  107. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  108. <el-button @click="goBack">返回</el-button>
  109. </div>
  110. </div>
  111. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  112. </div>
  113. </div>
  114. @include('public.admin.uploadImg')
  115. <script>
  116. var app = new Vue({
  117. el:"#app",
  118. delimiters: ['[[', ']]'],
  119. name: 'test',
  120. data() {
  121. let set= {!!json_encode($set?:'{}') !!}
  122. let level = {!!json_encode($level?:'{}') !!}
  123. let url = '{!!$url?$url:'' !!}'
  124. let mini_url = '{!!$mini_url?$mini_url:'' !!}'
  125. // console.log(level);
  126. return{
  127. form:{
  128. name:set&&set.name?set.name:'',
  129. pc_style:set&&set.pc_style?set.pc_style:0,
  130. auth_user:set&&set.auth_user?set.auth_user:[],
  131. logo:set&&set.logo?set.logo:'',
  132. logo_src:set&&set.logo_src?set.logo_src:'',
  133. service_phone:set&&set.service_phone?set.service_phone:'',
  134. service_qr_code:set&&set.service_qr_code?set.service_qr_code:'',
  135. service_qr_code_src:set&&set.service_qr_code_src?set.service_qr_code_src:'',
  136. },
  137. level:level,
  138. url:url,
  139. mini_url:mini_url,
  140. order_type:'1',
  141. id:0,
  142. temp_list:[],
  143. temp:{
  144. store_pay_open:0,
  145. become_store_open:0,
  146. reject_store_open:0,
  147. store_pay_id:0,
  148. become_store_id:0,
  149. reject_store_id:0,
  150. },
  151. uploadShow:false,
  152. chooseImgName:'',
  153. submit_url:'',
  154. showVisible:false,
  155. loading: false,
  156. p:{
  157. province:'',
  158. city:'',
  159. district:'',
  160. street:'',
  161. },
  162. province_list:[],
  163. city_list:[],
  164. district_list:[],
  165. street_list:[],
  166. areaLoading:false,
  167. street:1,
  168. template_list:[],
  169. rules:{
  170. // name:{ required: true, message: '请输入品牌名称'}
  171. },
  172. }
  173. },
  174. created() {
  175. },
  176. mounted() {
  177. },
  178. methods: {
  179. submitForm(formName) {
  180. console.log(this.form)
  181. let that = this;
  182. let json = {
  183. name:this.form.name,
  184. pc_style:this.form.pc_style || 0,
  185. auth_user:this.form.auth_user,
  186. logo:this.form.logo,
  187. service_phone:this.form.service_phone,
  188. service_qr_code:this.form.service_qr_code,
  189. };
  190. this.$refs[formName].validate((valid) => {
  191. if (valid) {
  192. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  193. this.$http.post('{!! yzWebFullUrl('plugin.case-library.admin.set.basic') !!}',{set:json}).then(response => {
  194. if (response.data.result) {
  195. this.$message({message: response.data.msg,type: 'success'});
  196. } else {
  197. this.$message({message: response.data.msg,type: 'error'});
  198. }
  199. loading.close();
  200. },response => {
  201. loading.close();
  202. });
  203. }
  204. else {
  205. console.log('error submit!!');
  206. return false;
  207. }
  208. });
  209. },
  210. goBack() {
  211. history.go(-1)
  212. },
  213. gotoOther(type) {
  214. let url = ""
  215. if(type==1) {
  216. // url = '{!! yzWebFullUrl('plugin.case-library.admin.set.basic') !!}'
  217. }
  218. else if(type==2) {
  219. url = '{!! yzWebFullUrl('plugin.case-library.admin.banner.banner-list') !!}'
  220. }
  221. else if(type==3) {
  222. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.advert') !!}'
  223. }
  224. else if(type==4) {
  225. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-top') !!}'
  226. }
  227. else if(type==5) {
  228. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-bottom') !!}'
  229. }
  230. else if(type==6) {
  231. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.admin-view') !!}'
  232. }
  233. if(url) {
  234. window.location.href=url
  235. }
  236. },
  237. copyLink(type) {
  238. this.$refs[type].select();
  239. document.execCommand("Copy")
  240. this.$message.success("复制成功!");
  241. },
  242. openUpload(str) {
  243. this.chooseImgName = str;
  244. this.uploadShow = true;
  245. },
  246. changeProp(val) {
  247. if(val == true) {
  248. this.uploadShow = false;
  249. }
  250. else {
  251. this.uploadShow = true;
  252. }
  253. },
  254. sureImg(name,image,image_url) {
  255. this.form[name] = image;
  256. this.form[name+'_src'] = image_url;
  257. },
  258. clearImg(str) {
  259. this.form[str] = "";
  260. this.form[str+'_src'] = "";
  261. this.$forceUpdate();
  262. },
  263. },
  264. })
  265. </script>
  266. @endsection