From 069da3535063c0ebca241822c234f5d3596c8d36 Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 24 Jul 2025 17:22:06 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=A7=92=E8=89=B2?= =?UTF-8?q?=E5=A4=9A=E5=AD=90=E8=8A=82=E7=82=B9=E6=96=B0=E5=A2=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 63 +++++++++++++++++------------------- 1 file changed, 30 insertions(+), 33 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index a54f698..79dfc9c 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -694,6 +694,8 @@ const handleAddRole = async function () { } }); }); + addRole.value.roleName = addRole.value.roleName.replace(/\s+/g, ''); + console.log('去除角色名空格:',addRole.value.roleName); const res = await API({ @@ -859,52 +861,47 @@ const handleEditRolePermissionCheck = (checkedNodes, { checkedKeys }) => { const handleCheckChange = async (checkedNodes, checkedInfo) => { const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo; - - // 判断是否有选中的节点(避免空数组报错) - if (allCheckedNodes.length === 0) return; - // 取第一个选中的节点 - const node = allCheckedNodes[0]; - // 选中状态 - const checked = checkedKeys.includes(node.id); - - console.log('checkedInfo', checkedInfo); - console.log('node', node); - console.log('checked', checked); - - if (checked) { - const newCheckedKeys = [...checkedInfo.checkedKeys]; - console.log('初始选中项:', newCheckedKeys); - // 执行递归前先清空可能的重复父级(可选优化) - const uniqueKeys = [...new Set(newCheckedKeys)]; - - selectParentNodes(data.value, node.id, uniqueKeys); - console.log('包含父级的选中项:', uniqueKeys); - addRole.value.checkedKeys = uniqueKeys; - } else { - addRole.value.checkedKeys = checkedInfo.checkedKeys; - console.log('else'); - + + // 判断是否有选中的节点 + if (allCheckedNodes.length === 0) { + addRole.value.checkedKeys = []; + return; } + + // 创建一个Set存储所有需要选中的ID(包括父级) + const allKeys = new Set(checkedKeys); + + // 遍历所有选中的节点,为每个节点添加其父级 + allCheckedNodes.forEach(node => { + // 为每个选中的节点单独查找父级 + selectParentNodes(data.value, node.id, allKeys); + }); + + // 将Set转换为数组并更新 + addRole.value.checkedKeys = Array.from(allKeys); + console.log('包含所有父级的选中项:', addRole.value.checkedKeys); }; const selectParentNodes = (treeData, nodeId, checkedKeys) => { - if (!Array.isArray(treeData)) return false; + if (!Array.isArray(treeData)) return false; for (const item of treeData) { - if (item.children && Array.isArray(item.children) && item.children.length > 0) { - const found = selectParentNodes(item.children, nodeId, checkedKeys); - if (found) { - // 避免重复添加父级 - if (!checkedKeys.includes(item.id)) { - checkedKeys.push(item.id); - } + // 先检查子节点 + if (item.children && item.children.length > 0) { + const foundInChildren = selectParentNodes(item.children, nodeId, checkedKeys); + if (foundInChildren) { + // 找到子节点后添加当前节点(父节点) + checkedKeys.add(item.id); return true; } } + + // 检查当前节点是否为目标节点 if (item.id === nodeId) { return true; } } + return false; }; //点击角色权限菜单树点击展示逻辑 From a466a74e36fd5118d738d63c3ac8bb15f4b1914c Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Thu, 24 Jul 2025 17:25:48 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=8E=AF=E5=A2=83=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.env.development b/.env.development index a4267fd..2840558 100644 --- a/.env.development +++ b/.env.development @@ -1,7 +1,8 @@ # VITE_API_BASE='https://hwjb.homilychart.com/dev/admin' # VITE_API_BASE='http://192.168.9.28:8081/' # 测试环境 -# VITE_API_BASE='http://18.143.76.3:10704/' - VITE_API_BASE='http://192.168.9.52:10705/' + VITE_API_BASE='http://18.143.76.3:10704/' +# VITE_API_BASE='http://192.168.9.52:10705/' +# VITE_API_BASE='http://192.168.9.52:8081/' VITE_UPLOAD_URL=http://39.101.133.168:8828/hljw/api/aws/upload