添加:商品编辑 - 经销商佣金 - 支持分月返佣
This commit is contained in:
parent
9fabc89f64
commit
794c057841
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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', [
|
||||
|
|
|
|||
|
|
@ -64,7 +64,6 @@ define({
|
|||
</el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
<el-row>
|
||||
<el-col :span="17" style="width:100%">
|
||||
<div class="help-block">
|
||||
|
|
@ -73,8 +72,64 @@ define({
|
|||
</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
|
||||
</el-form-item>
|
||||
<el-form-item label="分月返佣">
|
||||
<el-switch v-model="is_stages" :active-value="1" :inactive-value="0"></el-switch>
|
||||
<span>启用分月返佣</span>
|
||||
<div class="help-block">启用后,独立规则将失效;返佣规则将按照分月返佣规则返佣</div>
|
||||
</el-form-item>
|
||||
<el-form-item v-show="is_stages">
|
||||
<el-row :gutter="20" class="gutter">
|
||||
<el-col :span="6">
|
||||
<div class="grid-content bg-purple">经销商等级</div>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<div class="grid-content bg-purple">佣金类型</div>
|
||||
</el-col>
|
||||
<el-col :span="6">
|
||||
<div class="grid-content bg-purple">分多少月</div>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<div v-for="(level, index) in levelList" :key="level.id">
|
||||
<el-row :gutter="20" class="gutter">
|
||||
<el-col :span="6">
|
||||
<div class="grid-content bg-purple">{{level.level_name}}</div>
|
||||
</el-col>
|
||||
<el-col :span="12" class="flex-col">
|
||||
<el-radio v-model="level.stages_type" :label="0">百分比</el-radio>
|
||||
<el-radio v-model="level.stages_type" :label="1">固定金额</el-radio>
|
||||
</el-col>
|
||||
<el-col :span="6" class="flex-col">
|
||||
<el-input v-model="level.stages_num" @input="changeMonth(index)" maxlength="10" size="small " type="number">
|
||||
<template slot="append">期</template>
|
||||
</el-input>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="20" class="gutter">
|
||||
<el-input v-model.number="level.immediately"
|
||||
maxlength="10"
|
||||
size="small"
|
||||
type="number"
|
||||
style="width: 230px;float: left;margin-right: 10px;margin-bottom: 10px;"
|
||||
>
|
||||
<template slot="prepend">立即返佣</template>
|
||||
<template slot="append">{{ level.stages_type == 1 ? '元' : '%'}}</template>
|
||||
</el-input>
|
||||
<el-input
|
||||
v-for="(monthInfo,index) in level.stages_month_list"
|
||||
v-model.number="level.stages_month_list[index]"
|
||||
maxlength="10"
|
||||
size="small"
|
||||
type="number"
|
||||
style="width: 230px;float: left;margin-right: 10px;margin-bottom: 10px;"
|
||||
>
|
||||
<template slot="prepend">第 {{ index }} 月返佣</template>
|
||||
<template slot="append">{{ level.stages_type == 1 ? '元' : '%'}}</template>
|
||||
</el-input>
|
||||
</el-row>
|
||||
</div>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="平级奖独立规则">
|
||||
<el-switch v-model="has_peers" :active-value="1" :inactive-value="0"></el-switch>
|
||||
<span>启用独立提成比例</span>
|
||||
|
|
@ -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();
|
||||
}
|
||||
},
|
||||
|
||||
})
|
||||
Loading…
Reference in New Issue