Forráskód Böngészése

解决表格多选数据bug

chenrui 3 éve
szülő
commit
ce6f058ae1

+ 5 - 1
src/views/common/chooseProductsModal.vue

@@ -279,11 +279,15 @@ export default {
         if (selected) { //  选择
           this.selectedRows.push(record)
         } else { //  取消
+          const arrId = []
           this.selectedRows.map((item, index) => {
             if (item.productSn == record.productSn) {
-              _this.selectedRows.splice(index, 1)
+              arrId.push(index)
             }
           })
+          arrId.map((item, index) => {
+            _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+          })
         }
       }
     },

+ 5 - 1
src/views/common/chooseSupplierModal.vue

@@ -184,11 +184,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.supplierSn == record.supplierSn) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选

+ 0 - 1
src/views/financialManagement/warehousingConfirmation/list.vue

@@ -215,7 +215,6 @@ export default {
         if (res.status == 200) {
           if (this.isBatch) {
             _this.selectedRowKeys = []
-            _this.selectedRows = []
           }
           _this.$message.success(res.message)
           _this.$refs.table.refresh()

+ 5 - 1
src/views/inventoryManagement/inventoryWarning/list.vue

@@ -346,11 +346,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.id == record.id) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选

+ 5 - 1
src/views/productManagement/productInfo/list.vue

@@ -277,11 +277,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.id == record.id) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选

+ 0 - 1
src/views/productManagement/productOfflineAudit/list.vue

@@ -248,7 +248,6 @@ export default {
             _this.loading = false
             if (res.status == 200) {
               _this.selectedRowKeys = []
-              _this.selectedRows = []
               _this.$message.success(res.message)
               _this.$refs.table.refresh()
               _this.spinning = false

+ 51 - 12
src/views/purchasingManagement/bulkWarehousingOrder/list.vue

@@ -142,16 +142,21 @@ export default {
     rowSelection () {
       if (this.$hasPermissions('B_sparePartsAudit')) {
         return {
-			  selectedRowKeys: this.selectedRowKeys,
-			  onChange: (selectedRowKeys, selectedRows) => {
-			    console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows)
-			    this.onSelectChange(selectedRowKeys)
-			  },
-			  getCheckboxProps: record => ({
-			    props: {
-			      disabled: record.state != 'WAIT_AUDIT'
-			    }
-			  })
+          selectedRowKeys: this.selectedRowKeys,
+          onChange: (selectedRowKeys, selectedRows) => {
+            this.onChange(selectedRowKeys, selectedRows)
+          },
+          onSelect: (record, selected, selectedRows, nativeEvent) => {
+            this.onSelectChange(record, selected, selectedRows, nativeEvent)
+          },
+          onSelectAll: (selected, selectedRows, changeRows) => {
+            this.onSelectAllChange(selected, selectedRows, changeRows)
+          },
+          getCheckboxProps: record => ({
+            props: {
+              disabled: record.state != 'WAIT_AUDIT'
+            }
+          })
         }
       } else {
         return null
@@ -159,9 +164,43 @@ export default {
     }
   },
   methods: {
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        const arrId = []
+        this.selectedRows.map((item, index) => {
+          if (item.sparePartsSn == record.sparePartsSn) {
+            arrId.push(index)
+          }
+        })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        const arrId = []
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.sparePartsSn == subItem.sparePartsSn) {
+              arrId.push(index)
+            }
+          })
+        })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
+      }
     },
     //  新增
     handleAdd () {

+ 5 - 1
src/views/salesManagement/outboundOrder/list.vue

@@ -310,11 +310,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.stockOutSn == record.stockOutSn) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选

+ 39 - 3
src/views/salesManagement/salesQuery/chooseActive.vue

@@ -15,7 +15,9 @@
         size="small"
         :row-selection="{
           selectedRowKeys: selectedRowKeys,
-          onChange: onSelectChange,
+          onChange: onChange,
+          onSelect: onSelectChange,
+          onSelectAll: onSelectAllChange,
           getCheckboxProps: record => ({
             props: {
               disabled: record.cost == undefined||record.cost==0||record.productPrice==0||record.productPrice==undefined, // Column configuration not to be checked
@@ -109,9 +111,43 @@ export default {
         this.loading = false
       })
     },
-    onSelectChange (selectedRowKeys, selectedRows) {
+    onChange (selectedRowKeys, selectedRows) {
       this.selectedRowKeys = selectedRowKeys
-      this.selectedRows = selectedRows
+    },
+    onSelectChange (record, selected, selectedRows, nativeEvent) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows.push(record)
+      } else { //  取消
+        const arrId = []
+        this.selectedRows.map((item, index) => {
+          if (item.id == record.id) {
+            arrId.push(index)
+          }
+        })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
+      }
+    },
+    // 本页全选/取消全选
+    onSelectAllChange (selected, selectedRows, changeRows) {
+      const _this = this
+      if (selected) { //  选择
+        this.selectedRows = [...this.selectedRows, ...changeRows]
+      } else { //  取消
+        const arrId = []
+        this.selectedRows.map((item, index) => {
+          this.selectedRows.map((subItem, ind) => {
+            if (item.id == subItem.id) {
+              arrId.push(index)
+            }
+          })
+        })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
+      }
     },
     // 选择产品
     handleSubmit () {

+ 5 - 1
src/views/salesManagement/salesReturn/salesReturnCheck.vue

@@ -126,11 +126,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.id == record.id) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选

+ 10 - 2
src/views/salesManagement/waitDispatch/edit.vue

@@ -175,11 +175,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.id == record.id) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选
@@ -188,13 +192,17 @@ export default {
       if (selected) { //  选择
         this.selectedRows = [...this.selectedRows, ...changeRows]
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           this.selectedRows.map((subItem, ind) => {
             if (item.id == subItem.id) {
-              _this.selectedRows.splice(index, 1)
+              arrId.push(index)
             }
           })
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 统计查询

+ 5 - 1
src/views/salesManagement/waitDispatch/queryPart.vue

@@ -221,11 +221,15 @@ export default {
       if (selected) { //  选择
         this.selectedRows.push(record)
       } else { //  取消
+        const arrId = []
         this.selectedRows.map((item, index) => {
           if (item.id == record.id) {
-            _this.selectedRows.splice(index, 1)
+            arrId.push(index)
           }
         })
+        arrId.map((item, index) => {
+          _this.selectedRows = _this.selectedRows.slice(item, item + 1)
+        })
       }
     },
     // 本页全选/取消全选