slide-create.blade.php 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  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. .content{
  7. background: #eff3f6;
  8. padding: 10px!important;
  9. padding-top:20px!important;
  10. }
  11. .con{
  12. padding-bottom:20px;
  13. position:relative;
  14. border-radius: 8px;
  15. background-color:#fff;
  16. min-height:100vh;
  17. }
  18. .con .setting .block{
  19. padding:10px;
  20. background-color:#fff;
  21. border-radius: 8px;
  22. }
  23. .con .setting .block .title{
  24. font-size:18px;
  25. margin-bottom:15px;
  26. display:flex;
  27. align-items:center;
  28. }
  29. .confirm-btn{
  30. width: calc(100% - 266px);
  31. position:fixed;
  32. bottom:0;
  33. right:0;
  34. margin-right:10px;
  35. line-height:63px;
  36. background-color: #ffffff;
  37. box-shadow: 0px 8px 23px 1px
  38. rgba(51, 51, 51, 0.3);
  39. background-color:#fff;
  40. text-align:center;
  41. }
  42. b{
  43. font-size:14px;
  44. }
  45. .upload-boxed .el-icon-close {
  46. position: absolute;
  47. top: -5px;
  48. right: -5px;
  49. color: #fff;
  50. background: #333;
  51. border-radius: 50%;
  52. cursor: pointer;
  53. }
  54. .vue-crumbs a {
  55. color: #333;
  56. }
  57. .vue-crumbs a:hover {
  58. color: #29ba9c;
  59. }
  60. .vue-crumbs {
  61. margin: 0 20px;
  62. font-size: 14px;
  63. color: #333;
  64. font-weight: 400;
  65. padding-bottom: 10px;
  66. }
  67. </style>
  68. <div id='re_content' >
  69. <div class="vue-crumbs">
  70. <a @click="goBack">系统</a> > 商城设置 > 幻灯片 > 添加幻灯片
  71. </div>
  72. <div class="con">
  73. <div class="setting">
  74. <el-form ref="form" :model="form" label-width="15%">
  75. <div class="block">
  76. <div class="title"><span style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>基础设置</b></div>
  77. <el-form-item label="排序">
  78. <el-input v-model="form.display_order" style="width:70%;"></el-input>
  79. </el-form-item>
  80. <el-form-item label="幻灯片标题">
  81. <el-input v-model="form.slide_name" style="width:70%;"></el-input>
  82. </el-form-item>
  83. <el-form-item label="幻灯片图片" prop="head_img_url">
  84. <div class="upload-box" @click="openUpload('thumb',1,'one')" v-if="!form.thumb_url">
  85. <i class="el-icon-plus" style="font-size:32px"></i>
  86. </div>
  87. <div @click="openUpload('thumb',1,'one')" class="upload-boxed" v-if="form.thumb_url" style="height:75px;">
  88. <img :src="form.thumb_url" alt="" style="width:150px;height:75px;border-radius: 5px;cursor: pointer;">
  89. <div class="upload-boxed-text">点击重新上传</div>
  90. <i class="el-icon-close" @click.stop="clearImg('thumb')" title="点击清除图片"></i>
  91. </div>
  92. <div class="tip">建议尺寸:640 * 350 , 请将所有幻灯片图片尺寸保持一致</div>
  93. </el-form-item>
  94. <!-- <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img> -->
  95. <upload-multimedia-img :upload-show="uploadShow" :type="type" :name="chooseImgName" :sel-Num="selNum" @replace="changeProp" @sure="sureImg"></upload-multimedia-img>
  96. <el-form-item label="幻灯片链接">
  97. <el-input v-model="form.link" style="width:70%;"></el-input><el-button @click="show=true" style="margin-left:10px;">选择链接</el-button>
  98. </el-form-item>
  99. <el-form-item label="幻灯片小程序链接">
  100. <el-input v-model="form.small_link" style="width:70%;"></el-input><el-button @click="pro=true" style="margin-left:10px;">选择小程序链接</el-button>
  101. </el-form-item>
  102. <el-form-item label="是否显示">
  103. <template>
  104. <el-switch
  105. v-model="form.enabled"
  106. active-value="1"
  107. inactive-value="0"
  108. >
  109. </el-switch>
  110. </template>
  111. </el-form-item>
  112. </div>
  113. </div>
  114. <div class="confirm-btn">
  115. <el-button type="primary" @click="submit">提交</el-button>
  116. </div>
  117. <pop :show="show" @replace="changeProp1" @add="parHref"></pop>
  118. <program :pro="pro" @replacepro="changeprogram" @addpro="parpro"></program>
  119. </el-form>
  120. </div>
  121. </div>
  122. @include('public.admin.pop')
  123. @include('public.admin.program')
  124. @include('public.admin.uploadMultimediaImg')
  125. <script>
  126. var vm = new Vue({
  127. el: "#re_content",
  128. delimiters: ['[[', ']]'],
  129. data() {
  130. return {
  131. type:'',
  132. selNum:'',
  133. activeName: 'first',
  134. show:false,//是否开启公众号弹窗
  135. pro:false ,//是否开启小程序弹窗
  136. uploadShow:false,
  137. chooseImgName:'',
  138. uploadListShow:false,
  139. chooseImgListName:'',
  140. form:{
  141. display_order:'',
  142. slide_name:'',
  143. thumb:'',
  144. link:'',
  145. small_link:'',
  146. enabled:'1'
  147. },
  148. }
  149. },
  150. mounted () {
  151. },
  152. methods: {
  153. clearImg(str,type,index) {
  154. if(!type) {
  155. this.form[str] = "";
  156. this.form[str+'_url'] = "";
  157. }
  158. else {
  159. this.form[str].splice(index,1);
  160. this.form[str+'_url'].splice(index,1);
  161. }
  162. this.$forceUpdate();
  163. },
  164. goBack() {
  165. window.location.href = `{!! yzWebFullUrl('setting.shop.index') !!}`;
  166. },
  167. openUpload(str,type,sel) {
  168. this.chooseImgName = str;
  169. this.uploadShow = true;
  170. this.type = type;
  171. this.selNum = sel
  172. },
  173. changeProp(val) {
  174. if(val == true) {
  175. this.uploadShow = false;
  176. }
  177. else {
  178. this.uploadShow = true;
  179. }
  180. },
  181. sureImg(name,uploadShow,fileList) {
  182. if(fileList.length <= 0) {
  183. return
  184. }
  185. console.log(name)
  186. console.log(fileList)
  187. this.form[name] =fileList[0].attachment;
  188. this.form[name+'_url'] = fileList[0].url;
  189. console.log(this.form[name],'aaaaa')
  190. console.log( this.form[name+'_url'],'bbbbb')
  191. },
  192. //弹窗显示与隐藏的控制
  193. changeProp1(item){
  194. this.show=item;
  195. },
  196. //当前链接的增加
  197. parHref(child,confirm){
  198. this.show=confirm;
  199. this.form.link=child;
  200. },
  201. changeprogram(item){
  202. this.pro=item;
  203. },
  204. parpro(child,confirm){
  205. this.pro=confirm;
  206. this.form.small_link=child;
  207. },
  208. submit() {
  209. this.$http.post('{!! yzWebFullUrl('setting.slide.create') !!}',{'slide':this.form}).then(function (response){
  210. if (response.data.result) {
  211. this.$message({message: response.data.msg,type: 'success'});
  212. window.location.href='{!! yzWebFullUrl('setting.slide.index') !!}'
  213. }else{
  214. this.$message({type: 'error',message: response.data.msg});
  215. }
  216. },function (response) {
  217. this.$message({message: response.data.msg,type: 'error'});
  218. })
  219. },
  220. },
  221. });
  222. </script>
  223. @endsection('content')