register.blade.php 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249
  1. @extends('layouts.base')
  2. @section('content')
  3. <link rel="stylesheet" type="text/css" href="{{static_url('yunshop/goods/vue-goods1.css')}}"/>
  4. <style>
  5. .main-panel{
  6. margin-top:50px;
  7. }
  8. .main-panel #re_content {
  9. padding: 10px;
  10. }
  11. .panel{
  12. margin-bottom:10px!important;
  13. padding-left: 20px;
  14. border-radius: 10px;
  15. }
  16. .panel .active a {
  17. background-color: #29ba9c !important;
  18. border-radius: 18px !important;
  19. color: #fff;
  20. }
  21. .panel a {
  22. border: none !important;
  23. background-color: #fff !important;
  24. }
  25. .content {
  26. background: #eff3f6;
  27. padding: 10px !important;
  28. }
  29. .con {
  30. padding-bottom: 20px;
  31. position: relative;
  32. border-radius: 8px;
  33. min-height: 100vh;
  34. background-color: #fff;
  35. }
  36. .con .setting .block {
  37. padding: 10px;
  38. background-color: #fff;
  39. border-radius: 8px;
  40. }
  41. .con .setting .block .title {
  42. font-size: 18px;
  43. margin-bottom: 15px;
  44. display: flex;
  45. align-items: center;
  46. }
  47. .confirm-btn {
  48. width: calc(100% - 266px);
  49. position: fixed;
  50. bottom: 0;
  51. right: 0;
  52. margin-right: 10px;
  53. line-height: 63px;
  54. background-color: #ffffff;
  55. box-shadow: 0px 8px 23px 1px rgba(51, 51, 51, 0.3);
  56. background-color: #fff;
  57. text-align: center;
  58. }
  59. b {
  60. font-size: 14px;
  61. }
  62. .upload-boxed .el-icon-close {
  63. position: absolute;
  64. top: -5px;
  65. right: -5px;
  66. color: #fff;
  67. background: #333;
  68. border-radius: 50%;
  69. cursor: pointer;
  70. }
  71. </style>
  72. <div id='re_content'>
  73. @include('layouts.newTabs')
  74. <div class="con">
  75. <div class="setting">
  76. <el-form ref="form" :model="form" label-width="15%">
  77. <div class="block">
  78. <div class="title"><span
  79. style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>基础设置</b>
  80. </div>
  81. <el-form-item label="注册/绑定手机页面顶部图片">
  82. <div class="upload-box" @click="openUpload('top_img',1,'one')" v-if="!form.top_img_url">
  83. <i class="el-icon-plus" style="font-size:32px"></i>
  84. </div>
  85. <div @click="openUpload('top_img',1,'one')" class="upload-boxed" v-if="form.top_img_url"
  86. style="height:150px;">
  87. <img :src="form.top_img_url" alt=""
  88. style="width:150px;height:150px;border-radius: 5px;cursor: pointer;">
  89. <div class="upload-boxed-text">点击重新上传</div>
  90. <i class="el-icon-close" @click.stop="clearImg('top_img')" title="点击清除图片"></i>
  91. </div>
  92. <div class="tip">建议尺寸640*320</div>
  93. </el-form-item>
  94. <!-- <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp"
  95. @sure="sureImg"></upload-img> -->
  96. <upload-multimedia-img :upload-show="uploadShow" :type="type" :name="chooseImgName" :sel-Num="selNum" @replace="changeProp" @sure="sureImg"></upload-multimedia-img>
  97. <el-form-item label="是否设置密码">
  98. <template>
  99. <el-switch
  100. v-model="form.is_password"
  101. active-value="1"
  102. inactive-value="0"
  103. >
  104. </el-switch>
  105. </template>
  106. </el-form-item>
  107. <el-form-item label="小程序引导授权主标题">
  108. <el-input v-model="form.title1" style="width:70%;" placeholder="单行输入"></el-input>
  109. <div style="font-size:12px;">默认为 "欢迎来到[商城名称]"</div>
  110. </el-form-item>
  111. <el-form-item label="小程序引导授权副标题">
  112. <el-input v-model="form.title2" style="width:70%;" placeholder="单行输入"></el-input>
  113. <div style="font-size:12px;">默认为 "登录尽享各种优惠权益!"</div>
  114. </el-form-item>
  115. </div>
  116. <div class="block">
  117. <div class="title"><span
  118. style="width: 4px;height: 18px;background-color: #29ba9c;margin-right:15px;display:inline-block;"></span><b>基础设置</b>
  119. </div>
  120. <el-form-item label="是否启用">
  121. <template>
  122. <el-switch
  123. v-model="form.protocol.status"
  124. :active-value="1"
  125. :inactive-value="0"
  126. >
  127. </el-switch>
  128. </template>
  129. </el-form-item>
  130. <el-form-item label="协议标题">
  131. <el-input v-model="form.protocol.title" style="width:70%;" placeholder="会员注册协议"></el-input>
  132. </el-form-item>
  133. <el-form-item label="协议内容">
  134. <tinymceee v-model="form.protocol.content" style="width:70%;"></tinymceee>
  135. </el-form-item>
  136. </div>
  137. </div>
  138. <div class="confirm-btn">
  139. <el-button type="primary" @click="submit">提交</el-button>
  140. </div>
  141. </el-form>
  142. </div>
  143. </div>
  144. <script src="{{resource_get('static/yunshop/tinymce4.7.5/tinymce.min.js')}}"></script>
  145. @include('public.admin.uploadMultimediaImg')
  146. @include('public.admin.tinymceee')
  147. <script>
  148. var vm = new Vue({
  149. el: "#re_content",
  150. delimiters: ['[[', ']]'],
  151. data() {
  152. let register={!!json_encode($register?:'{}') !!}
  153. let protocol={!!json_encode($protocol?:'{}') !!}
  154. return {
  155. type:'',
  156. selNum:'',
  157. activeName: 'one',
  158. uploadShow:false,
  159. chooseImgName:'',
  160. uploadListShow:false,
  161. chooseImgListName:'',
  162. form: {
  163. top_img :register&&register.top_img ? register.top_img:'',
  164. top_img_url :register&&register.top_img_url ? register.top_img_url:'',
  165. is_password :register.hasOwnProperty('is_password')?register.is_password:'1',
  166. title1 :register&&register.title1 ? register.title1:'',
  167. title2 :register&&register.title2 ? register.title2:'',
  168. protocol:{
  169. title:protocol&&protocol.title ? protocol.title:'',
  170. status:protocol.hasOwnProperty('status')?protocol.status:1,
  171. content:protocol&&protocol.content ? protocol.content:'',
  172. },
  173. },
  174. }
  175. },
  176. mounted() {
  177. },
  178. methods: {
  179. clearImg(str, type, index) {
  180. if (!type) {
  181. this.form[str] = "";
  182. this.form[str + '_url'] = "";
  183. }
  184. else {
  185. this.form[str].splice(index, 1);
  186. this.form[str + '_url'].splice(index, 1);
  187. }
  188. this.$forceUpdate();
  189. },
  190. submit() {
  191. let loading = this.$loading({
  192. target: document.querySelector(".content"),
  193. background: 'rgba(0, 0, 0, 0)'
  194. });
  195. this.$http.post('{!! yzWebFullUrl('setting.shop.register') !!}', {'register': this.form}).then(function (response) {
  196. if (response.data.result) {
  197. this.$message({message: response.data.msg, type: 'success'});
  198. } else {
  199. this.$message({message: response.data.msg, type: 'error'});
  200. }
  201. loading.close();
  202. location.reload();
  203. }, function (response) {
  204. this.$message({message: response.data.msg, type: 'error'});
  205. })
  206. },
  207. openUpload(str,type,sel) {
  208. this.chooseImgName = str;
  209. this.uploadShow = true;
  210. this.type = type
  211. this.selNum = sel
  212. },
  213. changeProp(val) {
  214. if (val == true) {
  215. this.uploadShow = false;
  216. }
  217. else {
  218. this.uploadShow = true;
  219. }
  220. },
  221. sureImg(name,uploadShow,fileList) {
  222. if(fileList.length <= 0) {
  223. return
  224. }
  225. console.log(name)
  226. console.log(fileList)
  227. this.form[name] =fileList[0].attachment;
  228. this.form[name+'_url'] = fileList[0].url;
  229. console.log(this.form[name],'aaaaa')
  230. console.log( this.form[name+'_url'],'bbbbb')
  231. },
  232. },
  233. });
  234. </script>
  235. @endsection('content')