Bladeren bron

fix: 解决选择数据和展现数据的字段不一致的问题

Damon 10 maanden geleden
bovenliggende
commit
82d9dd0ce9
1 gewijzigde bestanden met toevoegingen van 20 en 17 verwijderingen
  1. 20 17
      src/views/operation/activity/detail.vue

+ 20 - 17
src/views/operation/activity/detail.vue

@@ -12,11 +12,11 @@
         <el-input v-model="form.name" placeholder="请输入活动名称" />
       </el-form-item>
 
-      <el-form-item label="活动类型:" prop="activityType">
+      <el-form-item label="活动类型:">
         <el-select
           v-model="form.platformName"
           placeholder="请选择活动类型"
-          :disabled="disabledActivity"
+          :disabled="hasId"
         >
           <el-option
             v-for="item in platformNames"
@@ -94,13 +94,13 @@
                 <span v-if="disabledActivity">{{ scope.row.goodName }}</span>
                 <el-select
                   v-else
-                  v-model="scope.row.goodId"
+                  v-model="scope.row.goodName"
                   placeholder="请选择活动权益"
                   :disabled="disabledActivity"
                 >
                   <el-option
                     v-for="item in form.platformName === platformNames[1]
-                      ? aaaa[scope.row.deviceId]
+                      ? addDeviceAcitivty[scope.row.deviceId]
                       : serviceTimeOptions"
                     :key="
                       form.platformName === platformNames[1]
@@ -179,7 +179,9 @@ export default {
 
   data() {
     return {
-      aaaa: {},
+      hasId: false,
+      initId: null,
+      addDeviceAcitivty: {},
       // 表单
       deviceRespListTemp: [],
       form: {
@@ -204,14 +206,7 @@ export default {
             trigger: "change",
           },
         ],
-        activityType: [
-          {
-            type: "array",
-            required: true,
-            message: "请选择活动类型",
-            trigger: "change",
-          },
-        ],
+
         timeList: [
           {
             required: true,
@@ -240,7 +235,7 @@ export default {
             for (var i = 0; i < val.length; i++) {
               var deviceId = val[i].deviceId;
               if (this.deviceRespListTemp[i].deviceId != val[i].deviceId) {
-                let a = this.aaaa[`${deviceId}`];
+                let a = this.addDeviceAcitivty[`${deviceId}`];
                 if (a == null || a.length == 0) {
                   this.getGoodList(deviceId);
                 }
@@ -269,7 +264,7 @@ export default {
 
     "form.platformName": {
       handler(val) {
-        if (!this.disabledActivity) {
+        if (!this.$route.query.id) {
           for (let i in this.form.deviceRespList) {
             if (this.form.deviceRespList[i].goodId != null) {
               this.form.deviceRespList[i].goodId = null;
@@ -295,6 +290,7 @@ export default {
   mounted() {
     this.getDevList();
     if (this.$route.query.id) {
+      this.hasId = true;
       this.getDetail();
     }
   },
@@ -310,7 +306,7 @@ export default {
 
       goodList(param).then((res) => {
         if (res.code === 0) {
-          this.aaaa[`${deviceId}`] = res.data;
+          this.addDeviceAcitivty[`${deviceId}`] = res.data;
           this.form.deviceRespList = this.form.deviceRespList.filter((i) => i);
         }
       });
@@ -319,7 +315,6 @@ export default {
     // 详情
     getDetail() {
       detail(this.$route.query.id).then((res) => {
-        console.log("gasdfasdfqwerqr====" + JSON.stringify(res));
         if (res.code === 0) {
           res.data.platformName =
             res.data.platformId === 1
@@ -371,6 +366,14 @@ export default {
 
     // 确定
     getSubmit() {
+      // 解决选择数据和展现数据的字段不一致的问题
+      this.form.deviceRespList.map((i) => {
+        if (i.goodId == null) {
+          i.goodId = i.goodName;
+        }
+      });
+
+      console.log("gasdfasdfqwerqr==22==" + JSON.stringify(this.form));
       submit(this.form).then((res) => {
         if (res.code === 0) {
           this.$message.success("提交成功!");