Просмотр исходного кода

feat: 积分时效设置的接口对接

xyh 5 месяцев назад
Родитель
Сommit
53440952de

+ 50 - 41
src/views/pointsManagement/pointsRules/compontents/Activity_editBox.vue

@@ -495,48 +495,57 @@ export default {
     },
     handleSave(type) {
       //3:草稿 4:发布
-      this.validateForm(() => {
-        this.form = this.DateRange(this.form,this.form.dateRange || [],['startTime','endTime'])
-        let paramsUrl = ['add','copy'].includes(this.type) ? addActivity : submitActivity;
-        let params = {
-          id: this.form.id || '',
-          name:this.form.name,
-          description:this.form.description,
-          cityCode:this.form.cityCode,
-          activityType:this.form.activityType,
-          timeConfig:{
-            isPermanent:this.form.isPermanent,
-            startTime:this.form.startTime,
-            endTime:this.form.endTime,
-          },
-          status:type
-        };
-        if(params.activityType == 0){
-          let signTaskDTO = {
-              basePoints: this.form.basePoints,
-              breakRule: this.form.breakRule,
-              signRewardList: this.form.signRewardList,
-            }
-          params = {...params,signTaskDTO:signTaskDTO}
-        }else{
-          let task = this.form.activityTaskList.map((item) => {
-              return {
-                taskName:item.taskName,
-                triggerValue:item.triggerValue,
-                rewardPoints:item.rewardPoints,
-                frequencyLimitValue:item.frequencyLimitValue,
-                status:item.status,
+      this.$confirm('确定要保存吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      }).then(() => {
+        this.validateForm(() => {
+          this.form = this.DateRange(this.form,this.form.dateRange || [],['startTime','endTime'])
+          let paramsUrl = ['add','copy'].includes(this.type) ? addActivity : submitActivity;
+          let params = {
+            id: this.form.id || '',
+            name:this.form.name,
+            description:this.form.description,
+            cityCode:this.form.cityCode,
+            activityType:this.form.activityType,
+            timeConfig:{
+              isPermanent:this.form.isPermanent,
+              startTime:this.form.startTime,
+              endTime:this.form.endTime,
+            },
+            status:type
+          };
+          if(params.activityType == 0){
+            let signTaskDTO = {
+                basePoints: this.form.basePoints,
+                breakRule: this.form.breakRule,
+                signRewardList: this.form.signRewardList,
               }
-            })
-          params = {...params,task:task}
-        }
-        if(['add','copy'].includes(this.type)){
-          delete params.id;
-        }
-          paramsUrl(params).then(response => {
-          this.$message.success('草稿已保存');
-          this.pointsActivity = false;
-        })
+            params = {...params,signTaskDTO:signTaskDTO}
+          }else{
+            let task = this.form.activityTaskList.map((item) => {
+                return {
+                  taskName:item.taskName,
+                  triggerValue:item.triggerValue,
+                  rewardPoints:item.rewardPoints,
+                  frequencyLimitValue:item.frequencyLimitValue,
+                  status:item.status,
+                }
+              })
+            params = {...params,task:task}
+          }
+          if(['add','copy'].includes(this.type)){
+            delete params.id;
+          }
+            paramsUrl(params).then(response => {
+            this.$message.success(type === '3' ? '草稿已保存' : '发布成功');
+            this.pointsActivity = false;
+            this.$emit('save-success');
+          })
+        });
+      }).catch(() => {
+        // 取消保存
       });
     },
   }

+ 24 - 14
src/views/pointsManagement/pointsRules/compontents/Expiration_points.vue

@@ -1,4 +1,5 @@
 <script>
+import {editValidity} from '@/api/points/rules_api'
 export default {
   name: "Expiration_points",
   data() {
@@ -6,9 +7,9 @@ export default {
       validityPeriod: false,
       tabList: [],
       activeTab: "",
-      radio: 3, // 3: 永久有效, 6: 逐笔过期, 9: 逐年过期
-      days: "",
-      years: ""
+      expirePolicy: 1, // 1: 永久有效, 2: 逐笔过期, 3: 逐年过期
+      expireDays: "",
+      expireYear: ""
     }
   },
   methods: {
@@ -21,14 +22,23 @@ export default {
       this.validityPeriod = false;
     },
     handleClick() {
+      this.expirePolicy = 1;
+      this.expireDays = '';
+      this.expireYear = '';
       // 标签页切换处理
     },
-    handleCancel() {
-      this.validityPeriod = false;
-    },
     handleConfirm() {
       // 确定按钮处理
-      this.validityPeriod = false;
+      editValidity({
+        activityType: this.activeTab,
+        expireDays: this.expireDays,
+        expirePolicy: this.expirePolicy,
+        expireYear: this.expireYear
+      }).then(response => {
+        this.$message.success('保存成功');
+        this.validityPeriod = false;
+      })
+
     }
   }
 }
@@ -48,25 +58,25 @@ export default {
     </div>
 
     <div class="radio-group">
-      <el-radio-group v-model="radio">
-        <el-radio :label="3" class="radio-item">永久有效</el-radio>
-        <el-radio :label="6" class="radio-item">
+      <el-radio-group v-model="expirePolicy">
+        <el-radio :label="1" class="radio-item">永久有效</el-radio>
+        <el-radio :label="2" class="radio-item">
           逐笔过期
           <span>每笔积分,在发放之日起</span>
-          <el-input v-model="days" placeholder="" class="input-short"></el-input>
+          <el-input v-model="expireDays" placeholder="" class="input-short"></el-input>
           <span>天后过期</span>
         </el-radio>
-        <el-radio :label="9" class="radio-item">
+        <el-radio :label="3" class="radio-item">
           逐年过期
           <span>1月1日至12月31日获取的积分,将在</span>
-          <el-input v-model="years" placeholder="" class="input-short"></el-input>
+          <el-input v-model="expireYear" placeholder="" class="input-short"></el-input>
           <span>年后的1月1日过期</span>
         </el-radio>
       </el-radio-group>
     </div>
 
     <div class="button-container">
-      <el-button @click="handleCancel" class="cancel-btn">返回</el-button>
+      <el-button @click="handleClose" class="cancel-btn">返回</el-button>
       <el-button type="primary" @click="handleConfirm" class="confirm-btn">确定</el-button>
     </div>
   </el-dialog>

+ 2 - 1
src/views/pointsManagement/pointsRules/index.vue

@@ -85,7 +85,8 @@
                        :activityTypeOption="activityTypeOption"
                        :cityOptions="cityOptions"
                        :taskLimitTimes="taskLimitTimes"
-                       :signRule="signRule"/>
+                       :signRule="signRule"
+                       @save-success="getList"/>
   </div>
 </template>