set.blade.php 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317
  1. @extends('layouts.base')
  2. @section('title', "基础设置")
  3. @section('content')
  4. <style>
  5. .rightlist #app .rightlist-head{padding:15px 0;line-height:50px;border-bottom:1px solid #ccc;}
  6. .rightlist #app{margin-left:30px;}
  7. .rightlist-head-con{float:left;padding-right:20px;font-size:16px;color:#888;}
  8. .el-form-item__label{padding-right:30px;}
  9. .mouse-active{cursor:pointer;border:1px dotted #409EFF;border-radius: 4px;}
  10. /* 滑块选择小白点 */
  11. .el-switch.is-checked .el-switch__core::after {left: 100%;margin-left: -17px;}
  12. .el-switch__core::after {content: "";position: absolute;top: 1px;left: 1px;border-radius: 100%;transition: all .3s;width: 16px;height: 16px;background-color: #fff;}
  13. .avatar-uploader .el-upload {margin-top:15px;border: 1px dashed #d9d9d9;border-radius: 6px;cursor: pointer;position: relative;overflow: hidden;}
  14. .avatar-uploader .el-upload:hover {border-color: #409EFF;}
  15. .avatar-uploader-icon {font-size: 28px;color: #8c939d;width: 178px;height: 178px;line-height: 178px;text-align: center;}
  16. .avatar {width: 178px;height: 178px;display: block;}
  17. .el-upload-tip{width:178px;margin:0;padding:0;color:#999;text-align:center;}
  18. input[type=file] {display: none;}
  19. .avatar-uploader-box{position:relative;width:200px;}
  20. .el-icon-circle-close{position:absolute;top:10px;right:0;color:#999;}
  21. .tip{font-size:12px;color:#999;}
  22. </style>
  23. <div class="rightlist">
  24. <div id="app" v-loading="loading">
  25. <link rel="stylesheet" href="//at.alicdn.com/t/font_913727_zrmdutznqpd.css">
  26. <!-- <div class="rightlist-head">
  27. <div class="rightlist-head-con">名片管理</div>
  28. </div> -->
  29. <el-form ref="form" :model="form" :rules="rules" ref="form" label-width="240px" >
  30. <h5 class="rightlist-head">
  31. 名片基础设置
  32. </h5>
  33. <el-form-item label="名片插件开启" prop="is_open">
  34. <el-radio v-model.number="form.is_open" :label="1">开启</el-radio>
  35. <el-radio v-model.number="form.is_open" :label="0">关闭</el-radio>
  36. </el-form-item>
  37. <el-form-item label="是否允许会员关闭名片" prop="is_allow">
  38. <el-radio v-model.number="form.is_allow" :label="1">允许</el-radio>
  39. <el-radio v-model.number="form.is_allow" :label="0">不允许</el-radio>
  40. <div class="tip">如果允许,则会员在名片中心--名片编辑中可以关闭个人名片,关闭后,用户将无法访问关闭的会员名片首页。</div>
  41. </el-form-item>
  42. <el-form-item label="名片角色" prop="">
  43. <el-checkbox v-model.number="form.member" :true-label="1" :false-label="0" border size="mini">会员</el-checkbox>
  44. <el-checkbox v-model.number="form.role_commission" v-if="status.commission==true" :true-label="1" :false-label="0" border size="mini">推客</el-checkbox>
  45. <el-checkbox v-model.number="form.role_team_dividend" v-if="status.team_dividend==true" :true-label="1" :false-label="0" border size="mini">经销商</el-checkbox>
  46. <el-checkbox v-model.number="form.role_staff" v-if="status.merchant==true" :true-label="1" :false-label="0" border size="mini">招商员</el-checkbox>
  47. <el-checkbox v-model.number="form.role_merchants" v-if="status.merchant==true" :true-label="1" :false-label="0" border size="mini">招商中心</el-checkbox>
  48. <el-checkbox v-model.number="form.role_area_dividend" v-if="status.area_dividend==true" :true-label="1" :false-label="0" border size="mini">区域代理</el-checkbox>
  49. <el-checkbox v-model.number="form.role_supplier" v-if="status.supplier==true" :true-label="1" :false-label="0" border size="mini">供应商</el-checkbox>
  50. <el-checkbox v-model.number="form.role_store_cashier" v-if="status.store_cashier==true" :true-label="1" :false-label="0" border size="mini">店长/店员</el-checkbox>
  51. <div class="tip">只有开启的角色会员中心才有名片中心入口,才能生成自己的名片。</div>
  52. </el-form-item>
  53. <el-form-item label="记录信息" prop="">
  54. <el-checkbox v-model.number="form.phone" :true-label="1" :false-label="0" border size="mini">手机号</el-checkbox>
  55. <el-checkbox v-model.number="form.wechat" :true-label="1" :false-label="0" border size="mini">微信</el-checkbox>
  56. <div class="tip">我的收藏、收藏我的列表页面是否显示用户的手机号、微信信息!</div>
  57. </el-form-item>
  58. <el-form-item label="我的成就" prop="is_achievement">
  59. <el-radio v-model.number="form.is_achievement" :label="0">显示</el-radio>
  60. <el-radio v-model.number="form.is_achievement" :label="1">不显示</el-radio>
  61. <div class="tip">如果显示,则名片中心--我的成就可以看到会员相关数据,关闭则不显示。</div>
  62. </el-form-item>
  63. <el-form-item label="我的客户" prop="is_customer">
  64. <el-radio v-model.number="form.is_customer" :label="0">显示</el-radio>
  65. <el-radio v-model.number="form.is_customer" :label="1">不显示</el-radio>
  66. <div class="tip">如果显示,则名片中心--我的成就可以看到客户相关数据,关闭则不显示。</div>
  67. </el-form-item>
  68. <el-form-item label="是否显示底部导航" prop="nav_show">
  69. <el-radio v-model.number="form.nav_show" :label="1">显示</el-radio>
  70. <el-radio v-model.number="form.nav_show" :label="0">不显示</el-radio>
  71. <div class="tip">如果显示,则名片页面(不含名片中心)显示底部导航,关闭则不显示。</div>
  72. </el-form-item>
  73. <el-form-item label="名片图片背景图" prop="thumb">
  74. <el-input v-model="form.thumb" style="width:70%" disabled></el-input>
  75. <div class="avatar-uploader-box">
  76. <el-upload class="avatar-uploader" action="{{ yzWebFullUrl('plugin.business-card.admin.controllers.set.upload-local') }}" accept="image/*" :show-file-list="false" :on-success="uploadSuccess" :before-upload="beforeUpload">
  77. <img v-if="form.thumb_url" :src="form.thumb_url" class="avatar">
  78. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  79. <div slot="tip" class="el-upload-tip">(点击上框进行图片选择)</div>
  80. <div slot="tip" class="el-upload-tip">建议尺寸350*200</div>
  81. </el-upload>
  82. <a v-show="form.thumb_url" class="el-icon-circle-close" @click="clearImg" title="点击清除图片"></a>
  83. </div>
  84. </el-form-item>
  85. <el-form-item label="名片海报图片" prop="banner">
  86. <el-input v-model="form.banner" style="width:70%" disabled></el-input>
  87. <div class="avatar-uploader-box">
  88. <el-upload class="avatar-uploader" action="{{ yzWebFullUrl('plugin.business-card.admin.controllers.set.upload-local') }}" accept="image/*" :show-file-list="false" :on-success="uploadSuccess1" :before-upload="beforeUpload">
  89. <img v-if="form.banner_url" :src="form.banner_url" class="avatar">
  90. <i v-else class="el-icon-plus avatar-uploader-icon"></i>
  91. <div slot="tip" class="el-upload-tip">(点击上框进行图片选择)</div>
  92. <div slot="tip" class="el-upload-tip">建议尺寸325*160</div>
  93. </el-upload>
  94. <a v-show="form.banner_url" class="el-icon-circle-close" @click="clearImg2" title="点击清除图片"></a>
  95. </div>
  96. </el-form-item>
  97. <h5 class="rightlist-head">
  98. 名片奖励设置
  99. </h5>
  100. <el-form-item label="访问奖励方式(名片会员)" prop="method">
  101. <el-radio v-model.number="form.method" :label="1">每会员</el-radio>
  102. <el-radio v-model.number="form.method" :label="2">每天</el-radio>
  103. <div class="tip">每会员:每个会员访问只奖励一次;每天:每个会员访问都奖励一次。</div>
  104. </el-form-item>
  105. <el-row>
  106. <el-col :span="11">
  107. <el-form-item label="访问奖励规则(名片会员)" prop="rules_card_integral" label-width="240px">
  108. <el-input v-model.number="form.rules_card_integral" style="width:90%" placeholder="请输入数值">
  109. <template slot="append">积分</template>
  110. </el-input>
  111. </el-form-item>
  112. </el-col>
  113. <el-col v-if="plugin_love==true" :span="10">
  114. <el-form-item label="" prop="rules_card_love" label-width="0" :rules="{type:'number',message:'请输入数字'}">
  115. <el-input v-model.number="form.rules_card_love" style="width:60%;" placeholder="请输入数值">
  116. <template slot="append">爱心值</template>
  117. </el-input>
  118. </el-form-item>
  119. </el-col>
  120. </el-row>
  121. <el-row>
  122. <div class="tip" style="width:100%;display:block;float:left;padding-left:240px;">每个会员每天访问非自己的名片首页都可以获得一次奖励。</div>
  123. <el-col :span="11">
  124. <el-form-item label="访问奖励规则(访问会员)" prop="rules_visit_integral" :rules="{type:'number',message:'请输入数字'}">
  125. <el-input v-model.number="form.rules_visit_integral" style="width:90%" placeholder="请输入数值">
  126. <template slot="append">积分</template>
  127. </el-input>
  128. </el-form-item>
  129. </el-col>
  130. <el-col v-if="plugin_love==true" :span="10">
  131. <el-form-item label="" prop="rules_visit_love" label-width="0" :rules="{type:'number',message:'请输入数字'}">
  132. <el-input v-model.number="form.rules_visit_love" style="width:60%" placeholder="请输入数值">
  133. <template slot="append">爱心值</template>
  134. </el-input>
  135. </el-form-item>
  136. </el-col>
  137. </el-row>
  138. <el-row>
  139. <el-col :span="11">
  140. <el-form-item label="新增会员奖励(名片会员)" prop="new_card_integral" :rules="{type:'number',message:'请输入数字'}">
  141. <el-input v-model.number="form.new_card_integral" style="width:90%" placeholder="请输入数值">
  142. <template slot="append">积分</template>
  143. </el-input>
  144. </el-form-item>
  145. </el-col>
  146. <el-col v-if="plugin_love==true" :span="10">
  147. <el-form-item label="" prop="new_card_love" label-width="0" :rules="{type:'number',message:'请输入数字'}">
  148. <el-input v-model.number="form.new_card_love" style="width:60%" placeholder="请输入数值">
  149. <template slot="append">爱心值</template>
  150. </el-input>
  151. </el-form-item>
  152. </el-col>
  153. </el-row>
  154. <el-row>
  155. <el-col :span="11">
  156. <el-form-item label="新增会员奖励(注册会员)" prop="new_reg_integral" :rules="{type:'number',message:'请输入数字'}">
  157. <el-input v-model.number="form.new_reg_integral" style="width:90%" placeholder="请输入数值">
  158. <template slot="append">积分</template>
  159. </el-input>
  160. </el-form-item>
  161. </el-col>
  162. <el-col v-if="plugin_love==true" :span="10">
  163. <el-form-item label="" prop="new_reg_love" label-width="0" :rules="{type:'number',message:'请输入数字'}">
  164. <el-input v-model.number="form.new_reg_love" style="width:60%" placeholder="请输入数值">
  165. <template slot="append">爱心值</template>
  166. </el-input>
  167. </el-form-item>
  168. </el-col>
  169. </el-row>
  170. <el-form-item label="" prop="">
  171. <el-button @click="submit('form')">
  172. 保存
  173. </el-button>
  174. </el-form-item>
  175. </el-form>
  176. </div>
  177. </div>
  178. <script>
  179. var vm = new Vue({
  180. el:"#app",
  181. delimiters: ['[[', ']]'],
  182. data() {
  183. let set = JSON.parse('{!! $set ?: '{}' !!}');
  184. let plugin_love = JSON.parse('{!! $plugin_love ?: 'false' !!}');
  185. if(set == null || set == [] || set.length==0) {
  186. set = {}
  187. }
  188. console.log(set)
  189. return{
  190. loading:false,
  191. table_loading:false,
  192. submit_loading:false,
  193. plugin_love:plugin_love,
  194. status:{},
  195. form:{
  196. // is_open:0,
  197. // is_allow:0,
  198. // phone:0,
  199. // wechat:0,
  200. // is_achievement:0,
  201. // is_customer:0,
  202. // thumb:'',
  203. // thumb_url:'',
  204. // banner:'',
  205. // banner_url:,
  206. // method:1,
  207. // rules_card_integral:'',
  208. // rules_card_love:'',
  209. // rules_visit_integral:'',
  210. // rules_visit_love:'',
  211. // new_card_integral:'',
  212. // new_card_love:'',
  213. // new_reg_integral:'',
  214. // new_reg_love:'',
  215. ...set
  216. },
  217. rules:{
  218. rules_card_integral:{type:"number",message:"请输入数字"},
  219. },
  220. }
  221. },
  222. created(){
  223. this.loading = true;
  224. this.getStatus();
  225. },
  226. methods: {
  227. getStatus(){
  228. this.$http.post("{!! yzWebFullUrl('plugin.business-card.admin.controllers.set.getPluginStatus') !!}",{}).then(response => {
  229. if (response.data.result) {
  230. this.loading = false;
  231. this.status = response.data.data;
  232. console.log(this.status)
  233. } else {
  234. this.$message({message: response.data.msg,type: 'error'});
  235. this.loading = false;
  236. }
  237. },response => {
  238. this.loading = false;
  239. });
  240. },
  241. uploadSuccess(res, file) {
  242. if (res.result == 1) {
  243. this.form.thumb = res.data.img;
  244. this.form.thumb_url = res.data.img_url;
  245. this.$message.success("上传成功!");
  246. } else {
  247. this.$message.error(res.msg);
  248. }
  249. this.loading = false;
  250. },
  251. uploadSuccess1(res, file) {
  252. if (res.result == 1) {
  253. this.form.banner = res.data.img;
  254. this.form.banner_url = res.data.img_url;
  255. this.$message.success("上传成功!");
  256. } else {
  257. this.$message.error(res.msg);
  258. }
  259. this.loading = false;
  260. },
  261. beforeUpload(file) {
  262. this.loading = true;
  263. const isLt2M = file.size / 1024 / 1024 < 2;
  264. if (!isLt2M) {
  265. this.$message.error('上传图片大小不能超过 2MB!');
  266. this.loading = false;
  267. }
  268. return isLt2M;
  269. },
  270. clearImg() {
  271. this.form.thumb = "";
  272. this.form.thumb_url = "";
  273. },
  274. clearImg1() {
  275. this.form.banner = "";
  276. this.form.banner_url = "";
  277. },
  278. clearImg2() {
  279. this.form.banner = "";
  280. this.form.banner_url = "";
  281. },
  282. submit(formName) {
  283. console.log(this.form);
  284. this.$refs[formName].validate((valid) => {
  285. console.log(this.form);
  286. if (valid) {
  287. this.loading = true;
  288. // delete(this.form['thumb_url']);
  289. this.$http.post("{!! yzWebFullUrl('plugin.business-card.admin.controllers.set.index') !!}",{'form_data':this.form}).then(response => {
  290. if (response.data.result) {
  291. this.$message({type: 'success',message: '操作成功!'});
  292. window.location.href='{!! yzWebFullUrl('plugin.business-card.admin.controllers.set.index') !!}';
  293. this.loading = false;
  294. } else {
  295. this.$message({message: response.data.msg,type: 'error'});
  296. this.loading = false;
  297. }
  298. },response => {
  299. this.loading = false;
  300. });
  301. }
  302. else {
  303. console.log('error submit!!');
  304. return false;
  305. }
  306. });
  307. },
  308. },
  309. });
  310. </script>
  311. @endsection