Преглед изворни кода

fix: 政策货品信息bug

zh пре 2 година
родитељ
комит
39a6f097bc

+ 28 - 14
src/views/sales_policy/components/AddPolicy.vue

@@ -299,7 +299,7 @@
               <template slot-scope="scope">
                 <template v-if="scope.row.fang">
                   <template v-for="(item, index) in scope.row.walletRelaList">
-                    <el-tag v-if="item.type === 'REBATE'" :key="index" size="mini">
+                    <el-tag v-if="item.type === 'REBATE'" :key="index" style="margin: 5px" type="success" size="mini">
                       {{ item.walletName }}
                     </el-tag>
                   </template>
@@ -344,7 +344,7 @@
               <template slot-scope="scope">
                 <template v-if="scope.row.fang">
                   <template v-for="(item, index) in scope.row.walletRelaList">
-                    <el-tag v-if="item.type === 'COMMONLY'" :key="index" size="mini">
+                    <el-tag v-if="item.type === 'COMMONLY'" :key="index" style="margin: 5px" type="success" size="mini">
                       {{ item.walletName }}
                     </el-tag>
                   </template>
@@ -402,7 +402,7 @@
                 <el-button
                   type="text"
                   class="textColor el-popover-left"
-                  @click="handleEdit(scope.row)"
+                  @click="handleEdit(scope.row, scope.$index)"
                 >编辑</el-button>
                 <el-popconfirm
                   confirm-button-text="好的"
@@ -643,9 +643,9 @@ export default {
         this.$successMsg(status ? '启用' : '作废')
       })
     },
-    handleEdit(row) {
+    handleEdit(row, index) {
       row.fang = !row.fang
-      !row.fang && this.handleWallet(row)
+      !row.fang && this.handleWallet(row, index)
       // this.$nextTick(() => {
       //   this.$refs.plTable.doLayout()
       // })
@@ -677,22 +677,29 @@ export default {
               }
             }
           })
-          if (NoRebateWalletListId.length && !~NoRebateWalletListId.indexOf(this.importWallet.walletId)) {
-            this.importWallet.walletId && this.NoRebateWalletList2.push(this.importWallet)
+          if (NoRebateWalletListId.length && this.importWallet.walletId && !~NoRebateWalletListId.indexOf(this.importWallet.walletId)) {
+            this.NoRebateWalletList2.push(this.importWallet)
+            NoRebateWalletListId.push(this.importWallet.walletId)
           }
           if (rebateListId.length && this.importRebate.walletRebateId && !~rebateListId.indexOf(this.importRebate.walletRebateId)) {
-            this.importRebate.walletRebateId && this.rebateList2.push(this.importRebate)
+            this.rebateList2.push(this.importRebate)
+            rebateListId.push(this.importRebate.walletRebateId)
           }
           const item = this.priceList.find(k => k.priceTypeId === e)
           this.dataList[index][name] = item.priceTypeName
           this.$set(row, 'walletIds', [])
           this.$set(row, 'rebateWalletIds', [])
+          this.dataList[index].walletIds = []
+          this.dataList[index].rebateWalletIds = []
           if (item.walletId) {
-            this.$set(row, 'walletIds', [...row.walletIds, ...NoRebateWalletListId])
+            this.$set(row, 'walletIds', [...new Set([...row.walletIds, ...NoRebateWalletListId])])
+            this.dataList[index].walletIds = [...new Set([...row.walletIds, ...NoRebateWalletListId])]
           }
           if (item.walletId2) {
-            this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, ...rebateListId])
+            this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, ...rebateListId])])
+            this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, ...rebateListId])]
           }
+          console.log(this.dataList, row, 7868687)
           return
         }
         this.dataList[index][name] = row[name]
@@ -702,6 +709,8 @@ export default {
         this.dataList[index][name] = ''
         this.$set(row, 'walletIds', [])
         this.$set(row, 'rebateWalletIds', [])
+        this.dataList[index].walletIds = []
+        this.dataList[index].rebateWalletIds = []
       }
     },
     // 下载excel模板
@@ -1094,6 +1103,7 @@ export default {
           return
         }
       }
+
       savePolicy(this.dataList)
         .then(res => {
           this.dataList = []
@@ -1151,7 +1161,9 @@ export default {
         ]
       }).then(res => {
         this.priceList = res.data.records
-        this.priceList2 = this.quChong(res.data.records, 'priceTypeId')
+        if (res.data.records && res.data.records.length) {
+          this.priceList2 = this.quChong(res.data.records, 'priceTypeId')
+        }
         return Promise.resolve()
       })
     },
@@ -1173,7 +1185,7 @@ export default {
       }
       return result
     },
-    handleWallet(row) {
+    handleWallet(row, index) {
       if (row.saleTypeCode) {
         this.getPriceSalesRelaListV2(row.saleTypeCode).then(res => {
           this.NoRebateWalletList2 = []
@@ -1226,8 +1238,10 @@ export default {
               }
             })
           }
-          this.$set(row, 'walletIds', [...row.walletIds, ...NoRebateWalletListId])
-          this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, ...rebateListId])
+          this.$set(row, 'walletIds', [...new Set([...row.walletIds, ...NoRebateWalletListId])])
+          this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, ...rebateListId])])
+          this.dataList[index].walletIds = [...new Set([...row.walletIds, ...NoRebateWalletListId])]
+          this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, ...rebateListId])]
         })
       }
     }

+ 23 - 13
src/views/sales_policy/components/editPolicy.vue

@@ -301,7 +301,7 @@
                 <template slot-scope="scope">
                   <template v-if="scope.row.fang">
                     <template v-for="(item, index) in scope.row.walletRelaList">
-                      <el-tag v-if="item.type === 'REBATE'" :key="index" size="mini">
+                      <el-tag v-if="item.type === 'REBATE'" :key="index" style="margin: 5px" type="success" size="mini">
                         {{ item.walletName }}
                       </el-tag>
                     </template>
@@ -346,7 +346,7 @@
                 <template slot-scope="scope">
                   <template v-if="scope.row.fang">
                     <template v-for="(item, index) in scope.row.walletRelaList">
-                      <el-tag v-if="item.type === 'COMMONLY'" :key="index" size="mini">
+                      <el-tag v-if="item.type === 'COMMONLY'" :key="index" style="margin: 5px" type="success" size="mini">
                         {{ item.walletName }}
                       </el-tag>
                     </template>
@@ -404,7 +404,7 @@
                   <el-button
                     type="text"
                     class="textColor el-popover-left"
-                    @click="handleEdit(scope.row)"
+                    @click="handleEdit(scope.row, scope.$index)"
                   >编辑
                   </el-button>
                   <el-popconfirm
@@ -693,9 +693,9 @@ export default {
         this.$successMsg(status ? '启用' : '作废')
       })
     },
-    handleEdit(row) {
+    handleEdit(row, index) {
       row.fang = !row.fang
-      !row.fang && this.handleWallet(row)
+      !row.fang && this.handleWallet(row, index)
     },
     setText(e, index, row, name) {
       if (e) {
@@ -724,21 +724,27 @@ export default {
               }
             }
           })
-          if (NoRebateWalletListId.length && !~NoRebateWalletListId.indexOf(this.importWallet.walletId)) {
-            this.importWallet.walletId && this.NoRebateWalletList2.push(this.importWallet)
+          if (NoRebateWalletListId.length && this.importWallet.walletId && !~NoRebateWalletListId.indexOf(this.importWallet.walletId)) {
+            this.NoRebateWalletList2.push(this.importWallet)
+            NoRebateWalletListId.push(this.importWallet.walletId)
           }
           if (rebateListId.length && this.importRebate.walletRebateId && !~rebateListId.indexOf(this.importRebate.walletRebateId)) {
-            this.importRebate.walletRebateId && this.rebateList2.push(this.importRebate)
+            this.rebateList2.push(this.importRebate)
+            rebateListId.push(this.importRebate.walletRebateId)
           }
           const item = this.priceList.find(k => k.priceTypeId === e)
           this.dataList[index][name] = item.priceTypeName
           this.$set(row, 'walletIds', [])
           this.$set(row, 'rebateWalletIds', [])
+          this.dataList[index].walletIds = []
+          this.dataList[index].rebateWalletIds = []
           if (item.walletId) {
-            this.$set(row, 'walletIds', [...row.walletIds, ...NoRebateWalletListId])
+            this.$set(row, 'walletIds', [...new Set([...row.walletIds, ...NoRebateWalletListId])])
+            this.dataList[index].walletIds = [...new Set([...row.walletIds, ...NoRebateWalletListId])]
           }
           if (item.walletId2) {
-            this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, ...rebateListId])
+            this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, ...rebateListId])])
+            this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, ...rebateListId])]
           }
           return
         }
@@ -749,6 +755,8 @@ export default {
         this.dataList[index][name] = ''
         this.$set(row, 'walletIds', [])
         this.$set(row, 'rebateWalletIds', [])
+        this.dataList[index].walletIds = []
+        this.dataList[index].rebateWalletIds = []
       }
     },
     // 下载excel模板
@@ -1267,7 +1275,7 @@ export default {
       }
       return result
     },
-    handleWallet(row) {
+    handleWallet(row, index) {
       if (row.saleTypeCode) {
         this.getPriceSalesRelaListV2(row.saleTypeCode).then(res => {
           this.NoRebateWalletList2 = []
@@ -1320,8 +1328,10 @@ export default {
               }
             })
           }
-          this.$set(row, 'walletIds', [...row.walletIds, ...NoRebateWalletListId])
-          this.$set(row, 'rebateWalletIds', [...row.rebateWalletIds, ...rebateListId])
+          this.$set(row, 'walletIds', [...new Set([...row.walletIds, ...NoRebateWalletListId])])
+          this.$set(row, 'rebateWalletIds', [...new Set([...row.rebateWalletIds, ...rebateListId])])
+          this.dataList[index].walletIds = [...new Set([...row.walletIds, ...NoRebateWalletListId])]
+          this.dataList[index].rebateWalletIds = [...new Set([...row.rebateWalletIds, ...rebateListId])]
         })
       }
     }