duy 2 жил өмнө
parent
commit
3ba044e3d9

+ 93 - 36
src/views/tentative/detect/test-form.vue

@@ -241,14 +241,15 @@ const tabTypeTab = ref([
 ]);
 const tabTypeChange = ({key}) => {
     console.log(key,'切换key');
-    console.log(ListItemRef.value?.getFormData(),'ListItemRef.value?.getFormData()');
+    // console.log(ListItemRef.value?.getFormData(),'ListItemRef.value?.getFormData()');
     tabTypeKey.value = key
-     listItemBaseData.value.tableType=key
-    if(tabTypeKey.value==='2'){
-        leftFormData.value=ListItemRef.value?.getFormData()
-    }else{
-          rightFormData.value=ListItemRef.value?.getFormData()
-    }
+     let curform=ListItemRef.value?.getFormData()
+    setAllListData(curform)
+    // if(tabTypeKey.value==='2'){
+    //     leftFormData.value=ListItemRef.value?.getFormData()
+    // }else{
+    //       rightFormData.value=ListItemRef.value?.getFormData()
+    // }
 
    
     getSearchNodeTables()
@@ -280,6 +281,8 @@ const listItemData = ref([])
 const listDeviceUseIds=ref('')
 const reportData=ref([])
 const testData=ref([])
+const alllistData=ref([])
+const orgAlllistData=ref([])
 const getSearchNodeTables = async () => {
     isLoading.value = true
     if(isaddType){
@@ -338,15 +341,23 @@ const getSearchNodeTablesall = async (type) => {
             // listItemData.value = getArrValue(data)
               if(type==1){
                 testData.value= getArrValue(data)
+                testData.value.forEach((item)=>{
+                    orgAlllistData.value.push(item)
+                })
             }else{
                  reportData.value= getArrValue(data)
+                 reportData.value.forEach((item)=>{
+                    orgAlllistData.value.push(item)
+                })
             }
         } else {
             // listItemData.value = []
              if(type==1){
                 testData.value= []
+                 alllistData.value=[]
             }else{
-                 reportData.value=  []
+                reportData.value=  []
+                alllistData.value=[]
             }
         }
    
@@ -703,8 +714,8 @@ const linksSampleModalClose = () => {
 //保存
 const tableFormSaveLoading = ref(false)
 const tableFormSaveClick = async () => {
-    console.log(listItemBaseData.value,'.listItemBaseData.value');
-    console.log(isaddType,'isaddType');
+    // console.log(listItemBaseData.value,'.listItemBaseData.value');
+  
     //false是编辑
     //编辑要传记录和报告单
       if(checkrelationString.value.length>0){
@@ -718,32 +729,57 @@ const tableFormSaveClick = async () => {
    
           
             let FormData
-              if(leftFormData.value===undefined||rightFormData.value===undefined){
-                     FormData =ListItemRef.value?.getFormData()
-                     listItemBaseData.value.tableType=tabTypeKey.value
-              }
-             else if(leftFormData.value?.length===0&&rightFormData.value?.length===0){
-                   FormData =ListItemRef.value?.getFormData()
-                    listItemBaseData.value.tableType=tabTypeKey.value
-             }
-              else if(leftFormData.value?.length>0&&tabTypeKey.value==='2'&&ListItemRef.value?.getFormData().length>0){
-                   FormData = leftFormData.value?.concat(ListItemRef.value?.getFormData())
-                    listItemBaseData.value.tableType='1,2'
-              }else if(rightFormData.value?.length>0&&tabTypeKey.value==='1'&&ListItemRef.value?.getFormData().length>0){
-                   FormData = rightFormData.value?.concat(ListItemRef.value?.getFormData())
-                   listItemBaseData.value.tableType='1,2'
-              }
-              else{
-                   FormData = leftFormData.value?.concat(rightFormData.value)
-                   listItemBaseData.value.tableType='1,2'
-              }
-             
-
-           
-           
+         
+            let curform=ListItemRef.value?.getFormData()
+            setAllListData(curform)
+            // alllistData.value.forEach((item)=>{
+            //    if(item.pKeyId===item1.pkeyId){
+                
+            console.log(orgAlllistData.value, "orgAlllistData");
+            let operTrue = alllistData.value.filter(e => e.oper); //操作的数据
+            let types = []
+            operTrue.forEach(e => {
+                    types.push(e.type);
+            })
+            let setTypes = Array.from(new Set(types))
+            let type = setTypes[0];
+            if (setTypes.length > 1 || !isaddType) {
+                 FormData = alllistData.value;
+                 listItemBaseData.value.tableType = "1,2"
+
+                 if (!isaddType && setTypes.length <= 1) { //没有切换的时候,需要添加没切换的数据
+                   //编辑的时候,什么都不操作,原有type为undefined,需取当前页面type
+                    type = setTypes.length == 0 ? alllistData.value[0].type : type; 
+
+                    let notChangeData = orgAlllistData.value.filter(e => e.tableType !== type);
+                    notChangeData.forEach(item => {
+                        let data = {
+                            projectId: item.projectId,
+                            contractId: contractId.value,
+                            pkeyId: item.pKeyId,
+                            nodeId: routerQuery?.nodeId,
+                            isCollapseLoad: false
+                        }
+                        // 过滤存在的key_的键值
+                        let ishasKey=  Object.keys(item).filter(e => e.indexOf("key_") >= 0)
+                        if (ishasKey.length > 0) {
+                            ishasKey.forEach(key => {
+                                data[key] = item[key]
+                            })
+                        }
+
+                        console.log(data, "notChangeData");
+                        FormData.push(data)
+                    })
+                 }
+            } else {
+                FormData = alllistData.value.filter(e => e.type == type); 
+                listItemBaseData.value.tableType = type
+            }
+                
+        
             let FormRegExpJson = ListItemRef.value?.getFormRegExpJson()
-            console.log(getObjNullValue(FormRegExpJson),'getObjNullValue(FormRegExpJson)');
-             
+               console.log(isaddType,'isaddType');
             //效验数据
           
             if (FormData.length > 0) {
@@ -761,6 +797,8 @@ const tableFormSaveClick = async () => {
                     window?.$message?.success('保存成功')
                     listItemBaseData.value.deviceUseIds=''
                     checkTabId.value=''
+                    // alllistData.value.forEach(e => e.oper = false)
+                     alllistData.value=[]
                     if(!isaddType){
                         bussPdfsClick(router.currentRoute.value.query.id)
                     }else{
@@ -771,7 +809,7 @@ const tableFormSaveClick = async () => {
                     getTableDataAll()
                 }
             } else {
-            
+                
                 if(!isaddType){
                         window.$message?.warning('请先选择你需要编辑的表格')
                     bussPdfsClick(router.currentRoute.value.query.id)
@@ -785,6 +823,25 @@ const tableFormSaveClick = async () => {
     
 }
 
+const setAllListData = (curform) => {
+    console.log(curform,'setAllListData curform');
+     curform.forEach((item)=>{
+        let pkeyId = item.pkeyId;
+        item.oper = false
+        let ishasKey=  Object.keys(item).filter(e => e.indexOf("key_") >= 0)
+        if (ishasKey.length>0) { //筛出当前编辑过的数据
+            item.oper = true
+        } 
+
+        let types = orgAlllistData.value.filter(e => e.pKeyId === pkeyId);
+        item.type = types[0].tableType;
+        alllistData.value = alllistData.value.filter(e => e.pkeyId != pkeyId); //去掉老数据
+        alllistData.value.push(item) //加入新数据
+    })
+
+   console.log(alllistData.value,'setAllListData alllistData');
+}
+
 //效验数据
 const setFormRegExpJson = (FormRegExpJson) => {
     let nodeName = '', itemId = '';