edit.php 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-select-cat');
  4. ComponentHelper::loadComponentView('com-dialog-select');
  5. ComponentHelper::loadComponentView('com-rich-text');
  6. ComponentHelper::loadComponentView('com-image');
  7. ComponentHelper::loadComponentView('com-ellipsis');
  8. ComponentHelper::loadComponentView('com-dialog-select-store');
  9. ?>
  10. <script src="/resources/js/Sortable.min.js"></script>
  11. <script src="/resources/unpkg/vuedraggable@2.18.1/dist/vuedraggable.umd.min.js"></script>
  12. <div id="app" v-cloak>
  13. <el-card class="box-card" shadow="never" style="border:0;min-width: 1200px;"
  14. body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  15. <div slot="header">
  16. <el-breadcrumb separator="/">
  17. <el-breadcrumb-item>
  18. <span style="color: #409EFF;cursor: pointer"
  19. @click="$navigate({r:'business-bonus/level/index'})">
  20. 招商员
  21. </span>
  22. </el-breadcrumb-item>
  23. <el-breadcrumb-item>{{titleName}}</el-breadcrumb-item>
  24. </el-breadcrumb>
  25. </div>
  26. <div class="form-body" v-loading="loading">
  27. <el-form :model="submitData" :rules="rules" ref="ruleForm" size="small" label-width="150px" style="margin-left: 20px;">
  28. <el-form-item label="等级名称" style="margin-bottom: 20px" required label-width="100px">
  29. <el-input placeholder="请输入等级名称" v-model="submitData.level_name"></el-input>
  30. </el-form-item>
  31. <el-form-item label="等级权重" label-width="100px" prop="level">
  32. <el-select style="width: 100%" v-model="submitData.level" placeholder="请选择" @change="changeLevel">
  33. <el-option
  34. v-for="item in level_weights"
  35. :key="item.level"
  36. :label="item.name"
  37. :value="item.level"
  38. :disabled="weight_disable"
  39. >
  40. </el-option>
  41. </el-select>
  42. </el-form-item>
  43. <el-form-item label="分红比例" style="margin-bottom: 20px" required label-width="100px">
  44. <el-input placeholder="请输入数值" v-model="submitData.bonus_rate"></el-input>
  45. <span class="remark">例如:5%,填5</span>
  46. </el-form-item>
  47. <!-- <el-form-item label="升级条件" required label-width="100px">-->
  48. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="1" v-show="submitData.level == 1">无条件</el-radio>-->
  49. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="2" v-show="submitData.level == 1">前端申请</el-radio>-->
  50. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="3">购买指定商品</el-radio>-->
  51. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="4" v-show="false">后台添加</el-radio>-->
  52. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="5" v-show="false">后台调整</el-radio>-->
  53. <!-- <el-radio v-model="submitData.condition.upgrade_type" :label="6">购买指定门店商品</el-radio>-->
  54. <!-- </el-form-item>-->
  55. <!---->
  56. <!-- <el-form-item label="需要推广者身份" label-width="125px" required v-show="submitData.condition.upgrade_type == 1">-->
  57. <!-- <el-radio v-model="is_inviter" :label="1">需要</el-radio>-->
  58. <!-- </el-form-item>-->
  59. <!---->
  60. <!-- <el-form-item label="需要审核" required v-show="submitData.condition.upgrade_type == 2" label-width="100px">-->
  61. <!-- <el-radio v-model="submitData.condition.is_audit" :label="0">不需要</el-radio>-->
  62. <!-- <el-radio v-model="submitData.condition.is_audit" :label="1">需要</el-radio>-->
  63. <!-- </el-form-item>-->
  64. <el-form-item label="购买升级" style="margin-bottom: 0">
  65. <div>
  66. <el-switch v-model="submitData.is_buy_goods_upgrade" :active-value="1" :inactive-value="0">
  67. </el-switch>
  68. </div>
  69. </el-form-item>
  70. <el-form-item label="" v-if="submitData.is_buy_goods_upgrade==1" style="margin-bottom: 20px" label-width="125px">
  71. <el-radio-group v-model="submitData.buy_goods_upgrade_type">
  72. <el-radio :label="1">购买平台商品</el-radio>
  73. <el-radio :label="2">购买门店商品</el-radio>
  74. </el-radio-group>
  75. </el-form-item>
  76. <el-form-item label="" v-if="submitData.is_buy_goods_upgrade==1" style="margin-bottom: 20px" label-width="125px">
  77. <el-radio-group v-model="submitData.buy_goods_upgrade_method">
  78. <el-radio :label="1">任意商品</el-radio>
  79. <el-radio :label="2">指定商品</el-radio>
  80. </el-radio-group>
  81. </el-form-item>
  82. <el-form-item label="指定商品" v-if="submitData.is_buy_goods_upgrade == 1 && submitData.buy_goods_upgrade_type == 1 && submitData.buy_goods_upgrade_method==2" style="margin-bottom: 20px" label-width="100px">
  83. <div style="display: inline-block;">
  84. <div flex="cross:center">
  85. <com-dialog-select :multiple="true" @selected="goodsSelect" title="商品选择">
  86. <el-button plain size="mini">选择商品</el-button>
  87. </com-dialog-select>
  88. </div>
  89. </div>
  90. </el-form-item>
  91. <el-form-item label="指定门店商品" v-if="submitData.is_buy_goods_upgrade==1 && submitData.buy_goods_upgrade_type == 2 && submitData.buy_goods_upgrade_method==2" style="margin-bottom: 20px" label-width="125px">
  92. <!-- <el-radio-group v-model="submitData.upgrade_store_goods_list.store_goods_type">-->
  93. <!-- <el-radio :label="1">任意商品</el-radio>-->
  94. <!-- <el-radio :label="2">指定商品</el-radio>-->
  95. <!-- </el-radio-group>-->
  96. <div style="margin-top: 10px; display: flex;" v-if="submitData.buy_goods_upgrade_method==2">
  97. <com-dialog-select-store :multiple="true" @selected="storeGoodsSelect" title="商品选择" :is_show_store_name="true" url="store/store-goods/search-with-store">
  98. <el-button type="primary" plain>选择商品</el-button>
  99. </com-dialog-select-store>
  100. <com-dialog-select-store :multiple="true" @selected="storeGoodsSelectDelete" title="批量删除" :is_show_store_name="true" url="store/store-goods/search-with-store">
  101. <el-button type="primary" plain style="margin-left: 10px">批量删除</el-button>
  102. </com-dialog-select-store>
  103. </div>
  104. </el-form-item>
  105. <el-form-item prop="store_goods_ids" v-if="submitData.is_buy_goods_upgrade == 1">
  106. <template v-if="submitData.buy_goods_upgrade_type == 2 && submitData.buy_goods_upgrade_method==2">
  107. <div style="max-height: 300px;overflow-y: auto;width: 60%;">
  108. <el-table :data="submitData.upgrade_store_goods_list.store_goods_list" border style="width: 100%">
  109. <el-table-column type="index" align="center" label="序号" width="50"></el-table-column>
  110. <el-table-column prop="id" align="center" label="商品id" width="100"></el-table-column>
  111. <el-table-column prop="name,cover_pic" label="商品名称" >
  112. <template slot-scope="scope">
  113. <div flex="box:first">
  114. <div style="padding-right: 10px;">
  115. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  116. </div>
  117. <div style="display:flex;flex-direction:column;align-items:flex-start;">
  118. <div>{{scope.row.name}}</div>
  119. <div>
  120. <span style="color: #ff4544;" v-if="scope.row.price">¥{{ scope.row.price }}</span>
  121. <span style="margin-left: 20px;" v-if="scope.row.stock">库存:{{ scope.row.stock }}</span>
  122. </div>
  123. </div>
  124. </div>
  125. </template>
  126. </el-table-column>
  127. <el-table-column label="操作" width="100">
  128. <template slot-scope="scope">
  129. <el-button @click="deleteStoreGoods(scope.$index)" type="primary" size="mini">删除</el-button>
  130. </template>
  131. </el-table-column>
  132. </el-table>
  133. </div>
  134. </template>
  135. </el-form-item>
  136. <el-form-item v-if="submitData.is_buy_goods_upgrade == 1 && submitData.buy_goods_upgrade_type == 1 && submitData.condition.goods_list && submitData.buy_goods_upgrade_method==2" >
  137. <template>
  138. <!-- <div style="color: #ff4544;">最多可添加20个商品</div>-->
  139. <div style="max-height: 300px;overflow-y: auto">
  140. <el-table :data="submitData.condition.goods_list" border style="width: 100%">
  141. <el-table-column type="index" label="序号" width="50"></el-table-column>
  142. <el-table-column prop="goods_id" label="商品id" width="100"></el-table-column>
  143. <el-table-column prop="name,cover_pic" label="商品名称" >
  144. <template slot-scope="scope">
  145. <div flex="box:first">
  146. <div style="padding-right: 10px;">
  147. <com-image mode="aspectFill" :src="scope.row.cover_pic"></com-image>
  148. </div>
  149. <div flex="cross:top cross:center">
  150. {{scope.row.goods_name}}
  151. </div>
  152. </div>
  153. </template>
  154. </el-table-column>
  155. <el-table-column label="操作" width="100">
  156. <template slot-scope="scope">
  157. <el-button @click="deleteGoods(scope.$index)" type="primary" size="mini">删除</el-button>
  158. </template>
  159. </el-table-column>
  160. </el-table>
  161. </div>
  162. </template>
  163. </el-form-item>
  164. <el-form-item label="条件升级" style="margin-bottom: 0">
  165. <div>
  166. <el-switch v-model="submitData.is_condition_upgrade" :active-value="1" :inactive-value="0">
  167. </el-switch>
  168. </div>
  169. <div v-if="submitData.is_condition_upgrade==1">
  170. <el-radio-group v-model="submitData.checked_condition_values[0].is_need_conditional">
  171. <el-radio :label="1">有条件</el-radio>
  172. <el-radio :label="2">无条件</el-radio>
  173. </el-radio-group>
  174. <div v-if="submitData.checked_condition_values[0].is_need_conditional == 1">
  175. <el-col>
  176. <el-checkbox v-model="checkbox1isCheck" label="前端申请"></el-checkbox>
  177. <el-form-item label="需要审核" required v-show="checkbox1isCheck" label-width="100px">
  178. <el-radio v-model="submitData.checked_condition_values[1].is_audit" :label="0">不需要</el-radio>
  179. <el-radio v-model="submitData.checked_condition_values[1].is_audit" :label="1">需要</el-radio>
  180. </el-form-item>
  181. </el-col>
  182. <el-col>
  183. <el-checkbox v-model="checkbox2isCheck" label="直推N个O2O门店商家">
  184. </el-checkbox>
  185. <div v-if="checkbox2isCheck" style="margin-left: 23px;" style="background-color: red;">
  186. <el-input v-model="submitData.checked_condition_values[2].nums" onkeyup="value=value.replace(/[^\d]/g,'')" placeholder="请填入数量" style="width: 200px">
  187. <template slot="append">个</template>
  188. </el-input>
  189. </div>
  190. </el-col>
  191. <el-col>
  192. <el-checkbox v-model="checkbox3isCheck" label="直推招商分红XX等级数量Y人">
  193. </el-checkbox>
  194. <div v-if="checkbox3isCheck" style="margin-left: 23px;margin-bottom: 10px;">
  195. <span style="margin-right:10px;">直推</span>
  196. <el-select style="width: 150px;" v-model="submitData.checked_condition_values[3].level" placeholder="请选择">
  197. <el-option v-for="item in levels" :key="item.level" :label="item.name" :value="item.level">
  198. </el-option>
  199. </el-select>
  200. <span style="margin:0 10px;">数量</span>
  201. <el-input-number v-model="submitData.checked_condition_values[3].nums" :min="0" label=""></el-input-number>
  202. </el-input>
  203. <span>人</span>
  204. </div>
  205. </el-col>
  206. </div>
  207. <div v-if="submitData.checked_condition_values[0].is_need_conditional == 2">
  208. <el-form-item label="需要推广者身份" label-width="125px" required >
  209. <el-radio v-model="submitData.checked_condition_values[0].is_inviter" :label="1">需要</el-radio>
  210. </el-form-item>
  211. </div>
  212. </div>
  213. </el-form-item>
  214. <el-form-item label="福利介绍" label-width="100px">
  215. <com-rich-text style="width: 750px" :simple-attachment="true" v-model="submitData.level_info.benefit_intro"></com-rich-text>
  216. </el-form-item>
  217. <el-form-item label="状态" style="margin-bottom: 20px" required label-width="100px">
  218. <el-switch
  219. v-model="submitData.status"
  220. :active-value="1"
  221. :inactive-value="0"
  222. active-text="开放"
  223. inactive-text="禁用"
  224. >
  225. </el-switch>
  226. </el-form-item>
  227. </div>
  228. <el-button class="button-item" :loading="btnLoading" type="primary" @click="saveFun"
  229. size="small">保存
  230. </el-button>
  231. </el-card>
  232. </div>
  233. <script>
  234. const app = new Vue({
  235. el: '#app',
  236. data() {
  237. return {
  238. diy_img_prefix: '<?= Yii::getAlias('@attachurl') ?>',
  239. titleName:"添加招商员等级",
  240. loading:false,
  241. level_weights: [],
  242. goods_ids: [],
  243. is_level_null: 1,
  244. is_inviter: 1,
  245. submitData: {
  246. "id": 0,
  247. "level": 1,
  248. "level_name": "",
  249. "bonus_rate": '',
  250. "status": 1,
  251. "created_at": 0,
  252. "updated_at": 0,
  253. "is_buy_goods_upgrade":0,
  254. "is_condition_upgrade":0,
  255. "checked_condition_values":[
  256. {"key":"0","value":[],"is_need_conditional":1, "is_inviter":1},
  257. {"key":"1","value":[], "is_audit": 0},
  258. {"key":"2","value":[], "nums":0},
  259. {"key":"3","value":[], "nums":0, "level":null},
  260. ],
  261. "checked_condition_keys":[],
  262. "buy_goods_upgrade_type":1,
  263. "buy_goods_upgrade_method":1,
  264. "condition": { // 升级条件
  265. upgrade_type: null,
  266. is_audit: 0,
  267. goods_list: [],
  268. },
  269. upgrade_store_goods_list: {
  270. // store_goods_type: 1, // 门店商品类型1任意商品 2 指定商品
  271. store_goods_ids:[],
  272. store_goods_list:[],
  273. },
  274. level_info: {
  275. benefit_intro: ''
  276. },
  277. },
  278. rules: {
  279. level_name: [
  280. { required: true, message: '请输入等级名称', trigger: 'blur' }
  281. ],
  282. },
  283. btnLoading:false,
  284. checkbox1isCheck: false,
  285. checkbox2isCheck: false,
  286. checkbox3isCheck: false,
  287. levels: [],
  288. // levels: [{level: 1, name: "青铜"}, {level: 2, name: "白银"}]
  289. checked_condition_values:[
  290. {"key":"0","value":[],"is_need_conditional":1, "is_inviter":1},
  291. {"key":"1","value":[], "is_audit": 0},
  292. {"key":"2","value":[], "nums":0},
  293. {"key":"3","value":[], "nums":0, "level":null},
  294. ],
  295. checked_condition_keys:[],
  296. };
  297. },
  298. mounted() {
  299. this.submitData.updated_at = Date.parse(new Date()) / 1000; // 新建数据的更新时间
  300. if (getQuery('id')) {
  301. this.titleName="编辑招商员等级";
  302. this.loadData(getQuery('id'));
  303. } else {
  304. this.submitData.created_at = Date.parse(new Date()) / 1000; // 新建数据的创建时间
  305. }
  306. this.getLevelWeight();
  307. this.getLevels();
  308. console.log('submitData:', this.submitData);
  309. },
  310. watch:{
  311. },
  312. computed: {
  313. weight_disable()
  314. {
  315. let res = this.is_level_null == 1 || this.submitData.id > 0;
  316. return res;
  317. }
  318. },
  319. methods: {
  320. changeLevel() {
  321. if (this.submitData.level != 1) {
  322. this.submitData.condition.upgrade_type = 3;
  323. }
  324. },
  325. goodsSelect(goods) {
  326. let that = this;
  327. for (var item of goods){
  328. if ( that.submitData.condition.goods_list.length > 20) {
  329. this.$message.error('最多可选择20个指定的商品!');
  330. return
  331. }
  332. console.log(that.goods_ids)
  333. if(that.goods_ids.indexOf(item.id)==-1){
  334. let temp = {
  335. goods_id: item.id,
  336. cover_pic: item.cover_pic,
  337. goods_name: item.goods_name
  338. }
  339. that.submitData.condition.goods_list.push(temp);
  340. that.goods_ids.push(item.id);
  341. }
  342. }
  343. },
  344. deleteGoods(index) {
  345. this.submitData.condition.goods_list.splice(index, 1);
  346. this.goods_ids = [];
  347. for (var item of goods){
  348. this.goods_ids.push(goods.id);
  349. }
  350. },
  351. saveFun(){
  352. this.submitData.checked_condition_keys = ['0'];
  353. if(this.checkbox1isCheck){
  354. this.submitData.checked_condition_keys.push("1");
  355. }
  356. if(this.checkbox2isCheck){
  357. this.submitData.checked_condition_keys.push("2");
  358. }
  359. if(this.checkbox3isCheck){
  360. this.submitData.checked_condition_keys.push("3");
  361. }
  362. this.$refs['ruleForm'].validate((valid) => {
  363. if (valid) {
  364. if (!this.submitData.level_name) {
  365. this.$message.error('请输入等级名称!');
  366. return false;
  367. }
  368. if (this.submitData.bonus_rate == null || this.submitData.bonus_rate == '') {
  369. this.$message.error('请输入分红比例!');
  370. return false;
  371. }
  372. // if (this.submitData.level != 1 && this.submitData.condition.upgrade_type != 3 && this.submitData.condition.upgrade_type != 6) {
  373. // this.$message.error('请选择升级条件!');
  374. // return false;
  375. // }
  376. console.log('this.submitDatathis.submitData', this.submitData);
  377. let data =JSON.parse(JSON.stringify(this.submitData));
  378. this.btnLoading = true;
  379. let url = 'business-bonus/level/edit';
  380. request({
  381. params: {
  382. r:url,
  383. },
  384. method: 'post',
  385. data: data
  386. }).then(e => {
  387. this.btnLoading = false;
  388. if (e.data.code == 0) {
  389. this.$message.success(e.data.msg);
  390. setTimeout(function () {
  391. navigateTo({
  392. r: 'business-bonus/level/index',
  393. });
  394. }, 1500);
  395. } else {
  396. this.$message.error(e.data.msg);
  397. }
  398. }).catch(e => {
  399. this.$message.error(e);
  400. this.btnLoading = false;
  401. })
  402. } else {
  403. this.$message.error('请填写必要的参数!');
  404. return false;
  405. }
  406. });
  407. },
  408. picUrl(e) {
  409. if (e.length) {
  410. this.submitData.pic = e[0].url;
  411. }
  412. },
  413. delPic(index) {
  414. /* this.pic_url.splice(index, 1) */
  415. this.submitData.pic = '';
  416. },
  417. receiveDatetimeChange(){
  418. if(this.receive_datetime){
  419. this.submitData.receive_begin_time = Date.parse(new Date(this.receive_datetime[0]).toString())/1000;
  420. this.submitData.receive_end_time = Date.parse(new Date(this.receive_datetime[1]).toString())/1000;
  421. }
  422. },
  423. useDatetimeChange() {
  424. if(this.use_datetime){
  425. this.submitData.use_begin_time = Date.parse(new Date(this.use_datetime[0]).toString())/1000;
  426. this.submitData.use_end_time = Date.parse(new Date(this.use_datetime[1]).toString())/1000;
  427. }
  428. },
  429. addPrize(){
  430. this.submitData.prize.push(JSON.parse(JSON.stringify(this.prizeObj)));
  431. },
  432. delPrize(index){
  433. this.submitData.prize.splice(index,1)
  434. },
  435. formatTime(timeStamp) {
  436. var date = new Date();
  437. date.setTime(timeStamp * 1000);
  438. var y = date.getFullYear();
  439. var m = date.getMonth() + 1;
  440. m = m < 10 ? ('0' + m) : m;
  441. var d = date.getDate();
  442. d = d < 10 ? ('0' + d) : d;
  443. var h = date.getHours();
  444. h = h < 10 ? ('0' + h) : h;
  445. var minute = date.getMinutes();
  446. var second = date.getSeconds();
  447. minute = minute < 10 ? ('0' + minute) : minute;
  448. second = second < 10 ? ('0' + second) : second;
  449. return y + '-' + m + '-' + d + ' ' + h + ':' + minute + ':' + second;
  450. },
  451. loadData(id){
  452. this.loading = true;
  453. request({
  454. params: {
  455. r:'business-bonus/level/info',
  456. inc_id: id
  457. },
  458. method: 'get',
  459. }).then(e => {
  460. this.loading = false;
  461. if (e.data.code == 0) {
  462. if (e.data.data.is_null == 0) {
  463. // this.submitData = e.data.data.info;
  464. this.submitData = Object.assign(this.submitData, e.data.data.info);
  465. this.submitData.upgrade_store_goods_list = this.submitData.condition.upgrade_store_goods_list;
  466. this.$set(this.submitData, 'buy_goods_upgrade_type', this.submitData.condition.buy_goods_upgrade_type);
  467. this.$set(this.submitData, 'buy_goods_upgrade_method', this.submitData.condition.buy_goods_upgrade_method);
  468. this.$set(this.submitData, 'is_condition_upgrade', this.submitData.condition.is_condition_upgrade);
  469. this.$set(this.submitData, 'checked_condition_values', this.submitData.condition.checked_condition_values);
  470. this.$set(this.submitData, 'checked_condition_keys', this.submitData.condition.checked_condition_keys);
  471. console.log('this.checked_condition_values:', this.checked_condition_values);
  472. console.log('this.submitData.checked_condition_values:', this.submitData.checked_condition_values);
  473. if (this.submitData.checked_condition_values.length == 0) {
  474. this.$set(this.submitData, 'checked_condition_values', this.checked_condition_values);
  475. }
  476. if (this.submitData.checked_condition_keys.length == 0) {
  477. this.$set(this.submitData, 'checked_condition_keys', this.checked_condition_keys);
  478. }
  479. // this.submitData.is_condition_upgrade = this.submitData.condition.is_condition_upgrade;
  480. this.submitData.checked_condition_keys.forEach((item)=>{
  481. if(item == 1){
  482. this.checkbox1isCheck = true;
  483. }
  484. if(item == 2){
  485. this.checkbox2isCheck = true;
  486. }
  487. if(item == 3){
  488. this.checkbox3isCheck = true;
  489. }
  490. })
  491. this.$set(this.submitData, 'is_buy_goods_upgrade', this.submitData.condition.is_buy_goods_upgrade);
  492. // this.submitData.is_buy_goods_upgrade = this.submitData.condition.is_buy_goods_upgrade;
  493. //请求
  494. }
  495. this.goods_ids = e.data.data.goods_ids;
  496. } else {
  497. this.$message.error(e.data.msg);
  498. }
  499. }).catch(e => {
  500. this.loading = false;
  501. });
  502. },
  503. getLevelWeight(){
  504. request({
  505. params: {
  506. r:'business-bonus/level/weights',
  507. },
  508. method: 'get',
  509. }).then(e => {
  510. if (e.data.code == 0) {
  511. this.level_weights = e.data.data.level_weights;
  512. this.is_level_null = e.data.data.is_level_null;
  513. } else {
  514. this.$message.error(e.data.msg);
  515. }
  516. }).catch(e => {
  517. });
  518. },
  519. getLevels(){
  520. request({
  521. params: {
  522. r:'business-bonus/level/levels',
  523. },
  524. method: 'get',
  525. }).then(e => {
  526. if (e.data.code == 0) {
  527. this.levels = e.data.data;
  528. } else {
  529. this.$message.error(e.data.msg);
  530. }
  531. }).catch(e => {
  532. });
  533. },
  534. //选择商品
  535. storeGoodsSelect(param) {
  536. for (let j in param) {
  537. let item = param[j];
  538. // if (this.submitData.upgrade_store_goods_list.store_goods_ids.length >= 99) {
  539. // this.$message.error('指定商品不能大于99个');
  540. // return;
  541. // }
  542. let flag = true;
  543. for (let i in this.submitData.upgrade_store_goods_list.store_goods_ids) {
  544. if (this.submitData.upgrade_store_goods_list.store_goods_ids[i] == param[j].id) {
  545. flag = false;
  546. break;
  547. }
  548. }
  549. if (flag) {
  550. this.submitData.upgrade_store_goods_list.store_goods_ids.push(param[j].id);
  551. this.submitData.upgrade_store_goods_list.store_goods_list.push({
  552. id: param[j].id,
  553. name: param[j].goods_name,
  554. cover_pic: param[j].cover_pic,
  555. price: param[j].price,
  556. stock: param[j].stock,
  557. });
  558. }
  559. }
  560. },
  561. //批量删除商品
  562. storeGoodsSelectDelete(param) {
  563. if (param === undefined || param.length === 0) {
  564. alert('未勾选商品');
  565. } else {
  566. let store_goods_ids = this.submitData.upgrade_store_goods_list.store_goods_ids
  567. for (let j = 0; j < param.length; j++) {
  568. let item = param[j];
  569. let itemId = item.id;
  570. let index = store_goods_ids.indexOf(itemId);
  571. if (index !== -1) {
  572. this.deleteStoreGoods(index);
  573. }
  574. }
  575. }
  576. },
  577. //删除商品
  578. deleteStoreGoods(index) {
  579. this.submitData.upgrade_store_goods_list.store_goods_list.splice(index, 1);
  580. this.submitData.upgrade_store_goods_list.store_goods_ids.splice(index, 1);
  581. },
  582. clickSelectCheckConditionGoods() {
  583. this.$refs.checkgoods.$el.click()
  584. },
  585. conditionGoodsSelectCheck(param) {
  586. let ckey;
  587. this.submitData.checked_condition_values.forEach(function(item, index) {
  588. if (item.key == 2) {
  589. ckey = index;
  590. }
  591. })
  592. let gval = this.submitData.checked_condition_values[2].value.val0;
  593. let garr = [];
  594. if (gval.length > 0) {
  595. garr = gval.split(",")
  596. }
  597. for (let j in param) {
  598. let item = param[j];
  599. let isHave = false;
  600. garr.forEach(element => {
  601. if (element == param[j].id) {
  602. isHave = true;
  603. }
  604. });
  605. if (!isHave) {
  606. garr.push(param[j].id);
  607. }
  608. }
  609. gval = garr.join(',');
  610. this.submitData.checked_condition_values[2].value.val0 = gval;
  611. console.log(gval);
  612. },
  613. conditionGoodsSelect(param) {
  614. let ckey;
  615. this.submitData.checked_condition_values.forEach(function(item, index) {
  616. if (item.key == 2) {
  617. ckey = index;
  618. }
  619. })
  620. let gval = this.submitData.checked_condition_values[ckey].value.val0;
  621. let garr = [];
  622. if (gval.length > 0) {
  623. garr = gval.split(",")
  624. }
  625. for (let j in param) {
  626. let item = param[j];
  627. let isHave = false;
  628. garr.forEach(element => {
  629. if (element == param[j].id) {
  630. isHave = true;
  631. }
  632. });
  633. if (!isHave) {
  634. garr.push(param[j].id);
  635. }
  636. }
  637. gval = garr.join(',');
  638. console.log(gval);
  639. this.submitData.checked_condition_values[ckey].value.val0 = gval;
  640. },
  641. }
  642. });
  643. </script>
  644. <style>
  645. .form-body {
  646. padding: 20px;
  647. background-color: #fff;
  648. margin-bottom: 20px;
  649. padding-right: 20%;
  650. min-width: 900px;
  651. }
  652. .form-body .el-form-item {
  653. padding-right: 25%;
  654. min-width: 850px;
  655. }
  656. .form-button {
  657. margin: 0;
  658. }
  659. .form-button .el-form-item__content {
  660. margin-left: 0 !important;
  661. }
  662. .button-item {
  663. padding: 9px 25px;
  664. }
  665. .check-group {
  666. font-size: 14px !important;
  667. }
  668. .check-group .el-col {
  669. display: flex;
  670. }
  671. .check-group .el-input {
  672. margin: 0 5px;
  673. }
  674. .check-group .el-col .el-checkbox {
  675. display: flex;
  676. align-items: center;
  677. }
  678. .check-group .el-col .el-input {
  679. width: 100px;
  680. }
  681. .check-group .el-col .el-input .el-input__inner {
  682. height: 30px;
  683. width: 100px;
  684. }
  685. .el-checkbox-group .el-col {
  686. margin-bottom: 10px;
  687. }
  688. .add-image-btn {
  689. width: 100px;
  690. height: 100px;
  691. color: #419EFB;
  692. border: 1px solid #e2e2e2;
  693. cursor: pointer;
  694. }
  695. .remark {
  696. color: #cccccc;
  697. }
  698. .user-info img {
  699. width: 60px;
  700. border-radius: 50%;
  701. margin-top: 10px;
  702. }
  703. </style>