浏览代码

对象地址问题

CzRger 2 月之前
父节点
当前提交
8a4c790afb
共有 1 个文件被更改,包括 17 次插入4 次删除
  1. 17 4
      src/views/form/business-model/index.vue

+ 17 - 4
src/views/form/business-model/index.vue

@@ -61,7 +61,7 @@
               <div class="__czr-table-operations">
                 <CzrButton
                   type="table-del"
-                  @click="state.allSelected.delete(scope.row.id)"
+                  @click="() => state.allSelected.delete(scope.row.id)"
                 />
               </div>
             </template>
@@ -211,10 +211,19 @@ const onAdd = () => {
   state.list.show = true
 }
 const onGetList = (map) => {
+  const newIds: any = []
   map.forEach((v) => {
+    newIds.push(v.id)
     v.haveOrNo = route.query.haveOrNo
+    if (!state.allSelected.has(v.id)) {
+      state.allSelected.set(v.id, JSON.parse(JSON.stringify(v)))
+    }
+  })
+  Array.from(state.allSelected.keys()).forEach((v) => {
+    if (!newIds.includes(v)) {
+      state.allSelected.delete(v)
+    }
   })
-  state.allSelected = new Map(map)
 }
 const onClear = () => {
   ElMessageBox.confirm('请确认是否清空全部数据?', '提示')
@@ -230,7 +239,9 @@ const onTextImport = () => {
 const onGetTextImport = (arr) => {
   arr.forEach((v) => {
     v.haveOrNo = route.query.haveOrNo
-    state.allSelected.set(v.id, v)
+    if (!state.allSelected.has(v.id)) {
+      state.allSelected.set(v.id, v)
+    }
   })
 }
 const onExcelImport = () => {
@@ -240,7 +251,9 @@ const onExcelImport = () => {
 const onGetExcelImport = (arr) => {
   arr.forEach((v) => {
     v.haveOrNo = route.query.haveOrNo
-    state.allSelected.set(v.id, v)
+    if (!state.allSelected.has(v.id)) {
+      state.allSelected.set(v.id, v)
+    }
   })
 }
 const onSubmit = () => {