From a0732d312d14a9f3b41e136e6fa14acd9428f5bf Mon Sep 17 00:00:00 2001 From: zry <18990852002@163.com> Date: Wed, 23 Jul 2025 11:04:47 +0800 Subject: [PATCH] edit role permissions, display the permissions tree according to the superior role and check existing ones by default --- src/views/permissions/permission.vue | 81 ++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 35 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index 84b34e2..0d8b934 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -8,7 +8,7 @@ import { InfoFilled, UserFilled } from '@element-plus/icons-vue' import _ from 'lodash' import request from '@/util/http' import API from '@/util/http' -import { } from 'vue'; +import { } from 'vue'; // 客户明细表格 什么表格??????? const tableData = ref([]) const roleData = ref([]) @@ -723,14 +723,11 @@ const getLists = async function () { if (result.code == 200) { if (typeof result.data === 'string' && result.data) { addRoleMarket.value = result.data.split(','); - addRole.value.market = '' } else if (Array.isArray(result.data)) { addRoleMarket.value = result.data - addRole.value.market = '' } else { addRoleMarket.value = []; - addRole.value.market = '' } } else { ElMessage.error('该上级角色无所属地区') @@ -741,14 +738,11 @@ const getLists = async function () { } else { if (typeof adminData.value.markets === 'string' && adminData.value.markets) { addRoleMarket.value = adminData.value.markets.split(','); - addRole.value.market = '' } else if (Array.isArray(adminData.value.markets)) { addRoleMarket.value = adminData.value.markets - addRole.value.market = '' } else { addRoleMarket.value = []; - addRole.value.market = '' } } @@ -787,22 +781,13 @@ const EdithandleMarketChange = (values) => { console.log('看看现在的地区',permissionEditObj.value.market); }; -<<<<<<< HEAD -// const handleCheckChange = (checkedNodes, { checkedKeys }) => { -// addRole.value.checkedKeys = checkedKeys; -// } -======= ->>>>>>> zhangrenyuan/feature-20250714163943-金币前端二期 // 处理编辑角色权限时的勾选事件 const handleEditRolePermissionCheck = (checkedNodes, { checkedKeys }) => { permissionEditRoleObj.value.checkedKeys = checkedKeys; }; -<<<<<<< HEAD -======= ->>>>>>> zhangrenyuan/feature-20250714163943-金币前端二期 const handleCheckChange = async (checkedNodes, checkedInfo) => { const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo; @@ -960,16 +945,42 @@ const permissionEditRoleInit = async function (row) { permissionEditRoleObj.value.parentName = row.fatherName; permissionEditRoleObj.value.grade = row.priority; - // 直接使用当前行的权限树数据 - if (row.tree && row.tree.length > 0) { + // // 直接使用当前行的权限树数据 + // if (row.tree && row.tree.length > 0) { + // // 收集当前行权限树的所有 id + // permissionEditRoleObj.value.checkedKeys = collectIds(row.tree); + // // 以当前行的权限树数据作为 el-tree 的数据源 + // data.value = row.tree; + // } else { + // permissionEditRoleObj.value.checkedKeys = []; + // data.value = []; + // } + + try { + let roleId = permissionEditRoleObj.value.parentId; + // 如果没有上级角色,可根据实际情况设置默认值,这里假设为 2 + if (permissionEditRoleObj.value.parentId === null || permissionEditRoleObj.value.parentId === undefined) { + roleId = 2; + } + // 调用 /tree 接口,使用上级角色 ID 获取权限列表 + const res = await API({ + url: '/menu/tree', + data: { id: roleId } + }); + data.value = res.data; + // 收集当前行权限树的所有 id - permissionEditRoleObj.value.checkedKeys = collectIds(row.tree); - // 以当前行的权限树数据作为 el-tree 的数据源 - data.value = row.tree; - } else { - permissionEditRoleObj.value.checkedKeys = []; + if (row.tree && row.tree.length > 0) { + permissionEditRoleObj.value.checkedKeys = collectIds(row.tree); + } else { + permissionEditRoleObj.value.checkedKeys = []; + } + } catch (error) { + console.log('根据上级角色获取权限列表失败', error); data.value = []; + permissionEditRoleObj.value.checkedKeys = []; } + console.log('编辑角色', permissionEditRoleObj.value); permissionEditRoleVisible.value = true; @@ -1010,14 +1021,16 @@ const permissionEditRole = async function () { }; -// 挂载 -onMounted(async function () { - await get() - await getArea() - await getStore() - await getRoleList() - await getAdminData() -}) + + +// // 挂载 怎么有俩挂载,注掉一个 +// onMounted(async function () { +// await get() +// await getArea() +// await getStore() +// await getRoleList() +// await getAdminData() +// }) const Rolerules = reactive({ roleName: [ @@ -1262,7 +1275,8 @@ onMounted(async function () { -<<<<<<< HEAD -======= ->>>>>>> zhangrenyuan/feature-20250714163943-金币前端二期