From 06394ebc797078d6d2cd09ce681875724f40bd12 Mon Sep 17 00:00:00 2001 From: liangbin <15536829364@163.com> Date: Tue, 27 Jan 2026 11:27:41 +0800 Subject: [PATCH] =?UTF-8?q?refactor(=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86):?= =?UTF-8?q?=20=E9=87=8D=E6=9E=84=E7=BB=84=E7=BB=87=E6=9E=B6=E6=9E=84?= =?UTF-8?q?=E6=A0=91=E6=95=B0=E6=8D=AE=E7=BB=91=E5=AE=9A=E4=B8=8E=E8=A1=A8?= =?UTF-8?q?=E5=8D=95=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除硬编码的树形数据,改为从接口获取并动态转换 - 重命名表单数据变量为更具语义化的JDformData - 优化树节点点击事件处理,自动填充节点详情表单 - 添加parentName处理逻辑,确保上级节点名称正确显示 - 为树组件添加expand-on-click-node属性防止误操作 --- src/views/Logistics/UserManagement/index.vue | 83 ++++++++++---------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/src/views/Logistics/UserManagement/index.vue b/src/views/Logistics/UserManagement/index.vue index dc2d5ed..f3c604f 100644 --- a/src/views/Logistics/UserManagement/index.vue +++ b/src/views/Logistics/UserManagement/index.vue @@ -9,12 +9,9 @@
组织架构树
+ @current-change="handleTreeChange" v-loading="loading" :expand-on-click-node="false" />
- - - @@ -23,28 +20,28 @@ - + - + - + - + - + @@ -123,31 +120,7 @@ const dialogShow = ref(false); // 新增账户弹窗显示状态 const loading = ref(false) // 树形结构数据 -const treeData = ref([ - { - label: '江苏省电力公司', - children: [ - { - label: '南京市供电公司', - children: [ - { - label: '城东片区', - children: [ - { label: 'A办公楼' }, - { label: 'B办公楼' } - ] - }, - { - label: '城西片区', - children: [ - { label: 'C办公楼' } - ] - } - ] - } - ] - } -]) +const treeData = ref([]) // 树形结构配置 const treeProps = { @@ -155,11 +128,12 @@ const treeProps = { label: 'label' } -// 表单数据 -const formData = ref({ - nodeName: '江苏省电力公司', - nodeCode: 'JS001', - parentNode: '-', +// 节点表单数据 +const JDformData = ref({ + deptName: '江苏省电力公司', + deptId: 'JS001', + parentName: '-', + parentId: '-', createTime: '2023-05-15' }) @@ -201,7 +175,10 @@ function convertToTreeData(data) { type: item.type || '单位', status: item.status === '0' ? '已生效' : item.status === '1' ? '已禁用' : (item.status || '已生效'), projects: item.projects || 0, - originalData: item, // 保留原始数据,用于编辑和删除操作 + originalData: { + ...item, + parentName: item.parentName || '', + }, // 保留原始数据,用于编辑和删除操作 children: item.children && item.children.length > 0 ? convertToTreeData(item.children) : undefined })) } @@ -233,7 +210,21 @@ const getDeptTree = async () => { // 如果数据已经是树形结构(有 children),直接使用 let treeStructure = [] if (rawData.length > 0 && rawData[0].parentId !== undefined) { - // 扁平结构,需要转换 + // 扁平结构,需要先处理 parentName + rawData = rawData.map(item => { + let parentName = '' + if (item.parentId && item.parentId !== 0) { + const parent = rawData.find(p => p.deptId === item.parentId) + if (parent) { + parentName = parent.deptName + } + } + return { + ...item, + parentName, + } + }) + // 转换为树形结构 treeStructure = proxy.handleTree(rawData, "deptId", "parentId", "children") } else { // 已经是树形结构 @@ -256,7 +247,15 @@ const getDeptTree = async () => { // 树形结构点击事件 const handleTreeChange = (data) => { - console.log('Current tree node:', data) + // 赋值节点表单数据 + JDformData.value = { + deptName: data.label, + deptId: data.originalData.deptId, + parentName: data.originalData.parentName || '-', + parentId: data.originalData.parentId || '-', + createTime: data.originalData.createTime || '-' + } + console.log(data,'获取当前节点', JDformData.value) } // 获取状态标签类型