Commit 1f2c61c6 by huaying

fix: 积分有效期修改

parent 8a53bc75
...@@ -88,9 +88,63 @@ ...@@ -88,9 +88,63 @@
<label></label> <label></label>
</el-form-item> </el-form-item>
<dm-sub-title type="fill" text="积分有效期" style="margin-bottom: 20px; margin-top:40px;"/> <dm-sub-title type="fill" text="积分有效期" style="margin-bottom: 20px; margin-top:40px;"/>
<el-form-item label="有效期:" prop="effectiveTime" class="padding-0"> <el-form-item label="有效期:" prop="effectiveTime" class="padding-0" >
<label>自获取之日起</label> <el-tooltip placement="right" effect="light">
<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> <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> </el-form-item>
<dm-sub-title type="fill" text="积分说明" style="margin-bottom: 20px; margin-top:40px;"/> <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"> <el-form-item label="" label-width="0" prop="desc" class="margin-20">
...@@ -131,7 +185,40 @@ export default { ...@@ -131,7 +185,40 @@ export default {
contactBool: Boolean contactBool: Boolean
}, },
data() { 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 { return {
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique', repProjectName: 'gic-clique',
// form // form
...@@ -168,7 +255,9 @@ export default { ...@@ -168,7 +255,9 @@ export default {
integralUseDiscountControlUpper: undefined, integralUseDiscountControlUpper: undefined,
integralUseDiscountControlLower: undefined, integralUseDiscountControlLower: undefined,
useProportionalRestriction: '90', //抵现比例限制 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: { rules: {
integralGetStatus: [ integralGetStatus: [
...@@ -177,9 +266,9 @@ export default { ...@@ -177,9 +266,9 @@ export default {
integralUseStatus: [ integralUseStatus: [
{ required: true, message: '请选择抵现规则', trigger: 'blur' }, { required: true, message: '请选择抵现规则', trigger: 'blur' },
], ],
effectiveTime: [ // effectiveTime: [
{ required: true, message: '请填写有效期', trigger: 'blur' }, // { required: true, message: '请填写有效期', trigger: 'blur' },
], // ],
// strategyName: [ // strategyName: [
// { required: true, message: '请填写策略名称', trigger: 'blur' }, // { required: true, message: '请填写策略名称', trigger: 'blur' },
// ],strategyName: [ // ],strategyName: [
...@@ -237,6 +326,31 @@ export default { ...@@ -237,6 +326,31 @@ export default {
this.ruleForm.integralUseDiscountControlLower = undefined; this.ruleForm.integralUseDiscountControlLower = undefined;
this.ruleForm.integralUseDiscountControlUpper =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) { submitForm(formName) {
let that = this; let that = this;
...@@ -274,7 +388,7 @@ export default { ...@@ -274,7 +388,7 @@ export default {
return; return;
} }
if (data.effectiveTime == '') { if (String(data.integralExpireType)== 0 &&data.effectiveTime == '') {
// 积分有效期 // 积分有效期
that.$message.error({ that.$message.error({
duration: 1000, duration: 1000,
...@@ -282,7 +396,7 @@ export default { ...@@ -282,7 +396,7 @@ export default {
}); });
return; return;
} else { } else {
if (parseInt(data.effectiveTime) < 1) { if ( String(data.integralExpireType)== 0 &&parseInt(data.effectiveTime) < 1) {
that.$message.error({ that.$message.error({
duration: 1000, duration: 1000,
message: '积分有效期不能低于最低限制' message: '积分有效期不能低于最低限制'
...@@ -357,6 +471,19 @@ export default { ...@@ -357,6 +471,19 @@ export default {
data.integralGet = JSON.stringify(data.integralGet)?JSON.stringify(data.integralGet):that.ruleForm.integralGet; 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.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; 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); that.saveInfo(data);
} else { } else {
// log('error submit!!'); // log('error submit!!');
...@@ -442,10 +569,12 @@ export default { ...@@ -442,10 +569,12 @@ export default {
// log("新数据:",newData,oldData) // log("新数据:",newData,oldData)
that.repProjectName = newData || 'gic-web'; that.repProjectName = newData || 'gic-web';
}, },
pointInfo: function(newData, oldData) { pointInfo: {
handle: function(newData, oldData) {
let that = this; let that = this;
if (newData) { if (newData) {
that.ruleForm = newData; that.ruleForm = newData;
console.log(that.ruleForm, 'that.ruleForm999');
if(this.ruleForm.integralGetStatus == 0) { if(this.ruleForm.integralGetStatus == 0) {
this.ruleForm.integralGet.fee = undefined; this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = undefined; this.ruleForm.integralGet.integral = undefined;
...@@ -469,9 +598,24 @@ export default { ...@@ -469,9 +598,24 @@ export default {
this.ruleForm.integralUseDiscountControlLower = undefined; this.ruleForm.integralUseDiscountControlLower = undefined;
this.ruleForm.integralUseDiscountControlUpper = 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: { components: {
Editor Editor
}, },
...@@ -488,6 +632,9 @@ export default { ...@@ -488,6 +632,9 @@ export default {
}; };
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{ .bottom{
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
......
...@@ -242,9 +242,109 @@ ...@@ -242,9 +242,109 @@
<el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)" style="width: 115px"></el-input><label></label> <el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)" style="width: 115px"></el-input><label></label>
<span class="setting-tips">仅对通过订单获取的积分生效,活动类获取的积分没有冻结期</span> <span class="setting-tips">仅对通过订单获取的积分生效,活动类获取的积分没有冻结期</span>
</el-form-item> </el-form-item>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="integralGetEffectiveDays"> <el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="">
自获取之日起 <el-radio v-model="ruleForm.userGeneralIntegralExpireRule" :label="1">通用积分策略有效期</el-radio>
<el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)" style="width: 115px"></el-input><label></label> <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>
<!-- 新增策略有效期配置 --> <!-- 新增策略有效期配置 -->
<el-form-item label="策略有效期:" prop="perpetualFlag"> <el-form-item label="策略有效期:" prop="perpetualFlag">
...@@ -323,7 +423,48 @@ export default { ...@@ -323,7 +423,48 @@ export default {
name: 'addPointSytem', name: 'addPointSytem',
mixins: [wmMixins], mixins: [wmMixins],
data() { 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 { return {
yearYT: '', //按年失效 年
yearMT: '', //按年失效 月
yearDT: '', //按年失效 日
mouthMT: '', //按月失效 月
mouthDT: '', //按月失效 月
effectiveDays: undefined,
timeType: '',
timeRuleType: '',
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique', repProjectName: 'gic-clique',
navpath: [ navpath: [
{ {
...@@ -472,6 +613,9 @@ export default { ...@@ -472,6 +613,9 @@ export default {
cateNameLength: 0, cateNameLength: 0,
ruleForm: { ruleForm: {
userGeneralIntegralExpireRule: 1,
integralExpireType: '1', //积分有效期类型 0 未默认滚动到期 1永久 2 按年失效 3按月失效
integralExpireRule: '', //积分有效期规则 年 x(年),x(月),x(日,为0标识月末) 月,x(月),x(日,为0标识月末)
// 积分获取规则 // 积分获取规则
integralStrategyId: '', //策略id integralStrategyId: '', //策略id
enterpriseId: '', enterpriseId: '',
...@@ -647,6 +791,28 @@ export default { ...@@ -647,6 +791,28 @@ export default {
}, },
methods: { 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() { radioEvent0() {
this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined; this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined;
this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined; this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined;
...@@ -675,6 +841,31 @@ export default { ...@@ -675,6 +841,31 @@ export default {
this.ruleForm.integralGet.fee = undefined; this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = 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) { onStoreChange(item) {
if (item.channelType == 3) { if (item.channelType == 3) {
this.uuid = ''; this.uuid = '';
...@@ -813,7 +1004,7 @@ export default { ...@@ -813,7 +1004,7 @@ export default {
showMsg.showmsg('请填写积分冻结期', 'error'); showMsg.showmsg('请填写积分冻结期', 'error');
return; return;
} }
if (data.integralGetStatus == 1 && !Number(data.integralGetEffectiveDays)) { if (data.userGeneralIntegralExpireRule == 0 && data.integralExpireType ==0 && !Number(data.integralGetEffectiveDays)) {
showMsg.showmsg('请填写积分有效期', 'error'); showMsg.showmsg('请填写积分有效期', 'error');
return; return;
} }
...@@ -876,6 +1067,25 @@ export default { ...@@ -876,6 +1067,25 @@ export default {
data.endValidTime = data.perpetualDate[1]; data.endValidTime = data.perpetualDate[1];
} }
delete data.perpetualDate; 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); that.saveForm(data);
} }
}); });
...@@ -1307,6 +1517,9 @@ export default { ...@@ -1307,6 +1517,9 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{ .bottom{
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
......
...@@ -421,8 +421,109 @@ ...@@ -421,8 +421,109 @@
<label>自获取之日起</label><el-input v-model="ruleForm.integralGetFreezeDays" @keyup.native="formatInputNum($event)"></el-input><label></label> <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> <span style="font-size: 12px;color: #828282;line-height: 1;padding-left: 10px;">仅对通过订单获取的积分生效,活动类获取的积分没有冻结期</span>
</el-form-item> </el-form-item>
<el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="integralGetEffectiveDays"> <el-form-item label="积分有效期:" v-if="ruleForm.integralGetStatus == 1" prop="">
<label>自获取之日起</label><el-input v-model="ruleForm.integralGetEffectiveDays" @keyup.native="formatInputNum($event)"></el-input><label></label> <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>
<!-- 新增策略有效期配置 --> <!-- 新增策略有效期配置 -->
<el-form-item label="策略有效期:" prop="perpetualFlag"> <el-form-item label="策略有效期:" prop="perpetualFlag">
...@@ -511,7 +612,48 @@ export default { ...@@ -511,7 +612,48 @@ export default {
name: 'editPointSytem', name: 'editPointSytem',
mixins: [wmMixins], mixins: [wmMixins],
data() { 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 { return {
yearYT: '', //按年失效 年
yearMT: '', //按年失效 月
yearDT: '', //按年失效 日
mouthMT: '', //按月失效 月
mouthDT: '', //按月失效 月
effectiveDays: undefined,
timeType: '',
timeRuleType: '',
dayList: dayList(),
mouthList: mouthList(),
mouthM: '', //按月失效 月
mouthD: '', //按月失效 月
yearList: yearList(),
yearY: '', //按年失效 年
yearM: '', //按年失效 月
yearD: '', //按年失效 日
repProjectName: 'gic-clique', repProjectName: 'gic-clique',
navpath: [ navpath: [
{ {
...@@ -665,6 +807,9 @@ export default { ...@@ -665,6 +807,9 @@ export default {
}, },
ruleForm: { ruleForm: {
userGeneralIntegralExpireRule: 1,
integralExpireType: '1', //积分有效期类型 0 未默认滚动到期 1永久 2 按年失效 3按月失效
integralExpireRule: '', //积分有效期规则 年 x(年),x(月),x(日,为0标识月末) 月,x(月),x(日,为0标识月末)
// 积分获取规则 // 积分获取规则
integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id integralStrategyId: 'ff80808163a7a09b0163b01171e202db', //策略id
enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000', enterpriseId: 'ff8080815dacd3a2015dacd3ef5c0000',
...@@ -722,6 +867,28 @@ export default { ...@@ -722,6 +867,28 @@ export default {
}, },
methods: { 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() { radioEvent0() {
this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined; this.ruleForm.channelList[0].integralUseDiscountControlLower = undefined;
this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined; this.ruleForm.channelList[0].integralUseDiscountControlUpper = undefined;
...@@ -750,6 +917,31 @@ export default { ...@@ -750,6 +917,31 @@ export default {
this.ruleForm.integralGet.fee = undefined; this.ruleForm.integralGet.fee = undefined;
this.ruleForm.integralGet.integral = 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() { goBack() {
this.$router.go(-1); this.$router.go(-1);
...@@ -876,7 +1068,7 @@ export default { ...@@ -876,7 +1068,7 @@ export default {
showMsg.showmsg('请填写积分冻结期', 'error'); showMsg.showmsg('请填写积分冻结期', 'error');
return; return;
} }
if (data.integralGetStatus == 1 && !Number(data.integralGetEffectiveDays)) { if (data.userGeneralIntegralExpireRule == 0 && data.integralExpireType ==0 && !Number(data.integralGetEffectiveDays)) {
showMsg.showmsg('请填写积分有效期', 'error'); showMsg.showmsg('请填写积分有效期', 'error');
return; return;
} }
...@@ -935,6 +1127,25 @@ export default { ...@@ -935,6 +1127,25 @@ export default {
data.endValidTime = data.perpetualDate[1]; data.endValidTime = data.perpetualDate[1];
} }
delete data.perpetualDate; 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); that.saveForm(data);
} }
}); });
...@@ -1573,6 +1784,9 @@ export default { ...@@ -1573,6 +1784,9 @@ export default {
}, },
created() { created() {
// this.selectReplayStyle() // this.selectReplayStyle()
console.log(1);
this.getPointInfo()
console.log(2);
}, },
mounted() { mounted() {
let that = this; let that = this;
...@@ -1589,6 +1803,9 @@ export default { ...@@ -1589,6 +1803,9 @@ export default {
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
.mb20 {
margin-bottom: 20px;
}
.bottom{ .bottom{
position: fixed; position: fixed;
bottom: 0px; bottom: 0px;
......
...@@ -497,6 +497,8 @@ export default { ...@@ -497,6 +497,8 @@ export default {
item.integralGetDiscountControlLower = String(item.integralGetDiscountControlLower); item.integralGetDiscountControlLower = String(item.integralGetDiscountControlLower);
item.integralUseDiscountControlUpper = String(item.integralUseDiscountControlUpper); item.integralUseDiscountControlUpper = String(item.integralUseDiscountControlUpper);
item.integralUseDiscountControlLower = String(item.integralUseDiscountControlLower); item.integralUseDiscountControlLower = String(item.integralUseDiscountControlLower);
item.integralExpireType = String(item.integralExpireType);
item.integralExpireRule = String(item.integralExpireRule);
// item.integralGet = JSON.parse(item.integralGet); // item.integralGet = JSON.parse(item.integralGet);
// item.integralUse = JSON.parse(item.integralUse); // 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