Browse Source

fix: cargo集货. 处理my_request分栏保存时删除其他用户数据的问题.

peter 2 days ago
parent
commit
10cf886ff6
1 changed files with 33 additions and 21 deletions
  1. 33 21
      src/pages/cargo-consolidation-request/index.vue

+ 33 - 21
src/pages/cargo-consolidation-request/index.vue

@@ -904,29 +904,37 @@ watch(currentTab, (value: string) => {
   }
 })
 
+let customMapData2 = (a: any[]) =>
+  a.map((i: any) => ({
+    ...i,
+    Requester: i.Requester?.id
+      ? {
+          name: i.Requester.name || '',
+          id: i.Requester.id,
+        }
+      : { name: '', id: '' },
+    Sample: i.Sample || false,
+    batchRecord: i.Batch_Record?.id || '',
+    addFlag: false,
+    editFlag: false,
+    deleteFlag: false,
+  }))
+let otherUsersList = ref([] as any[]) // 其他用户的sublist数据, user那个tab只显示当前用户的, 如果用sdk保存, 会变成删除除了当前用户外的其他所有用户数据.
 const generateSubList = () => {
   // clonedeep 是因为数据里面有 object array, 担心浅复制到表单变量会影响到原始数据
-  subList.value = cloneDeep(
-    subListBackup
-      .filter(
-        (i: any) =>
-          i.Parent_Id.id === currentRow.value.id &&
-          (currentTab.value === 'my_request' ? i.Sales_Person === currentUserName.value : true),
-      )
-      .map((i: any) => ({
-        ...i,
-        Requester: i.Requester?.id
-          ? {
-              name: i.Requester.name || '',
-              id: i.Requester.id,
-            }
-          : { name: '', id: '' },
-        Sample: i.Sample || false,
-        batchRecord: i.Batch_Record?.id || '',
-        addFlag: false,
-        editFlag: false,
-        deleteFlag: false,
-      })),
+  subList.value = customMapData2(
+    cloneDeep(subListBackup).filter(
+      (i: any) =>
+        i.Parent_Id.id === currentRow.value.id &&
+        (currentTab.value === 'my_request' ? i.Sales_Person === currentUserName.value : true),
+    ),
+  )
+  otherUsersList.value = customMapData2(
+    cloneDeep(subListBackup).filter(
+      (i: any) =>
+        i.Parent_Id.id === currentRow.value.id &&
+        (currentTab.value === 'my_request' ? i.Sales_Person !== currentUserName.value : false),
+    ),
   )
 }
 const changeTotal = (row: any) => {
@@ -1327,6 +1335,10 @@ const commitWithSDK = async () => {
     return
   }
 
+  // 如果当前是my_request tab, 把其他用户的数据也加上, 否则会被crm删除
+  if (currentTab.value === 'my_request' && otherUsersList.value.length) {
+    formData = formData.concat(customMapData(otherUsersList.value))
+  }
   let params = {
     APIData: {
       id: currentRow.value.id,