bztang-admin/plugins/weight-value/views/widget/marketing/weight_value.js

300 lines
17 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

define({
name:"weight_value",
template:`
<div class="weight_value">
<el-form>
<div style="margin:0 auto;width:80%;">
<el-form-item label="是否开启" label-width="155px">
<el-radio v-model="json.is_open" :label="0">关闭</el-radio>
<el-radio v-model="json.is_open" :label="1">开启</el-radio>
<div class="form-item_tips">仅存在经销商身份的用户可以获得权重值</div>
<div class="form-item_tips">代理商:仅距离最近的第一个代理商有奖励</div>
</el-form-item>
</div>
<template v-if="json.is_open == 1">
<div style="margin:0 auto;width:80%;">
<el-form-item label="是否开启自购" label-width="155px">
<el-radio v-model="json.is_self_purchase" :label="0">不开启</el-radio>
<el-radio v-model="json.is_self_purchase" :label="1">开启</el-radio>
<div class="form-item_tips">开启:当前用户购买后根据当前用户的经销商等级进行赠送</div>
</el-form-item>
</div>
<div class="vue-main-title">
<div class="vue-main-title-left"></div>
<div class="vue-main-title-content">经纪人权重值设置</div>
</div>
<div style="margin:0 auto;width:80%;">
<el-form-item label="赠送方式" label-width="155px">
<el-radio v-model="json.gift_type" :label="0">普通赠送</el-radio>
<el-radio v-model="json.gift_type" :label="1">阶梯赠送</el-radio>
<div class="form-item_tips">普通赠送:赠送指定的权重值</div>
<div class="form-item_tips">阶梯赠送:根据用户成为经销商的时间顺序排序,获取对应的权重值;超过最大名次则不赠送权重值</div>
</el-form-item>
<el-form-item label="赠送级别" label-width="155px">
<el-radio v-model="json.lv_type" :label="0">二级</el-radio>
<el-radio v-model="json.lv_type" :label="1">三级</el-radio>
<div class="form-item_tips">二级:赠送购买人上级</div>
<div class="form-item_tips">三级:赠送购买人上级、购买人上级的上级</div>
</el-form-item>
<el-form-item label="计算类型" label-width="155px">
<el-radio v-model="json.calculation_type" :label="0">固定值</el-radio>
<el-radio v-model="json.calculation_type" :label="1">支付比例</el-radio>
<div class="form-item_tips">固定值:指定数量,支付比例:当前商品实际支付的比例</div>
</el-form-item>
<el-form-item label="赠送数量" v-if="json.gift_type != 1" label-width="155px" prop="quantity">
<el-input v-model.trim="json.quantity" maxlength="300" type="number" style="width: 300px;">
<template slot="append">{{ json.calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<div class="form-item_tips">如果设置为空或者0则不赠送权重值</div>
</el-form-item>
<el-form-item label="阶梯赠送" v-else label-width="155px">
<div class="ladder-content">
<div class="ladder-row" v-for="(item,index) in json.ladder" :key="index">
<el-form-item>
<el-input class="ladder-input" v-model="json.ladder[index]['where']" placeholder="名次" type="number">
<template slot="prepend">小于等于</template>
<template slot="append">名</template>
</el-input>
<el-input class="ladder-input" v-model="json.ladder[index]['num']" placeholder="权重值" type="number">
<template slot="prepend">赠送</template>
<template slot="append">{{ json.calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<el-button type="danger" size="medium" @click="delLadder(index)">删除</el-button>
</el-form-item>
</div>
<el-button type="primary" @click="addLadder">增加阶梯</el-button>
<div class="form-item_tips">例如设置小于等于10赠送100权重值小于等于32赠送120权重值。则第1~10位经销商赠送100权重值第11~32位经销商赠送120权重值第33位及之后所有经销商均不赠送权重值</div>
</div>
</el-form-item>
</div>
<div class="vue-main-title">
<div class="vue-main-title-left"></div>
<div class="vue-main-title-content">代理商权重值设置</div>
</div>
<div style="margin:0 auto;width:80%;">
<el-form-item label="赠送方式" label-width="155px">
<el-radio v-model="json.agent_gift_type" :label="0">普通赠送</el-radio>
<el-radio v-model="json.agent_gift_type" :label="1">阶梯赠送</el-radio>
<div class="form-item_tips">普通赠送:赠送指定的权重值</div>
<div class="form-item_tips">阶梯赠送:根据用户成为经销商的时间顺序排序,获取对应的权重值;超过最大名次则不赠送权重值</div>
</el-form-item>
<el-form-item label="计算类型" label-width="155px">
<el-radio v-model="json.agent_calculation_type" :label="0">固定值</el-radio>
<el-radio v-model="json.agent_calculation_type" :label="1">支付比例</el-radio>
<div class="form-item_tips">固定值:指定数量,支付比例:当前商品实际支付的比例</div>
</el-form-item>
<el-form-item label="赠送数量" v-if="json.agent_gift_type != 1" label-width="155px" prop="quantity">
<el-input v-model.trim="json.agent_quantity" maxlength="300" type="number" style="width: 300px;">
<template slot="append">{{ json.agent_calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<div class="form-item_tips">如果设置为空或者0则不赠送权重值</div>
</el-form-item>
<el-form-item label="阶梯赠送" v-else label-width="155px">
<div class="ladder-content">
<div class="ladder-row" v-for="(item,index) in json.agent_ladder" :key="index">
<el-form-item>
<el-input class="ladder-input" v-model="json.agent_ladder[index]['where']" placeholder="名次" type="number">
<template slot="prepend">小于等于</template>
<template slot="append">名</template>
</el-input>
<el-input class="ladder-input" v-model="json.agent_ladder[index]['num']" placeholder="权重值" type="number">
<template slot="prepend">赠送</template>
<template slot="append">{{ json.agent_calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<el-button type="danger" size="medium" @click="delLadder(index,'agent')">删除</el-button>
</el-form-item>
</div>
<el-button type="primary" @click="addLadder('agent')">增加阶梯</el-button>
<div class="form-item_tips">例如设置小于等于10赠送100权重值小于等于32赠送120权重值。则第1~10位经销商赠送100权重值第11~32位经销商赠送120权重值第33位及之后所有经销商均不赠送权重值</div>
</div>
</el-form-item>
</div>
<div class="vue-main-title">
<div class="vue-main-title-left"></div>
<div class="vue-main-title-content">省公司权重值设置</div>
</div>
<div style="margin:0 auto;width:80%;">
<el-form-item label="赠送方式" label-width="155px">
<el-radio v-model="json.province_gift_type" :label="0">普通赠送</el-radio>
<el-radio v-model="json.province_gift_type" :label="1">阶梯赠送</el-radio>
<div class="form-item_tips">普通赠送:赠送指定的权重值</div>
<div class="form-item_tips">阶梯赠送:根据用户成为经销商的时间顺序排序,获取对应的权重值;超过最大名次则不赠送权重值</div>
</el-form-item>
<el-form-item label="计算类型" label-width="155px">
<el-radio v-model="json.province_calculation_type" :label="0">固定值</el-radio>
<el-radio v-model="json.province_calculation_type" :label="1">支付比例</el-radio>
<div class="form-item_tips">固定值:指定数量,支付比例:当前商品实际支付的比例</div>
</el-form-item>
<el-form-item label="赠送数量" v-if="json.province_gift_type != 1" label-width="155px" prop="quantity">
<el-input v-model.trim="json.province_quantity" maxlength="300" type="number" style="width: 300px;">
<template slot="append">{{ json.province_calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<div class="form-item_tips">如果设置为空或者0则不赠送权重值</div>
</el-form-item>
<el-form-item label="阶梯赠送" v-else label-width="155px">
<div class="ladder-content">
<div class="ladder-row" v-for="(item,index) in json.province_ladder" :key="index">
<el-form-item>
<el-input class="ladder-input" v-model="json.province_ladder[index]['where']" placeholder="名次" type="number">
<template slot="prepend">小于等于</template>
<template slot="append">名</template>
</el-input>
<el-input class="ladder-input" v-model="json.province_ladder[index]['num']" placeholder="权重值" type="number">
<template slot="prepend">赠送</template>
<template slot="append">{{ json.province_calculation_type == 0 ? '权重值' : '%' }}</template>
</el-input>
<el-button type="danger" size="medium" @click="delLadder(index,'province')">删除</el-button>
</el-form-item>
</div>
<el-button type="primary" @click="addLadder('province')">增加阶梯</el-button>
<div class="form-item_tips">例如设置小于等于10赠送100权重值小于等于32赠送120权重值。则第1~10位经销商赠送100权重值第11~32位经销商赠送120权重值第33位及之后所有经销商均不赠送权重值</div>
</div>
</el-form-item>
</div>
</template>
</el-form>
</div>
`,
style:`
.ladder-content{
min-width: 550px!important;
}
.ladder-content .ladder-row{
margin-bottom: 5px!important;
}
.ladder-content .ladder-row .ladder-input{
width: 230px!important;
}
`,
props: {
form: {
default() {
return {}
}
}
},
data() {
return {
json: {
is_open: 0,// 是否开启购买商品赠送权重值0=未开启1=开启
is_self_purchase: 0,// 是否开启自购0=不开启1=开启
gift_type: 0,// 赠送方式0=赠送固定值1=阶梯值赠送
lv_type: 0,// 赠送方式0=二级1=三级
calculation_type: 0,// 计算类型0=固定值1=支付比例
quantity: 0,// 赠送数量
ladder: {},// 阶梯赠送信息
agent_gift_type: 0,// 赠送方式0=赠送固定值1=阶梯值赠送
agent_calculation_type: 0,// 计算类型0=固定值1=支付比例
agent_quantity: 0,// 赠送数量
agent_ladder: {},// 阶梯赠送信息
province_gift_type: 0,// 赠送方式0=赠送固定值1=阶梯值赠送
province_calculation_type: 0,// 计算类型0=固定值1=支付比例
province_quantity: 0,// 赠送数量
province_ladder: {},// 阶梯赠送信息
}
}
},
watch: { },
mounted() {
if (this.form) {
let weight_value = this.form || {};
console.log('商品权重值设置信息');
console.log(weight_value);
this.json.is_open = weight_value.is_open ? weight_value.is_open : 0;
this.json.is_self_purchase = weight_value.is_self_purchase ? weight_value.is_self_purchase : 0;
this.json.gift_type = weight_value.gift_type ? weight_value.gift_type : 0;
this.json.lv_type = weight_value.lv_type ? weight_value.lv_type : 0;
this.json.calculation_type = weight_value.calculation_type ? weight_value.calculation_type : 0;
this.json.quantity = weight_value.quantity ? weight_value.quantity : 0;
this.json.ladder = weight_value.ladder ? JSON.parse(weight_value.ladder) : {};
this.json.agent_gift_type = weight_value.agent_gift_type ? weight_value.agent_gift_type : 0;
this.json.agent_calculation_type = weight_value.agent_calculation_type ? weight_value.agent_calculation_type : 0;
this.json.agent_quantity = weight_value.agent_quantity ? weight_value.agent_quantity : 0;
this.json.agent_ladder = weight_value.agent_ladder ? JSON.parse(weight_value.agent_ladder) : {};
this.json.province_gift_type = weight_value.province_gift_type ? weight_value.province_gift_type : 0;
this.json.province_calculation_type = weight_value.province_calculation_type ? weight_value.province_calculation_type : 0;
this.json.province_quantity = weight_value.province_quantity ? weight_value.province_quantity : 0;
this.json.province_ladder = weight_value.province_ladder ? JSON.parse(weight_value.province_ladder) : {};
}
},
methods:{
addLadder(type = ''){
if(type === 'agent') this.json.agent_ladder = Object.values(this.json.agent_ladder).concat({where: '', num: ''});
else if(type === 'province') this.json.province_ladder = Object.values(this.json.province_ladder).concat({where: '', num: ''});
else this.json.ladder = Object.values(this.json.ladder).concat({where: '', num: ''});
},
delLadder(index,type = ''){
let ladder = {};
if(type === 'agent') ladder = Object.assign({},this.json.agent_ladder);
else if(type === 'province') ladder = Object.assign({},this.json.province_ladder);
else ladder = Object.assign({},this.json.ladder);
delete ladder[index];
if(type === 'agent') this.json.agent_ladder = Object.values(ladder);
else if(type === 'province') this.json.province_ladder = Object.values(ladder);
else this.json.ladder = Object.values(ladder);
},
validate(){
let json = this.json;
// console.log("权重值信息处理 - validate");
// console.log(json);
if(parseInt(json.calculation_type) === 1){
if(json.gift_type == 1){
let isPass = false;
Object.values(json.ladder).forEach((item,index)=>{
if(item.num <= 0 || item.num > 100) isPass = true;
});
if(isPass) {
this.$message.error('经纪人设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}else{
if(json.quantity <= 0 || json.quantity > 100){
this.$message.error('经纪人设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}
}
if(parseInt(json.agent_calculation_type) === 1){
if(json.agent_gift_type == 1){
let isPass = false;
Object.values(json.agent_ladder).forEach((item,index)=>{
if(item.num <= 0 || item.num > 100) isPass = true;
});
if(isPass) {
this.$message.error('代理商设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}else{
if(json.agent_quantity <= 0 || json.agent_quantity > 100){
this.$message.error('代理商设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}
}
if(parseInt(json.province_calculation_type) === 1){
if(json.province_gift_type == 1){
let isPass = false;
Object.values(json.province_ladder).forEach((item,index)=>{
if(item.num <= 0 || item.num > 100) isPass = true;
});
if(isPass) {
this.$message.error('省公司设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}else{
if(json.province_quantity <= 0 || json.province_quantity > 100){
this.$message.error('省公司设置-赠送数量比例不能小于等于0或者大于100')
return false
}
}
}
return this.json;
}
}
})