advert.blade.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  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. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  6. <style>
  7. .vue-main{background: #eff3f6;}
  8. /* 导航 */
  9. .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;}
  10. .el-radio-button__inner{border:0;}
  11. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  12. </style>
  13. <div class="all">
  14. <div id="app" v-cloak>
  15. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  16. <div class="vue-head">
  17. <el-radio-group v-model="order_type">
  18. <el-radio-button label="1" @click.native="gotoOther(1)">基础设置</el-radio-button>
  19. <el-radio-button label="2" @click.native="gotoOther(2)">幻灯片</el-radio-button>
  20. <el-radio-button label="3" @click.native="gotoOther(3)">广告位</el-radio-button>
  21. <el-radio-button label="4" @click.native="gotoOther(4)">顶部导航</el-radio-button>
  22. <el-radio-button label="5" @click.native="gotoOther(5)">底部导航</el-radio-button>
  23. <el-radio-button label="6" @click.native="gotoOther(6)">管理员设置</el-radio-button>
  24. </el-radio-group>
  25. </div>
  26. <div class="vue-head">
  27. <div class="vue-main-title">
  28. <div class="vue-main-title-left"></div>
  29. <div class="vue-main-title-content">广告位1</div>
  30. </div>
  31. <div class="vue-main-form">
  32. <el-form-item label="广告图片-移动端" prop="ad1_mobile_img">
  33. <div class="upload-box" @click="openUpload('ad1_mobile_img')" v-if="!form.ad1_mobile_img_src">
  34. <i class="el-icon-plus" style="font-size:32px"></i>
  35. </div>
  36. <div @click="openUpload('ad1_mobile_img')" class="upload-boxed" v-if="form.ad1_mobile_img_src">
  37. <img :src="form.ad1_mobile_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  38. <i class="el-icon-close" @click.stop="clearImg('ad1_mobile_img')" title="点击清除图片"></i>
  39. <div class="upload-boxed-text">点击重新上传</div>
  40. </div>
  41. <div class="tip">建议尺寸345*85,请将所有幻灯片图片尺寸保持一致</div>
  42. </el-form-item>
  43. <el-form-item label="广告图片-PC版" prop="ad1_pc_img">
  44. <div class="upload-box" @click="openUpload('ad1_pc_img')" v-if="!form.ad1_pc_img_src">
  45. <i class="el-icon-plus" style="font-size:32px"></i>
  46. </div>
  47. <div @click="openUpload('ad1_pc_img')" class="upload-boxed" v-if="form.ad1_pc_img_src">
  48. <img :src="form.ad1_pc_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  49. <i class="el-icon-close" @click.stop="clearImg('ad1_pc_img')" title="点击清除图片"></i>
  50. <div class="upload-boxed-text">点击重新上传</div>
  51. </div>
  52. <div class="tip">建议尺寸1200*200,如不适用PC版样式可不用上传,请将所有幻灯片图片尺寸保持一致</div>
  53. </el-form-item>
  54. <el-form-item label="网页链接" prop="ad1_url">
  55. <el-input v-model="form.ad1_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  56. <el-button @click="showLink('link','ad1_url')">选择链接</el-button>
  57. </el-form-item>
  58. <el-form-item label="小程序路径" prop="ad1_mini_url">
  59. <el-input v-model="form.ad1_mini_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  60. <el-button @click="showLink('mini','ad1_mini_url')">选择小程序链接</el-button>
  61. </el-form-item>
  62. <el-form-item label="是否显示" prop="ad1_show">
  63. <el-switch v-model="form.ad1_show" :active-value="1" :inactive-value="0"></el-switch>
  64. </el-form-item>
  65. </div>
  66. </div>
  67. <div class="vue-head">
  68. <div class="vue-main-title">
  69. <div class="vue-main-title-left"></div>
  70. <div class="vue-main-title-content">广告位2</div>
  71. </div>
  72. <div class="vue-main-form">
  73. <el-form-item label="广告图片-移动端" prop="ad2_mobile_img">
  74. <div class="upload-box" @click="openUpload('ad2_mobile_img')" v-if="!form.ad2_mobile_img_src">
  75. <i class="el-icon-plus" style="font-size:32px"></i>
  76. </div>
  77. <div @click="openUpload('ad2_mobile_img')" class="upload-boxed" v-if="form.ad2_mobile_img_src">
  78. <img :src="form.ad2_mobile_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  79. <i class="el-icon-close" @click.stop="clearImg('ad2_mobile_img')" title="点击清除图片"></i>
  80. <div class="upload-boxed-text">点击重新上传</div>
  81. </div>
  82. <div class="tip">建议尺寸345*85,请将所有幻灯片图片尺寸保持一致</div>
  83. </el-form-item>
  84. <el-form-item label="广告图片-PC版" prop="ad2_pc_img">
  85. <div class="upload-box" @click="openUpload('ad2_pc_img')" v-if="!form.ad2_pc_img_src">
  86. <i class="el-icon-plus" style="font-size:32px"></i>
  87. </div>
  88. <div @click="openUpload('ad2_pc_img')" class="upload-boxed" v-if="form.ad2_pc_img_src">
  89. <img :src="form.ad2_pc_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  90. <i class="el-icon-close" @click.stop="clearImg('ad2_pc_img')" title="点击清除图片"></i>
  91. <div class="upload-boxed-text">点击重新上传</div>
  92. </div>
  93. <div class="tip">建议尺寸1920*200,如不适用PC版样式可不用上传,请将所有幻灯片图片尺寸保持一致</div>
  94. </el-form-item>
  95. <el-form-item label="网页链接" prop="ad2_url">
  96. <el-input v-model="form.ad2_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  97. <el-button @click="showLink('link','ad2_url')">选择链接</el-button>
  98. </el-form-item>
  99. <el-form-item label="小程序路径" prop="ad2_mini_url">
  100. <el-input v-model="form.ad2_mini_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  101. <el-button @click="showLink('mini','ad2_mini_url')">选择小程序链接</el-button>
  102. </el-form-item>
  103. <el-form-item label="是否显示" prop="ad2_show">
  104. <el-switch v-model="form.ad2_show" :active-value="1" :inactive-value="0"></el-switch>
  105. </el-form-item>
  106. </div>
  107. </div>
  108. <div class="vue-head">
  109. <div class="vue-main-title">
  110. <div class="vue-main-title-left"></div>
  111. <div class="vue-main-title-content">广告位3</div>
  112. </div>
  113. <div class="vue-main-form">
  114. <el-form-item label="广告图片-移动端" prop="ad3_mobile_img">
  115. <div class="upload-box" @click="openUpload('ad3_mobile_img')" v-if="!form.ad3_mobile_img_src">
  116. <i class="el-icon-plus" style="font-size:32px"></i>
  117. </div>
  118. <div @click="openUpload('ad3_mobile_img')" class="upload-boxed" v-if="form.ad3_mobile_img_src">
  119. <img :src="form.ad3_mobile_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  120. <i class="el-icon-close" @click.stop="clearImg('ad3_mobile_img')" title="点击清除图片"></i>
  121. <div class="upload-boxed-text">点击重新上传</div>
  122. </div>
  123. <div class="tip">建议尺寸345*85,请将所有幻灯片图片尺寸保持一致</div>
  124. </el-form-item>
  125. <el-form-item label="广告图片-PC版" prop="ad3_pc_img">
  126. <div class="upload-box" @click="openUpload('ad3_pc_img')" v-if="!form.ad3_pc_img_src">
  127. <i class="el-icon-plus" style="font-size:32px"></i>
  128. </div>
  129. <div @click="openUpload('ad3_pc_img')" class="upload-boxed" v-if="form.ad3_pc_img_src">
  130. <img :src="form.ad3_pc_img_src" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  131. <i class="el-icon-close" @click.stop="clearImg('ad3_pc_img')" title="点击清除图片"></i>
  132. <div class="upload-boxed-text">点击重新上传</div>
  133. </div>
  134. <div class="tip">建议尺寸1920*200,如不适用PC版样式可不用上传,请将所有幻灯片图片尺寸保持一致</div>
  135. </el-form-item>
  136. <el-form-item label="网页链接" prop="ad3_url">
  137. <el-input v-model="form.ad3_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  138. <el-button @click="showLink('link','ad3_url')">选择链接</el-button>
  139. </el-form-item>
  140. <el-form-item label="小程序路径" prop="ad3_mini_url">
  141. <el-input v-model="form.ad3_mini_url" style="width:70%;" placeholder=" 请选择链接"></el-input>
  142. <el-button @click="showLink('mini','ad3_mini_url')">选择小程序链接</el-button>
  143. </el-form-item>
  144. <el-form-item label="是否显示" prop="ad3_show">
  145. <el-switch v-model="form.ad3_show" :active-value="1" :inactive-value="0"></el-switch>
  146. </el-form-item>
  147. </div>
  148. </div>
  149. </el-form>
  150. <!-- 分页 -->
  151. <div class="vue-page">
  152. <div class="vue-center">
  153. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  154. <el-button @click="goBack">返回</el-button>
  155. </div>
  156. </div>
  157. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  158. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  159. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  160. </div>
  161. </div>
  162. @include('public.admin.uploadImg')
  163. @include('public.admin.pop')
  164. @include('public.admin.program')
  165. <script>
  166. var app = new Vue({
  167. el:"#app",
  168. delimiters: ['[[', ']]'],
  169. name: 'test',
  170. data() {
  171. let set = {!! json_encode($set)!!}
  172. // console.log(set)
  173. return{
  174. show:false,//是否开启公众号弹窗
  175. pro:false ,//是否开启小程序弹窗
  176. chooseLink:'',
  177. chooseMiniLink:'',
  178. order_type:'3',
  179. id:0,
  180. form:{
  181. ad1_mobile_img:set&&set.ad1?set.ad1.mobile_img:"",
  182. ad1_pc_img:set&&set.ad1?set.ad1.pc_img:"",
  183. ad1_mobile_img_src:set&&set.ad1?set.ad1.mobile_img_src:"",
  184. ad1_pc_img_src:set&&set.ad1?set.ad1.pc_img_src:"",
  185. ad1_url:set&&set.ad1?set.ad1.url:"",
  186. ad1_mini_url:set&&set.ad1?set.ad1.mini_url:"",
  187. ad1_show:set&&set.ad1?set.ad1.show:0,
  188. ad2_mobile_img:set&&set.ad2?set.ad2.mobile_img:"",
  189. ad2_pc_img:set&&set.ad2?set.ad2.pc_img:"",
  190. ad2_mobile_img_src:set&&set.ad2?set.ad2.mobile_img_src:"",
  191. ad2_pc_img_src:set&&set.ad2?set.ad2.pc_img_src:"",
  192. ad2_url:set&&set.ad2?set.ad2.url:"",
  193. ad2_mini_url:set&&set.ad2?set.ad2.mini_url:"",
  194. ad2_show:set&&set.ad2?set.ad2.show:0,
  195. ad3_mobile_img:set&&set.ad3?set.ad3.mobile_img:"",
  196. ad3_pc_img:set&&set.ad3?set.ad3.pc_img:"",
  197. ad3_mobile_img_src:set&&set.ad3?set.ad3.mobile_img_src:"",
  198. ad3_pc_img_src:set&&set.ad3?set.ad3.pc_img_src:"",
  199. ad3_url:set&&set.ad3?set.ad3.url:"",
  200. ad3_mini_url:set&&set.ad3?set.ad3.mini_url:"",
  201. ad3_show:set&&set.ad3?set.ad3.show:0
  202. },
  203. temp_list:[],
  204. temp:{
  205. store_pay_open:0,
  206. become_store_open:0,
  207. reject_store_open:0,
  208. store_pay_id:0,
  209. become_store_id:0,
  210. reject_store_id:0,
  211. },
  212. uploadShow:false,
  213. chooseImgName:'',
  214. submit_url:'',
  215. showVisible:false,
  216. loading: false,
  217. p:{
  218. province:'',
  219. city:'',
  220. district:'',
  221. street:'',
  222. },
  223. province_list:[],
  224. city_list:[],
  225. district_list:[],
  226. street_list:[],
  227. areaLoading:false,
  228. street:1,
  229. template_list:[],
  230. rules:{
  231. name:{ required: true, message: '请输入品牌名称'}
  232. },
  233. }
  234. },
  235. created() {
  236. },
  237. mounted() {
  238. },
  239. methods: {
  240. // 消息模板开关
  241. changeModal(name) {
  242. let url_open = "{!! yzWebUrl('setting.default-notice.index') !!}"
  243. let url_close = "{!! yzWebUrl('setting.default-notice.storeCancel') !!}"
  244. let url = "";
  245. if(this.temp[name+"_open"]==1) {
  246. url = url_open;
  247. }
  248. else {
  249. url = url_close;
  250. }
  251. let json = {
  252. notice_name: name,
  253. setting_name: "plugin.store",
  254. }
  255. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  256. this.$http.post(url,{postdata:json}).then(response => {
  257. if (response.data.result == 1) {
  258. this.$message({type: 'success',message: '操作成功!'});
  259. if(this.temp[name+"_open"]==1) {
  260. this.temp[name+"_id"] = response.data.id;
  261. this.form[name] = response.data.id;
  262. }
  263. else {
  264. this.temp[name+"_id"] = '';
  265. this.form[name] = '';
  266. }
  267. } else {
  268. this.$message({message: response.data.msg,type: 'error'});
  269. if(this.temp[name+"_open"]==1) {
  270. this.temp[name+"_open"]=0
  271. }
  272. else {
  273. this.temp[name+"_open"]=1
  274. }
  275. }
  276. loading.close();
  277. },response => {
  278. loading.close();
  279. });
  280. },
  281. submitForm(formName) {
  282. console.log(this.form)
  283. let that = this;
  284. let json = {
  285. ad1:{
  286. mobile_img:this.form.ad1_mobile_img,
  287. pc_img:this.form.ad1_pc_img,
  288. url:this.form.ad1_url,
  289. mini_url:this.form.ad1_mini_url,
  290. show:this.form.ad1_show || 0,
  291. },
  292. ad2:{
  293. mobile_img:this.form.ad2_mobile_img,
  294. pc_img:this.form.ad2_pc_img,
  295. url:this.form.ad2_url,
  296. mini_url:this.form.ad2_mini_url,
  297. show:this.form.ad2_show || 0,
  298. },
  299. ad3:{
  300. mobile_img:this.form.ad3_mobile_img,
  301. pc_img:this.form.ad3_pc_img,
  302. url:this.form.ad3_url,
  303. mini_url:this.form.ad3_mini_url,
  304. show:this.form.ad3_show || 0,
  305. },
  306. };
  307. this.$refs[formName].validate((valid) => {
  308. if (valid) {
  309. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  310. this.$http.post('{!! yzWebFullUrl('plugin.case-library.admin.set.advert') !!}',{set:json}).then(response => {
  311. if (response.data.result) {
  312. this.$message({type: 'success',message: '操作成功!'});
  313. } else {
  314. this.$message({message: response.data.msg,type: 'error'});
  315. }
  316. loading.close();
  317. },response => {
  318. loading.close();
  319. });
  320. }
  321. else {
  322. console.log('error submit!!');
  323. return false;
  324. }
  325. });
  326. },
  327. goBack() {
  328. history.go(-1)
  329. },
  330. gotoOther(type) {
  331. let url = ""
  332. if(type==1) {
  333. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.basic') !!}'
  334. }
  335. else if(type==2) {
  336. url = '{!! yzWebFullUrl('plugin.case-library.admin.banner.banner-list') !!}'
  337. }
  338. else if(type==3) {
  339. //url = '{!! yzWebFullUrl('plugin.case-library.admin.set.advert') !!}'
  340. }
  341. else if(type==4) {
  342. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-top') !!}'
  343. }
  344. else if(type==5) {
  345. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.nav-bottom') !!}'
  346. }
  347. else if(type==6) {
  348. url = '{!! yzWebFullUrl('plugin.case-library.admin.set.admin-view') !!}'
  349. }
  350. if(url) {
  351. window.location.href=url
  352. }
  353. },
  354. copyLink(type) {
  355. this.$refs[type].select();
  356. document.execCommand("Copy")
  357. this.$message.success("复制成功!");
  358. },
  359. openUpload(str) {
  360. this.chooseImgName = str;
  361. this.uploadShow = true;
  362. },
  363. changeProp(val) {
  364. if(val == true) {
  365. this.uploadShow = false;
  366. }
  367. else {
  368. this.uploadShow = true;
  369. }
  370. },
  371. sureImg(name,image,image_url) {
  372. this.form[name] = image;
  373. this.form[name+'_src'] = image_url;
  374. },
  375. clearImg(str) {
  376. this.form[str] = "";
  377. this.form[str+'_src'] = "";
  378. this.$forceUpdate();
  379. },
  380. //弹窗显示与隐藏的控制
  381. changeLink(item){
  382. this.show=item;
  383. },
  384. //当前链接的增加
  385. parHref(child,confirm){
  386. this.show=confirm;
  387. // this.form.link=child;
  388. this.form[this.chooseLink] = child;
  389. },
  390. changeprogram(item){
  391. this.pro=item;
  392. },
  393. parpro(child,confirm){
  394. this.pro=confirm;
  395. // this.form.prolink=child;
  396. this.form[this.chooseMiniLink] = child;
  397. },
  398. showLink(type,name) {
  399. if(type=="link") {
  400. this.chooseLink = name;
  401. this.show = true;
  402. }
  403. else {
  404. this.chooseMiniLink = name;
  405. this.pro = true;
  406. }
  407. },
  408. },
  409. })
  410. </script>
  411. @endsection