Commit 1f2c61c6 by huaying

fix: 积分有效期修改

parent 8a53bc75
......@@ -88,9 +88,63 @@
<label></label>
</el-form-item>
<dm-sub-title type="fill" text="积分有效期" style="margin-bottom: 20px; margin-top:40px;"/>
<el-form-item label="有效期:" prop="effectiveTime" class="padding-0">
<label>自获取之日起</label>
<el-input v-model="ruleForm.effectiveTime" placeholder="请输入" @keyup.native="formatInput($event)"></el-input><label></label> <span style="font-size: 12px;color: #828282;line-height: 1;padding-left: 10px;">适用于所有方式获取的积分</span>
<el-form-item label="有效期:" prop="effectiveTime" class="padding-0" >
<el-tooltip placement="right" effect="light">
<div slot="content" style="line-height:20px">
<p style="color:#595959 font-size:14px;font-weight:600">规则说明:</p>
<p style="color:#e6a23c">
仅GIC计算积分时,配置的积分有效期才会生效,<br/>
ERP计算积分时,此配置项不生效;
</p>
<ul>
<li>1、永久有效:客户获取的积分永久有效,系统不会清零;</li>
<li>2、按年失效:在第X年的X月X日失效:例:设置第二年的12月1日失效,则2021年获取的所有积分在2022年12月1日失效;</li>
<li>3、按月失效:在第X个月的X日失效:例:设置第二月的1日失效,则3月获取的所有积分在4月1日失效;</li>
<li>4、按天失效:每天获取的所有积分在获取之日起365天后失效:例:设置365天,则2022年12月1号获取的积分在2023年12月1号失效;</li>
<li>5、修改积分有效期后,已经获取的积分有效期不变,后续获取的积分按照修改后的积分有效期生效;</li>
</ul>
</div>
<i class="iconfont icon-QuestionCircleOutlined" style="font-size:12px;color:#606266;"></i>
</el-tooltip>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 5px;">适用于所有方式获取的积分</span>
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="1" @change="radioExpireType1">永久有效</el-radio>
</div>
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="2" @change="radioExpireType1"><label>按年失效:</label></el-radio>
<label>每年获取的所有积分,在</label>
<el-select v-model="yearY" placeholder="请选择" style="width:120px;margin:0 10px;">
<el-option v-for="n in yearList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="yearM" placeholder="请选择" style="width:120px;margin:0 10px;">
<el-option v-for="n in 12" :key="n" :label="n" :value="n"></el-option>
</el-select>
<label></label>
<el-select v-model="yearD" placeholder="请选择" style="width:120px;margin:0 10px;">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="3" @change="radioExpireType1"><label>按月失效:</label></el-radio>
<label>每月获取的所有积分,在</label>
<el-select v-model="mouthM" placeholder="请选择" style="width:120px;margin:0 10px;">
<el-option v-for="n in mouthList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="mouthD" placeholder="请选择" style="width:120px;margin:0 10px;">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell">
<el-radio v-model="ruleForm.integralExpireType" label="0" @change="radioExpireType1"><label>按天失效:</label></el-radio>
<label>每天获取的所有积分,在获取之日起</label>
<el-input placeholder="请输入" v-model="ruleForm.effectiveTime" @keyup.native="formatInput($event)"></el-input>
<label>天后失效</label>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 10px;">建议不超过3年(1095天)</span>
</div>
</el-form-item>
<dm-sub-title type="fill" text="积分说明" style="margin-bottom: 20px; margin-top:40px;"/>
<el-form-item label="" label-width="0" prop="desc" class="margin-20">
......@@ -131,7 +185,40 @@ export default {
contactBool: Boolean
},
data() {
// 天数
const dayList = ()=> {
let arr = []
for(let i = 1; i < 28; i++){
arr.push({key: i,value: i})
}
arr.push({key: 0, value: '月末'})
return arr;
}
// 月数
const mouthList = ()=> {
let arr = []
for(let i = 2; i < 37; i++){
arr.push({key: i,value: `第${i}个月`})
}
return arr;
}
// 年数
const yearList = ()=> {
let arr = []
for(let i = 2; i < 5; i++){
arr.push({key: i,value: `第${i}年`})
}
return arr;
}
return {
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique',
// form
......@@ -168,7 +255,9 @@ export default {
integralUseDiscountControlUpper: undefined,
integralUseDiscountControlLower: undefined,
useProportionalRestriction: '90', //抵现比例限制
integralCost: { fee: undefined, integral: undefined } //积分成本
integralCost: { fee: undefined, integral: undefined }, //积分成本
integralExpireType: '1', //积分有效期类型 0 未默认滚动到期 1永久 2 按年失效 3按月失效
integralExpireRule: '', //积分有效期规则 年 x(年),x(月),x(日,为0标识月末) 月,x(月),x(日,为0标识月末)
},
rules: {
integralGetStatus: [
......@@ -177,9 +266,9 @@ export default {
integralUseStatus: [
{ required: true, message: '请选择抵现规则', trigger: 'blur' },
],
effectiveTime: [
{ required: true, message: '请填写有效期', trigger: 'blur' },
],
// effectiveTime: [
// { required: true, message: '请填写有效期', trigger: 'blur' },
// ],
// strategyName: [
// { required: true, message: '请填写策略名称', trigger: 'blur' },
// ],strategyName: [
......@@ -237,6 +326,31 @@ export default {
this.ruleForm.integralUseDiscountControlLower = undefined;
this.ruleForm.integralUseDiscountControlUpper =undefined;
},
radioExpireType1(e) {
if(e==0){
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
}else if(e==1) {
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
this.ruleForm.effectiveTime = undefined;
}else if (e==2) {
this.mouthM='';
this.mouthD='';
this.ruleForm.effectiveTime = undefined;
} else if (e == 3) {
this.yearY='';
this.yearM='';
this.yearD='';
this.ruleForm.effectiveTime = undefined;
}
},
// 保存
submitForm(formName) {
let that = this;
......@@ -274,7 +388,7 @@ export default {
return;
}
if (data.effectiveTime == '') {
if (String(data.integralExpireType)== 0 &&data.effectiveTime == '') {
// 积分有效期
that.$message.error({
duration: 1000,
......@@ -282,7 +396,7 @@ export default {
});
return;
} else {
if (parseInt(data.effectiveTime) < 1) {
if ( String(data.integralExpireType)== 0 &&parseInt(data.effectiveTime) < 1) {
that.$message.error({
duration: 1000,
message: '积分有效期不能低于最低限制'
......@@ -357,6 +471,19 @@ export default {
data.integralGet = JSON.stringify(data.integralGet)?JSON.stringify(data.integralGet):that.ruleForm.integralGet;
data.integralUse = JSON.stringify(data.integralUse)?JSON.stringify(data.integralUse):that.ruleForm.integralUse;
data.integralCost = JSON.stringify(data.integralCost)?JSON.stringify(data.integralCost):that.ruleForm.integralCost;
if( data.integralExpireType == 0){
data.integralExpireRule = ''
}else if(data.integralExpireType == 1) {
data.integralExpireRule = ''
delete data.effectiveTime
} else if(data.integralExpireType == 2) {
data.integralExpireRule = `${this.yearY},${this.yearM},${this.yearD}`
delete data.effectiveTime
}else if(data.integralExpireType == 3) {
data.integralExpireRule = `${this.mouthM},${this.mouthD}`
delete data.effectiveTime
}
that.saveInfo(data);
} else {
// log('error submit!!');
......@@ -442,34 +569,51 @@ export default {
// log("新数据:",newData,oldData)
that.repProjectName = newData || 'gic-web';
},
pointInfo: function(newData, oldData) {
let that = this;
if (newData) {
that.ruleForm = newData;
if(this.ruleForm.integralGetStatus == 0) {
this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = undefined;
}
if(this.ruleForm.integralUseStatus == 0) {
this.ruleForm.integralUse.fee = undefined;
this.ruleForm.integralUse.integral = undefined;
}
// 给定一个默认值
if (newData.integralGetDiscountControl == 0) {
this.ruleForm.integralGetDiscountControl = '1';
}
if (newData.integralUseDiscountControl == 0) {
this.ruleForm.integralUseDiscountControl = '1';
}
if(this.ruleForm.integralGetDiscountControl == 1) {
this.ruleForm.integralGetDiscountControlLower = undefined;
this.ruleForm.integralGetDiscountControlUpper = undefined
}
if(this.ruleForm.integralUseDiscountControl == 1) {
this.ruleForm.integralUseDiscountControlLower = undefined;
this.ruleForm.integralUseDiscountControlUpper = undefined
pointInfo: {
handle: function(newData, oldData) {
let that = this;
if (newData) {
that.ruleForm = newData;
console.log(that.ruleForm, 'that.ruleForm999');
if(this.ruleForm.integralGetStatus == 0) {
this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = undefined;
}
if(this.ruleForm.integralUseStatus == 0) {
this.ruleForm.integralUse.fee = undefined;
this.ruleForm.integralUse.integral = undefined;
}
// 给定一个默认值
if (newData.integralGetDiscountControl == 0) {
this.ruleForm.integralGetDiscountControl = '1';
}
if (newData.integralUseDiscountControl == 0) {
this.ruleForm.integralUseDiscountControl = '1';
}
if(this.ruleForm.integralGetDiscountControl == 1) {
this.ruleForm.integralGetDiscountControlLower = undefined;
this.ruleForm.integralGetDiscountControlUpper = undefined
}
if(this.ruleForm.integralUseDiscountControl == 1) {
this.ruleForm.integralUseDiscountControlLower = undefined;
this.ruleForm.integralUseDiscountControlUpper = undefined
}
if(this.ruleForm.integralExpireType == null){
this.ruleForm.integralExpireType = 1;
}else if(that.ruleForm.integralExpireType == 2) {
this.yearY = Number(this.ruleForm.integralExpireRule[0]);
this.yearM = Number(this.ruleForm.integralExpireRule[2]);
this.yearD = Number(this.ruleForm.integralExpireRule[4]);
this.ruleForm.effectiveTime = ''
console.log(that.yearY, that.yearM, that.yearD);
}else if(this.ruleForm.integralExpireType == 3) {
this.mouthM = Number(this.ruleForm.integralExpireRule[0]);
this.mouthD = Number(this.ruleForm.integralExpireRule[2]);
this.ruleForm.effectiveTime = ''
}
}
}
},
immediate: true
}
},
components: {
......@@ -488,6 +632,9 @@ export default {
};
</script>
<style lang="less" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{
position: fixed;
bottom: 0px;
......
......@@ -242,9 +242,109 @@
<el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)" style="width: 115px"></el-input><label></label>
<span class="setting-tips">仅对通过订单获取的积分生效,活动类获取的积分没有冻结期</span>
</el-form-item>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="integralGetEffectiveDays">
自获取之日起
<el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)" style="width: 115px"></el-input><label></label>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="">
<el-radio v-model="ruleForm.userGeneralIntegralExpireRule" :label="1">通用积分策略有效期</el-radio>
<el-radio v-model="ruleForm.userGeneralIntegralExpireRule" :label="0">自定义有效期
<el-tooltip placement="right" effect="light">
<div slot="content" style="line-height:20px">
<p style="color:#595959 font-size:14px;font-weight:600">规则说明:</p>
<p style="color:#e6a23c">
仅GIC计算积分时,配置的积分有效期才会生效,<br/>
ERP计算积分时,此配置项不生效;
</p>
<ul>
<li>1、永久有效:客户获取的积分永久有效,系统不会清零;</li>
<li>2、按年失效:在第X年的X月X日失效:例:设置第二年的12月1日失效,则2021年获取的所有积分在2022年12月1日失效;</li>
<li>3、按月失效:在第X个月的X日失效:例:设置第二月的1日失效,则3月获取的所有积分在4月1日失效;</li>
<li>4、按天失效:每天获取的所有积分在获取之日起365天后失效:例:设置365天,则2022年12月1号获取的积分在2023年12月1号失效;</li>
<li>5、修改积分有效期后,已经获取的积分有效期不变,后续获取的积分按照修改后的积分有效期生效;</li>
</ul>
</div>
<i class="iconfont icon-QuestionCircleOutlined" style="font-size:12px;color:#606266;"></i>
</el-tooltip>
</el-radio>
<!-- 通用积分有效期 -->
<div v-if="ruleForm.userGeneralIntegralExpireRule == 1">
<div class="radio-cell" v-if="timeType == 1">
<el-radio v-model="ruleForm.integralExpireType" label="1" @change="radioExpireType1" disabled="true">永久有效</el-radio>
</div>
<div class="radio-cell" v-else-if="timeType == 2">
<el-radio v-model="ruleForm.integralExpireType" label="2" disabled="true"><label>按年失效:</label></el-radio>
<label>每年获取的所有积分,在</label>
<el-select v-model="yearYT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in yearList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="yearMT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in 12" :key="n" :label="n" :value="n"></el-option>
</el-select>
<label></label>
<el-select v-model="yearDT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell" v-else-if="timeType == 3">
<el-radio v-model="ruleForm.integralExpireType" label="3" disabled="true"><label>按月失效:</label></el-radio>
<label>每月获取的所有积分,在</label>
<el-select v-model="mouthMT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in mouthList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="mouthDT" placeholder="请选择" style="width:120px; margin-right:20px" disabled="true">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell" v-else-if="timeType == 0 || timeType == null">
<el-radio v-model="ruleForm.integralExpireType" label="0" disabled="true">
<label>每天获取的所有积分,在获取之日起</label></el-radio>
<el-input placeholder="请输入" style="width:115px" v-model="effectiveDays" @keyup.native="formatInput($event)" disabled="true"></el-input>
<label>天后失效</label>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 10px;">建议不超过3年(1095天)</span>
</div>
<div class="radio-cell" v-else>
<p style="color:red;">还未配置通用积分策略,请先配置通用积分策略再选择「通用积分策略有效期」</p>
</div>
</div>
<!-- 自定义有效期 -->
<div class="form-child p20" v-if="ruleForm.userGeneralIntegralExpireRule == 0">
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="2" @change="radioExpireType1"><label>按年失效:</label></el-radio>
<label>每年获取的所有积分,在</label>
<el-select v-model="yearY" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in yearList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="yearM" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in 12" :key="n" :label="n" :value="n"></el-option>
</el-select>
<label></label>
<el-select v-model="yearD" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="3" @change="radioExpireType1"><label>按月失效:</label></el-radio>
<label>每月获取的所有积分,在</label>
<el-select v-model="mouthM" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in mouthList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="mouthD" placeholder="请选择" style="width:120px; margin-right:20px">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell">
<el-radio v-model="ruleForm.integralExpireType" label="0" @change="radioExpireType1">
<label>每天获取的所有积分,在获取之日起</label></el-radio>
<el-input placeholder="请输入" style="width:115px" v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInput($event)"></el-input>
<label>天后失效</label>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 10px;">建议不超过3年(1095天)</span>
</div>
</div>
</el-form-item>
<!-- 新增策略有效期配置 -->
<el-form-item label="策略有效期:" prop="perpetualFlag">
......@@ -323,7 +423,48 @@ export default {
name: 'addPointSytem',
mixins: [wmMixins],
data() {
// 天数
const dayList = ()=> {
let arr = []
for(let i = 1; i < 28; i++){
arr.push({key: i,value: i})
}
arr.push({key: 0, value: '月末'})
return arr;
}
// 月数
const mouthList = ()=> {
let arr = []
for(let i = 2; i < 37; i++){
arr.push({key: i,value: `第${i}个月`})
}
return arr;
}
// 年数
const yearList = ()=> {
let arr = []
for(let i = 2; i < 5; i++){
arr.push({key: i,value: `第${i}年`})
}
return arr;
}
return {
yearYT: '', //按年失效 年
yearMT: '', //按年失效 月
yearDT: '', //按年失效 日
mouthMT: '', //按月失效 月
mouthDT: '', //按月失效 月
effectiveDays: undefined,
timeType: '',
timeRuleType: '',
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique',
navpath: [
{
......@@ -472,6 +613,9 @@ export default {
cateNameLength: 0,
ruleForm: {
userGeneralIntegralExpireRule: 1,
integralExpireType: '1', //积分有效期类型 0 未默认滚动到期 1永久 2 按年失效 3按月失效
integralExpireRule: '', //积分有效期规则 年 x(年),x(月),x(日,为0标识月末) 月,x(月),x(日,为0标识月末)
// 积分获取规则
integralStrategyId: '', //策略id
enterpriseId: '',
......@@ -647,6 +791,28 @@ export default {
},
methods: {
// 获取通用积分策略
getPointInfo() {
var that = this
postRequest('/api-admin/get-member-integral-setting',{requestProject: that.projectName})
.then((res) => {
var resData = res.data
if(resData.errorCode == 0) {
this.timeType = resData.result.memberIntegral.integralExpireType;
this.timeRuleType = resData.result.memberIntegral.integralExpireRule;
if(this.timeType ==2) {
this.yearYT = Number(this.timeRuleType[0])
this.yearMT = Number(this.timeRuleType[2])
this.yearDT = Number(this.timeRuleType[4])
}else if(this.timeType == 3) {
this.mouthMT = Number(this.timeRuleType[0])
this.mouthDT = Number(this.timeRuleType[2])
} else if (this.timeType == 0 || this.timeType == null) {
this.effectiveDays = resData.result.memberIntegral.effectiveTime;
}
}
})
},
radioEvent0() {
this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined;
this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined;
......@@ -675,6 +841,31 @@ export default {
this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = undefined;
},
radioExpireType1(e) {
if(e==0){
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
}else if(e==1) {
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
this.ruleForm.integralGetEffectiveDays = '';
}else if (e==2) {
this.mouthM='';
this.mouthD='';
this.ruleForm.integralGetEffectiveDays = '';
} else if (e == 3) {
this.yearY='';
this.yearM='';
this.yearD='';
this.ruleForm.integralGetEffectiveDays = '';
}
},
onStoreChange(item) {
if (item.channelType == 3) {
this.uuid = '';
......@@ -813,7 +1004,7 @@ export default {
showMsg.showmsg('请填写积分冻结期', 'error');
return;
}
if (data.integralGetStatus == 1 && !Number(data.integralGetEffectiveDays)) {
if (data.userGeneralIntegralExpireRule == 0 && data.integralExpireType ==0 && !Number(data.integralGetEffectiveDays)) {
showMsg.showmsg('请填写积分有效期', 'error');
return;
}
......@@ -876,6 +1067,25 @@ export default {
data.endValidTime = data.perpetualDate[1];
}
delete data.perpetualDate;
if(data.userGeneralIntegralExpireRule == 1) {
data.integralExpireType = this.timeType
if(this.timeType==0 || this.timeType == null){
data.integralGetEffectiveDays = this.effectiveDays
}else {
data.integralExpireRule = this.timeRuleType
}
}else if (data.userGeneralIntegralExpireRule == 0) {
if(data.integralExpireType == 1 || data.integralExpireType == 0) {
data.integralExpireRule = ''
data.integralGetEffectiveDays = ''
} else if(data.integralExpireType == 2) {
data.integralExpireRule = `${this.yearY},${this.yearM},${this.yearD}`
data.integralGetEffectiveDays = ''
}else if(data.integralExpireType == 3) {
data.integralExpireRule = `${this.mouthM},${this.mouthD}`
data.integralGetEffectiveDays = ''
}
}
that.saveForm(data);
}
});
......@@ -1307,6 +1517,9 @@ export default {
};
</script>
<style lang="scss" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{
position: fixed;
bottom: 0px;
......
......@@ -421,8 +421,109 @@
<label>自获取之日起</label><el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)"></el-input><label></label>
<span style="font-size: 12px;color: #828282;line-height: 1;padding-left: 10px;">仅对通过订单获取的积分生效,活动类获取的积分没有冻结期</span>
</el-form-item>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="integralGetEffectiveDays">
<label>自获取之日起</label><el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)"></el-input><label></label>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="">
<el-radio v-model="ruleForm.userGeneralIntegralExpireRule" :label="1">通用积分策略有效期</el-radio>
<el-radio v-model="ruleForm.userGeneralIntegralExpireRule" :label="0">自定义有效期
<el-tooltip placement="right" effect="light">
<div slot="content" style="line-height:20px">
<p style="color:#595959 font-size:14px;font-weight:600">规则说明:</p>
<p style="color:#e6a23c">
仅GIC计算积分时,配置的积分有效期才会生效,<br/>
ERP计算积分时,此配置项不生效;
</p>
<ul>
<li>1、永久有效:客户获取的积分永久有效,系统不会清零;</li>
<li>2、按年失效:在第X年的X月X日失效:例:设置第二年的12月1日失效,则2021年获取的所有积分在2022年12月1日失效;</li>
<li>3、按月失效:在第X个月的X日失效:例:设置第二月的1日失效,则3月获取的所有积分在4月1日失效;</li>
<li>4、按天失效:每天获取的所有积分在获取之日起365天后失效:例:设置365天,则2022年12月1号获取的积分在2023年12月1号失效;</li>
<li>5、修改积分有效期后,已经获取的积分有效期不变,后续获取的积分按照修改后的积分有效期生效;</li>
</ul>
</div>
<i class="iconfont icon-QuestionCircleOutlined" style="font-size:12px;color:#606266;"></i>
</el-tooltip>
</el-radio>
<!-- 通用积分有效期 -->
<div v-if="ruleForm.userGeneralIntegralExpireRule == 1">
<div class="radio-cell" v-if="timeType == 1">
<el-radio v-model="ruleForm.integralExpireType" label="1" @change="radioExpireType1" disabled="true">永久有效</el-radio>
</div>
<div class="radio-cell" v-else-if="timeType == 2">
<el-radio v-model="ruleForm.integralExpireType" label="2" disabled="true"><label>按年失效:</label></el-radio>
<label>每年获取的所有积分,在</label>
<el-select v-model="yearYT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in yearList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="yearMT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in 12" :key="n" :label="n" :value="n"></el-option>
</el-select>
<label></label>
<el-select v-model="yearDT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell" v-else-if="timeType == 3">
<el-radio v-model="ruleForm.integralExpireType" label="3" disabled="true"><label>按月失效:</label></el-radio>
<label>每月获取的所有积分,在</label>
<el-select v-model="mouthMT" placeholder="请选择" style="width:120px;margin-right:20px" disabled="true">
<el-option v-for="n in mouthList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="mouthDT" placeholder="请选择" style="width:120px; margin-right:20px" disabled="true">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell" v-else-if="timeType == 0 || timeType == null">
<el-radio v-model="ruleForm.integralExpireType" label="0" disabled="true">
<label>每天获取的所有积分,在获取之日起</label></el-radio>
<el-input placeholder="请输入" style="width:115px" v-model="effectiveDays" @keyup.native="formatInput($event)" disabled="true"></el-input>
<label>天后失效</label>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 10px;">建议不超过3年(1095天)</span>
</div>
<div class="radio-cell" v-else>
<p style="color:red;">还未配置通用积分策略,请先配置通用积分策略再选择「通用积分策略有效期」</p>
</div>
</div>
<!-- 自定义有效期 -->
<div class="form-child" style="padding:20px" v-if="ruleForm.userGeneralIntegralExpireRule == 0">
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="2" @change="radioExpireType1"><label>按年失效:</label></el-radio>
<label>每年获取的所有积分,在</label>
<el-select v-model="yearY" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in yearList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="yearM" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in 12" :key="n" :label="n" :value="n"></el-option>
</el-select>
<label></label>
<el-select v-model="yearD" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell mb20">
<el-radio v-model="ruleForm.integralExpireType" label="3" @change="radioExpireType1"><label>按月失效:</label></el-radio>
<label>每月获取的所有积分,在</label>
<el-select v-model="mouthM" placeholder="请选择" style="width:120px;margin-right:20px">
<el-option v-for="n in mouthList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label></label>
<el-select v-model="mouthD" placeholder="请选择" style="width:120px; margin-right:20px">
<el-option v-for="n in dayList" :key="n.key" :label="n.value" :value="n.key"></el-option>
</el-select>
<label>日失效</label>
</div>
<div class="radio-cell">
<el-radio v-model="ruleForm.integralExpireType" label="0" @change="radioExpireType1">
<label>每天获取的所有积分,在获取之日起</label></el-radio>
<el-input placeholder="请输入" style="width:115px" v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInput($event)"></el-input>
<label>天后失效</label>
<span style="font-size: 12px;color: #909399;line-height: 1;padding-left: 10px;">建议不超过3年(1095天)</span>
</div>
</div>
</el-form-item>
<!-- 新增策略有效期配置 -->
<el-form-item label="策略有效期:" prop="perpetualFlag">
......@@ -511,7 +612,48 @@ export default {
name: 'editPointSytem',
mixins: [wmMixins],
data() {
// 天数
const dayList = ()=> {
let arr = []
for(let i = 1; i < 28; i++){
arr.push({key: i,value: i})
}
arr.push({key: 0, value: '月末'})
return arr;
}
// 月数
const mouthList = ()=> {
let arr = []
for(let i = 2; i < 37; i++){
arr.push({key: i,value: `第${i}个月`})
}
return arr;
}
// 年数
const yearList = ()=> {
let arr = []
for(let i = 2; i < 5; i++){
arr.push({key: i,value: `第${i}年`})
}
return arr;
}
return {
yearYT: '', //按年失效 年
yearMT: '', //按年失效 月
yearDT: '', //按年失效 日
mouthMT: '', //按月失效 月
mouthDT: '', //按月失效 月
effectiveDays: undefined,
timeType: '',
timeRuleType: '',
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique',
navpath: [
{
......@@ -665,6 +807,9 @@ export default {
},
ruleForm: {
userGeneralIntegralExpireRule: 1,
integralExpireType: '1', //积分有效期类型 0 未默认滚动到期 1永久 2 按年失效 3按月失效
integralExpireRule: '', //积分有效期规则 年 x(年),x(月),x(日,为0标识月末) 月,x(月),x(日,为0标识月末)
// 积分获取规则
integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id
enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000',
......@@ -722,6 +867,28 @@ export default {
},
methods: {
// 获取通用积分策略
getPointInfo() {
var that = this
postRequest('/api-admin/get-member-integral-setting',{requestProject: that.projectName})
.then((res) => {
var resData = res.data
if(resData.errorCode == 0) {
this.timeType = resData.result.memberIntegral.integralExpireType;
this.timeRuleType = resData.result.memberIntegral.integralExpireRule;
if(this.timeType ==2) {
this.yearYT = Number(this.timeRuleType[0])
this.yearMT = Number(this.timeRuleType[2])
this.yearDT = Number(this.timeRuleType[4])
}else if(this.timeType == 3) {
this.mouthMT = Number(this.timeRuleType[0])
this.mouthDT = Number(this.timeRuleType[2])
} else if (this.timeType == 0 || this.timeType == null) {
this.effectiveDays = resData.result.memberIntegral.effectiveTime;
}
}
})
},
radioEvent0() {
this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined;
this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined;
......@@ -750,6 +917,31 @@ export default {
this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = undefined;
},
radioExpireType1(e) {
if(e==0){
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
}else if(e==1) {
this.yearY='';
this.yearM='';
this.yearD='';
this.mouthM='';
this.mouthD='';
this.ruleForm.integralGetEffectiveDays = '';
}else if (e==2) {
this.mouthM='';
this.mouthD='';
this.ruleForm.integralGetEffectiveDays = '';
} else if (e == 3) {
this.yearY='';
this.yearM='';
this.yearD='';
this.ruleForm.integralGetEffectiveDays = '';
}
},
// 返回
goBack() {
this.$router.go(-1);
......@@ -876,7 +1068,7 @@ export default {
showMsg.showmsg('请填写积分冻结期', 'error');
return;
}
if (data.integralGetStatus == 1 && !Number(data.integralGetEffectiveDays)) {
if (data.userGeneralIntegralExpireRule == 0 && data.integralExpireType ==0 && !Number(data.integralGetEffectiveDays)) {
showMsg.showmsg('请填写积分有效期', 'error');
return;
}
......@@ -935,6 +1127,25 @@ export default {
data.endValidTime = data.perpetualDate[1];
}
delete data.perpetualDate;
if(data.userGeneralIntegralExpireRule == 1) {
data.integralExpireType = this.timeType
if(this.timeType==0 || this.timeType == null){
data.integralGetEffectiveDays = this.effectiveDays
}else {
data.integralExpireRule = this.timeRuleType
}
}else if (data.userGeneralIntegralExpireRule == 0) {
if(data.integralExpireType == 1 || data.integralExpireType == 0) {
data.integralExpireRule = ''
data.integralGetEffectiveDays = ''
} else if(data.integralExpireType == 2) {
data.integralExpireRule = `${this.yearY},${this.yearM},${this.yearD}`
data.integralGetEffectiveDays = ''
}else if(data.integralExpireType == 3) {
data.integralExpireRule = `${this.mouthM},${this.mouthD}`
data.integralGetEffectiveDays = ''
}
}
that.saveForm(data);
}
});
......@@ -1573,6 +1784,9 @@ export default {
},
created() {
// this.selectReplayStyle()
console.log(1);
this.getPointInfo()
console.log(2);
},
mounted() {
let that = this;
......@@ -1589,6 +1803,9 @@ export default {
};
</script>
<style lang="scss" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{
position: fixed;
bottom: 0px;
......
......@@ -497,6 +497,8 @@ export default {
item.integralGetDiscountControlLower = String(item.integralGetDiscountControlLower);
item.integralUseDiscountControlUpper = String(item.integralUseDiscountControlUpper);
item.integralUseDiscountControlLower = String(item.integralUseDiscountControlLower);
item.integralExpireType = String(item.integralExpireType);
item.integralExpireRule = String(item.integralExpireRule);
// item.integralGet = JSON.parse(item.integralGet);
// item.integralUse = JSON.parse(item.integralUse);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment