Browse Source

新增字段前端修改

sql715 3 months ago
parent
commit
ff11422f34
1 changed files with 76 additions and 20 deletions
  1. 76 20
      zkqy-ui/src/views/treeTableMange/index.vue

+ 76 - 20
zkqy-ui/src/views/treeTableMange/index.vue

@@ -219,10 +219,28 @@ export default {
           },
           options: [],
           selectSlot: true,
+          listeners: {
+            change: this.handleTableChangeTree, // 监听 change 事件
+            // focus: this.treeSelectFocus, // 监听 focus 事件
+          },
           rules: [
             { required: true, message: '关联表格不能为空', trigger: 'blur' }
           ],
         },
+        {//treeTableJoinTablecondition
+          label: '关联字段',
+          prop: 'treeTableJoinTableCondition',
+          component: 'el-select',
+          attrs: {
+            placeholder: '请选择表格关联字段',
+            clearable: true,
+          },
+          options: [],
+          selectSlot: true,
+          rules: [
+            { required: true, message: '关联字段不能为空', trigger: 'blur' }
+          ]
+        },
       ],
       //树形表单按钮配置
       treeFormButtons: [
@@ -380,6 +398,7 @@ export default {
                 let data = {}
                 let judgmentMenuResult = await this.judgmentMenu(this.mode);
                 if (judgmentMenuResult.code == 200) {
+                  console.log('this.tableList[1]',this.tableList)
                   data = {
                     menuId: judgmentMenuResult.data,//菜单id
                     menuName: formTopData.menuName,//菜单名称
@@ -387,10 +406,11 @@ export default {
                     treeTableName: formTopData.treeTableName,//树形绑定的表名
                     treeTablePrimaryKey: formTopData.treeTablePrimaryKey,//树形表主键
                     treeTableDgl: formTopData.treeTableDgl,//树形表后台递归列
-                    treeShowLabel: fromTopData.treeShowLabel,// 树形展示列
+                    treeShowLabel: formTopData.treeShowLabel,// 树形展示列
                     treeTableCondition: formTopData.treeTableCondition,//树形表是lable/还是value作为条件
                     tableId: x.tableId,//关联表 
                     tableNameDes: this.tableList[0].dtName,//关联表
+                    treeTableJoinTableCondition:x.treeTableJoinTableCondition,
                     treeTableJoinTable: this.tableList[0].dtTableName,//关联表表名
                     treeTableKey: this.treeTableKey//  树形菜单的treeTableKey
                   }
@@ -415,10 +435,10 @@ export default {
                       treeTablePrimaryKey: formTopData.treeTablePrimaryKey,//树形表主键
                       treeTableDgl: formTopData.treeTableDgl,//树形表后台递归列
                       treeShowLabel: formTopData.treeShowLabel,//树形表展示列
-                      
                       treeTableCondition: formTopData.treeTableCondition,//树形表是lable/还是value作为条件
                       tableId: x.tableId,//关联表 
                       tableNameDes: this.tableList[0].dtName,//关联表
+                      treeTableJoinTableCondition:x.treeTableJoinTableCondition,
                       treeTableJoinTable: this.tableList[0].dtTableName,//关联表表名
                       treeTableKey: this.treeTableKey//  树形菜单的treeTableKey
                     }
@@ -452,10 +472,10 @@ export default {
       if (mode == 2) {
         let tableId = this.$refs.treeTableFormItems.queryParams['tableId']
         let addTableKey;
-        if(tableId){//0314-cs
+        if (tableId) {//0314-cs
           let res = await getTableInfo(tableId);
-          console.log('[res0314----]',res)
-           addTableKey = res.data.tableKey
+          console.log('[res0314----]', res)
+          addTableKey = res.data.tableKey
         }
         let menuName = this.$refs.dynamicForm.queryParams['menuName']
         let parentId = this.$refs.dynamicForm.queryParams['menuId']
@@ -589,14 +609,16 @@ export default {
     },
     // 关联表选择后触发的事件
     handleTableChange(value) {
+      console.log('handleTableChange---value', value)
       // 1. 清除 treeTablePrimaryKey  treeTableDgl
       this.$refs.dynamicForm.queryParams.treeTablePrimaryKey = null; // 或者设置为空数组 []
       this.$refs.dynamicForm.queryParams.treeTableDgl = null; // 或者设置为空数组 []
       this.$refs.dynamicForm.queryParams.treeShowLabel = null; // 或者设置为空数组 []
-      
+
       // 清空 treeTablePrimaryKey 的 options(可选,如果需要清空选项)
       this.treeFormItems[5].options = [];
       this.treeFormItems[7].options = [];
+      this.treeFormItems[8].options = [];
       let data = {
         databaseName: this.databaseName,
         databaseType: this.databaseType,
@@ -618,25 +640,58 @@ export default {
             value: item.fieldName,
           }
         })
+        this.treeFormItems[8].options = res.map(item => {
+          return {
+            ...item,
+            label: item.fieldDescription,
+            value: item.fieldName,
+          }
+        })
 
       }).catch(() => {
         // 清空 treeTablePrimaryKey treeTableDgl 的值
         this.$refs.dynamicForm.queryParams.treeTablePrimaryKey = null; // 或者设置为空数组 []
         this.$refs.dynamicForm.queryParams.treeTableDgl = null; // 或者设置为空数组 []
         this.$refs.dynamicForm.queryParams.treeShowLabel = null; // 或者设置为空数组 []
-        
+
         // 清空 treeTablePrimaryKey 的 options(可选,如果需要清空选项)
         this.treeFormItems[5].options = [];
         this.treeFormItems[7].options = [];
-
+        this.treeFormItems[8].options = [];
       });
     },
+    handleTableChangeTree(value) {
+      this.treeTableFormItems[1].options = []
+      this.$refs.treeTableFormItems.queryParams.treeTableJoinTableCondition = null; // 或者设置为空数组 []
+      let data = this.treeTableFormItems[0].options.filter(item => item.tId == value)[0]
+      if (data?.spare) {
+        let spare = JSON.parse(JSON.parse(JSON.stringify(data.spare)))
+        if (Array.isArray(spare)) {
+          this.treeTableFormItems[1].options = spare.map(item => {
+            return {
+              value: item.fieldName, // 使用 fieldName 作为 value
+              label: item.fieldDescription.trim() // 使用 fieldDescription 作为显示文本,并去掉可能存在的多余空白字符
+            };
+          });
+        } else {
+          console.error('Expected an array for spare but got:', typeof spare);
+          this.treeTableFormItems[1].options = []
+          this.$refs.treeTableFormItems.queryParams.treeTableJoinTableCondition = null; // 或者设置为空数组 []
+
+
+          // 根据实际情况处理 spare 不是数组的情况
+        }
+
+      }
+      // this.treeTableFormItems[1].options
+    },
     // 监听表单值发生变化queryParams
     handleQueryParamsChange(newParams) {
       // console.log('queryParams 发生变化:', newParams);
     },
     // 监听表单值发生变化-表单配置的下方表单
     handleQueryParamsTableChange(newParams) {
+      console.log('newParams',newParams)
       if (newParams.tableId) {
         this.tableLoading = true
         this.getList(newParams.tableId)
@@ -650,14 +705,14 @@ export default {
       listTable(queryParams).then((response) => {
         if (response.code == 200) {
           this.treeTableFormItems[0].options = response.rows.map(item => {
-              return {
-                ...item,
-                label: item.dtName,
-                value: item.tId,
-              }
-            })
+            return {
+              ...item,
+              label: item.dtName,
+              value: item.tId,
+            }
+          })
           if (id) {
-            console.log('--------newParams.tableId存在--------------', id,this.$refs.treeTableFormItems.queryParams)
+            console.log('--------newParams.tableId存在--------------', id, this.$refs.treeTableFormItems.queryParams)
             // tableList是表格字段配置下面的表格
             this.tableList = [];
             // 如果id存在,则找出response.rows中id等于response.rows的item.tId的一项,给表格字段配置下面的表格赋值
@@ -666,14 +721,14 @@ export default {
               this.tableList = [selectedItem];
               this.tableLoading = false
               //让关联表格下拉框有值
-             
+
             } else {
               console.error("未找到与提供的ID匹配的项");
               this.tableList = [];
               this.tableLoading = false
             }
           } else {
-           
+
             this.loading = false
             this.tableLoading = false
           }
@@ -696,6 +751,7 @@ export default {
       if (res.code === 200) {
         this.editor = res.data
         this.handleTableChange(this.editor.treeTableName)
+        console.log("res.data",res.data)
         let {
           menuName,
           treeDesc,
@@ -705,7 +761,7 @@ export default {
           treeTableCondition,
           tableId,
           tableNameDes,
-          treeTableJoinTable,
+          treeTableJoinTableCondition,
           treeShowLabel,
         } = this.editor;
         Object.assign(this.$refs.dynamicForm.queryParams, {
@@ -718,8 +774,8 @@ export default {
           treeTableCondition,
         });
         Object.assign(this.$refs.treeTableFormItems.queryParams, {
-          tableId:Number(tableId),
-          // dtName: this.editData.dtName
+          tableId: Number(tableId),
+          treeTableJoinTableCondition,
         });
         this.$refs.dynamicForm.queryParams.menuId = this.getParentMenuId(
           res.data.menuId,