diff --git a/plugins/team-dividend/src/models/GoodsTeamDividend.php b/plugins/team-dividend/src/models/GoodsTeamDividend.php index cd19b3a7..7dbee96e 100644 --- a/plugins/team-dividend/src/models/GoodsTeamDividend.php +++ b/plugins/team-dividend/src/models/GoodsTeamDividend.php @@ -65,6 +65,12 @@ class GoodsTeamDividend extends BaseModel $data['has_dividend_rates'] = $data['has_dividend_rates'] ? serialize($data['has_dividend_rates']) : ''; $data['has_hierarchys'] = serialize($data['has_hierarchys']); $data['has_dividend_extra'] = $data['has_dividend_extra'] ? serialize($data['has_dividend_extra']) : ''; + $data['stages_month_list'] = $data['stages_month_list'] ? serialize($data['stages_month_list']) : ''; + $data['immediately'] = $data['immediately'] ? serialize($data['immediately']) : ''; + + $data['stages_type'] = $data['stages_type'] ? serialize($data['stages_type']) : ''; + $data['stages_num'] = $data['stages_num'] ? serialize($data['stages_num']) : ''; + $dividendModel->setRawAttributes($data); return $dividendModel->save(); } diff --git a/plugins/team-dividend/src/widgets/DividendVueWidget.php b/plugins/team-dividend/src/widgets/DividendVueWidget.php index e9afd5f5..03c9555f 100644 --- a/plugins/team-dividend/src/widgets/DividendVueWidget.php +++ b/plugins/team-dividend/src/widgets/DividendVueWidget.php @@ -31,6 +31,10 @@ class DividendVueWidget extends BaseGoodsWidget $item['has_dividend_rates'] = unserialize($item['has_dividend_rates']); $item['has_hierarchys'] = unserialize($item['has_hierarchys']); $item['has_dividend_extra'] = unserialize($item['has_dividend_extra']); + $item['stages_type'] = unserialize($item['stages_type']); + $item['stages_num'] = unserialize($item['stages_num']); + $item['stages_month_list'] = unserialize($item['stages_month_list']); + $item['immediately'] = unserialize($item['immediately']); $dividendLevel = TeamDividendLevelModel::getList()->get()->toArray(); foreach ($dividendLevel as $key=>$value) { @@ -41,6 +45,11 @@ class DividendVueWidget extends BaseGoodsWidget $dividendLevel[$key]['hierarchy'] = isset($item['has_hierarchys'][$value['id']]['hierarchy'])?$item['has_hierarchys'][$value['id']]['hierarchy']:''; //提成比例-额外奖励 $dividendLevel[$key]['ratio'] = isset($item['has_hierarchys'][$value['id']]['ratio'])?$item['has_hierarchys'][$value['id']]['ratio']:''; //提成比例-额外奖励 + + $dividendLevel[$key]['stages_type'] = isset($item['stages_type']['level_'.$value['id']])?$item['stages_type']['level_'.$value['id']]:''; + $dividendLevel[$key]['stages_num'] = isset($item['stages_num']['level_'.$value['id']])?$item['stages_num']['level_'.$value['id']]:''; + $dividendLevel[$key]['stages_month_list'] = isset($item['stages_month_list']['level_'.$value['id']])?$item['stages_month_list']['level_'.$value['id']]:''; + $dividendLevel[$key]['immediately'] = isset($item['immediately']['level_'.$value['id']])?$item['immediately']['level_'.$value['id']]:''; } $data['teamSet'] = $set; diff --git a/plugins/team-dividend/src/widgets/DividendWidget.php b/plugins/team-dividend/src/widgets/DividendWidget.php index 856e12df..1197a8e1 100644 --- a/plugins/team-dividend/src/widgets/DividendWidget.php +++ b/plugins/team-dividend/src/widgets/DividendWidget.php @@ -18,6 +18,10 @@ class DividendWidget extends Widget $item['has_dividend_rates'] = unserialize($item['has_dividend_rates']); $item['has_hierarchys'] = unserialize($item['has_hierarchys']); $item['has_dividend_extra'] = unserialize($item['has_dividend_extra']); + $item['stages_type'] = unserialize($item['stages_type']); + $item['stages_num'] = unserialize($item['stages_num']); + $item['stages_month_list'] = unserialize($item['stages_month_list']); + $item['immediately'] = unserialize($item['immediately']); $dividendLevel = TeamDividendLevelModel::getList()->get()->toArray(); return view('Yunshop\TeamDividend::admin.goods', [ diff --git a/plugins/team-dividend/views/widget/profit/dealerCommission.js b/plugins/team-dividend/views/widget/profit/dealerCommission.js index 6acd432e..de2a7f9c 100644 --- a/plugins/team-dividend/views/widget/profit/dealerCommission.js +++ b/plugins/team-dividend/views/widget/profit/dealerCommission.js @@ -64,7 +64,6 @@ define({ -
@@ -73,8 +72,64 @@ define({
- + + + 启用分月返佣 +
启用后,独立规则将失效;返佣规则将按照分月返佣规则返佣
+
+ + + +
经销商等级
+
+ +
佣金类型
+
+ +
分多少月
+
+
+
+ + +
{{level.level_name}}
+
+ + 百分比 + 固定金额 + + + + + + +
+ + + + + + + + + + +
+
+ 启用独立提成比例 @@ -156,6 +211,7 @@ define({ has_peers: 0, teamSet: {}, levelList: [], + is_stages: 0, } }, mounted(){ @@ -165,6 +221,8 @@ define({ this.is_hierarchy = this.form.item.is_hierarchy; this.has_dividend = this.form.item.has_dividend; this.has_peers = this.form.item.has_peers; + + this.is_stages = this.form.item.is_stages } this.teamSet = JSON.parse(JSON.stringify(this.form.teamSet !== null ? this.form.teamSet : {})); this.levelList = JSON.parse(JSON.stringify(this.form.dividendLevel)); @@ -179,9 +237,13 @@ define({ let pricesList = {}; let extraList = {}; let gradeList = {}; + let stagesTypeList = {}; + let stagesNumList = {}; + let stagesMonthList = {}; + let immediatelyList = {}; list.forEach((item, index) => { let key = 'level_' + item.id; - let {has_dividend_rates, has_dividend_prices, has_dividend_extra, hierarchy, ratio} = item; + let {has_dividend_rates, has_dividend_prices, has_dividend_extra, hierarchy, ratio, stages_type,stages_num, stages_month_list, immediately} = item; // 独立规则 if (this.has_dividend) { ratesList[key] = has_dividend_rates; @@ -191,6 +253,15 @@ define({ if (this.has_dividend && this.teamSet.is_extra_award == 1) { extraList[key] = has_dividend_extra; } + // 分期佣金 + if(this.is_stages){ + stagesTypeList[key] = stages_type; + stagesNumList[key] = stages_num; + stagesMonthList[key] = stages_month_list; + immediatelyList[key] = immediately; + } + + // 平级奖 if (this.has_peers) { gradeList[item.id] = { @@ -199,7 +270,7 @@ define({ } } }); - return {ratesList, pricesList, extraList, gradeList} + return {ratesList, pricesList, extraList, gradeList, stagesTypeList, stagesNumList, stagesMonthList, immediatelyList } }, validate () { let aggregate = this.filterList(this.levelList); @@ -213,9 +284,29 @@ define({ has_dividend_rates: aggregate.ratesList, has_dividend_prices: aggregate.pricesList, has_dividend_extra: aggregate.extraList, - has_hierarchys: aggregate.gradeList + has_hierarchys: aggregate.gradeList, + + is_stages: this.is_stages, + stages_type: aggregate.stagesTypeList, + stages_num: aggregate.stagesNumList, + stages_month_list: aggregate.stagesMonthList, + immediately: aggregate.immediatelyList } }, + changeMonth(index){ + let currentLevel = Object.assign({}, this.levelList[index]); + let stagesMonthList = currentLevel.stages_month_list || {}; + let stages_num = currentLevel.stages_num || 0; + let newStagesMonthList = {}; + for (stages_num;stages_num>0;stages_num--){ + newStagesMonthList[stages_num] = stagesMonthList[stages_num] || 0; + } + + currentLevel.stages_month_list = newStagesMonthList; + + this.$set(this.levelList, index,currentLevel); + this.$forceUpdate(); + } }, }) \ No newline at end of file