diff --git a/src/components/DesignForm/formControlPropertiNew.vue b/src/components/DesignForm/formControlPropertiNew.vue index 04be234..a311287 100644 --- a/src/components/DesignForm/formControlPropertiNew.vue +++ b/src/components/DesignForm/formControlPropertiNew.vue @@ -2941,16 +2941,35 @@ const currentComponentOptions = computed(() => { return controlData.value.options }) -// 获取当前选择的索引列节点(用于获取label) -const currentIndexColumnNode = computed(() => { - if (!controlData.value?.control?.zdtcsz?.tby) return null - return zdtcszTree.value.find(item => item.id == controlData.value.control.zdtcsz.tby) -}) +// 递归查找树节点 +const findTreeNode = (tree, id) => { + if (!tree || !Array.isArray(tree)) return null + + for (let node of tree) { + if (node.id === id) { + return node + } + + // 如果有子节点,递归查找 + if (node.children && node.children.length > 0) { + const found = findTreeNode(node.children, id) + if (found) return found + } + } + + return null +} // 获取当前选择的标题行节点(用于获取label) const currentTitleColumnNode = computed(() => { if (!controlData.value?.control?.zdtcsz?.tbx) return null - return zdtcszTree.value.find(item => item.id == controlData.value.control.zdtcsz.tbx) + return findTreeNode(zdtcszTree.value, controlData.value.control.zdtcsz.tbx) +}) + +// 获取当前选择的索引列节点(用于获取label) +const currentIndexColumnNode = computed(() => { + if (!controlData.value?.control?.zdtcsz?.tby) return null + return findTreeNode(zdtcszTree.value, controlData.value.control.zdtcsz.tby) }) // 索引列的标签 @@ -2989,8 +3008,10 @@ const zdtcszTableColumns = computed(() => { // 监听标题行和索引列的变化,重新生成表格数据 watch([titleOptions, indexOptions], ([newTitleOptions, newIndexOptions]) => { + // 如果都没有选择,清空表格数据 if (!newTitleOptions.length && !newIndexOptions.length) { + console.log("如果都没有选择,清空表格数据") zdtcszTableData.value = [] return } diff --git a/src/components/DesignForm/public/form/form.vue b/src/components/DesignForm/public/form/form.vue index d5772cf..8719f84 100644 --- a/src/components/DesignForm/public/form/form.vue +++ b/src/components/DesignForm/public/form/form.vue @@ -646,7 +646,7 @@ provide(constControlChange, ({ key, value, data, tProp, type, attribute }: any) } // }) - showOrHide(data); + showOrHide(data,value); if (typeof props.changeKeyVal === "function") { props.changeKeyVal(key, value, type, attribute); @@ -688,8 +688,25 @@ function isEmptyPlainObject(obj) { } -function showOrHide(data: any) { - //console.log(data) +function showOrHide(data: any,currentDataNameValue?:any) { + + let dataObjFlag = false//data是否是对象 + if(data=="onMounted"||data=="kong"){ + + }else{ + console.log(data) + dataObjFlag = true + console.log(data.name) + } + if(dataObjFlag){ + if(data.type=="select"||data.type=="radio"||data.type=="checkbox"||data.type=="switch"){ + + }else{ + return + } + + } + /* 企管部有当前用户, @@ -1292,21 +1309,32 @@ nextTick(()=>{ //console.log(rowValue) let columnValue = model.value[tby] //console.log(columnValue) - if(tbx!=""&&tby!=""){ + + /* if(dataObjFlag && element.name==data.name && currentDataNameValue!=""){//允许直接选择被矩阵填充的字段 + console.log(data.name) + console.log("直接选择被矩阵填充的字段,允许") + model.value[element.name] = currentDataNameValue + return + }else{ */ + if(tbx!=""&&tby!=""){ - let cellValue = getTableCellValue(element.tableData, rowValue, columnValue) - model.value[element.name] = cellValue*1 - }else if(tbx!=""&&tby==""){ - //console.log("仅设置了标题行") - let cellValue = getTableCellValue(element.tableData, rowValue, 'default') - //console.log(cellValue) - model.value[element.name] = cellValue*1 - }else if(tbx==""&&tby!=""){ - //console.log("仅设置了索引列") - let cellValue = getTableCellValue(element.tableData, 'any', columnValue) - //console.log(cellValue) - model.value[element.name] = cellValue*1 - } + let cellValue = getTableCellValue(element.tableData, rowValue, columnValue) + model.value[element.name] = cellValue*1 + }else if(tbx!=""&&tby==""){ + //console.log("仅设置了标题行") + let cellValue = getTableCellValue(element.tableData, rowValue, 'default') + //console.log(cellValue) + model.value[element.name] = cellValue*1 + }else if(tbx==""&&tby!=""){ + //console.log("仅设置了索引列") + let cellValue = getTableCellValue(element.tableData, 'any', columnValue) + //console.log(cellValue) + model.value[element.name] = cellValue*1 + } + + //} + +