score-deduction.php 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559
  1. <div id="app" v-cloak>
  2. <div class="container">
  3. <el-card shadow="never" style="border:0" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  4. <div slot="header">
  5. <div class="flex flex-x-between flex-y-center">
  6. <span>积分设置</span>
  7. </div>
  8. </div>
  9. </el-card>
  10. <div class="content_form">
  11. <el-form :model="formData" ref="elForm" label-width="180px" style="position: relative;">
  12. <div class="title">
  13. <span>积分抵扣设置</span>
  14. </div>
  15. <template v-if="is_score_deduction==1">
  16. <el-form-item label="积分抵扣:" style="margin-top: 10px;">
  17. <el-switch v-model="formData.score_deduction.is_score_deduction" :active-value="1" :inactive-value="0"></el-switch>
  18. </el-form-item>
  19. <template v-if="formData.score_deduction.is_score_deduction==1">
  20. <el-form-item label="积分抵扣生效对象(平台):" >
  21. <template>
  22. <el-radio v-model="platform_score_deduction.effective" :label="1" disabled>全部</el-radio>
  23. <el-radio v-model="platform_score_deduction.effective" :label="2" disabled>收银台订单</el-radio>
  24. <el-radio v-model="platform_score_deduction.effective" :label="3" disabled>非收银台订单</el-radio>
  25. </template>
  26. </el-form-item>
  27. <el-form-item label="最高抵扣比例(平台):" v-if="platform_score_deduction.deduction_type == 1" required>
  28. <el-input size="small" v-model="platform_score_deduction.max_deduction_percent" disabled><template slot="append">%</template></el-input>
  29. <div class="tips-text">最高抵扣金额:订单金额*N% (订单金额:优惠后价格,不包含运费),收银台:输入金额*N%</div>
  30. </el-form-item>
  31. <el-form-item label="奖励比例(平台):" v-else>
  32. <div style="display:flex;align-items: flex-end;">
  33. <div>
  34. <div v-for="(item,index) in platform_score_deduction.deduction_proportion" :key='index' class="deduction-list" >
  35. <div class="deduction-list">
  36. 消费在
  37. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.min'">
  38. <el-input size="small" type="number" :min="0" class="member-money" disabled style="width: 200px" v-model="item.min"
  39. style="width: 150px">
  40. <template slot="append">元</template>
  41. </el-input>
  42. </el-form-item>
  43. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.max'" >
  44. <el-input size="small" type="number" :min="0" :max="100" class="member-money" disabled style="width: 200px" v-model="item.max"
  45. style="width: 150px;">
  46. <template slot="append">元</template>
  47. </el-input>
  48. </el-form-item>
  49. 之间,可以用积分抵扣
  50. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.deduction_ratio'" >
  51. <el-input size="small" type="number" :min="0" :max="100" class="member-money" disabled v-model="item.deduction_ratio"
  52. placeholder="" style="width: 200px">
  53. <template slot="append">%</template>
  54. </el-input>
  55. </el-form-item>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="tips-text">例如:实际支付在200-300区间,则可以用积分抵扣10%(不考虑运费)</div>
  61. </el-form-item>
  62. </template>
  63. <el-form-item label="独立设置:" style="margin-top: 10px;" v-if="formData.score_deduction.is_score_deduction">
  64. <el-switch v-model="formData.score_deduction.is_alone_score_deduction" :active-value="1"
  65. :inactive-value="0"></el-switch>
  66. </el-form-item>
  67. <template v-if="formData.score_deduction.is_alone_score_deduction==1 &&formData.score_deduction.is_score_deduction==1">
  68. <el-form-item label="积分抵扣生效对象:" style="margin-top: 10px;">
  69. <template>
  70. <el-radio v-model="formData.score_deduction.effective" :label="1">全部</el-radio>
  71. <el-radio v-model="formData.score_deduction.effective" :label="2">收银台订单</el-radio>
  72. <el-radio v-model="formData.score_deduction.effective" :label="3">非收银台订单</el-radio>
  73. </template>
  74. </el-form-item>
  75. <el-form-item prop="score_deduction.max_deduction_percent" label="最高抵扣比例:" v-if="platform_score_deduction.deduction_type == 1" :rules="paymentRules.alone_max_deduction_percent">
  76. <el-input size="small" v-model="formData.score_deduction.max_deduction_percent" onInput="value=toNumber(value,2)"><template slot="append">%</template></el-input>
  77. <div class="tips-text" style="line-height: 23px;">只可以比平台所设最高抵扣比例低,不可高于平台所设最高抵扣比例<br/>最高抵扣金额:订单金额*N% (订单金额:优惠后价格,不包含运费),收银台:输入金额*N%</div>
  78. </el-form-item>
  79. <el-form-item label="奖励比例:" v-else>
  80. <div style="display:flex;align-items: flex-end;">
  81. <div>
  82. <div v-for="(item,index) in formData.score_deduction.deduction_proportion" :key='index' class="deduction-list" >
  83. <div class="deduction-list">
  84. 消费在
  85. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.min'" :rules="paymentRules.deduction_min">
  86. <el-input size="small" :min="0" class="member-money" style="width: 200px" v-model="item.min" onInput="value=toNumber(value,2)"
  87. style="width: 150px">
  88. <template slot="append">元</template>
  89. </el-input>
  90. </el-form-item>
  91. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.max'" :rules="paymentRules.deduction_max">
  92. <el-input size="small" :min="0" :max="100" class="member-money" style="width: 200px" v-model="item.max" onInput="value=toNumber(value,2)"
  93. style="width: 150px;">
  94. <template slot="append">元</template>
  95. </el-input>
  96. </el-form-item>
  97. 之间,可以用积分抵扣
  98. <el-form-item :prop="'score_deduction.deduction_proportion.' + index + '.deduction_ratio'" :rules="paymentRules.deduction_ratio">
  99. <el-input size="small" type="number" :min="0" :max="100" class="member-money" v-model="item.deduction_ratio" onInput="value=toNumber(value,2)"
  100. placeholder="" style="width: 200px">
  101. <template slot="append">%</template>
  102. </el-input>
  103. </el-form-item>
  104. </div>
  105. </div>
  106. </div>
  107. <div style="display:flex;" :class="(formData.score_deduction.deduction_proportion && formData.score_deduction.deduction_proportion.length) && 'form-bottom' ">
  108. <el-button
  109. style="margin-left: 10px;height:32px;" type="danger" size="small" @click="deleteItem" v-if="formData.score_deduction.deduction_proportion && formData.score_deduction.deduction_proportion.length">删除区间
  110. </el-button>
  111. <el-button
  112. :disabled="isAddDeduction"
  113. v-if="formData.score_deduction.deduction_proportion && formData.score_deduction.deduction_proportion.length<3"
  114. style="margin-left: 10px;height:32px;" type="primary" size="small" @click="addItem">添加区间
  115. </el-button>
  116. </div>
  117. </div>
  118. <div class="tips-text">例如:实际支付在200-300区间,则可以用积分抵扣10%(不考虑运费)</div>
  119. </el-form-item>
  120. </template>
  121. <el-form-item label="积分获得对象:" >
  122. {{deduction_bear_text}}
  123. </el-form-item>
  124. </template>
  125. <template v-else-if="is_score_deduction == -1">
  126. <el-form-item label="">
  127. <el-button size="small" type="primary" @click="score_deduction_apply.visible = true" v-if="score_deduction_apply.info == null || score_deduction_apply.info.check_status != 0"> 申 请 </el-button>
  128. <el-button size="small" type="info" disabled v-else-if="score_deduction_apply.info.check_status == 0"> 申 请 </el-button>
  129. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-if="score_deduction_apply.info == null || score_deduction_apply.info.check_status == 1">积分抵扣无权限,若需设置积分抵扣,请点击申请开通。</div>
  130. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-else-if="score_deduction_apply.info.check_status == 0">已提交申请,平台审核中......</div>
  131. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-else-if="score_deduction_apply.info.check_status == -1">审核结果:不通过。理由:{{score_deduction_apply.info.reason}}</div>
  132. </el-form-item>
  133. </template>
  134. <template v-else>
  135. <el-form-item label="" style="margin-top: 10px;">
  136. <span>积分抵扣未开启,若需设置积分抵扣,则联系平台。</span>
  137. </el-form-item>
  138. </template>
  139. <div class="title">
  140. <span>积分赠送</span>
  141. </div>
  142. <template v-if="is_score_give==1">
  143. <el-form-item label="积分赠送承担方:" >
  144. {{bear_text}}
  145. </el-form-item>
  146. <el-form-item label="积分赠送条件(平台):" prop="condition">
  147. <template>
  148. <el-radio v-model="platform_score_give.condition" :label="0" disabled>全部订单</el-radio>
  149. <el-radio v-model="platform_score_give.condition" :label="1" disabled>未使用积分抵扣的订单</el-radio>
  150. </template>
  151. </el-form-item>
  152. <el-form-item label="积分赠送比例(平台):" >
  153. <div>
  154. <el-radio-group v-model="platform_score_give.give_type" @change="handleGiveTypeChange">
  155. <el-radio :label="1" disabled>固定值</el-radio>
  156. <el-radio :label="2" disabled>百分比</el-radio>
  157. </el-radio-group>
  158. </div>
  159. <el-input size="small" placeholder="请输入积分赠送数量" class="width-200" v-model="platform_score_give.give_num" disabled @input="formatGiveNumber(formData.score_give.give_num)">
  160. <template slot="append">{{ formData.score_give.give_type == 1 ? '积分' : '%'}}</template>
  161. </el-input>
  162. </el-form-item>
  163. <el-form-item label="结算方式(平台):">
  164. <el-radio-group v-model="platform_score_give.settlement">
  165. <el-radio :label="0" disabled>订单完成</el-radio>
  166. <el-radio :label="1" disabled>支付完成</el-radio>
  167. </el-radio-group>
  168. </el-form-item>
  169. <el-form-item label="是否开启独立设置:" prop="is_alone_score_give">
  170. <el-switch v-model="formData.score_give.is_alone_score_give" :active-value="1" :inactive-value="0" :disabled="is_edit_score_give">
  171. </el-switch>
  172. </el-form-item>
  173. <el-form-item label="积分赠送条件" prop="condition" v-if="formData.score_give.is_alone_score_give==1">
  174. <template>
  175. <el-radio v-model="formData.score_give.condition" :label="0" :disabled="is_edit_score_give">全部订单</el-radio>
  176. <el-radio v-model="formData.score_give.condition" :label="1" :disabled="is_edit_score_give">未使用积分抵扣的订单</el-radio>
  177. </template>
  178. </el-form-item>
  179. <el-form-item label="积分赠送比例" v-if="formData.score_give.is_alone_score_give==1">
  180. <div>
  181. <el-radio-group v-model="formData.score_give.give_type" @change="handleGiveTypeChange">
  182. <el-radio :label="1" :disabled="is_edit_score_give">固定值</el-radio>
  183. <el-radio :label="2" :disabled="is_edit_score_give">百分比</el-radio>
  184. </el-radio-group>
  185. </div>
  186. <el-input size="small" placeholder="请输入积分赠送数量" class="width-200" :disabled="is_edit_score_give" v-model="formData.score_give.give_num" @input="formatGiveNumber(formData.score_give.give_num)">
  187. <template slot="append">{{ formData.score_give.give_type == 1 ? '积分' : '%'}}</template>
  188. </el-input>
  189. <p class="tips-text">用户购物赠送的积分,如果不填写或者填写为0,则不赠送积分</p>
  190. <p class="tips-text">如: 选择固定值10,则买商品固定送积分,如买2件b,则固定获取20积分</p>
  191. <p class="tips-text">如: 选择百分比10,则买商品送比例积分,如买2件b,售价1件100,会员优惠20,运费10,则获取(200-20)x10%=18积分(按照优惠后的金额为计算基数,不计算运费)</p>
  192. </el-form-item>
  193. <el-form-item label="结算方式" v-if="formData.score_give.is_alone_score_give==1">
  194. <el-radio-group v-model="formData.score_give.settlement">
  195. <el-radio :label="0" :disabled="is_edit_score_give">订单完成</el-radio>
  196. <el-radio :label="1" :disabled="is_edit_score_give">支付完成</el-radio>
  197. </el-radio-group>
  198. <div class="tips-text" >
  199. 注:结算方式只作用非收银台订单,不作用于收银台
  200. </div>
  201. </el-form-item>
  202. </template>
  203. <template v-else-if="is_score_give == -1">
  204. <el-form-item label="">
  205. <el-button size="small" type="primary" @click="score_give_apply.visible = true" v-if="score_give_apply.info == null || score_give_apply.info.check_status != 0"> 申 请 </el-button>
  206. <el-button size="small" type="info" disabled v-else-if="score_give_apply.info.check_status == 0"> 申 请 </el-button>
  207. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-if="score_give_apply.info == null || score_give_apply.info.check_status == 1">积分赠送无权限,若需设置积分赠送,请点击申请开通。</div>
  208. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-else-if="score_give_apply.info.check_status == 0">已提交申请,平台审核中......</div>
  209. <div class="tips-text" style="margin-top: 10px;color: #f56c6c;" v-else-if="score_give_apply.info.check_status == -1">审核结果:不通过。理由:{{score_give_apply.info.reason}}</div>
  210. </el-form-item>
  211. </template>
  212. <template v-else>
  213. <el-form-item label="" style="margin-top: 10px;">
  214. <span>积分赠送未开启,若需设置积分赠送,则联系平台。</span>
  215. </el-form-item>
  216. </template>
  217. <el-form-item>
  218. <el-button type="primary" @click="onSubmit" size="small" :loading="submitLoading">保存</el-button>
  219. </el-form-item>
  220. </div>
  221. </el-form>
  222. </div>
  223. <el-dialog title="开通积分赠送申请" :visible.sync="score_give_apply.visible" width="50%" v-if="is_score_give == -1" class="score-give-protocol-dialog">
  224. <div class="protocol-content" v-html="score_give_apply.protocol"></div>
  225. <span slot="footer" class="dialog-footer">
  226. <el-checkbox v-model="score_give_apply.is_agree" style="margin-right: 15px;">已阅读协议且同意</el-checkbox>
  227. <el-button size="small" @click="score_give_apply.visible = false">取 消</el-button>
  228. <el-button size="small" type="primary" @click="submitSocreGiveApply" :loading="score_give_apply.loading">提 交</el-button>
  229. </span>
  230. </el-dialog>
  231. <el-dialog title="开通积分抵扣申请" :visible.sync="score_deduction_apply.visible" width="50%" v-if="is_score_deduction == -1" class="score-give-protocol-dialog">
  232. <div class="protocol-content" v-html="score_deduction_apply.protocol"></div>
  233. <span slot="footer" class="dialog-footer">
  234. <el-checkbox v-model="score_deduction_apply.is_agree" style="margin-right: 15px;">已阅读协议且同意</el-checkbox>
  235. <el-button size="small" @click="score_deduction_apply.visible = false">取 消</el-button>
  236. <el-button size="small" type="primary" @click="submitSocreDeductionApply" :loading="score_deduction_apply.loading">提 交</el-button>
  237. </span>
  238. </el-dialog>
  239. </div>
  240. <script>
  241. const app = new Vue({
  242. el: '#app',
  243. data() {
  244. // 自定义校验规则 (积分抵扣校验)
  245. let checkDeductionMin = (rule, value, callback) => {
  246. let fieldArr = rule.field.split('.')
  247. if(value < 0){
  248. callback(new Error('不能小于0'));
  249. return
  250. } else if(fieldArr.length == 4 && fieldArr[2]*1){
  251. let index = fieldArr[2]
  252. let item = this.formData.score_deduction.deduction_proportion[index-1]
  253. if (parseFloat(value) <= parseFloat(item.max)) {
  254. callback(new Error('不能小于上个区间的结束值'));
  255. return
  256. }
  257. }
  258. console.log(fieldArr.length == 4 && fieldArr[2]*1)
  259. callback();
  260. };
  261. let checkDeductionMax = (rule, value, callback) => {
  262. let fieldArr = rule.field.split('.')
  263. if(value < 0){
  264. value = 0
  265. callback(new Error('不能小于0'));
  266. return
  267. } else if(fieldArr.length == 4){
  268. let index = fieldArr[2]
  269. let item = this.formData.score_deduction.deduction_proportion[index]
  270. if (parseFloat(value) <= parseFloat(item.min)) {
  271. callback(new Error('不能小于起始值'));
  272. return
  273. }
  274. }
  275. callback();
  276. };
  277. let checkDeductionRatio = (rule, value, callback) => {
  278. if(value < 0 || value > 100) {
  279. callback(new Error('抵扣比例取值在 0~100 之间'));
  280. } else {
  281. callback();
  282. }
  283. };
  284. let checkAloneMaxDeductionPercent = (rule, value, callback) => {
  285. if(value > this.platform_score_deduction.max_deduction_percent) {
  286. callback(new Error('门店设置最高抵扣比例不可高于平台'));
  287. }else {
  288. callback();
  289. }
  290. };
  291. return {
  292. customers: [],
  293. formData: {
  294. score_deduction:{
  295. is_score_deduction: 0,//
  296. is_alone_score_deduction: 0,//
  297. effective: 1,//
  298. deduction_proportion: [
  299. {
  300. min: '',
  301. max: '',
  302. deduction_ratio: ''
  303. },
  304. ],
  305. max_deduction_percent: 0
  306. },
  307. score_give:{
  308. is_alone_score_give:0,
  309. condition:1,
  310. give_type:1,
  311. give_num:0,
  312. settlement:0,
  313. }
  314. },
  315. platform_score_give:{
  316. condition:1,
  317. give_type:1,
  318. give_num:0,
  319. settlement:0,
  320. },
  321. platform_score_deduction:{
  322. effective: 1,
  323. deduction_proportion: [
  324. {
  325. min: '',
  326. max: '',
  327. deduction_ratio: ''
  328. },
  329. ]
  330. },
  331. submitLoading:false,
  332. bear_text:'',
  333. deduction_bear_text:'',
  334. is_score_deduction:'',
  335. is_score_give:'',
  336. paymentRules:{
  337. deduction_min:[
  338. { required: true, message: '请填写消费区间', trigger: 'blur' },
  339. { validator: checkDeductionMin, trigger: 'blur' }
  340. ],
  341. deduction_max:[
  342. { required: true, message: '请填写消费区间', trigger: 'blur' },
  343. { validator: checkDeductionMax, trigger: 'blur' }
  344. ],
  345. deduction_ratio:[
  346. { required: true, message: '请输入抵扣比例', trigger: 'blur' },
  347. { validator: checkDeductionRatio, trigger: 'blur' }
  348. ],
  349. alone_max_deduction_percent:[
  350. { required: true, message: '请输入最高抵扣比例', trigger: 'blur' },
  351. { validator: checkAloneMaxDeductionPercent, trigger: 'blur' }
  352. ]
  353. },
  354. is_edit_score_give:false,
  355. score_give_apply: {
  356. visible: false,
  357. loading: false,
  358. is_agree: false,
  359. protocol: '',
  360. info: null
  361. },
  362. score_deduction_apply: {
  363. visible: false,
  364. loading: false,
  365. is_agree: false,
  366. protocol: '',
  367. info: null
  368. }
  369. }
  370. },
  371. computed: {
  372. isAddDeduction() {
  373. let result = false
  374. this.formData.score_deduction.deduction_proportion.forEach(item=>{
  375. if(item.min === '' || item.max === '' || item.deduction_ratio === ''){
  376. result = true
  377. }
  378. })
  379. return result
  380. }
  381. },
  382. methods: {
  383. addItem() {
  384. let deduction_proportion = JSON.parse(JSON.stringify(this.formData.score_deduction.deduction_proportion));
  385. let leng = deduction_proportion.length
  386. let item = {min: '', max: '', deduction_ratio: ''};
  387. if(leng){
  388. let preItem = deduction_proportion[leng-1]
  389. item.min = (preItem.max*1)+1
  390. }
  391. deduction_proportion.push(item);
  392. this.formData.score_deduction.deduction_proportion = deduction_proportion;
  393. },
  394. deleteItem() {
  395. this.formData.score_deduction.deduction_proportion.pop()
  396. },
  397. getScoreDeduction: function () {
  398. request({
  399. params: {
  400. r: 'store/client/setting/score-deduction',
  401. },
  402. method: 'get',
  403. }).then(e => {
  404. this.formData.score_deduction = e.data.data.score_deduction;
  405. this.formData.score_give = e.data.data.score_give;
  406. this.is_score_deduction = e.data.data.platform_is_score_deduction;
  407. this.is_score_give = e.data.data.platform_is_score_give;
  408. this.bear_text = e.data.data.bear_text;
  409. this.deduction_bear_text = e.data.data.deduction_bear_text;
  410. this.platform_score_deduction = e.data.data.platform_score_deduction;
  411. this.platform_score_give = e.data.data.platform_score_give;
  412. this.score_give_apply.protocol = e.data.data.platform_store_limit_protocol;
  413. this.score_give_apply.info = e.data.data.platform_score_give_store_apply;
  414. this.score_deduction_apply.protocol = e.data.data.platform_deduction_store_limit_protocol;
  415. this.score_deduction_apply.info = e.data.data.platform_score_deduction_store_apply;
  416. if(this.platform_score_give.bear==0){
  417. this.is_edit_score_give = true;
  418. }
  419. }).catch(e => {
  420. })
  421. },
  422. onSubmit: function () {
  423. let self = this;
  424. self.$refs.elForm.validate(valid => {
  425. if (valid) {
  426. self.submitLoading = true;
  427. request({
  428. params: {
  429. r: 'store/client/setting/score-deduction',
  430. },
  431. method: 'post',
  432. data: this.formData,
  433. }).then(e => {
  434. self.submitLoading = false;
  435. if (e.data.code === 0) {
  436. this.$message({
  437. message: e.data.msg,
  438. type: 'success',
  439. })
  440. } else {
  441. this.$message.error(e.data.msg);
  442. }
  443. }).catch(e => {
  444. this.$message.error(e.data.msg);
  445. })
  446. } else {
  447. self.$message.error('参数验证未通过');
  448. }
  449. });
  450. },
  451. handleGiveTypeChange() {
  452. if (this.formData.score_give.give_type == 2) {
  453. let giveNum = this.formData.score_give.give_num
  454. giveNum = giveNum ? giveNum : 0
  455. this.formData.score_give.give_num = parseInt(giveNum)
  456. }
  457. },
  458. submitSocreGiveApply() {
  459. if(!this.score_give_apply.is_agree) {
  460. this.$message.error('请先勾选同意开通协议'); return;
  461. }
  462. this.score_give_apply.loading = true;
  463. request({
  464. method: 'post',
  465. params: { r: 'store/client/setting/score-give-apply' }
  466. }).then(res => {
  467. this.score_give_apply.loading = false;
  468. this.score_give_apply.visible = false;
  469. if(res.data.code == 0) {
  470. this.getScoreDeduction();
  471. this.$message.success(res.data.msg);
  472. }else{
  473. this.$message.error(res.data.msg);
  474. }
  475. });
  476. },
  477. submitSocreDeductionApply() {
  478. if(!this.score_deduction_apply.is_agree) {
  479. this.$message.error('请先勾选同意开通协议'); return;
  480. }
  481. this.score_deduction_apply.loading = true;
  482. request({
  483. method: 'post',
  484. params: { r: 'store/client/setting/score-deduction-apply' }
  485. }).then(res => {
  486. this.score_deduction_apply.loading = false;
  487. this.score_deduction_apply.visible = false;
  488. if(res.data.code == 0) {
  489. this.getScoreDeduction();
  490. this.$message.success(res.data.msg);
  491. }else{
  492. this.$message.error(res.data.msg);
  493. }
  494. });
  495. }
  496. },
  497. mounted: function () {
  498. this.getScoreDeduction();
  499. }
  500. });
  501. </script>
  502. <style scoped>
  503. .content_form {
  504. padding: 20px;
  505. background: #FFFFFF;
  506. }
  507. .el_customer_group {
  508. display: flex;
  509. justify-content: left;
  510. }
  511. .el-checkbox-group {
  512. margin-left: 20px;
  513. }
  514. .title {
  515. width: max-content;
  516. padding: 0px 8px;
  517. border-left: 5px solid #1479F0;
  518. background-color: #fff;
  519. font-size: 18px;
  520. position: relative;
  521. left: 32px;
  522. margin: 20px 0;
  523. }
  524. .deduction-list {
  525. display: flex;
  526. align-items: flex-start;
  527. white-space: nowrap;
  528. }
  529. .deduction-list+.deduction-list{
  530. margin-top: 10px;
  531. }
  532. .form-bottom {
  533. margin-bottom: 26px;
  534. }
  535. .el-form-item .el-form-item {
  536. margin-bottom: 18px;
  537. }
  538. .score-give-protocol-dialog .el-dialog__body{
  539. min-height: 500px;
  540. padding: 0 20px;
  541. }
  542. .el-input {
  543. max-width: 450px;
  544. }
  545. .protocol-content img {
  546. max-width: 100% !important;
  547. }
  548. </style>