Browse Source

edit role permissions, display the permissions tree according to the superior role and check existing ones by default

zhangrenyuan/feature-20250714163943-金币前端二期
zry 2 weeks ago
parent
commit
a0732d312d
  1. 81
      src/views/permissions/permission.vue

81
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,17 +945,43 @@ 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 () {
<template #footer>
<!-- 居中显示 -->
<el-form ref="Ref" :rules="addUserRules" :model="addAdmin" label-width="auto" style="max-width: 600px; align-items: center">
<el-form ref="Ref" :rules="addUserRules" :model="addAdmin" label-width="auto"
style="max-width: 600px; align-items: center">
<el-form-item prop="account" label="OA号:" required clearable>
<el-input v-model="addAdmin.account" placeholder="请输入OA号" style="width: 220px" />
</el-form-item>
@ -1438,10 +1452,7 @@ onMounted(async function () {
</template>
</el-dialog>
<<<<<<< HEAD
=======
>>>>>>> zhangrenyuan/feature-20250714163943-金币前端二期
<!-- 編輯角色彈窗 -->
<el-dialog v-model="permissionEditRoleVisible" title="编辑角色" width="800px" :close-on-click-modal="false">
<template #footer>

Loading…
Cancel
Save