set.blade.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. @extends('layouts.base')
  2. @section('title', '基础设置')
  3. @section('content')
  4. <link rel="stylesheet" href="{{resource_get('plugins/high-light/views/backend/index.css')}}">
  5. <style>
  6. .vue-main{background: #eff3f6;}
  7. /* 导航 */
  8. .el-radio-button .el-radio-button__inner,.el-radio-button:first-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;border-left: 0px;}
  9. .el-radio-button__inner{border:0;}
  10. .el-radio-button:last-child .el-radio-button__inner {border-radius: 4px 4px 4px 4px;}
  11. </style>
  12. <div class="all">
  13. <div id="app" v-cloak>
  14. <el-form ref="form" :model="form" :rules="rules" label-width="15%">
  15. <div class="vue-head">
  16. <div class="vue-main-title">
  17. <div class="vue-main-title-left"></div>
  18. <div class="vue-main-title-content">基础设置</div>
  19. </div>
  20. <div class="vue-main-form">
  21. <el-form-item label="插件开关" prop="is_open">
  22. <el-switch v-model="form.is_open" :active-value="1" :inactive-value="0"></el-switch>
  23. </el-form-item>
  24. <el-form-item label="自定义名称" prop="diy_name">
  25. <el-input v-model="form.diy_name" style="width:70%;" ></el-input>
  26. </el-form-item>
  27. <el-form-item label="appkey" prop="appkey">
  28. <el-input v-model="form.appkey" style="width:70%;" ></el-input>
  29. </el-form-item>
  30. <el-form-item label="appsecret" prop="appsecret">
  31. <el-input v-model="form.appsecret" style="width:70%;" ></el-input>
  32. </el-form-item>
  33. <el-form-item label="开启业务场景关联" prop="is_open_businessscene">
  34. <el-switch v-model="form.is_open_businessscene" :active-value="1" :inactive-value="0"></el-switch>
  35. </el-form-item>
  36. <el-form-item label="选择业务场景" prop="businessscene">
  37. <el-select v-model="form.businessscene" placeholder="请选择状态" @change="changeBusiness" clearable>
  38. <el-option
  39. v-for="item in businessscene"
  40. :key="item.business_scenario_code"
  41. :label="item.business_scenario"
  42. :value="item.business_scenario_code">
  43. </el-option>
  44. </el-select>
  45. </el-form-item>
  46. <el-form-item label="是否传递合规字段" prop="compliance_field_switch">
  47. <el-radio-group v-model="form.compliance_field_switch">
  48. <el-radio :label="1" @change="changeBusiness">是</el-radio>
  49. <el-radio :label="0" @change="changeBusiness">否</el-radio>
  50. </el-radio-group>
  51. <div class="tip">
  52. 开启显示后接口传递合规字段,如果初次设置,在选择业务场景后重新改变一下此开关,以便刷新出合规字段相关内容
  53. </div>
  54. </el-form-item>
  55. <el-form-item :label="item.display_name" v-for="(item,index) in form.compliance_field">
  56. <el-input v-model="item.content" style="width:70%;" :placeholder="item.description"></el-input>
  57. </el-form-item>
  58. {{--<el-form-item label="小程序聚合页链接" prop="mini_url">--}}
  59. {{--<el-input v-model="mini_url" readonly style="width:70%;" ref="mini_url"></el-input>--}}
  60. {{--<el-button @click="copyLink('mini_url')">复制链接</el-button>--}}
  61. {{--</el-form-item>--}}
  62. </div>
  63. </div>
  64. </el-form>
  65. <!-- 分页 -->
  66. <div class="vue-page">
  67. <div class="vue-center">
  68. <el-button type="primary" @click="submitForm('form')">提交</el-button>
  69. {{--<el-button @click="goBack">返回</el-button>--}}
  70. </div>
  71. </div>
  72. <upload-img :upload-show="uploadShow" :name="chooseImgName" @replace="changeProp" @sure="sureImg"></upload-img>
  73. </div>
  74. </div>
  75. @include('public.admin.uploadImg')
  76. <script>
  77. var app = new Vue({
  78. el:"#app",
  79. delimiters: ['[[', ']]'],
  80. name: 'test',
  81. data() {
  82. return{
  83. form:{
  84. compliance_field:[],
  85. compliance_field_switch:"0"
  86. },
  87. uploadShow:false,
  88. chooseImgName:'',
  89. submit_url:'',
  90. showVisible:false,
  91. businessscene:[],
  92. loading: false,
  93. template_list:[],
  94. rules:{
  95. // name:{ required: true, message: '请输入品牌名称'}
  96. },
  97. }
  98. },
  99. created() {
  100. this.getData();
  101. },
  102. mounted() {
  103. },
  104. methods: {
  105. getData() {
  106. let json = {};
  107. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  108. this.$http.post('{!! yzWebFullUrl('plugin.high-light.backend.set.get-info') !!}',json).then(function(response) {
  109. if (response.data.result) {
  110. this.form = response.data.data.set;
  111. this.businessscene = response.data.data.business;
  112. loading.close();
  113. } else {
  114. this.$message({
  115. message: response.data.msg,
  116. type: 'error'
  117. });
  118. }
  119. loading.close();
  120. }, function(response) {
  121. this.$message({
  122. message: response.data.msg,
  123. type: 'error'
  124. });
  125. loading.close();
  126. });
  127. },
  128. submitForm(formName) {
  129. // console.log(this.form)
  130. let that = this;
  131. let json = {
  132. is_open:this.form.is_open || 0,
  133. appkey:this.form.appkey,
  134. diy_name:this.form.diy_name,
  135. appsecret:this.form.appsecret,
  136. is_open_businessscene:this.form.is_open_businessscene,
  137. businessscene:this.form.businessscene,
  138. compliance_field:this.form.compliance_field,
  139. version:this.form.version,
  140. data_type:this.form.data_type,
  141. compliance_field_switch:this.form.compliance_field_switch,
  142. };
  143. this.$refs[formName].validate((valid) => {
  144. if (valid) {
  145. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  146. this.$http.post('{!! yzWebFullUrl('plugin.high-light.backend.set.edit') !!}',{set:json}).then(response => {
  147. if (response.data.result) {
  148. this.$message({message: response.data.msg,type: 'success'});
  149. } else {
  150. this.$message({message: response.data.msg,type: 'error'});
  151. }
  152. loading.close();
  153. },response => {
  154. loading.close();
  155. });
  156. }
  157. else {
  158. console.log('error submit!!');
  159. return false;
  160. }
  161. });
  162. },
  163. changeBusiness() {
  164. let that = this;
  165. that.form.compliance_field = [];
  166. if (this.form.compliance_field_switch == "0") {
  167. return;
  168. }
  169. if (!that.form.businessscene) {
  170. this.form.compliance_field_switch == "0"
  171. this.$message({message: "请先选择业务场景",type: 'error'});
  172. return;
  173. }
  174. let json = {
  175. business_scene_code:that.form.businessscene,
  176. };
  177. this.$refs['form'].validate((valid) => {
  178. if (valid) {
  179. let loading = this.$loading({target:document.querySelector(".content"),background: 'rgba(0, 0, 0, 0)'});
  180. this.$http.post('{!! yzWebFullUrl('plugin.high-light.backend.set.get-compliance-field') !!}',json).then(response => {
  181. if (response.data.result) {
  182. this.form.version = response.data.data.compliance_field.version;
  183. this.form.data_type = response.data.data.compliance_field.data_type;
  184. response.data.data.compliance_field.fields.forEach((item,index)=>{
  185. that.form.compliance_field.push({
  186. field_name:item.field_name,
  187. display_name:item.display_name,
  188. description:item.description,
  189. sort:item.sort,
  190. content:"",
  191. })
  192. });
  193. } else {
  194. this.$message({message: response.data.msg,type: 'error'});
  195. }
  196. loading.close();
  197. },response => {
  198. loading.close();
  199. });
  200. }
  201. else {
  202. console.log('error submit!!');
  203. return false;
  204. }
  205. });
  206. console.log(this.form,123);
  207. },
  208. goBack() {
  209. history.go(-1)
  210. },
  211. openUpload(str) {
  212. this.chooseImgName = str;
  213. this.uploadShow = true;
  214. },
  215. changeProp(val) {
  216. if(val == true) {
  217. this.uploadShow = false;
  218. }
  219. else {
  220. this.uploadShow = true;
  221. }
  222. },
  223. sureImg(name,image,image_url) {
  224. this.form[name] = image;
  225. this.form[name+'_src'] = image_url;
  226. },
  227. clearImg(str) {
  228. this.form[str] = "";
  229. this.form[str+'_src'] = "";
  230. this.$forceUpdate();
  231. },
  232. },
  233. })
  234. </script>
  235. @endsection