advertisement.blade.php 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431
  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: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-button{
  63. margin-left:10px;
  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="广告位一" prop="head_img_url">
  86. <div class="upload-box" @click="openUpload('1','one')" v-if="!form.advs[1].img_url">
  87. <i class="el-icon-plus" style="font-size:32px"></i>
  88. </div>
  89. <div @click="openUpload('1','one')" class="upload-boxed" v-if="form.advs[1].img_url" >
  90. <img :src="form.advs['1'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  91. <div class="upload-boxed-text">点击重新上传</div>
  92. <i class="el-icon-close" @click.stop="clearImg('1')" title="点击清除图片"></i>
  93. </div>
  94. <div class="tip">建议尺寸:339 * 282</div>
  95. </el-form-item>
  96. <upload-multimedia-img :upload-show="uploadShow" :type="type" :name="chooseImgName" :sel-Num="selNum" @replace="changeProp" @sure="sureImg"></upload-multimedia-img>
  97. <!-- <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img> -->
  98. <el-form-item label="广告位一链接">
  99. <el-input v-model="form.advs[1].link" style="width:60%;"></el-input><el-button @click="openConnect('1')">选择链接</el-button>
  100. </el-form-item>
  101. <el-form-item label="广告位一小程序链接">
  102. <el-input v-model="form.advs[1].small_link" style="width:60%;"></el-input><el-button @click="openSmall('1')">选择小程序链接</el-button>
  103. </el-form-item>
  104. </div>
  105. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  106. <div class="block">
  107. <div class="title">
  108. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  109. <b>广告位二
  110. </b></div>
  111. <el-form-item label="广告位二" prop="head_img_url">
  112. <div class="upload-box" @click="openUpload('2','one')" v-if="!form.advs[2].img_url">
  113. <i class="el-icon-plus" style="font-size:32px"></i>
  114. </div>
  115. <div @click="openUpload('2','one')" class="upload-boxed" v-if="form.advs[2].img_url" >
  116. <img :src="form.advs['2'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  117. <div class="upload-boxed-text">点击重新上传</div>
  118. <i class="el-icon-close" @click.stop="clearImg('2')" title="点击清除图片"></i>
  119. </div>
  120. <div class="tip">建议尺寸:339 * 135</div>
  121. </el-form-item>
  122. <el-form-item label="广告位二链接">
  123. <el-input v-model="form.advs[2].link" style="width:60%;"></el-input><el-button @click="openConnect('2')">选择链接</el-button>
  124. </el-form-item>
  125. <el-form-item label="广告位二小程序链接">
  126. <el-input v-model="form.advs[2].small_link" style="width:60%;"></el-input><el-button @click="openSmall('2')">选择小程序链接</el-button>
  127. </el-form-item>
  128. </div>
  129. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  130. <div class="block">
  131. <div class="title">
  132. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  133. <b>广告位三
  134. </b></div>
  135. <el-form-item label="广告位三" prop="head_img_url">
  136. <div class="upload-box" @click="openUpload('3','one')" v-if="!form.advs[3].img_url">
  137. <i class="el-icon-plus" style="font-size:32px"></i>
  138. </div>
  139. <div @click="openUpload('3','one')" class="upload-boxed" v-if="form.advs[3].img_url" >
  140. <img :src="form.advs['3'].img_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('3')" title="点击清除图片"></i>
  143. </div>
  144. <div class="tip">建议尺寸:339 * 135</div>
  145. </el-form-item>
  146. <el-form-item label="广告位三链接">
  147. <el-input v-model="form.advs[3].link" style="width:60%;"></el-input><el-button @click="openConnect('3')">选择链接</el-button>
  148. </el-form-item>
  149. <el-form-item label="广告位三小程序链接">
  150. <el-input v-model="form.advs[3].small_link" style="width:60%;"></el-input><el-button @click="openSmall('3')">选择小程序链接</el-button>
  151. </el-form-item>
  152. </div>
  153. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  154. <div class="block">
  155. <div class="title">
  156. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  157. <b>广告位四
  158. </b></div>
  159. <el-form-item label="广告位四" prop="head_img_url">
  160. <div class="upload-box" @click="openUpload('4','one')" v-if="!form.advs[4].img_url">
  161. <i class="el-icon-plus" style="font-size:32px"></i>
  162. </div>
  163. <div @click="openUpload('4','one')" class="upload-boxed" v-if="form.advs[4].img_url" >
  164. <img :src="form.advs['4'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  165. <div class="upload-boxed-text">点击重新上传</div>
  166. <i class="el-icon-close" @click.stop="clearImg('4')" title="点击清除图片"></i>
  167. </div>
  168. <div class="tip">建议尺寸:223 * 260</div>
  169. </el-form-item>
  170. <el-form-item label="广告位四链接">
  171. <el-input v-model="form.advs[4].link" style="width:60%;"></el-input><el-button @click="openConnect('4')">选择链接</el-button>
  172. </el-form-item>
  173. <el-form-item label="广告位四小程序链接">
  174. <el-input v-model="form.advs[4].small_link" style="width:60%;"></el-input><el-button @click="openSmall('4')">选择小程序链接</el-button>
  175. </el-form-item>
  176. </div>
  177. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  178. <div class="block">
  179. <div class="title">
  180. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  181. <b>广告位五
  182. </b></div>
  183. <el-form-item label="广告位五" prop="head_img_url">
  184. <div class="upload-box" @click="openUpload('5','one')" v-if="!form.advs[5].img_url">
  185. <i class="el-icon-plus" style="font-size:32px"></i>
  186. </div>
  187. <div @click="openUpload('5','one')" class="upload-boxed" v-if="form.advs[5].img_url" >
  188. <img :src="form.advs['5'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  189. <div class="upload-boxed-text">点击重新上传</div>
  190. <i class="el-icon-close" @click.stop="clearImg('5')" title="点击清除图片"></i>
  191. </div>
  192. <div class="tip">建议尺寸:223 * 260</div>
  193. </el-form-item>
  194. <el-form-item label="广告位五链接">
  195. <el-input v-model="form.advs[5].link" style="width:60%;"></el-input><el-button @click="openConnect('5')">选择链接</el-button>
  196. </el-form-item>
  197. <el-form-item label="广告位五小程序链接">
  198. <el-input v-model="form.advs[5].small_link" style="width:60%;"></el-input><el-button @click="openSmall('5')">选择小程序链接</el-button>
  199. </el-form-item>
  200. </div>
  201. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  202. <div class="block">
  203. <div class="title">
  204. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  205. <b>广告位六
  206. </b></div>
  207. <el-form-item label="广告位六" prop="head_img_url">
  208. <div class="upload-box" @click="openUpload('6','one')" v-if="!form.advs[6].img_url">
  209. <i class="el-icon-plus" style="font-size:32px"></i>
  210. </div>
  211. <div @click="openUpload('6','one')" class="upload-boxed" v-if="form.advs[6].img_url" >
  212. <img :src="form.advs['6'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  213. <div class="upload-boxed-text">点击重新上传</div>
  214. <i class="el-icon-close" @click.stop="clearImg('6')" title="点击清除图片"></i>
  215. </div>
  216. <div class="tip">建议尺寸:223 * 260</div>
  217. </el-form-item>
  218. <el-form-item label="广告位六链接">
  219. <el-input v-model="form.advs[6].link" style="width:60%;"></el-input><el-button @click="openConnect('6')">选择链接</el-button>
  220. </el-form-item>
  221. <el-form-item label="广告位六小程序链接">
  222. <el-input v-model="form.advs[6].small_link" style="width:60%;"></el-input><el-button @click="openSmall('6')">选择小程序链接</el-button>
  223. </el-form-item>
  224. </div>
  225. <div style="background: #eff3f6;width:100%;height:15px;"></div>
  226. <div class="block">
  227. <div class="title">
  228. <span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span>
  229. <b>广告位七
  230. </b></div>
  231. <el-form-item label="广告位七" prop="head_img_url">
  232. <div class="upload-box" @click="openUpload('7','one')" v-if="!form.advs[7].img_url">
  233. <i class="el-icon-plus" style="font-size:32px"></i>
  234. </div>
  235. <div @click="openUpload('7','one')" class="upload-boxed" v-if="form.advs[7].img_url" >
  236. <img :src="form.advs['7'].img_url" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  237. <div class="upload-boxed-text">点击重新上传</div>
  238. <i class="el-icon-close" @click.stop="clearImg('7')" title="点击清除图片"></i>
  239. </div>
  240. <div class="tip">建议尺寸:223 * 260</div>
  241. </el-form-item>
  242. <el-form-item label="广告位七链接">
  243. <el-input v-model="form.advs[7].link" style="width:60%;"></el-input><el-button @click="openConnect('7')">选择链接</el-button>
  244. </el-form-item>
  245. <el-form-item label="广告位七小程序链接">
  246. <el-input v-model="form.advs[7].small_link" style="width:60%;"></el-input><el-button @click="openSmall('7')">选择小程序链接</el-button>
  247. </el-form-item>
  248. </div>
  249. </div>
  250. <div class="confirm-btn">
  251. <el-button type="primary" @click="submit">提交</el-button>
  252. </div>
  253. <pop :show="show" @replace="changeProp1" @add="parHref"></pop>
  254. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  255. </el-form>
  256. </div>
  257. </div>
  258. <!-- @include('public.admin.uploadImg') -->
  259. @include('public.admin.uploadMultimediaImg')
  260. @include('public.admin.pop')
  261. @include('public.admin.program')
  262. <script>
  263. var vm = new Vue({
  264. el: "#re_content",
  265. delimiters: ['[[', ']]'],
  266. data() {
  267. let adv = {!! $adv ?: '[]' !!}
  268. return {
  269. type:'',
  270. selNum:'',
  271. typeImg:1,
  272. activeName: 'first',
  273. uploadShow:false,
  274. chooseImgName:'',
  275. uploadListShow:false,
  276. chooseImgListName:'',
  277. str:'',
  278. smStr:'',
  279. show:false,//是否开启公众号弹窗
  280. pro:false ,//是否开启小程序弹窗
  281. form:{
  282. advs:[
  283. {
  284. //兼容旧数据0留空
  285. },
  286. {
  287. img: adv?adv.advs['1'].img:'',
  288. link: adv?adv.advs['1'].link:'',
  289. small_link: adv?adv.advs['1'].small_link:'',
  290. img_url:adv?adv.advs['1'].img_url:''
  291. },
  292. {
  293. img: adv?adv.advs['2'].img:'',
  294. link: adv?adv.advs['2'].link:'',
  295. small_link:adv?adv.advs['2'].small_link:'',
  296. img_url:adv?adv.advs['2'].img_url:''
  297. },
  298. {
  299. img: adv?adv.advs['3'].img:'',
  300. link: adv?adv.advs['3'].link:'',
  301. small_link: adv?adv.advs['3'].small_link:'',
  302. img_url:adv?adv.advs['3'].img_url:''
  303. },
  304. {
  305. img: adv?adv.advs['4'].img:'',
  306. link: adv?adv.advs['4'].link:'',
  307. small_link: adv?adv.advs['4'].small_link:'',
  308. img_url:adv?adv.advs['4'].img_url:''
  309. },
  310. {
  311. img: adv?adv.advs['5'].img:'',
  312. link: adv?adv.advs['5'].link:'',
  313. small_link:adv?adv.advs['5'].small_link:'',
  314. img_url:adv?adv.advs['5'].img_url:''
  315. },
  316. {
  317. img: adv?adv.advs['6'].img:'',
  318. link: adv?adv.advs['6'].link:'',
  319. small_link:adv?adv.advs['6'].small_link:'',
  320. img_url:adv?adv.advs['6'].img_url:''
  321. },
  322. {
  323. img: adv?adv.advs['7'].img:'',
  324. link:adv?adv.advs['7'].link:'',
  325. small_link:adv?adv.advs['7'].small_link:'',
  326. img_url:adv?adv.advs['7'].img_url:''
  327. },
  328. ],
  329. },
  330. }
  331. },
  332. mounted () {
  333. },
  334. methods: {
  335. clearImg(str,type,index) {
  336. if(!type) {
  337. this.form.advs[str].img = "";
  338. this.form.advs[str].img_url = "";
  339. }
  340. else {
  341. this.form[str].splice(index,1);
  342. this.form[str+'_url'].splice(index,1);
  343. }
  344. this.$forceUpdate();
  345. },
  346. openConnect(id){
  347. this.show=true;
  348. this.str=id
  349. },
  350. openSmall(smId){
  351. this.pro=true,
  352. this.smStr=smId
  353. },
  354. //弹窗显示与隐藏的控制
  355. changeProp1(item){
  356. this.show=item;
  357. },
  358. //当前链接的增加
  359. parHref(child,confirm){
  360. this.show=confirm;
  361. this.form.advs[this.str].link=child;
  362. },
  363. changeprogram(item){
  364. this.pro=item;
  365. },
  366. parpro(child,confirm){
  367. this.pro=confirm;
  368. this.form.advs[this.smStr].small_link=child;
  369. },
  370. openUpload(str,sel) {
  371. this.chooseImgName = str;
  372. this.uploadShow = true;
  373. this.type = this.typeImg
  374. this.selNum = sel
  375. },
  376. changeProp(val) {
  377. if(val == true) {
  378. this.uploadShow = false;
  379. }
  380. else {
  381. this.uploadShow = true;
  382. }
  383. },
  384. // sureImg(name,image,image_url) {
  385. // console.log(name)
  386. // this.form.advs[name].img=image
  387. // this.form.advs[name].img_url= image_url;
  388. // console.log(this.form)
  389. // },
  390. sureImg(name,uploadShow,fileList) {
  391. if(fileList.length <= 0) {
  392. return
  393. }
  394. console.log(name)
  395. console.log(fileList)
  396. this.form.advs[name].img =fileList[0].attachment;
  397. this.form.advs[name].img_url = fileList[0].url;
  398. console.log(this.form.advs[name].img,'aaaaa')
  399. console.log(this.form.advs[name].img_url,'bbbbb')
  400. },
  401. submit() {
  402. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  403. this.$http.post('{!! yzWebFullUrl('setting.shop-advs.index') !!}',{'adv':this.form.advs}).then(function (response){
  404. if (response.data.result) {
  405. this.$message({message: "提交成功",type: 'success'});
  406. }
  407. else {
  408. this.$message({message: response.data.msg,type: 'error'});
  409. }
  410. loading.close();
  411. location.reload();
  412. },function (response) {
  413. this.$message({message: response.data.msg,type: 'error'});
  414. })
  415. },
  416. },
  417. });
  418. </script>
  419. @endsection