Browse Source

角色权限管理显示逻辑

zhangrenyuan/feature-20250714163943-金币前端二期
ZhangYong 3 weeks ago
parent
commit
6fe72dc01a
  1. 72
      src/views/permissions/permission.vue

72
src/views/permissions/permission.vue

@ -221,7 +221,7 @@ const getArea = async function () {
try { try {
const result = await request({ const result = await request({
url: '/general/adminMarkets', url: '/general/adminMarkets',
data: {account:adminData.value.account}
data: { account: adminData.value.account }
}) })
market.value = result.data market.value = result.data
} catch (error) { } catch (error) {
@ -260,6 +260,13 @@ const openUserAddVisible = function () {
// //
const openPermissionAddVisible = function () { const openPermissionAddVisible = function () {
permissionAddVisible.value = true permissionAddVisible.value = true
const addRole = ref({
roleName: '',
parentId: null,
checkedKeys: [],
grade: '',
market: ''
})
getRoles() getRoles()
getLists() getLists()
} }
@ -298,13 +305,6 @@ const userAddInit = function () {
} }
// //
const permissionAddInit = function () { const permissionAddInit = function () {
const addRole = ref({
roleName: '',
parentId: null,
checkedKeys: [],
grade: '',
market: ''
})
openPermissionAddVisible() openPermissionAddVisible()
} }
// //
@ -394,10 +394,7 @@ const addUserRules = {
}; };
// ref // ref
const Ref = ref(null) const Ref = ref(null)
// 使 _.throttle trailing false
const throttledPermissionAdd = _.throttle(permissionAdd, 5000, {
trailing: false
})
// //
const permissionList = ref([]) const permissionList = ref([])
const getRoles = async function () { const getRoles = async function () {
@ -572,7 +569,7 @@ const editAdminRules = {
// //
const permissionEdit = async function () { const permissionEdit = async function () {
let { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value; let { adminName: userName, roleName: oldRole, roleId: newRoleId } = permissionEditObj.value;
if(oldRole ==null){
if (oldRole == null) {
oldRole = '暂未分配角色' oldRole = '暂未分配角色'
} }
const newRole = permissionList.value.find(item => item.value === newRoleId)?.label || '未知角色'; const newRole = permissionList.value.find(item => item.value === newRoleId)?.label || '未知角色';
@ -632,9 +629,8 @@ const permissionEdit = async function () {
ElMessage.error('编辑用户权限失败') ElMessage.error('编辑用户权限失败')
} }
} }
const throttledPermissionEdit = _.throttle(permissionEdit, 5000, {
trailing: false
})
// //
const del = function (row) { const del = function (row) {
delObj.value = {} delObj.value = {}
@ -695,7 +691,7 @@ const handleAddRole = async function () {
}); });
}); });
addRole.value.roleName = addRole.value.roleName.replace(/\s+/g, ''); addRole.value.roleName = addRole.value.roleName.replace(/\s+/g, '');
console.log('去除角色名空格:',addRole.value.roleName);
console.log('去除角色名空格:', addRole.value.roleName);
const res = await API({ const res = await API({
@ -780,10 +776,10 @@ const getLists = async function () {
data: { id: roleId } data: { id: roleId }
}) })
data.value = res.data 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); data.value = data.value.filter(item => item.id !== 9);
} else {
//
} }
console.log('看看data', data.value) console.log('看看data', data.value)
console.log('parentID:', addRole.value.parentId, 'roleId:', roleId) console.log('parentID:', addRole.value.parentId, 'roleId:', roleId)
@ -813,8 +809,8 @@ const getLists = async function () {
console.log('addRoleMarket.value', addRoleMarket.value); console.log('addRoleMarket.value', addRoleMarket.value);
} else { } else {
addRoleMarket.value = RoleArea.value addRoleMarket.value = RoleArea.value
console.log('elseRoleArea',RoleArea);
console.log('elseRoleArea', RoleArea);
} }
} catch (error) { } catch (error) {
@ -861,29 +857,29 @@ const handleEditRolePermissionCheck = (checkedNodes, { checkedKeys }) => {
const handleCheckChange = async (checkedNodes, checkedInfo) => { const handleCheckChange = async (checkedNodes, checkedInfo) => {
const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo; const { checkedKeys, checkedNodes: allCheckedNodes } = checkedInfo;
// //
if (allCheckedNodes.length === 0) { if (allCheckedNodes.length === 0) {
addRole.value.checkedKeys = []; addRole.value.checkedKeys = [];
return; return;
} }
// SetID // SetID
const allKeys = new Set(checkedKeys); const allKeys = new Set(checkedKeys);
// //
allCheckedNodes.forEach(node => { allCheckedNodes.forEach(node => {
// //
selectParentNodes(data.value, node.id, allKeys); selectParentNodes(data.value, node.id, allKeys);
}); });
// Set // Set
addRole.value.checkedKeys = Array.from(allKeys); addRole.value.checkedKeys = Array.from(allKeys);
console.log('包含所有父级的选中项:', addRole.value.checkedKeys); console.log('包含所有父级的选中项:', addRole.value.checkedKeys);
}; };
const selectParentNodes = (treeData, nodeId, checkedKeys) => { const selectParentNodes = (treeData, nodeId, checkedKeys) => {
if (!Array.isArray(treeData)) return false;
if (!Array.isArray(treeData)) return false;
for (const item of treeData) { for (const item of treeData) {
// //
@ -895,13 +891,13 @@ const selectParentNodes = (treeData, nodeId, checkedKeys) => {
return true; return true;
} }
} }
// //
if (item.id === nodeId) { if (item.id === nodeId) {
return true; return true;
} }
} }
return false; return false;
}; };
// //
@ -1052,7 +1048,7 @@ const permissionEditRoleInit = async function (row) {
data: { id: roleId } data: { id: roleId }
}); });
data.value = res.data; data.value = res.data;
data.value = data.value.filter(item => item.id !== 9);
// id // id
if (row.tree && row.tree.length > 0) { if (row.tree && row.tree.length > 0) {
permissionEditRoleObj.value.checkedKeys = collectIds2(row.tree); 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 () { onMounted(async function () {
await getAdminData() await getAdminData()
@ -1331,7 +1339,7 @@ onMounted(async function () {
</el-table-column> --> </el-table-column> -->
<el-table-column prop="operation" label="操作" width="200px"> <el-table-column prop="operation" label="操作" width="200px">
<template #default="scope"> <template #default="scope">
<el-button type="warning" text @click="permissionEditRoleInit(scope.row)">
<el-button type="warning" text @click="permissionEditRoleInit(scope.row)" :disabled="scope.row.id === 2">
编辑 编辑
</el-button> </el-button>
</template> </template>
@ -1513,7 +1521,7 @@ onMounted(async function () {
<div> <div>
<el-button @click="closePermissionAddVisible()">取消</el-button> <el-button @click="closePermissionAddVisible()">取消</el-button>
<el-button type="primary" @click="handleAddRole">
<el-button type="primary" @click="throttledHandleAddRole">
提交 提交
</el-button> </el-button>
</div> </div>

Loading…
Cancel
Save