From 6fe72dc01a14f80ce635a6d993d35afc2600280e Mon Sep 17 00:00:00 2001 From: ZhangYong Date: Fri, 25 Jul 2025 11:31:04 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E6=9D=83=E9=99=90=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=98=BE=E7=A4=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/permissions/permission.vue | 72 ++++++++++++++++++++---------------- 1 file changed, 40 insertions(+), 32 deletions(-) diff --git a/src/views/permissions/permission.vue b/src/views/permissions/permission.vue index 79dfc9c..bda3e00 100644 --- a/src/views/permissions/permission.vue +++ b/src/views/permissions/permission.vue @@ -221,7 +221,7 @@ const getArea = async function () { try { const result = await request({ url: '/general/adminMarkets', - data: {account:adminData.value.account} + data: { account: adminData.value.account } }) market.value = result.data } catch (error) { @@ -260,6 +260,13 @@ const openUserAddVisible = function () { // 新增角色弹窗 const openPermissionAddVisible = function () { permissionAddVisible.value = true + const addRole = ref({ + roleName: '', + parentId: null, + checkedKeys: [], + grade: '', + market: '' + }) getRoles() getLists() } @@ -298,13 +305,6 @@ const userAddInit = function () { } // 新增角色初始化 const permissionAddInit = function () { - const addRole = ref({ - roleName: '', - parentId: null, - checkedKeys: [], - grade: '', - market: '' - }) openPermissionAddVisible() } //新增用户 @@ -394,10 +394,7 @@ const addUserRules = { }; // 表单验证ref const Ref = ref(null) -// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 -const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { - trailing: false -}) + // 权限类别 const permissionList = ref([]) const getRoles = async function () { @@ -572,7 +569,7 @@ const editAdminRules = { // 编辑用户权限提交 const permissionEdit = async function () { let { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value; - if(oldRole ==null){ + if (oldRole == null) { oldRole = '暂未分配角色' } const newRole = permissionList.value.find(item => item.value === newRoleId)?.label || '未知角色'; @@ -632,9 +629,8 @@ const permissionEdit = async function () { ElMessage.error('编辑用户权限失败') } } -const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { - trailing: false -}) + + // 删除初始化 const del = function (row) { delObj.value = {} @@ -695,7 +691,7 @@ const handleAddRole = async function () { }); }); addRole.value.roleName = addRole.value.roleName.replace(/\s+/g, ''); - console.log('去除角色名空格:',addRole.value.roleName); + console.log('去除角色名空格:', addRole.value.roleName); const res = await API({ @@ -780,10 +776,10 @@ const getLists = async function () { data: { id: roleId } }) data.value = res.data - if (addRole.value.parentId == null || addRole.value.parentId == undefined) { - data.value = data.value - } else if (addRole.value.parentId != 2) { + if (addRole.value.parentId == null || addRole.value.parentId == undefined || addRole.value.parentId != 2) { data.value = data.value.filter(item => item.id !== 9); + } else { + //不做处理 } console.log('看看data', data.value) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) @@ -813,8 +809,8 @@ const getLists = async function () { console.log('addRoleMarket.value', addRoleMarket.value); } else { addRoleMarket.value = RoleArea.value - console.log('elseRoleArea',RoleArea); - + console.log('elseRoleArea', RoleArea); + } } catch (error) { @@ -861,29 +857,29 @@ const handleEditRolePermissionCheck = (checkedNodes, { checkedKeys }) => { const handleCheckChange = async (checkedNodes, checkedInfo) => { const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo; - + // 判断是否有选中的节点 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) { // 先检查子节点 @@ -895,13 +891,13 @@ const selectParentNodes = (treeData, nodeId, checkedKeys) => { return true; } } - + // 检查当前节点是否为目标节点 if (item.id === nodeId) { return true; } } - + return false; }; //点击角色权限菜单树点击展示逻辑 @@ -1052,7 +1048,7 @@ const permissionEditRoleInit = async function (row) { data: { id: roleId } }); data.value = res.data; - + data.value = data.value.filter(item => item.id !== 9); // 收集当前行权限树的所有 id if (row.tree && row.tree.length > 0) { permissionEditRoleObj.value.checkedKeys = collectIds2(row.tree); @@ -1143,6 +1139,18 @@ const Rolerules = reactive({ } ] }); + +const throttledPermissionEdit = _.throttle(permissionEdit, 5000, { + trailing: false +}) +const throttledHandleAddRole = _.throttle(handleAddRole, 5000, { + trailing: false +}) +// 使用 _.throttle 并设置 trailing 为 false 实现严格节流,只执行一次 +const throttledPermissionAdd = _.throttle(permissionAdd, 5000, { + trailing: false +}) + // 挂载 onMounted(async function () { await getAdminData() @@ -1331,7 +1339,7 @@ onMounted(async function () { --> @@ -1513,7 +1521,7 @@ onMounted(async function () {
取消 - + 提交