edit.php 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-dialog-select');
  4. ComponentHelper::loadComponentView('com-select-cat');
  5. ComponentHelper::loadComponentView('com-dialog-select-store');
  6. ?>
  7. <div id="app" v-cloak>
  8. <el-card class="box-card" v-loading="cardLoading" shadow="never" style="border:0;min-width: 1250px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  9. <div slot="header">
  10. <el-breadcrumb separator="/">
  11. <el-breadcrumb-item>
  12. <span style="color: #409EFF;cursor: pointer" @click="$navigate({r:'boss/level/index'})">
  13. 股东等级
  14. </span>
  15. </el-breadcrumb-item>
  16. <el-breadcrumb-item>编辑股东等级</el-breadcrumb-item>
  17. </el-breadcrumb>
  18. </div>
  19. <div class="form-body">
  20. <el-form :model="ruleForm" :rules="rules" size="small" ref="ruleForm">
  21. <el-row>
  22. <el-col :span="24">
  23. <el-form-item label="股东等级权重" prop="level" :label-width="formLabelWidth">
  24. <el-select style="width: 100%" v-model="ruleForm.level" placeholder="请选择">
  25. <el-option v-for="item in weights" :key="item.level" :label="item.name" :value="item.level" :disabled="item.disabled && item.level!=origin_level">
  26. </el-option>
  27. </el-select>
  28. </el-form-item>
  29. <el-form-item label="股东等级名称" prop="name" :label-width="formLabelWidth">
  30. <el-input v-model="ruleForm.name" placeholder="请输入股东等级名称"></el-input>
  31. </el-form-item>
  32. <el-form-item label="永久分红" :label-width="formLabelWidth">
  33. <el-input v-model.number="ruleForm.setting.prize" type="number">
  34. <template slot="append">%</template>
  35. </el-input>
  36. </el-form-item>
  37. <el-form-item label="数字币永久分红" :label-width="formLabelWidth">
  38. <el-input v-model.number="ruleForm.setting.digital_prize" type="number">
  39. <template slot="append">%</template>
  40. </el-input>
  41. </el-form-item>
  42. <el-form-item label="高等级拿低等级分红" prop="insatiable" v-if="ruleForm.is_show_decr_score == 1" :label-width="formLabelWidth">
  43. <el-switch v-model="ruleForm.setting.insatiable" :active-value="1" :inactive-value="0">
  44. </el-switch>
  45. </el-form-item>
  46. <el-form-item label="开启额外分红" prop="is_extra" :label-width="formLabelWidth">
  47. <el-switch v-model="ruleForm.setting.is_extra" :active-value="1" :inactive-value="0">
  48. </el-switch>
  49. </el-form-item>
  50. <el-form-item label="额外分红佣金" prop="extra_prize" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  51. <el-input v-model.number="ruleForm.setting.extra_prize" type="number">
  52. <template slot="append">%</template>
  53. </el-input>
  54. </el-form-item>
  55. <el-form-item label="额外分红数字币" prop="extra_digital_prize" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  56. <el-input v-model.number="ruleForm.setting.extra_digital_prize" type="number">
  57. <template slot="append">%</template>
  58. </el-input>
  59. </el-form-item>
  60. <el-form-item label="存在额外分红的条件" prop="extra_type" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  61. <el-checkbox-group v-model="ruleForm.setting.extra_type" size="small">
  62. <el-checkbox :label="2" border>购物升级股东</el-checkbox>
  63. <el-checkbox :label="1" border>条件升级股东</el-checkbox>
  64. <el-checkbox :label="3" border>手动升级股东</el-checkbox>
  65. </el-checkbox-group>
  66. </el-form-item>
  67. <el-form-item label="额外分红开启上限" prop="extra_is_limit" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  68. <el-switch v-model="ruleForm.setting.extra_is_limit" :active-value="1" :inactive-value="0">
  69. </el-switch>
  70. </el-form-item>
  71. <el-form-item label="是否计算已满上限" prop="is_static_extra" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  72. <el-radio-group v-model="ruleForm.setting.is_static_extra">
  73. <el-radio :label="1">计算</el-radio>
  74. <el-radio :label="2">不计算</el-radio>
  75. </el-radio-group>
  76. </el-form-item>
  77. <el-form-item label="上限金额" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  78. <el-input v-model.number="ruleForm.setting.extra_limit_price" type="number">
  79. <template slot="append">元</template>
  80. </el-input>
  81. </el-form-item>
  82. <el-form-item label="股东额外分红限制" prop="extra_restrict" :label-width="formLabelWidth" v-if="ruleForm.setting.is_extra == 1 && ruleForm.setting.extra_is_limit == 1">
  83. <el-switch v-model="ruleForm.setting.extra_restrict" :active-value="1" :inactive-value="0">
  84. </el-switch>
  85. </el-form-item>
  86. <el-form-item label="" prop="extra_restrict_keys" :label-width="formLabelWidth" v-if="ruleForm.setting.is_extra == 1 && ruleForm.setting.extra_is_limit == 1 && ruleForm.setting.extra_restrict == 1">
  87. <el-checkbox-group v-model="ruleForm.setting.extra_restrict_keys">
  88. <!-- 额外条件1 -->
  89. <el-checkbox :label="ruleForm.setting.extra_restrict_values[0].key">
  90. 股东额外分红每累计收益满
  91. <el-input v-model="ruleForm.setting.extra_restrict_values[0].value.income" style="width: 150px;">
  92. <template slot="append">元</template>
  93. </el-input>
  94. 必须购买
  95. <el-input v-model="ruleForm.setting.extra_restrict_values[0].value.buy_num" style="width: 150px;">
  96. <template slot="append">笔</template>
  97. </el-input>
  98. 指定商品
  99. <el-input v-model="ruleForm.setting.extra_restrict_values[0].value.goods_ids" style="width: 200px;"></el-input>
  100. <el-tooltip class="item" effect="dark" content="可设置多个ID英文逗号隔开,并且是计算已完成订单" placement="top">
  101. <i class="el-icon-info"></i>
  102. </el-tooltip>
  103. 才可继续享受股东额外分红
  104. </el-checkbox>
  105. <!-- 额外条件2 -->
  106. <el-checkbox :label="ruleForm.setting.extra_restrict_values[1].key">
  107. 用户累计收益每满
  108. <el-input v-model="ruleForm.setting.extra_restrict_values[1].value.income" style="width: 150px;">
  109. <template slot="append">元</template>
  110. </el-input>
  111. (链动和股东分红产生的收益总和),必须购买
  112. <el-input v-model="ruleForm.setting.extra_restrict_values[1].value.buy_num" style="width: 150px;">
  113. <template slot="append">笔</template>
  114. </el-input>
  115. 指定商品
  116. <el-input v-model="ruleForm.setting.extra_restrict_values[1].value.goods_ids" style="width: 200px;"></el-input>
  117. <el-tooltip class="item" effect="dark" content="可设置多个ID英文逗号隔开,并且是计算已完成订单" placement="top">
  118. <i class="el-icon-info"></i>
  119. </el-tooltip>
  120. 才可继续享受股东额外分红
  121. </el-checkbox>
  122. <!-- 额外条件3 -->
  123. <el-checkbox :label="ruleForm.setting.extra_restrict_values[2].key">
  124. 最多可分
  125. <el-input v-model="ruleForm.setting.extra_restrict_values[2].value.day" style="width: 150px;">
  126. <template slot="append">天</template>
  127. </el-input>
  128. 最多可获得
  129. <el-input v-model="ruleForm.setting.extra_restrict_values[2].value.money" style="width: 150px;">
  130. <template slot="append">元</template>
  131. </el-input>
  132. 额外分红
  133. </el-checkbox>
  134. </el-checkbox-group>
  135. </el-form-item>
  136. <el-form-item label="高等级拿低等级额外分红" prop="insatiable_extra" :label-width="formLabelWidth">
  137. <el-switch v-model="ruleForm.setting.insatiable_extra" :active-value="1" :inactive-value="0">
  138. </el-switch>
  139. </el-form-item>
  140. <el-form-item label="股东分红单独分" prop="extra_restrict" v-if="ruleForm.setting.is_extra == 1" :label-width="formLabelWidth">
  141. <el-switch v-model="ruleForm.setting.extra_alone" :active-value="1" :inactive-value="0" >
  142. </el-switch>
  143. </el-form-item>
  144. <el-form-item label="开启业绩分红" prop="is_performance" :label-width="formLabelWidth">
  145. <el-switch v-model="ruleForm.setting.is_performance" :active-value="1" :inactive-value="0">
  146. </el-switch>
  147. </el-form-item>
  148. <el-form-item label="业绩分红佣金" prop="performance_rate" v-if="ruleForm.setting.is_performance == 1" :label-width="formLabelWidth">
  149. <el-input v-model.number="ruleForm.setting.performance_rate" type="number">
  150. <template slot="append">%</template>
  151. </el-input>
  152. <div class="tips-text" style="line-height: 24px;"></div>
  153. </el-form-item>
  154. <el-form-item label="股东分红限制" prop="bonus_restrict" :label-width="formLabelWidth">
  155. <el-switch v-model="ruleForm.setting.bonus_restrict"
  156. @change="changeBonusRestrict"
  157. :active-value="1"
  158. :inactive-value="0"
  159. active-text="开启"
  160. inactive-text="关闭">
  161. </el-switch>
  162. </el-form-item>
  163. <el-form-item label="" prop="bonus_restrict_keys" v-if="ruleForm.setting.bonus_restrict == 1" :label-width="formLabelWidth">
  164. <el-checkbox-group v-model="ruleForm.setting.bonus_restrict_keys" class="bonus_restrict_list">
  165. <!-- 直推限制 -->
  166. <el-checkbox :label="ruleForm.setting.bonus_restrict_values[0].key">
  167. <span>直推</span>
  168. <el-select v-model="ruleForm.setting.bonus_restrict_values[0].value.level" clearable placeholder="请选择">
  169. <el-option
  170. v-for="item in userLevels"
  171. :key="item.id"
  172. :label="item.name"
  173. :value="item.level">
  174. </el-option>
  175. </el-select>
  176. <span>会员等级</span>
  177. <el-input v-model="ruleForm.setting.bonus_restrict_values[0].value.num" style="width: 150px;">
  178. <template slot="append">名</template>
  179. </el-input>
  180. </el-checkbox>
  181. <!-- 消费限制 -->
  182. <el-checkbox :label="ruleForm.setting.bonus_restrict_values[1].key">
  183. <span>直推用户订单满</span>
  184. <el-input v-model="ruleForm.setting.bonus_restrict_values[1].value.money" style="width: 150px;">
  185. <template slot="append">元</template>
  186. </el-input>
  187. <el-select v-model="ruleForm.setting.bonus_restrict_values[1].value.order_type" style="width: 150px;margin-left: 10px;" clearable placeholder="请选择">
  188. <el-option label="订单支付" value="order_pay"></el-option>
  189. <el-option label="订单完成" value="order_finish"></el-option>
  190. </el-select>
  191. </el-checkbox>
  192. </el-checkbox-group>
  193. </el-form-item>
  194. <el-form-item label="是否启用自动升级" prop="is_auto_upgrade" :label-width="formLabelWidth">
  195. <el-switch v-model="ruleForm.is_auto_upgrade" :active-value="1" :inactive-value="0">
  196. </el-switch>
  197. </el-form-item>
  198. <template v-if="ruleForm.is_auto_upgrade == 1">
  199. <?php echo $tpl; ?>
  200. </template>
  201. <el-form-item label="购买门店商品升级" v-if="ruleForm.is_auto_upgrade == 1 && is_show_store_upgrade == 1" :label-width="formLabelWidth">
  202. <el-form-item>
  203. <el-switch v-model="ruleForm.upgrade_type_store_goods" :active-value="1"
  204. :inactive-value="0" active-text="开启" inactive-text="关闭">
  205. </el-switch>
  206. </el-form-item>
  207. <el-form-item v-if="ruleForm.upgrade_type_store_goods==1">
  208. <el-radio-group v-model="ruleForm.buy_store_goods_type">
  209. <el-radio :label="0">订单完成
  210. </el-radio>
  211. <el-radio :label="1">支付完成
  212. </el-radio>
  213. </el-radio-group>
  214. </el-form-item>
  215. <el-form-item v-if="ruleForm.upgrade_type_store_goods==1">
  216. <el-radio-group v-model="ruleForm.store_goods_type">
  217. <el-radio :label="1">任意商品</el-radio>
  218. <el-radio :label="2">指定商品</el-radio>
  219. </el-radio-group>
  220. <div style="margin-top: 10px; display: flex;" v-if="ruleForm.store_goods_type==2">
  221. <com-dialog-select-store :multiple="true" @selected="storeGoodsSelect" title="商品选择" :is_show_store_name="true" url="store/store-goods/search-with-store">
  222. <el-button type="primary" plain>选择商品</el-button>
  223. </com-dialog-select-store>
  224. <div style="color: #ff4544; margin-left: 10px;">最多可添加99个商品</div>
  225. </div>
  226. </el-form-item>
  227. </el-form-item>
  228. <el-form-item prop="store_goods_ids" v-if="ruleForm.upgrade_type_store_goods==1 && is_show_store_upgrade == 1" :label-width="formLabelWidth">
  229. <template v-if="ruleForm.store_goods_type==2">
  230. <div style="max-height: 300px;overflow-y: auto;width: 60%;">
  231. <el-table :data="ruleForm.store_goods_list" border style="width: 100%">
  232. <el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
  233. <el-table-column prop="id" align="center" label="商品id" width="100"></el-table-column>
  234. <el-table-column prop="name,cover_pic" label="商品名称" >
  235. <template slot-scope="scope">
  236. <div flex="box:first">
  237. <div style="padding-right: 10px;">
  238. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  239. </div>
  240. <div style="display:flex;flex-direction:column;align-items:flex-start;">
  241. <div>{{scope.row.name}}</div>
  242. <div>
  243. <span style="color: #ff4544;" v-if="scope.row.price">¥{{ scope.row.price }}</span>
  244. <span style="margin-left: 20px;" v-if="scope.row.stock">库存:{{ scope.row.stock }}</span>
  245. </div>
  246. </div>
  247. </div>
  248. </template>
  249. </el-table-column>
  250. <el-table-column label="操作" width="100">
  251. <template slot-scope="scope">
  252. <el-button @click="deleteStoreGoods(scope.$index)" type="primary" size="mini">删除</el-button>
  253. </template>
  254. </el-table-column>
  255. </el-table>
  256. </div>
  257. </template>
  258. </el-form-item>
  259. <el-form-item label="是否启用" prop="status" :label-width="formLabelWidth">
  260. <el-switch v-model="ruleForm.status" :active-value="1" :inactive-value="0">
  261. </el-switch>
  262. </el-form-item>
  263. <el-form-item v-if="ruleForm.status" :key="1" label="等级说明" prop="explain" :label-width="formLabelWidth">
  264. <el-input type="textarea" :rows="5" placeholder="请输入等级说明" v-model="ruleForm.explain" maxlength="80" show-word-limit></el-input>
  265. </el-form-item>
  266. <el-form-item v-if="!ruleForm.status" :key="2" label="等级说明" :label-width="formLabelWidth">
  267. <el-input type="textarea" :rows="5" placeholder="请输入等级说明" v-model="ruleForm.explain" maxlength="80" show-word-limit></el-input>
  268. </el-form-item>
  269. </el-col>
  270. </el-row>
  271. </el-form>
  272. </div>
  273. <el-button class="button-item" :loading="btnLoading" type="primary" @click="submitForm('ruleForm')" size="small">保存
  274. </el-button>
  275. </el-card>
  276. </div>
  277. <script>
  278. const app = new Vue({
  279. el: '#app',
  280. data() {
  281. return {
  282. origin_level: 0,
  283. msg: 1,
  284. options: [], //会员等级列表
  285. level: 0,
  286. form: {
  287. type: [],
  288. },
  289. showConditionMsg: false,
  290. dialogFormVisible_edit: false,
  291. conditionMsg: '',
  292. weights: [],
  293. levels: [],
  294. userLevels: [],// 会员等级
  295. formLabelWidth: '150px',
  296. ruleForm: {
  297. id: '',
  298. level: '', //当前选中等级
  299. name: '',
  300. status: 0,
  301. condition_type: 1,
  302. is_show_decr_score: 0,
  303. setting: {
  304. commission_type: 'commission',
  305. from_type: 'boss',
  306. prize: 0,
  307. extra_prize: 0,
  308. is_extra: 0,
  309. extra_type: [1],
  310. extra_is_limit: 0,
  311. is_static_extra: 1,
  312. extra_limit_price: 0.00,
  313. extra_restrict: 0,
  314. extra_alone: 0,
  315. insatiable: 0,
  316. bonus_restrict_keys: [],// 股东分红限制
  317. bonus_restrict_values: [
  318. {
  319. key: 0,
  320. value: {
  321. level: '',
  322. num: 0,
  323. }
  324. },
  325. {
  326. key: 1,
  327. value: {
  328. money: 0,
  329. order_type: 'order_pay'
  330. }
  331. }
  332. ],
  333. extra_restrict_keys: [],
  334. extra_restrict_values: [{
  335. key: 0,
  336. value: {
  337. income: 0,
  338. buy_num: 0,
  339. goods_ids: '',
  340. }
  341. },
  342. {
  343. key: 1,
  344. value: {
  345. income: 0,
  346. buy_num: 0,
  347. goods_ids: '',
  348. }
  349. },
  350. {
  351. key: 2,
  352. value: {
  353. day: 0,
  354. money: 0,
  355. }
  356. }
  357. ],
  358. is_performance: 0,
  359. performance_rate: 0,
  360. },
  361. buy_goods_type: 0,
  362. is_auto_upgrade: 0,
  363. goods_type: 0,
  364. upgrade_type_condition: 0,
  365. upgrade_type_goods: 0,
  366. rule: '',
  367. explain: '',
  368. checked_condition_keys: [], //对应条件的key
  369. goods_ids: [],
  370. goods_list: [],
  371. checked_condition_values: <?= $key_arr ?>,
  372. digital_prize: 0,
  373. extra_digital_prize: 0,
  374. buy_store_goods_type: 0,
  375. store_goods_type: 1,
  376. upgrade_type_store_goods: 0,
  377. store_goods_ids:[],
  378. store_goods_list:[],
  379. },
  380. options_list: <?= $source_list ?>,
  381. checkbox_list:<?= $checkbox_list ?>,
  382. rules: {
  383. level: [{
  384. required: true,
  385. message: '请选择股东等级',
  386. trigger: 'change'
  387. }, ],
  388. name: [{
  389. required: true,
  390. message: '请输入股东等级名称',
  391. trigger: 'change'
  392. }, ],
  393. status: [{
  394. required: true,
  395. message: '请选择股东等级状态',
  396. trigger: 'change'
  397. }, ],
  398. explain: [{
  399. required: true,
  400. message: '等级说明不能为空',
  401. trigger: 'change'
  402. }, ],
  403. },
  404. btnLoading: false,
  405. cardLoading: false,
  406. formLabelWidth: '150px',
  407. goodsCatsDialogVisible: false,
  408. currentGoodsCats: [],
  409. currentGoodsCatsIndex: null,
  410. currentGoodsCatsName: '',
  411. cat_list: <?= $cat_list ?>,
  412. is_show_store_upgrade: <?= $is_show_store_upgrade ?>,
  413. };
  414. },
  415. mounted() {
  416. if (getQuery('id')) {
  417. this.loadData();
  418. } else {
  419. this.checked_condition_values_fourArr = [{
  420. itemName: "默认等级",
  421. val: 0
  422. }]
  423. this.loadData();
  424. }
  425. },
  426. methods: {
  427. close(e) {
  428. this.visible = false;
  429. },
  430. goodsSelect(param) {
  431. for (let j in param) {
  432. let item = param[j];
  433. if (this.ruleForm.goods_ids && this.ruleForm.goods_ids.length >= 99) {
  434. this.$message.error('指定商品不能大于99个');
  435. return;
  436. }
  437. let flag = true;
  438. for (let i in this.ruleForm.goods_ids) {
  439. if (this.ruleForm.goods_ids[i] == item.id) {
  440. flag = false;
  441. break;
  442. }
  443. }
  444. if (flag) {
  445. this.ruleForm.goods_ids.push(item.id);
  446. this.ruleForm.goods_list.push({
  447. id: item.id,
  448. name: item.goods_name,
  449. cover_pic: item.cover_pic,
  450. price: item.price,
  451. stock: item.stock,
  452. });
  453. }
  454. }
  455. },
  456. changeBonusRestrict(val) {// 股东分红限制切换
  457. if (val === 0) {//关闭后所有数据清空
  458. this.ruleForm.setting.bonus_restrict_keys = [];
  459. this.ruleForm.setting.bonus_restrict_values = [
  460. {
  461. key: 0,
  462. value: {
  463. level: '',
  464. num: 0,
  465. }
  466. },
  467. {
  468. key: 1,
  469. value: {
  470. money: 0,
  471. order_type: 'order_pay'
  472. }
  473. }
  474. ];
  475. }
  476. },
  477. clickSelectConditionGoods() {
  478. this.$refs.cgoods.$el.click()
  479. },
  480. conditionGoodsSelect(param) {
  481. let ckey;
  482. this.ruleForm.checked_condition_values.forEach(function(item, index) {
  483. if (item.key == 50) {
  484. ckey = index;
  485. }
  486. })
  487. let gval = this.ruleForm.checked_condition_values[ckey].value.team_goods;
  488. let garr = [];
  489. if (gval.length > 0) {
  490. garr = gval.split(",")
  491. }
  492. for (let j in param) {
  493. let item = param[j];
  494. let isHave = false;
  495. garr.forEach(element => {
  496. if (element == param[j].id) {
  497. isHave = true;
  498. }
  499. });
  500. if (!isHave) {
  501. garr.push(param[j].id);
  502. }
  503. }
  504. gval = garr.join(',');
  505. this.ruleForm.checked_condition_values[ckey].value.team_goods = gval;
  506. },
  507. clickSelectConditionGoodsCats(val, name, index){
  508. this.currentGoodsCatsIndex = index
  509. this.currentGoodsCatsName = name
  510. if (val === "") {
  511. val = []
  512. } else if (typeof val === 'string') {
  513. val = JSON.parse(val)
  514. }
  515. this.currentGoodsCats = val
  516. this.goodsCatsDialogVisible = true
  517. },
  518. onChangGoodsCat(val) {
  519. this.$set(this.ruleForm.checked_condition_values[this.currentGoodsCatsIndex].value, this.currentGoodsCatsName, JSON.stringify(val))
  520. },
  521. // 2.1 提交表单编辑
  522. submitForm(formName) {
  523. let self = this;
  524. self.showConditionMsg = false;
  525. if (self.ruleForm.upgrade_type_goods == 1) {
  526. if (self.ruleForm.goods_type == 2 && self.ruleForm.goods_list.length == 0) { //选中的checkBox
  527. self.$message.error('请选择升级商品');
  528. return;
  529. }
  530. }
  531. if (self.ruleForm.upgrade_type_condition == 1) { //选中升级条件
  532. if (self.ruleForm.checked_condition_keys.length == 0) { //选中的checkBox
  533. self.$message.error('请完善升级条件');
  534. return;
  535. }
  536. let checked_condition_values = self.ruleForm.checked_condition_values;
  537. self.ruleForm.checked_condition_keys.forEach(function(item, index) {
  538. for (i in self.ruleForm.checked_condition_values[index].value) {
  539. if (!self.ruleForm.checked_condition_values[index].value[i]) {
  540. self.conditionMsg = '请完善条件:' + (parseInt(index) + 1);
  541. return false;
  542. }
  543. }
  544. });
  545. if (self.showConditionMsg) {
  546. this.$message.error(self.conditionMsg);
  547. return
  548. }
  549. if (this.ruleForm.checked_condition_keys.length > 0) {
  550. if (this.ruleForm.condition_type == 0) {
  551. this.$message.error('请选择条件升级的方式升级类型');
  552. return;
  553. }
  554. }
  555. }
  556. this.$refs[formName].validate((valid) => {
  557. if (valid) {
  558. self.btnLoading = true;
  559. request({
  560. params: {
  561. r: 'boss/level/edit'
  562. },
  563. method: 'post',
  564. data: {
  565. form: self.ruleForm,
  566. }
  567. }).then(e => {
  568. self.btnLoading = false;
  569. if (e.data.code == 0) {
  570. self.$message.success(e.data.msg);
  571. navigateTo({
  572. r: 'boss/level/index'
  573. })
  574. } else {
  575. self.$message.error(e.data.msg);
  576. }
  577. }).catch(e => {
  578. self.$message.error(e.data.msg);
  579. self.btnLoading = false;
  580. });
  581. } else {
  582. console.log('error submit!!');
  583. return false;
  584. }
  585. });
  586. },
  587. // 获取显示的值
  588. loadData() {
  589. this.cardLoading = true;
  590. request({
  591. params: {
  592. r: 'boss/level/edit',
  593. id: getQuery('id'),
  594. },
  595. method: 'get'
  596. }).then(e => {
  597. this.cardLoading = false;
  598. if (e.data.code == 0) {
  599. if (e.data.data.detail) {
  600. let detail = e.data.data.detail
  601. if (isEmpty(detail.setting.extra_restrict_values)) detail.setting.extra_restrict_values = this.ruleForm.setting.extra_restrict_values;
  602. if (isEmpty(detail.setting.bonus_restrict_values)) detail.setting.bonus_restrict_values = this.ruleForm.setting.bonus_restrict_values;
  603. if (isEmpty(detail.setting.bonus_restrict_keys)) detail.setting.bonus_restrict_keys = this.ruleForm.setting.bonus_restrict_keys;
  604. if (detail.checked_condition_values.length <= 0) {
  605. delete detail.checked_condition_values
  606. }
  607. Object.assign(this.ruleForm, detail)
  608. console.log(this.ruleForm, '===================');
  609. this.origin_level = this.ruleForm.level;
  610. }
  611. console.log(this.ruleForm.setting.extra_restrict_values[0].key, '====');
  612. this.weights = e.data.data.weights;
  613. this.userLevels = e.data.data.userLevels;
  614. this.ruleForm.is_show_decr_score = e.data.data.is_show_decr_score;
  615. } else {
  616. this.$message.error(e.data.msg);
  617. }
  618. }).catch(e => {
  619. console.log(e);
  620. });
  621. },
  622. deleteGoods(index) {
  623. this.ruleForm.goods_list.splice(index, 1);
  624. this.ruleForm.goods_ids.splice(index, 1);
  625. },
  626. setCondition() {
  627. navigateTo({
  628. r: 'boss/level/condition',
  629. });
  630. },
  631. //选择门店商品
  632. storeGoodsSelect(param) {
  633. for (let j in param) {
  634. let item = param[j];
  635. if (this.ruleForm.store_goods_ids.length >= 99) {
  636. this.$message.error('指定商品不能大于99个');
  637. return;
  638. }
  639. let flag = true;
  640. for (let i in this.ruleForm.store_goods_ids) {
  641. if (this.ruleForm.store_goods_ids[i] == param[j].id) {
  642. flag = false;
  643. break;
  644. }
  645. }
  646. if (flag) {
  647. this.ruleForm.store_goods_ids.push(param[j].id);
  648. this.ruleForm.store_goods_list.push({
  649. id: param[j].id,
  650. name: param[j].goods_name,
  651. cover_pic: param[j].cover_pic,
  652. price: param[j].price,
  653. stock: param[j].stock,
  654. });
  655. }
  656. }
  657. },
  658. //删除门店商品
  659. deleteStoreGoods(index) {
  660. this.ruleForm.store_goods_list.splice(index, 1);
  661. this.ruleForm.store_goods_ids.splice(index, 1);
  662. },
  663. }
  664. });
  665. </script>
  666. <style>
  667. .form-body {
  668. padding: 20px;
  669. background-color: #fff;
  670. margin-bottom: 20px;
  671. /* padding-right: 20%; */
  672. min-width: 900px;
  673. }
  674. .form-body .el-form-item {
  675. /* padding-right: 25%; */
  676. min-width: 850px;
  677. }
  678. .form-button {
  679. margin: 0;
  680. }
  681. .form-button .el-form-item__content {
  682. margin-left: 0 !important;
  683. }
  684. .button-item {
  685. padding: 9px 25px;
  686. }
  687. .check-group {
  688. font-size: 14px !important;
  689. }
  690. .check-group .el-col {
  691. display: flex;
  692. }
  693. .check-group .el-input {
  694. margin: 0 5px;
  695. }
  696. .check-group .el-col .el-checkbox {
  697. display: flex;
  698. align-items: center;
  699. }
  700. /*.check-group .el-col .el-input {*/
  701. /* width: 100px;*/
  702. /*}*/
  703. /*.check-group .el-col .el-input .el-input__inner {*/
  704. /* height: 30px;*/
  705. /* width: 100px;*/
  706. /*}*/
  707. .el-checkbox-group .el-col {
  708. margin-bottom: 10px;
  709. }
  710. .condition_common {
  711. display: flex;
  712. align-items: center;
  713. }
  714. .condition_common_five {
  715. display: flex;
  716. }
  717. .bonus_restrict_list {
  718. display: flex;
  719. flex-direction: column;
  720. }
  721. .bonus_restrict_list .el-checkbox{
  722. display: flex;
  723. align-items: center;
  724. justify-content: left;
  725. margin-bottom: 10px;
  726. }
  727. .bonus_restrict_list .el-checkbox .el-checkbox__label{
  728. display: flex;
  729. align-items: center;
  730. }
  731. .bonus_restrict_list .el-checkbox .el-checkbox__label span{
  732. padding: 0 10px;
  733. }
  734. </style>