|
|
@@ -5,7 +5,7 @@
|
|
|
width="900px"
|
|
|
:before-close="handleClose"
|
|
|
custom-class="activity-edit-dialog">
|
|
|
-
|
|
|
+{{form}}
|
|
|
<el-form :model="form" :rules="rules" ref="formRef" label-width="140px" class="activity-form">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
@@ -22,27 +22,27 @@
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="活动城市" prop="city">
|
|
|
- <DictSelect v-model="form.city" :dictOptions="cityOptions" placeholder="请选择" :disabled="type === 'view'"/>
|
|
|
+ <el-form-item label="活动城市" prop="cityCode">
|
|
|
+ <DictSelect v-model="form.cityCode" :dictOptions="cityOptions" placeholder="请选择" :disabled="type === 'view'"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="活动类型" prop="activityType">
|
|
|
- <DictSelect v-model="form.activityType" :dictOptions="activityTypeOption" placeholder="请选择" :disabled="type === 'view'" @change="handleActivityTypeChange"/>
|
|
|
+ <DictSelect v-model="form.activityType.toString()" :dictOptions="activityTypeOption" placeholder="请选择" :disabled="type === 'view'" @change="handleActivityTypeChange"/>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="活动时间" prop="isLongTerm">
|
|
|
- <el-radio-group v-model="form.isLongTerm" :disabled="type === 'view'">
|
|
|
- <el-radio label="1">长期有效</el-radio>
|
|
|
- <el-radio label="2">指定时间</el-radio>
|
|
|
+ <el-form-item label="活动时间" prop="isPermanent">
|
|
|
+ <el-radio-group v-model="form.isPermanent" :disabled="type === 'view'">
|
|
|
+ <el-radio :label="1">长期有效</el-radio>
|
|
|
+ <el-radio :label="0">指定时间</el-radio>
|
|
|
</el-radio-group>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
- <el-col :span="12" v-if="form.isLongTerm === '2'">
|
|
|
+ <el-col :span="12" v-if="form.isPermanent == '0'">
|
|
|
<el-form-item label="指定时间" prop="dateRange">
|
|
|
<el-date-picker
|
|
|
v-model="form.dateRange"
|
|
|
@@ -60,36 +60,36 @@
|
|
|
</el-row>
|
|
|
|
|
|
<!-- 签到活动特有的内容 -->
|
|
|
- <template v-if="form.activityType === '1'">
|
|
|
+ <template v-if="form.activityType == '0'">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
- <el-form-item label="每日签到基础积分" prop="dailyBasePoints">
|
|
|
- <el-input v-model="form.dailyBasePoints" type="number" placeholder="请输入" :disabled="type === 'view'"></el-input>
|
|
|
+ <el-form-item label="每日签到基础积分" prop="basePoints">
|
|
|
+ <el-input v-model="form.basePoints" type="number" placeholder="请输入" :disabled="type === 'view'"></el-input>
|
|
|
</el-form-item>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
|
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="连续签到加成" prop="consecutiveBonus">
|
|
|
- <el-table :data="form.consecutiveBonus" style="width: 100%" :disabled="type === 'view'" size="mini">
|
|
|
- <el-table-column prop="period" label="连续签到周期(天)">
|
|
|
+ <el-form-item label="连续签到加成" prop="signRewardList">
|
|
|
+ <el-table :data="form.signRewardList" style="width: 100%" :disabled="type === 'view'" size="mini">
|
|
|
+ <el-table-column prop="continueDays" label="连续签到周期(天)">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="type === 'view'">
|
|
|
- {{ scope.row.period }}天
|
|
|
+ {{ scope.row.continueDays }}天
|
|
|
</span>
|
|
|
- <el-input v-else v-model="scope.row.period" type="number" placeholder="天数" @blur="updatePeriod(scope.$index, scope.row.period)"></el-input>
|
|
|
+ <el-input v-else v-model="scope.row.continueDays" type="number" placeholder="天数" @blur="updatePeriod(scope.$index, scope.row.continueDays)"></el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="points" label="连续签到积分">
|
|
|
+ <el-table-column prop="rewardPoints" label="连续签到积分">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="type === 'view'">
|
|
|
- {{ scope.row.points }}
|
|
|
+ {{ scope.row.rewardPoints }}
|
|
|
</span>
|
|
|
- <el-input v-else v-model="scope.row.points" type="number" placeholder="积分"></el-input>
|
|
|
+ <el-input v-else v-model="scope.row.rewardPoints" type="number" placeholder="积分"></el-input>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="points" label="说明" width="280">
|
|
|
+ <el-table-column label="说明" width="280">
|
|
|
<template slot-scope="scope">
|
|
|
{{ getDescription(scope.$index) }}
|
|
|
</template>
|
|
|
@@ -97,7 +97,7 @@
|
|
|
<el-table-column width="50">
|
|
|
<template slot="header" slot-scope="scope">
|
|
|
<span>
|
|
|
- <el-button v-if="type !== 'view' && form.consecutiveBonus.length < 5" type="text" size="medium" @click="addPeriod" title="添加周期">
|
|
|
+ <el-button v-if="type !== 'view' && form.signRewardList.length < 5" type="text" size="medium" @click="addPeriod" title="添加周期">
|
|
|
<i class="el-icon-circle-plus-outline"></i>
|
|
|
</el-button>
|
|
|
</span>
|
|
|
@@ -116,11 +116,11 @@
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="12">
|
|
|
<el-form-item label="断签规则">
|
|
|
- <el-radio-group v-model="form.breakRule" :disabled="type === 'view'">
|
|
|
- <el-radio label="reset">
|
|
|
+ <el-radio-group v-model="form.breakRule.toString()" :disabled="type === 'view'">
|
|
|
+ <el-radio label="0">
|
|
|
断签重置
|
|
|
</el-radio>
|
|
|
- <el-radio label="keep">
|
|
|
+ <el-radio label="1">
|
|
|
保留进度
|
|
|
</el-radio>
|
|
|
</el-radio-group>
|
|
|
@@ -133,46 +133,51 @@
|
|
|
<template v-else>
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="24">
|
|
|
- <el-form-item label="任务列表" prop="tasks">
|
|
|
- <el-table :data="form.tasks" style="width: 100%" :disabled="type === 'view'" size="medium">
|
|
|
+ <el-form-item label="任务列表" prop="activityTaskList">
|
|
|
+ <el-table :data="form.activityTaskList" style="width: 100%" :disabled="type === 'view'" size="medium">
|
|
|
<el-table-column prop="taskName" label="任务名称" width="150">
|
|
|
<template slot-scope="scope">
|
|
|
<span>{{ scope.row.taskName }}</span>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="triggerCondition" label="触发条件" width="200">
|
|
|
+ <el-table-column prop="triggerValue" label="触发条件" width="200">
|
|
|
<template slot-scope="scope">
|
|
|
<span v-if="type === 'view'">
|
|
|
- {{ scope.row.triggerCondition }}
|
|
|
+ <span v-if="scope.row.taskName === '分享服务号' || scope.row.taskName === '浏览动态' || scope.row.taskName === '浏览商户'">
|
|
|
+ 点击
|
|
|
+ </span>
|
|
|
+ <template v-else>
|
|
|
+ <span style="margin-right: 5px;">>=</span> {{ scope.row.triggerValue }}
|
|
|
+ </template>
|
|
|
</span>
|
|
|
<template v-else>
|
|
|
<span v-if="scope.row.taskName === '分享服务号' || scope.row.taskName === '浏览动态' || scope.row.taskName === '浏览商户'">
|
|
|
点击
|
|
|
</span>
|
|
|
<span v-else style="display: flex; align-items: center;">
|
|
|
- <template v-if="scope.row.isEnabled">
|
|
|
+ <template v-if="scope.row.status == 0">
|
|
|
<span style="margin-right: 5px;">>=</span>
|
|
|
- <el-input v-model="scope.row.triggerCondition" type="number" placeholder="请输入" style="width: 80px"></el-input>
|
|
|
+ <el-input v-model="scope.row.triggerValue" type="number" placeholder="请输入" style="width: 80px"></el-input>
|
|
|
</template>
|
|
|
<span v-else>--</span>
|
|
|
</span>
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="points" label="积分">
|
|
|
+ <el-table-column prop="rewardPoints" label="积分">
|
|
|
<template slot-scope="scope">
|
|
|
- <span v-if="type === 'view'">{{ scope.row.points }}</span>
|
|
|
+ <span v-if="type === 'view'">{{ scope.row.rewardPoints }}</span>
|
|
|
<template v-else>
|
|
|
- <el-input v-if="scope.row.isEnabled" v-model="scope.row.points" type="number" placeholder="请输入"></el-input>
|
|
|
+ <el-input v-if="scope.row.status == 0" v-model="scope.row.rewardPoints" type="number" placeholder="请输入"></el-input>
|
|
|
<span v-else>--</span>
|
|
|
</template>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
- <el-table-column prop="limit" label="次数限制" width="120">
|
|
|
+ <el-table-column prop="frequencyLimitValue" label="次数限制" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
- <span v-if="type === 'view'">{{ scope.row.limit }}</span>
|
|
|
+ <span v-if="type === 'view'">{{ scope.row.frequencyLimitValue }}</span>
|
|
|
<template v-else>
|
|
|
- <el-select v-if="scope.row.isEnabled" v-model="scope.row.limit" placeholder="请选择">
|
|
|
+ <el-select v-if="scope.row.status == 0" v-model="scope.row.frequencyLimitValue" placeholder="请选择">
|
|
|
<el-option label="无限制" value="无限制"></el-option>
|
|
|
<el-option label="每日1次" value="每日1次"></el-option>
|
|
|
<el-option label="每周1次" value="每周1次"></el-option>
|
|
|
@@ -184,7 +189,8 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column label="是否开启" width="120">
|
|
|
<template slot-scope="scope">
|
|
|
- <el-switch v-model="scope.row.isEnabled" :disabled="type === 'view'"></el-switch>
|
|
|
+ <el-switch v-model="scope.row.status" active-value="0"
|
|
|
+ inactive-value="1" :disabled="type === 'view'"></el-switch>
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
</el-table>
|
|
|
@@ -206,6 +212,7 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
+import { getActivityById } from "@/api/points/rules_api";
|
|
|
export default {
|
|
|
name: "Activity_editBox",
|
|
|
props: ['activityTypeOption', 'cityOptions'],
|
|
|
@@ -217,18 +224,18 @@ export default {
|
|
|
form: {
|
|
|
name: '',
|
|
|
description: '',
|
|
|
- city: '',
|
|
|
+ cityCode: '',
|
|
|
activityType: '',
|
|
|
- isLongTerm: '',
|
|
|
+ isPermanent: '',
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
dateRange: '',
|
|
|
- dailyBasePoints: '',
|
|
|
- consecutiveBonus: [
|
|
|
- { period: '3', points: '' },
|
|
|
+ basePoints: '',
|
|
|
+ signRewardList: [
|
|
|
+ { continueDays: '3', rewardPoints: '' },
|
|
|
],
|
|
|
- breakRule: 'reset', // reset: 断签重置, keep: 保留进度
|
|
|
- tasks: []
|
|
|
+ breakRule: '0', // 0: 断签重置, 1: 保留进度
|
|
|
+ activityTaskList: []
|
|
|
},
|
|
|
pickerOptions: {
|
|
|
onPick: ({ maxDate, minDate }) => {
|
|
|
@@ -257,13 +264,13 @@ export default {
|
|
|
{ required: true, message: '请输入活动简述', trigger: 'blur' },
|
|
|
{ min: 2, max: 30, message: '请输入2-30个字符', trigger: 'blur' }
|
|
|
],
|
|
|
- city: [
|
|
|
+ cityCode: [
|
|
|
{ required: true, message: '请选择活动城市', trigger: 'change' }
|
|
|
],
|
|
|
activityType: [
|
|
|
{ required: true, message: '请选择活动类型', trigger: 'change' }
|
|
|
],
|
|
|
- dailyBasePoints: [
|
|
|
+ basePoints: [
|
|
|
{ required: true, message: '请输入基础积分', trigger: 'blur' },
|
|
|
{ validator: (rule, value, callback) => {
|
|
|
if (Number(value) < 0) {
|
|
|
@@ -275,7 +282,7 @@ export default {
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
],
|
|
|
- consecutiveBonus: [
|
|
|
+ signRewardList: [
|
|
|
{ validator: (rule, value, callback) => {
|
|
|
if (!value || value.length === 0) {
|
|
|
callback(new Error('请添加连续签到加成'));
|
|
|
@@ -284,11 +291,11 @@ export default {
|
|
|
|
|
|
for (let i = 0; i < value.length; i++) {
|
|
|
const bonus = value[i];
|
|
|
- if (!bonus.period || Number(bonus.period) <= 0) {
|
|
|
+ if (!bonus.period || Number(bonus.continueDays) <= 0) {
|
|
|
callback(new Error('连续签到周期必须大于0'));
|
|
|
return;
|
|
|
}
|
|
|
- if (!bonus.points || Number(bonus.points) <= 0) {
|
|
|
+ if (!bonus.rewardPoints || Number(bonus.rewardPoints) <= 0) {
|
|
|
callback(new Error('连续签到积分必须大于0'));
|
|
|
return;
|
|
|
}
|
|
|
@@ -296,8 +303,8 @@ export default {
|
|
|
|
|
|
// 检查连续签到周期总和是否超过活动总天数
|
|
|
const totalDays = this.getTotalDays();
|
|
|
- if (this.form.isLongTerm === '2' && totalDays > 0) {
|
|
|
- const totalPeriod = value.reduce((sum, item) => sum + Number(item.period), 0);
|
|
|
+ if (this.form.isPermanent == '0' && totalDays > 0) {
|
|
|
+ const totalPeriod = value.reduce((sum, item) => sum + Number(item.continueDays), 0);
|
|
|
if (totalPeriod > totalDays) {
|
|
|
callback(new Error('连续签到周期总和不能超过活动总天数'));
|
|
|
return;
|
|
|
@@ -312,19 +319,19 @@ export default {
|
|
|
dateRange: [
|
|
|
{ required: true, message: '请选择活动时间', trigger: 'change' }
|
|
|
],
|
|
|
- tasks: [
|
|
|
+ activityTaskList: [
|
|
|
{ validator: (rule, value, callback) => {
|
|
|
for (let i = 0; i < value.length; i++) {
|
|
|
const task = value[i];
|
|
|
// 只在任务开启的情况下才校验
|
|
|
- if (task.isEnabled) {
|
|
|
+ if (task.status == '0') {
|
|
|
// 验证完成订单和充值任务的触发条件
|
|
|
- if ((task.taskName === '完成订单' || task.taskName === '充值任务') && (!task.triggerCondition || Number(task.triggerCondition) <= 0)) {
|
|
|
+ if ((task.taskName === '完成订单' || task.taskName === '充值任务') && (!task.triggerValue || Number(task.triggerValue) <= 0)) {
|
|
|
callback(new Error('触发条件必须大于0'));
|
|
|
return;
|
|
|
}
|
|
|
// 验证所有任务的积分
|
|
|
- if (!task.points || Number(task.points) <= 0) {
|
|
|
+ if (!task.rewardPoints || Number(task.rewardPoints) <= 0) {
|
|
|
callback(new Error('积分必须大于0'));
|
|
|
return;
|
|
|
}
|
|
|
@@ -339,33 +346,35 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
+ async getActivityInfo(row) {
|
|
|
+ const res = await getActivityById({id: row.id});
|
|
|
+ return res.data.detail;
|
|
|
+ },
|
|
|
getDefaultTasks() {
|
|
|
return [
|
|
|
- { taskName: '完成订单', triggerCondition: '', points: '', limit: '无限制', isEnabled: false },
|
|
|
- { taskName: '充值任务', triggerCondition: '', points: '', limit: '无限制', isEnabled: false },
|
|
|
- { taskName: '分享服务号', triggerCondition: '点击', points: '', limit: '无限制', isEnabled: false },
|
|
|
- { taskName: '浏览动态', triggerCondition: '点击', points: '', limit: '无限制', isEnabled: false },
|
|
|
- { taskName: '浏览商户', triggerCondition: '点击', points: '', limit: '无限制', isEnabled: false }
|
|
|
+ { taskName: '完成订单', triggerValue: '', rewardPoints: '', frequencyLimitValue: '无限制', status: '1' },
|
|
|
+ { taskName: '充值任务', triggerValue: '', rewardPoints: '', frequencyLimitValue: '无限制', status: '1' },
|
|
|
+ { taskName: '分享服务号', triggerValue: '点击', rewardPoints: '', frequencyLimitValue: '无限制', status: '1' },
|
|
|
+ { taskName: '浏览动态', triggerValue: '点击', rewardPoints: '', frequencyLimitValue: '无限制', status: '1' },
|
|
|
+ { taskName: '浏览商户', triggerValue: '点击', rewardPoints: '', frequencyLimitValue: '无限制', status: '1' }
|
|
|
];
|
|
|
},
|
|
|
getTotalDays() {
|
|
|
- if (this.form.isLongTerm === '2' && this.form.startTime && this.form.endTime) {
|
|
|
+ if (this.form.isPermanent == '0' && this.form.startTime && this.form.endTime) {
|
|
|
const start = new Date(this.form.startTime);
|
|
|
const end = new Date(this.form.endTime);
|
|
|
return Math.floor((end - start) / (1000 * 60 * 60 * 24)) + 1;
|
|
|
}
|
|
|
return 0;
|
|
|
},
|
|
|
- getRow(row, type) {
|
|
|
+ async getRow(row, type) {
|
|
|
/** type ==== 添加:add 复制:copy 编辑:edit 查看:view */
|
|
|
this.type = type;
|
|
|
this.resetForm();
|
|
|
- if (row) {
|
|
|
- if (type === 'copy') {
|
|
|
- this.form = {...row, id: ''};
|
|
|
- } else if (type === 'edit' || type === 'view') {
|
|
|
- this.form = { ...row };
|
|
|
- }
|
|
|
+ if (type !== 'add') {
|
|
|
+ const data = await this.getActivityInfo(row);
|
|
|
+ this.form = type === 'copy' ? {...data, id: ''} : {...data};
|
|
|
+ this.form.dateRange = [this.form.startTime, this.form.endTime];
|
|
|
}
|
|
|
this.pointsActivity = true;
|
|
|
},
|
|
|
@@ -376,18 +385,18 @@ export default {
|
|
|
this.form = {
|
|
|
name: '',
|
|
|
description: '',
|
|
|
- city: '',
|
|
|
- activityType: '1',
|
|
|
- isLongTerm: '1',
|
|
|
+ cityCode: '',
|
|
|
+ activityType: '0',
|
|
|
+ isPermanent: '1',
|
|
|
startTime: '',
|
|
|
endTime: '',
|
|
|
dateRange: '',
|
|
|
- dailyBasePoints: '',
|
|
|
- consecutiveBonus: [
|
|
|
- { period: '3', points: '' },
|
|
|
+ basePoints: '',
|
|
|
+ signRewardList: [
|
|
|
+ { continueDays: '3', rewardPoints: '' },
|
|
|
],
|
|
|
- breakRule: 'reset',
|
|
|
- tasks: this.getDefaultTasks()
|
|
|
+ breakRule: '0',
|
|
|
+ activityTaskList: this.getDefaultTasks()
|
|
|
};
|
|
|
},
|
|
|
handleDateChange(val) {
|
|
|
@@ -401,56 +410,56 @@ export default {
|
|
|
this.handleActivityTypeChange();
|
|
|
},
|
|
|
deletePeriod(index) {
|
|
|
- if (this.form.consecutiveBonus.length <= 1) {
|
|
|
+ if (this.form.signRewardList.length <= 1) {
|
|
|
this.$message.warning('至少保留一个连续签到周期');
|
|
|
return;
|
|
|
}
|
|
|
- this.form.consecutiveBonus.splice(index, 1);
|
|
|
+ this.form.signRewardList.splice(index, 1);
|
|
|
},
|
|
|
handleActivityTypeChange() {
|
|
|
// 重置相关内容
|
|
|
- if (this.form.activityType === '1') {
|
|
|
+ if (this.form.activityType == '0') {
|
|
|
// 签到活动
|
|
|
- this.form.dailyBasePoints = '';
|
|
|
- this.form.consecutiveBonus = [
|
|
|
- { period: '3', points: ''},
|
|
|
+ this.form.basePoints = '';
|
|
|
+ this.form.signRewardList = [
|
|
|
+ { continueDays: '3', rewardPoints: ''},
|
|
|
];
|
|
|
- this.form.breakRule = 'reset';
|
|
|
+ this.form.breakRule = '0';
|
|
|
} else {
|
|
|
// 其他活动
|
|
|
- this.form.tasks = this.getDefaultTasks();
|
|
|
+ this.form.activityTaskList = this.getDefaultTasks();
|
|
|
}
|
|
|
},
|
|
|
addPeriod() {
|
|
|
const totalDays = this.getTotalDays();
|
|
|
- const currentTotalPeriod = this.form.consecutiveBonus.reduce((sum, item) => {
|
|
|
- return sum + (Number(item.period) || 0);
|
|
|
+ const currentTotalPeriod = this.form.signRewardList.reduce((sum, item) => {
|
|
|
+ return sum + (Number(item.continueDays) || 0);
|
|
|
}, 0);
|
|
|
|
|
|
- if (this.form.isLongTerm === '2' && totalDays > 0 && currentTotalPeriod >= totalDays) {
|
|
|
+ if (this.form.isPermanent == '0' && totalDays > 0 && currentTotalPeriod >= totalDays) {
|
|
|
this.$message.warning('连续签到周期总和不能超过活动总天数');
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- this.form.consecutiveBonus.push({
|
|
|
- period: '',
|
|
|
- points: ''
|
|
|
+ this.form.signRewardList.push({
|
|
|
+ continueDays: '',
|
|
|
+ rewardPoints: ''
|
|
|
});
|
|
|
},
|
|
|
updatePeriod(index, value) {
|
|
|
// 触发表单验证
|
|
|
- this.$refs.formRef.validateField('consecutiveBonus');
|
|
|
+ this.$refs.formRef.validateField('signRewardList');
|
|
|
},
|
|
|
getDescription(index) {
|
|
|
let totalPeriodDays = 0;
|
|
|
let totalPoints = 0;
|
|
|
|
|
|
for (let i = 0; i <= index; i++) {
|
|
|
- totalPeriodDays += Number(this.form.consecutiveBonus[i].period) || 0;
|
|
|
- totalPoints += Number(this.form.consecutiveBonus[i].points) || 0;
|
|
|
+ totalPeriodDays += Number(this.form.signRewardList[i].continueDays) || 0;
|
|
|
+ totalPoints += Number(this.form.signRewardList[i].rewardPoints) || 0;
|
|
|
}
|
|
|
|
|
|
- const basePoints = Number(this.form.dailyBasePoints) || 0;
|
|
|
+ const basePoints = Number(this.form.basePoints) || 0;
|
|
|
const finalPoints = totalPoints + basePoints;
|
|
|
|
|
|
if (!totalPeriodDays || !finalPoints) {
|