edit.php 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. ComponentHelper::loadComponentView('com-dialog-select');
  4. ?>
  5. <div id="app" v-cloak>
  6. <el-card class="box-card" shadow="never" style="border:0;min-width: 1000px;" body-style="background-color: #f3f3f3;padding: 10px 0 0;">
  7. <div slot="header">
  8. <div>
  9. <span>拼团活动设置</span>
  10. </div>
  11. </div>
  12. <div class="form_box">
  13. <el-form :model="formData" :rules="rules" size="small" ref="ruleForm" label-width="160px" v-loading="loading">
  14. <el-card shadow="never">
  15. <div style="display: flex;align-items: center;padding-bottom: 10px;border-bottom: 1px solid #E4E7ED;width: 400px;margin:10px 0 20px 0;">
  16. <div style="width: 5px;height: 20px;background-color: #03C5FF;margin-right: 5px;"></div>
  17. <div>基本配置</div>
  18. </div>
  19. <div>
  20. <el-row>
  21. <el-col :span="16">
  22. <el-form-item label="活动标题:" label-width="160px" prop="title" :rules="[{ required: true, message: '请输入活动标题', trigger: 'blur' }]">
  23. <el-input placeholder="请输入活动标题" style="width: 200px;" v-model="formData.title" type="text"></el-input>
  24. </el-form-item>
  25. <el-form-item label="拼团分类:" label-width="160px" prop="cate_id">
  26. <el-select v-model="formData.cate_id" placeholder="请选择分类">
  27. <el-option v-for="(item, index) in cateLists" :key="item.index" :label="item.title" :value="item.id">{{item.title}}</el-option>
  28. </el-select>
  29. </el-form-item>
  30. <el-form-item label="选择商品:" required label-width="160px">
  31. <com-dialog-select :multiple="true" :extra-search="{from:'lucky_group'}" @selected="goodsSelect" title="商品选择">
  32. <el-button type="primary">选择商品</el-button>
  33. </com-dialog-select>
  34. <el-table max-height="400" :data="goods_list" size="small" stripe border style="width: 100%;margin-top: 20px;">
  35. <el-table-column type="index" label="序号" align="center" width="60">
  36. </el-table-column>
  37. <el-table-column prop="goods_id" label="商品id" align="center" min-width="80">
  38. </el-table-column>
  39. <el-table-column label="商品信息" min-width="150">
  40. <template slot-scope="scope">
  41. <div style="display: flex;align-items: center;">
  42. <el-image fit="cover" :src="scope.row.cover_pic" style="width: 40px;height: 40px;display: block;margin-right: 5px;flex-shrink: 0;"></el-image>
  43. <div>
  44. <div>{{scope.row.goods_name}}</div>
  45. </div>
  46. </div>
  47. </template>
  48. </el-table-column>
  49. <el-table-column prop="price" label="售价(元)" align="center" min-width="80">
  50. </el-table-column>
  51. <el-table-column label="商品状态" align="center" min-width="80">
  52. <template slot-scope="scope">
  53. <el-tag type="success" effect="dark" v-if="scope.row.status == 1">销售中</el-tag>
  54. <el-tag type="danger" effect="dark" v-else>下架</el-tag>
  55. </template>
  56. </el-table-column>
  57. <el-table-column prop="goods_stock" label="库存" align="center" min-width="80">
  58. </el-table-column>
  59. <el-table-column prop="num" label="操作" align="center" min-width="80">
  60. <template slot-scope="scope">
  61. <el-button type="danger" @click="delFun(scope.$index)">删除</el-button>
  62. </template>
  63. </el-table-column>
  64. </el-table>
  65. </el-form-item>
  66. <el-form-item label="活动时间:" label-width="160px" prop="activityTime" :rules="[{ type: 'array',required: true, message: '请输入活动时间', trigger: 'change' }]">
  67. <template>
  68. <el-time-picker is-range v-model="formData.activityTime" range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" placeholder="选择时间范围" @change="setActivityTime"></el-time-picker>
  69. </template>
  70. </el-form-item>
  71. <br />
  72. <br />
  73. <!-- <el-form-item label="开团规则:" required label-width="160px">
  74. <template>
  75. <el-radio-group v-model="formData.open_group_rule">
  76. <el-radio :label="0">会员数量</el-radio>
  77. <el-radio :label="1">按订单</el-radio>
  78. </el-radio-group>
  79. </template>
  80. </el-form-item> -->
  81. <el-form-item label="成团人数:" label-width="160px" prop="group_num" :rules="[{ required: true, message: '请输入成团人数', trigger: 'blur' }]">
  82. <el-input placeholder="请输入成团人数" onkeyup="value=value.replace(/[^\d]/g,'')" style="width: 200px;" v-model="formData.group_num" :min="1" controls-position="right" @change="numberFilter('group_num')">
  83. </el-input>
  84. </el-form-item>
  85. <el-form-item label="随机拼中人数:" label-width="160px" prop="random_win_num" :rules="[{ required: true, message: '请输入随机拼中人数', trigger: 'blur' }]">
  86. <el-input placeholder="请输入随机拼中人数" onkeyup="value=value.replace(/[^\d]/g,'')" style="width: 200px;" v-model="formData.random_win_num" controls-position="right" :min="1" @change="numberFilter('random_win_num')"></el-input>
  87. </el-form-item>
  88. <el-form-item label="虚拟人数:" label-width="160px" prop="virtual_num" :rules="[{ required: true, message: '请输入虚拟人数', trigger: 'blur' }]">
  89. <el-input placeholder="请输入虚拟人数" onkeyup="value=value.replace(/[^\d]/g,'')" style="width: 200px;" v-model="formData.virtual_num" controls-position="right" :min="0"></el-input>
  90. </el-form-item>
  91. <br />
  92. <br />
  93. <el-form-item label="消耗类型:" required>
  94. <template v-for="currency in currency_list">
  95. <el-radio-group v-model="formData.expend_type">
  96. <el-radio :label="currency.code" style="margin-left: 5px;">{{currency.name}}</el-radio>
  97. </el-radio-group>
  98. </template>
  99. </el-form-item>
  100. <el-form-item label="" label-width="160px" prop="expend_num" :rules="[{ required: true, message: '拼团消耗数量不能为空'}]">
  101. <el-input placeholder="消耗数量" :min="0" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" style="width: 200px;" v-model="formData.expend_num" controls-position="right" :min="0"></el-input>
  102. </el-form-item>
  103. <br />
  104. <br />
  105. <div style="display: flex;align-items: center;padding-bottom: 10px;border-bottom: 1px solid #E4E7ED;width: 400px;margin:10px 0 20px 0;">
  106. <div style="width: 5px;height: 20px;background-color: #03C5FF;margin-right: 5px;"></div>
  107. <div>参团奖励</div>
  108. </div>
  109. <el-form-item label="参团奖励用户:" required label-width="160px">
  110. <template>
  111. <el-radio-group v-model="formData.attend_user_type">
  112. <el-radio :label="1">全部</el-radio>
  113. <el-radio :label="2">拼中</el-radio>
  114. <el-radio :label="3">拼不中</el-radio>
  115. </el-radio-group>
  116. </template>
  117. </el-form-item>
  118. <el-form-item label="参团奖励类型:" label-width="160px">
  119. <template v-for="currency in currency_list">
  120. <el-form-item :label="currency.name" label-width="60px">
  121. <template>
  122. <el-input placeholder="请输入奖励" style="width: 200px;" v-model="formData.attend_award_setting[currency.code]" @input="$forceUpdate()" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g,'$1')" :min="0">
  123. </el-input>
  124. </template>
  125. </el-form-item>
  126. </template>
  127. </el-form-item>
  128. <div style="display: flex;align-items: center;padding-bottom: 10px;border-bottom: 1px solid #E4E7ED;width: 400px;margin:10px 0 20px 0;">
  129. <div style="width: 5px;height: 20px;background-color: #03C5FF;margin-right: 5px;"></div>
  130. <div>拼中奖励</div>
  131. </div>
  132. <el-form-item label="累计拼中:" label-width="160px" prop="win_times" :rules="[{ required: true, message: '请输入累计拼中次数', trigger: 'blur' }]">
  133. <el-input placeholder="请输入累计拼中次数" onkeyup="value=value.replace(/[^\d]/g,'')" style="width: 200px;" v-model="formData.win_times" controls-position="right" :min="1"></el-input>
  134. </el-form-item>
  135. <el-form-item label="拼中奖励类型:" label-width="160px">
  136. <template v-for="currency in currency_list">
  137. <el-form-item :label="currency.name" label-width="60px">
  138. <template>
  139. <el-input placeholder="请输入奖励" style="width: 200px;" @input="$forceUpdate()" v-model="formData.win_award_setting[currency.code]" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" :min="0">
  140. </el-input>
  141. </template>
  142. </el-form-item>
  143. </template>
  144. </el-form-item>
  145. <br />
  146. <br />
  147. <div style="display: flex;align-items: center;padding-bottom: 10px;border-bottom: 1px solid #E4E7ED;width: 400px;margin:10px 0 20px 0;">
  148. <div style="width: 5px;height: 20px;background-color: #03C5FF;margin-right: 5px;"></div>
  149. <div>奖金池</div>
  150. </div>
  151. <el-form-item label="分配奖金池类型:" required label-width="160px">
  152. <template>
  153. <el-radio-group v-model="formData.is_percent_pool_trans">
  154. <el-radio :label="1">百分比</el-radio>
  155. <el-radio :label="0">固定金额</el-radio>
  156. </el-radio-group>
  157. </template>
  158. </el-form-item>
  159. <el-form-item label="分配奖金池:" required label-width="160px">
  160. <el-input placeholder="请输入分配奖金池金额" style="width: 200px;" v-model="formData.pool_trans_money" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')">
  161. <template slot="append" v-if="formData.is_percent_pool_trans == 1">%</template>
  162. <template slot="append" v-if="formData.is_percent_pool_trans == 0">元</template>
  163. </el-input>
  164. </el-form-item>
  165. <br />
  166. <br />
  167. <div style="display: flex;align-items: center;padding-bottom: 10px;border-bottom: 1px solid #E4E7ED;width: 400px;margin:10px 0 20px 0;">
  168. <div style="width: 5px;height: 20px;background-color: #03C5FF;margin-right: 5px;"></div>
  169. <div>拼团等级分佣</div>
  170. </div>
  171. <el-form-item label="开启拼团等级单独分佣:" required label-width="180px">
  172. <el-switch v-model="formData.enable_commison" :active-value="1" :inactive-value="0" active-text="开启" inactive-text="关闭"></el-switch>
  173. </el-form-item>
  174. <template v-if="formData.enable_commison == 1" flex="dir:left cross:center">
  175. <el-form-item label="渠道奖佣金配置:" required label-width="160px">
  176. <el-table :data="formData.team_commission_setting" border style="width: 300px;" border>
  177. <el-table-column label="拼团等级" prop="level">
  178. <template slot-scope="scope">
  179. <div size="small">{{level_list[scope.row.level].name}}</div>
  180. </template>
  181. </el-table-column>
  182. <el-table-column prop="team_commission" label="提成">
  183. <template slot-scope="scope">
  184. <el-input v-model="scope.row.team_commission" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')">
  185. <template slot="append">元</template>
  186. </el-input>
  187. </template>
  188. </el-table-column>
  189. </el-table>
  190. </el-form-item>
  191. <el-form-item label="平级奖佣金配置:" required label-width="160px">
  192. <el-table :data="formData.equal_commission_setting" border style="width: 300px;" border>
  193. <el-table-column label="拼团等级" prop="level">
  194. <template slot-scope="scope">
  195. <div size="small">{{level_list[scope.row.level].name}}</div>
  196. </template>
  197. </el-table-column>
  198. <el-table-column prop="equal_commission" label="提成">
  199. <template slot-scope="scope">
  200. <el-input v-model="scope.row.equal_commission" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')">
  201. <template slot="append">元</template>
  202. </el-input>
  203. </template>
  204. </el-table-column>
  205. </el-table>
  206. </el-form-item>
  207. <el-form-item label="越级奖佣金配置:" required label-width="160px">
  208. <el-table :data="formData.over_commission_setting" border style="width: 300px;" border>
  209. <el-table-column label="拼团等级" prop="level">
  210. <template slot-scope="scope">
  211. <div size="small">{{level_list[scope.row.level].name}}</div>
  212. </template>
  213. </el-table-column>
  214. <el-table-column prop="over_commission" label="提成">
  215. <template slot-scope="scope">
  216. <el-input v-model="scope.row.over_commission" onkeyup="value=value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')">
  217. <template slot="append">元</template>
  218. </el-input>
  219. </template>
  220. </el-table-column>
  221. </el-table>
  222. </el-form-item>
  223. </template>
  224. </el-col>
  225. </el-row>
  226. </div>
  227. </el-card>
  228. </el-form>
  229. <el-button :disabled="formData.activity_status==2" :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;" @click="save" size="small">
  230. 保存
  231. </el-button>
  232. <span v-if="formData.activity_status==2" style="margin-left: 15px;color:red;"> * 活动正在进行中,暂不能修改相关设置 * </span>
  233. <!-- <el-button :loading="btnLoading" class="button-item" type="primary" style="margin-top: 24px;" @click="save" size="small">保存</el-button> -->
  234. </div>
  235. </el-card>
  236. </div>
  237. <script>
  238. const app = new Vue({
  239. el: '#app',
  240. data() {
  241. return {
  242. level_list: {
  243. 1: {
  244. level: 1,
  245. name: "普通会员"
  246. }
  247. },
  248. formData: {
  249. title: '',
  250. start_time: '00:00:00',
  251. end_time: '23:59:59',
  252. group_num: 1,
  253. random_win_num: 1,
  254. virtual_num: 0,
  255. expend_type: 'score',
  256. expend_num: 0,
  257. attend_user_type: 3,
  258. attend_award_setting: {
  259. 'score': 0,
  260. 'balance': 0,
  261. },
  262. win_times: 1,
  263. win_award_setting: {
  264. 'score': 0,
  265. 'balance': 0,
  266. },
  267. is_percent_pool_trans: 1,
  268. pool_trans_money: 0,
  269. enable_commison: 0,
  270. is_percent_team: 0,
  271. team_commission_setting: [
  272. // {level: 1,team_commission: 0},
  273. // {level: 2,team_commission: 0},
  274. // {level: 3,team_commission: 0},
  275. // {level: 4,team_commission: 0},
  276. ],
  277. equal_commission_setting: [
  278. // {level: 1,equal_commission: 0},
  279. // {level: 2,equal_commission: 0},
  280. // {level: 3,equal_commission: 0},
  281. ],
  282. over_commission_setting: [
  283. // {level: 1,over_commission: 0},
  284. // {level: 2,over_commission: 0},
  285. // {level: 3,over_commission: 0},
  286. ],
  287. goods_ids: '',
  288. activityTime: [new Date(2021, 9, 10, 00, 00, 00), new Date(2021, 9, 10, 23, 59, 59)],
  289. },
  290. loading: false,
  291. btnLoading: false,
  292. goods_list: [],
  293. currency_list: [{
  294. "code": "score",
  295. "name": "积分"
  296. },
  297. {
  298. "code": "balance",
  299. "name": "余额"
  300. },
  301. ],
  302. rules: {},
  303. cateLists: [{
  304. id: 1,
  305. sort: 1,
  306. title: '分类1'
  307. }],
  308. // 已经在别的活动里面的 goods_ids
  309. activity_goods_ids: [],
  310. }
  311. },
  312. mounted: function() {
  313. if (getQuery('id')) {
  314. this.titleName = "编辑店铺等级";
  315. this.formData.id = getQuery('id');
  316. this.loadData(getQuery('id')); //请求详情的数据
  317. } else {
  318. this.loadData();
  319. }
  320. },
  321. methods: {
  322. //拼团活动时间设置
  323. setActivityTime(params) {
  324. console.log('this.activityTime:', this.formData.activityTime);
  325. if (params) {
  326. let begin = params[0];
  327. let end = params[1];
  328. this.formData.start_time = dateFormat('HH:MM:SS', begin);
  329. this.formData.end_time = dateFormat('HH:MM:SS', end);
  330. console.log(this.formData);
  331. } else {
  332. this.formData.start_time = '';
  333. this.formData.end_time = '';
  334. }
  335. },
  336. // 选中商品处理
  337. goodsSelect(param) {
  338. for (let j in param) {
  339. let item = param[j];
  340. let flag = true;
  341. if (this.activity_goods_ids.indexOf(item.id) != -1) {
  342. this.$message.error('商品 [' + item.goods_name + '] 已经在其他活动中关联,请选择其他商品');
  343. return false;
  344. }
  345. for (let i in this.goods_list) {
  346. if (this.goods_list[i].goods_id == item.id) {
  347. flag = false;
  348. break;
  349. }
  350. }
  351. if (flag) {
  352. this.goods_list.push({
  353. goods_id: item.id,
  354. price: item.price,
  355. status: item.status,
  356. goods_stock: item.stock,
  357. goods_name: item.goods_name,
  358. cover_pic: item.cover_pic,
  359. });
  360. }
  361. }
  362. },
  363. // 删除商品
  364. delFun(index) {
  365. this.goods_list.splice(index, 1)
  366. },
  367. save() {
  368. let arr = []
  369. let arrs = []
  370. let forNum = this.goods_list.length;
  371. for (let i = 0; i < forNum; i++) {
  372. let item = this.goods_list[i];
  373. if (this.activity_goods_ids.indexOf(item.goods_id) != -1) {
  374. this.$message.error('商品 [' + item.goods_name + '] 已经在其他活动中关联,请选择其他商品');
  375. return false;
  376. }
  377. arr.push(item.goods_id)
  378. }
  379. this.formData.goods_ids = arr.join(',');
  380. for (let key in this.formData.attend_award_setting) {
  381. // console.log('=====: ', key);
  382. this.formData.attend_award_setting[key] = Math.abs(this.formData.attend_award_setting[key]);
  383. }
  384. for (let key in this.formData.win_award_setting) {
  385. // console.log('=====: ', key);
  386. this.formData.win_award_setting[key] = Math.abs(this.formData.win_award_setting[key]);
  387. }
  388. this.formData.group_num = Math.abs(this.formData.group_num);
  389. this.formData.random_win_num = Math.abs(this.formData.random_win_num);
  390. this.formData.virtual_num = Math.abs(this.formData.virtual_num);
  391. this.formData.expend_num = Math.abs(this.formData.expend_num);
  392. this.formData.win_times = Math.abs(this.formData.win_times);
  393. this.formData.pool_trans_money = Math.abs(this.formData.pool_trans_money);
  394. this.formData.pool_trans_money = Math.abs(this.formData.pool_trans_money);
  395. for (let index in this.formData.equal_commission_setting) {
  396. this.formData.equal_commission_setting[index].equal_commission = Math.abs(this.formData.equal_commission_setting[index].equal_commission);
  397. }
  398. for (let index in this.formData.over_commission_setting) {
  399. this.formData.over_commission_setting[index].over_commission = Math.abs(this.formData.over_commission_setting[index].over_commission);
  400. }
  401. for (let index in this.formData.team_commission_setting) {
  402. this.formData.team_commission_setting[index].team_commission = Math.abs(this.formData.team_commission_setting[index].team_commission);
  403. }
  404. // console.log(this.formData);return null;
  405. this.$refs['ruleForm'].validate((valid) => {
  406. if (valid) {
  407. if (!this.formData.goods_ids) return this.$message.error("请选择商品");
  408. this.formData.virtual_num = parseInt(this.formData.virtual_num);
  409. this.formData.group_num = parseInt(this.formData.group_num);
  410. this.formData.random_win_num = parseInt(this.formData.random_win_num);
  411. if (this.formData.random_win_num >= this.formData.group_num) {
  412. this.$message.error("随机拼中人数必须小于成团人数");
  413. return false;
  414. }
  415. if (this.formData.virtual_num >= this.formData.group_num) return this.$message.error("虚拟人数必须小于成团人数");
  416. if (this.formData.group_num > 99999999) {
  417. this.$message.error("成团人数必须小于 99999999");
  418. return false;
  419. }
  420. if (this.formData.random_win_num > 99999999) {
  421. this.$message.error("随机拼中人数必须小于 99999999");
  422. return false;
  423. }
  424. if (this.formData.virtual_num > 99999999) {
  425. this.$message.error("虚拟人数必须小于 99999999");
  426. return false;
  427. }
  428. if (this.btnLoading) return;
  429. this.btnLoading = true;
  430. request({
  431. params: {
  432. r: 'lucky-group/group-activity/storage',
  433. },
  434. method: 'post',
  435. data: this.formData
  436. }).then(e => {
  437. this.btnLoading = false;
  438. if (e.data.code == 0) {
  439. this.$navigate({
  440. r: 'lucky-group/group-activity/index'
  441. })
  442. this.$message.success(e.data.msg);
  443. } else {
  444. this.btnLoading = false;
  445. this.$message.error(e.data.msg);
  446. }
  447. }).catch(e => {
  448. console.log(e);
  449. this.$message.error('网络错误');
  450. this.btnLoading = false;
  451. })
  452. } else {
  453. this.$message.error('请填写必要的参数!');
  454. return false;
  455. }
  456. });
  457. },
  458. loadData(id) {
  459. if (this.loading === true) return;
  460. this.loading = true;
  461. request({
  462. params: {
  463. r: 'lucky-group/group-activity/storage',
  464. id: id
  465. },
  466. method: 'get'
  467. }).then(e => {
  468. // console.log('======== loadData result: ', e);
  469. this.loading = false;
  470. if (e.data.code == 0) {
  471. if (!JSON.stringify(e.data.data.level_list)) {
  472. this.$message.error('请先添加拼团等级');
  473. setTimeout(() => {
  474. this.$navigate({
  475. r: 'lucky-group/group-level/storage'
  476. })
  477. }, 1000);
  478. return false;
  479. }
  480. if (!e.data.data.activity_cates.length) {
  481. this.$message.error('请先活动添加分类');
  482. setTimeout(() => {
  483. this.$navigate({
  484. r: 'lucky-group/group-category/storage'
  485. })
  486. }, 1000);
  487. return false;
  488. }
  489. this.activity_goods_ids = e.data.data.activity_goods_ids;
  490. this.cateLists = e.data.data.activity_cates;
  491. this.level_list = e.data.data.level_list;
  492. this.currency_list = e.data.data.currency_list;
  493. this.goods_list = e.data.data.goods_list;
  494. if (e.data.data.activity.id) {
  495. this.formData = e.data.data.activity;
  496. // this.formData.activityTime = [new Date(e.data.data.start_time), new Date(e.data.data.end_time)];
  497. if (e.data.data.attend_award_setting) {
  498. let attend_award_setting = JSON.parse(e.data.data.attend_award_setting);
  499. this.formData.attend_award_setting = Object.assign(this.formData.attend_award_setting, attend_award_setting);
  500. }
  501. //拼中奖励
  502. if (e.data.data.win_award_setting) {
  503. let win_award_setting = JSON.parse(e.data.data.win_award_setting);
  504. this.formData.win_award_setting = Object.assign(this.formData.win_award_setting, win_award_setting);
  505. }
  506. //奖金池
  507. if (e.data.data.is_percent_pool_trans === 0 || e.data.data.is_percent_pool_trans === 1) {
  508. this.formData.is_percent_pool_trans = e.data.data.is_percent_pool_trans;
  509. }
  510. if (e.data.data.win_basic_setting) {
  511. let win_basic_setting = JSON.parse(e.data.data.win_basic_setting);
  512. if (win_basic_setting) this.formData.win_basic_setting = win_basic_setting;
  513. }
  514. if (this.formData.activity_status == 2) {
  515. this.$alert('当前活动正在进行中,将不能修改相关配置', '提示', {
  516. confirmButtonText: '确定',
  517. type: 'warning',
  518. callback: action => {}
  519. });
  520. }
  521. }
  522. // 等级分佣列表
  523. this.initLevelSetting();
  524. }
  525. }).catch(e => {
  526. this.loading = false;
  527. })
  528. },
  529. //初始化等级设置
  530. initLevelSetting() {
  531. let that = this;
  532. let level_list = Object.values(this.level_list);
  533. // console.log('level_list: ', level_list);
  534. level_list.forEach((level_item, level_key) => {
  535. let init_team_commission_item = {
  536. level: level_item.level,
  537. team_commission: 0,
  538. };
  539. let init_equal_commission_item = {
  540. level: level_item.level,
  541. equal_commission: 0,
  542. };
  543. let init_over_commission_item = {
  544. level: level_item.level,
  545. over_commission: 0,
  546. };
  547. let team_exist = false;
  548. let equal_exist = false;
  549. let over_exist = false;
  550. try {
  551. this.formData.team_commission_setting.forEach((attend_item, attend_key) => {
  552. if ((attend_item.level === 0 || attend_item.level) && attend_item.level == level_item.level) {
  553. team_exist = true;
  554. throw new Error("break");
  555. }
  556. });
  557. } catch (e) {
  558. if (e.message != "break") throw e;
  559. };
  560. try {
  561. this.formData.equal_commission_setting.forEach((attend_item, attend_key) => {
  562. if ((attend_item.level === 0 || attend_item.level) && attend_item.level == level_item.level) {
  563. equal_exist = true;
  564. throw new Error("break");
  565. }
  566. });
  567. } catch (e) {
  568. if (e.message != "break") throw e;
  569. };
  570. try {
  571. this.formData.over_commission_setting.forEach((attend_item, attend_key) => {
  572. if ((attend_item.level === 0 || attend_item.level) && attend_item.level == level_item.level) {
  573. over_exist = true;
  574. throw new Error("break");
  575. }
  576. });
  577. } catch (e) {
  578. if (e.message != "break") throw e;
  579. };
  580. if (team_exist === false) this.formData.team_commission_setting.push(init_team_commission_item);
  581. if (equal_exist === false) this.formData.equal_commission_setting.push(init_equal_commission_item);
  582. if (over_exist === false) this.formData.over_commission_setting.push(init_over_commission_item);
  583. });
  584. },
  585. // 成团人数和拼中人数 数值过滤、处理
  586. numberFilter(name) {
  587. console.log('ffffffffffffffff: ', name);
  588. val = Math.abs(this.formData[name]);
  589. if (val < 1) {
  590. val = 1;
  591. }
  592. if ('group_num' == name) {
  593. this.formData.group_num = val;
  594. } else if ('random_win_num' == name) {
  595. this.formData.random_win_num = val;
  596. }
  597. },
  598. },
  599. });
  600. </script>
  601. <style>
  602. .form_box {
  603. /* background-color: #f3f3f3;
  604. padding: 0 0 20px; */
  605. background-color: #fff;
  606. padding: 20px;
  607. }
  608. .button-item {
  609. margin-top: 12px;
  610. padding: 9px 25px;
  611. }
  612. .el-input-group__append {
  613. background-color: #fff;
  614. color: #353535;
  615. }
  616. .el-card__body {
  617. padding: 0;
  618. }
  619. .el-card {
  620. border: none;
  621. }
  622. .el-table thead {
  623. font-size: 14px;
  624. color: #333;
  625. }
  626. /* .el-table__footer-wrapper, .el-table__header-wrapper{
  627. border-bottom: 1.4px solid #D6D6D6;
  628. } */
  629. .dialogClass .el-dialog__body {
  630. padding-bottom: 0;
  631. }
  632. .el-date-editor .el-range-separator {
  633. /* 设置选择日期框的中间的 ‘至’ 的宽度 */
  634. width: 8%;
  635. }
  636. .el-textarea__inner {
  637. display: block;
  638. resize: vertical;
  639. padding: 5px 15px !important;
  640. }
  641. .el-input-number .el-input__inner {
  642. text-align: left;
  643. }
  644. /* .edui-default .edui-editor{
  645. height: 250px;
  646. } */
  647. </style>