set.blade.php 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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. .panel{
  6. margin-bottom:10px!important;
  7. padding-left: 20px;
  8. border-radius: 10px;
  9. }
  10. .panel .active a {
  11. background-color: #29ba9c!important;
  12. border-radius: 18px!important;
  13. color:#fff;
  14. }
  15. .panel a{
  16. border:none!important;
  17. background-color:#fff!important;
  18. }
  19. .con{
  20. padding-bottom:40px;
  21. position:relative;
  22. border-radius: 8px;
  23. min-height:100vh;
  24. }
  25. .con .setting .block{
  26. padding:10px;
  27. background-color:#fff;
  28. border-radius: 8px;
  29. }
  30. .con .setting .block .title{
  31. font-size:18px;
  32. margin-bottom:15px;
  33. display:flex;
  34. align-items:center;
  35. }
  36. .confirm-btn{
  37. width: calc(100% - 266px);
  38. position:fixed;
  39. bottom:0;
  40. right:0;
  41. margin-right:10px;
  42. line-height:63px;
  43. background-color: #ffffff;
  44. box-shadow: 0px 8px 23px 1px
  45. rgba(51, 51, 51, 0.3);
  46. background-color:#fff;
  47. text-align:center;
  48. z-index:99;
  49. }
  50. b{
  51. font-size:14px;
  52. }
  53. </style> -->
  54. <style>
  55. .all { background: #eff3f6;}
  56. </style>
  57. <div class="all">
  58. <div id="app" v-cloak>
  59. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  60. <div class="vue-crumbs">
  61. 订单飘窗
  62. >
  63. 基础设置
  64. </div>
  65. <div class="vue-head">
  66. <div class="vue-main-title">
  67. <div class="vue-main-title-left"></div>
  68. <div class="vue-main-title-content">基础设置</div>
  69. </div>
  70. <div class="vue-main-form">
  71. <el-form-item label="开启订单飘窗" prop="is_open">
  72. <el-switch v-model="form.is_open" :active-value="1" :inactive-value="0"></el-switch>
  73. <div class="tip">开启后商城自营商品、门店商品、供应商商品、酒店商品、租赁商品、门店预约插件商品、电子合同插件商品等详情页显示订单飘窗!</div>
  74. </el-form-item>
  75. </div>
  76. </div>
  77. <div class="vue-main">
  78. <div class="vue-main-title">
  79. <div class="vue-main-title-left"></div>
  80. <div class="vue-main-title-content">订单飘窗设置</div>
  81. </div>
  82. <div class="vue-main-form">
  83. <el-form-item label="滚动提示数量" prop="broadcast_number">
  84. <el-input v-model="form.broadcast_number" type="number" style="width:70%;">
  85. <template slot="append">个</template>
  86. </el-input>
  87. <div class="tip">取设置数量的最新订单数据滚动提示。</div>
  88. </el-form-item>
  89. <el-form-item label="飘窗信息显示" prop="show_type">
  90. <el-radio-group v-model="form.show_type">
  91. <el-radio :label="1">商城所有商品</el-radio>
  92. <el-radio :label="2">当前浏览的商品</el-radio>
  93. </el-radio-group>
  94. </el-form-item>
  95. <el-form-item label="订单飘窗文案自定义" prop="content">
  96. <el-input v-model="form.content" style="width:70%;" ref="content" placeholder="默认:【用户昵称】于【下单时间】成功下单!"></el-input>
  97. <div>
  98. <el-button size="mini" @click="addContent('nickname')" ref="nickname">用户昵称</el-button>
  99. <el-button size="mini" @click="addContent('time')" ref="time">下单时间</el-button>
  100. </div>
  101. <div class="tip">飘窗文案前面固定为用户头像!</div>
  102. </el-form-item>
  103. </div>
  104. </div>
  105. </el-form>
  106. <!-- 分页 -->
  107. <div class="vue-page">
  108. <div class="vue-center">
  109. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  110. <el-button @click="goBack">返回</el-button>
  111. </div>
  112. </div>
  113. <!--end-->
  114. </div>
  115. </div>
  116. <script>
  117. var vm = new Vue({
  118. el: "#app",
  119. delimiters: ['[[', ']]'],
  120. data() {
  121. let set = JSON.parse('{!! $set ?: '{}' !!}');
  122. console.log(set);
  123. return {
  124. form:{
  125. is_open:0,
  126. broadcast_number:10,
  127. content:'',
  128. show_type:1,
  129. ...set
  130. },
  131. rules:{},
  132. }
  133. },
  134. mounted () {
  135. // this.getData();
  136. },
  137. methods: {
  138. // 添加关键词
  139. addContent(name) {
  140. let words = "";
  141. if(name=='nickname'){
  142. words = "[用户昵称]";
  143. }
  144. if(name=='time'){
  145. words = "[下单时间]";
  146. }
  147. this.insertInputTxt(name,words)
  148. },
  149. insertInputTxt(ref,words) {
  150. let name = this.$refs['content'].$refs.input;
  151. var startPos = name.selectionStart;
  152. console.log(startPos);
  153. var endPos = name.selectionEnd;
  154. if (startPos === undefined || endPos === undefined) return
  155. var txt = name.value;
  156. var result = txt.substring(0, startPos) + words + txt.substring(endPos)
  157. name.value = result;
  158. name.focus();
  159. name.selectionStart = startPos + words.length;
  160. name.selectionEnd = startPos + words.length;
  161. console.log(name.value)
  162. this.form['content'] = name.value;
  163. },
  164. goBack() {
  165. history.go(-1);
  166. },
  167. submitForm(formName) {
  168. console.log(this.form)
  169. let that = this;
  170. let json = {
  171. form_data:{
  172. is_open:this.form.is_open,
  173. broadcast_number:this.form.broadcast_number,
  174. content:this.form.content,
  175. show_type:this.form.show_type,
  176. }
  177. };
  178. console.log(json);
  179. this.$refs[formName].validate((valid) => {
  180. if (valid) {
  181. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  182. this.$http.post('{!! yzWebFullUrl('plugin.broadcast.admin.controllers.set.index') !!}',json).then(response => {
  183. if (response.data.result) {
  184. this.$message({type: 'success',message: '操作成功!'});
  185. window.location.reload();
  186. } else {
  187. this.$message({message: response.data.msg,type: 'error'});
  188. }
  189. loading.close();
  190. },response => {
  191. loading.close();
  192. });
  193. }
  194. else {
  195. console.log('error submit!!');
  196. return false;
  197. }
  198. });
  199. },
  200. // submit() {
  201. // this.$http.post("{!! yzWebFullUrl('plugin.broadcast.admin.controllers.set.index') !!}",{'form_data':this.form}).then(response => {
  202. // if (response.data.result) {
  203. // this.$message({type: 'success',message: '操作成功!'});
  204. // window.location.href='{!! yzWebFullUrl('plugin.broadcast.admin.controllers.set.index') !!}';
  205. // this.loading = false;
  206. // } else {
  207. // this.$message({message: response.data.msg,type: 'error'});
  208. // this.loading = false;
  209. // }
  210. // });
  211. // }
  212. },
  213. });
  214. </script>
  215. @endsection