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

试验检测表单提交数据修改

duy 2 éve
szülő
commit
24150b80b9
1 módosított fájl, 80 hozzáadás és 40 törlés
  1. 80 40
      src/views/tentative/detect/test-form.vue

+ 80 - 40
src/views/tentative/detect/test-form.vue

@@ -750,55 +750,86 @@ const tableFormSaveClick = async () => {
             setAllListData(curform)
             // alllistData.value.forEach((item)=>{
             //    if(item.pKeyId===item1.pkeyId){
-                
-            console.log(orgAlllistData.value, "orgAlllistData");
+
+            console.log(orgAlllistData, "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,
-                            isBussShow:item.isBussShow
-                        }
-                        // 过滤存在的key_的键值
-                        let ishasKey=  Object.keys(item).filter(e => e.indexOf("key_") >= 0)
-                        if (ishasKey.length > 0) {
-                            ishasKey.forEach(key => {
-                                data[key] = item[key]
-                            })
-                        }
-                        FormData.push(data)
-                    })
-                 }
-            } else {
-                FormData = alllistData.value.filter(e => e.type == type); 
-                listItemBaseData.value.tableType = type
-            }
-                
+            let type = setTypes.length > 0 ? setTypes[0] : "";
+            
+           if (isaddType) { //新增
+                if (setTypes.length > 1) {
+                    FormData = alllistData.value;
+                    listItemBaseData.value.tableType = "1,2"
+                } else {
+                    FormData = alllistData.value.filter(e => e.type == type); 
+                    listItemBaseData.value.tableType = type
+                }
+           } 
+           else { //编辑
+                FormData = alllistData.value;
+
+                const info = getStoreData('test-form')
+                let recordNo = info.recordNo
+                let reportNo = info.reportNo
+
+                //组装type
+                if (recordNo ==='' && reportNo !=='') {
+                    listItemBaseData.value.tableType = "2"
+                } else if (recordNo !=='' && reportNo ==='') {
+                    listItemBaseData.value.tableType = "1"
+                } else {
+                     listItemBaseData.value.tableType = "1,2"
+                }
+
+                console.log(listItemBaseData.value.tableType,"listItemBaseData.value.tableType ");
+
+                let notChangeData = []
+                if (setTypes.length == 0) { //没操作过页面数据
+                    FormData = []
+                    notChangeData = orgAlllistData.value //默认就是原始左右全部数据
+                    if (listItemBaseData.value.tableType.length === 1) { //从原始数据过滤当前页面数据
+                        notChangeData = orgAlllistData.value.filter(e => e.tableType === listItemBaseData.value.tableType);
+                    }
+                } 
+                else if (setTypes.length == 1) {// 操作过一边的数据
+                    let tableTypeArr = listItemBaseData.value.tableType.split(",");
+                    if (tableTypeArr[0] != type) { //两边都有数据/当前操作的数据不是进来时的选项,筛选另一边的数据
+                        listItemBaseData.value.tableType = "1,2"
+                    }
+                } else { //两边都操作
+                    listItemBaseData.value.tableType = "1,2"
+                }
+
+                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]
+                        })
+                    }
+                    FormData.push(data)
+                })
+           }
         
             let FormRegExpJson = ListItemRef.value?.getFormRegExpJson()
                console.log(isaddType,'isaddType');
                console.log(FormData,'FormData1111111111');
 
-                if(isaddType&&FormData.length==0){
-                    console.log('什么都不操作新增');
+                if(isaddType&&FormData.length==0||!isaddType&&FormData.length==0){
+                    console.log('什么都不操作新增或者编辑');
                     if(tabTypeKey.value ==1){
                       FormData=alllistData.value.filter((itenel)=>{
                            return itenel.type==1
@@ -873,14 +904,23 @@ const 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;
+        let orgData = orgAlllistData.value.filter(e => e.pKeyId === pkeyId);
+        item.type = orgData[0]?.tableType;
         alllistData.value = alllistData.value.filter(e => e.pkeyId != pkeyId); //去掉老数据
+        
+        ishasKey=  Object.keys(orgData[0]).filter(e => e.indexOf("key_") >= 0)
+        if (!item.isCollapseLoad && ishasKey.length>0) { //没操作过,并且存在KEY
+            ishasKey.forEach(key => {
+                item[key] = orgData[0][key]
+            })
+        }
+
         alllistData.value.push(item) //加入新数据
     })