banner-edit.blade.php 9.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. @extends('layouts.base')
  2. @section('title', '编辑轮播图')
  3. @section('content')
  4. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  5. <link rel="stylesheet" href="{{static_url('css/public-number.css')}}">
  6. <style>
  7. th {border-bottom: 1px solid #EBEEF5 !important;}
  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-main">
  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="sequence">
  21. <el-input v-model="form.sequence" style="width:70%;"></el-input>
  22. </el-form-item>
  23. <el-form-item label="轮播图名称" prop="name">
  24. <el-input v-model="form.name" style="width:70%;"></el-input>
  25. </el-form-item>
  26. <el-form-item label="轮播图图片" prop="img">
  27. <div class="upload-box" @click="openUpload('img')" v-if="!form.banner_img">
  28. <i class="el-icon-plus" style="font-size:32px"></i>
  29. </div>
  30. <div @click="openUpload('img')" class="upload-boxed" v-if="form.banner_img" style="height:150px">
  31. <img :src="form.banner_img" alt="" style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  32. <div class="upload-boxed-text">点击重新上传</div>
  33. </div>
  34. <!-- <div class="tip">建议尺寸: 640*350,请将所有轮播图图片尺寸保持一致</div> -->
  35. </el-form-item>
  36. <el-form-item label="跳转链接链接" prop="url">
  37. <el-input v-model="form.url" style="width:70%;" placeholder=" 请填写指向的链接 (请以https://开头, 不填则不显示)"></el-input>
  38. <el-button @click="showLink('link','url')">选择链接</el-button>
  39. </el-form-item>
  40. <el-form-item label="小程序跳转链接" prop="app_url">
  41. <el-input v-model="form.app_url" style="width:70%;"></el-input>
  42. <el-button @click="showLink('mini','app_url')">选择小程序链接</el-button>
  43. </el-form-item>
  44. <el-form-item label="是否显示" prop="is_show">
  45. <el-switch v-model="form.is_show" :active-value="1" :inactive-value="0"></el-switch>
  46. </el-form-item>
  47. </div>
  48. </div>
  49. </el-form>
  50. <!-- 分页 -->
  51. <div class="vue-page">
  52. <div class="vue-center">
  53. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  54. <el-button @click="goBack">返回</el-button>
  55. </div>
  56. </div>
  57. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  58. <pop :show="show" @replace="changeLink" @add="parHref"></pop>
  59. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  60. </div>
  61. </div>
  62. @include('public.admin.uploadImg')
  63. @include('public.admin.pop')
  64. @include('public.admin.program')
  65. <script>
  66. let data = {!! json_encode($data) !!};
  67. console.log(data)
  68. var app = new Vue({
  69. el:"#app",
  70. delimiters: ['[[', ']]'],
  71. name: 'test',
  72. data() {
  73. return{
  74. show:false,//是否开启公众号弹窗
  75. pro:false ,//是否开启小程序弹窗
  76. chooseLink:'',
  77. chooseMiniLink:'',
  78. id:0,
  79. form:{
  80. sequence:'0',
  81. name:'',
  82. img:'',
  83. banner_img:'',
  84. is_show:0,
  85. url:'',
  86. app_url:'',
  87. ...data
  88. },
  89. uploadShow:false,
  90. chooseImgName:'',
  91. submit_url:'',
  92. showVisible:false,
  93. loading: false,
  94. uploadImg1:'',
  95. rules:{
  96. // display_order:{ required: true, message: '请输入排序'},
  97. name:{ required: true, message: '请输入轮播图标题'},
  98. // thumb:{ required: true, message: '请选择轮播图图片'},
  99. // link:{ required: true, message: '请选择轮播图链接'},
  100. // min_link:{ required: true, message: '请选择小程序链接'},
  101. },
  102. }
  103. },
  104. created() {
  105. },
  106. mounted() {
  107. this.id = this.getParam("id");
  108. if(this.id) {
  109. this.submit_url = `{!! yzWebFullUrl('plugin.circle.admin.banner.save') !!}`
  110. }
  111. else{
  112. this.submit_url = `{!! yzWebFullUrl('plugin.circle.admin.banner.save') !!}`
  113. }
  114. },
  115. methods: {
  116. getParam(name) {
  117. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  118. var r = window.location.search.substr(1).match(reg);
  119. if (r != null) return unescape(r[2]);
  120. return null;
  121. },
  122. submitForm(formName) {
  123. let that = this;
  124. let json = {
  125. sequence:this.form.sequence,
  126. name:this.form.name,
  127. img:this.form.img,
  128. is_show:this.form.is_show,
  129. url:this.form.url,
  130. app_url:this.form.app_url,
  131. };
  132. if(this.id) {
  133. json.id = this.id
  134. }
  135. this.$refs[formName].validate((valid) => {
  136. if (valid) {
  137. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  138. this.$http.post(this.submit_url,json).then(response => {
  139. if (response.data.result) {
  140. this.$message({type: 'success',message: '操作成功!'});
  141. this.goBack();
  142. } else {
  143. this.$message({message: response.data.msg,type: 'error'});
  144. }
  145. loading.close();
  146. },response => {
  147. loading.close();
  148. });
  149. }
  150. else {
  151. console.log('error submit!!');
  152. return false;
  153. }
  154. });
  155. },
  156. goBack() {
  157. history.go(-1)
  158. },
  159. openUpload(str) {
  160. this.chooseImgName = str;
  161. this.uploadShow = true;
  162. },
  163. changeProp(val) {
  164. if(val == true) {
  165. this.uploadShow = false;
  166. }
  167. else {
  168. this.uploadShow = true;
  169. }
  170. },
  171. sureImg(name,image,image_url) {
  172. this.form[name] = image;
  173. this.form['banner_'+name] = image_url;
  174. },
  175. clearImg(str) {
  176. this.form[str] = "";
  177. this.form['banner_'+str] = "";
  178. this.$forceUpdate();
  179. },
  180. //弹窗显示与隐藏的控制
  181. changeLink(item){
  182. this.show=item;
  183. },
  184. //当前链接的增加
  185. parHref(child,confirm){
  186. this.show=confirm;
  187. // this.form.link=child;
  188. this.form[this.chooseLink] = child;
  189. },
  190. changeprogram(item){
  191. this.pro=item;
  192. },
  193. parpro(child,confirm){
  194. this.pro=confirm;
  195. // this.form.prolink=child;
  196. this.form[this.chooseMiniLink] = child;
  197. },
  198. showLink(type,name) {
  199. if(type=="link") {
  200. this.chooseLink = name;
  201. this.show = true;
  202. }
  203. else {
  204. this.chooseMiniLink = name;
  205. this.pro = true;
  206. }
  207. },
  208. },
  209. })
  210. </script>
  211. @endsection