Pārlūkot izejas kodu

fix: 修复自助、存储过程数据集输出字段,字段数据合并错误问题

wu.jian2 1 gadu atpakaļ
vecāks
revīzija
21753d1bb5

+ 11 - 8
data-room-ui/packages/DataSetManagement/src/CustomEditForm.vue

@@ -1321,15 +1321,18 @@ export default {
         this.dataPreviewList = res.data.list
         this.structurePreviewList = res.structure
         // 输出字段描述合并
-        this.structurePreviewList = this.dataForm.fieldList.map(field => {
-          const fieldInfo = this.structurePreviewList.find(item => item.fieldName === field.fieldName)
+        this.structurePreviewList.forEach(field => {
+          const fieldInfo = this.dataForm.fieldList.find(item => item.fieldName === field.fieldName)
           if (fieldInfo) {
-            return {
-              ...field,
-              fieldDesc: field.fieldDesc,
-              orderNum: field.orderNum,
-              sourceTable: field.sourceTable
-            }
+            const { fieldDesc, orderNum, sourceTable, ...rest } = fieldInfo
+            field.fieldDesc = fieldDesc
+            field.orderNum = orderNum
+            field.sourceTable = sourceTable
+            Object.keys(rest).forEach(key => {
+              if (!field.hasOwnProperty(key)) {
+                this.$set(field, key, rest[key])
+              }
+            })
           }
         })
         this.structurePreviewList.forEach(item => {

+ 8 - 7
data-room-ui/packages/DataSetManagement/src/OriginalEditForm.vue

@@ -984,13 +984,14 @@ export default {
               }
               this.$set(item, 'fieldDesc', fieldDesc)
               // this.structurePreviewList 和 this.oldStructurePreviewList 比较,如果旧的数据里fieldDesc有值则重新赋值给新的数据
-              this.structurePreviewList = this.oldStructurePreviewList.map(oldItem => {
-                const data = this.structurePreviewList.find(item => oldItem.fieldName === item.fieldName)
-                if (data) {
-                  return {
-                    ...oldItem,
-                    fieldDesc: oldItem.fieldDesc
-                  }
+              this.structurePreviewList.forEach(item => {
+                const oldItem = this.oldStructurePreviewList.find(oldItem => oldItem.fieldName === item.fieldName)
+                if (oldItem && oldItem.fieldDesc) {
+                  const { fieldDesc, ...rest } = oldItem
+                  item.fieldDesc = fieldDesc
+                  Object.keys(rest).forEach(key => {
+                    this.$set(item, key, rest[key])
+                  })
                 }
               })
             }

+ 11 - 16
data-room-ui/packages/DataSetManagement/src/StoredProcedureEditForm.vue

@@ -1013,23 +1013,18 @@ export default {
         this.dataPreviewList = res.data.list
         this.structurePreviewList = res.structure
         // 输出字段描述合并
-        // this.structurePreviewList.forEach(field => {
-        //   const fieldInfo = this.dataForm.fieldList.find(item => item.fieldName === field.fieldName)
-        //   if (fieldInfo) {
-        //     field.fieldDesc = fieldInfo.fieldDesc
-        //     field.orderNum = fieldInfo.orderNum
-        //     field.sourceTable = fieldInfo.sourceTable
-        //   }
-        // })
-        this.structurePreviewList = this.dataForm.fieldList.map(field => {
-          const fieldInfo = this.structurePreviewList.find(item => item.fieldName === field.fieldName)
+        this.structurePreviewList.forEach(field => {
+          const fieldInfo = this.dataForm.fieldList.find(item => item.fieldName === field.fieldName)
           if (fieldInfo) {
-            return {
-              ...field,
-              fieldDesc: field.fieldDesc,
-              orderNum: field.orderNum,
-              sourceTable: field.sourceTable
-            }
+            const { fieldDesc, orderNum, sourceTable, ...rest } = fieldInfo
+            field.fieldDesc = fieldDesc
+            field.orderNum = orderNum
+            field.sourceTable = sourceTable
+            Object.keys(rest).forEach(key => {
+              if (!field.hasOwnProperty(key)) {
+                this.$set(field, key, rest[key])
+              }
+            })
           }
         })
         this.structurePreviewList.forEach(item => {