feat:角色 role 的分配菜单 100%(基于 VbenTree)

This commit is contained in:
YunaiV
2025-04-01 13:55:11 +08:00
parent d7545cbd27
commit ee711fc8ab
5 changed files with 265 additions and 8 deletions

View File

@@ -16,6 +16,7 @@ import { Plus, Download } from '@vben/icons';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
import AssignDataPermissionForm from './modules/assign-data-permission-form.vue';
import AssignMenuForm from '#/views/system/role/modules/assign-menu-form.vue';
import { downloadByData } from '#/utils/download';
const [FormModal, formModalApi] = useVbenModal({
@@ -28,6 +29,11 @@ const [AssignDataPermissionFormModel, assignDataPermissionFormApi] = useVbenModa
destroyOnClose: true,
});
const [AssignMenuFormModel, assignMenuFormApi] = useVbenModal({
connectedComponent: AssignMenuForm,
destroyOnClose: true,
})
/** 编辑角色 */
function onEdit(row: SystemRoleApi.SystemRole) {
formModalApi.setData(row).open();
@@ -62,6 +68,11 @@ function onAssignDataPermission(row: SystemRoleApi.SystemRole) {
assignDataPermissionFormApi.setData(row).open();
}
/** 分配角色的菜单权限 */
function onAssignMenu(row: SystemRoleApi.SystemRole) {
assignMenuFormApi.setData(row).open();
}
/** 表格操作按钮的回调函数 */
function onActionClick({
code,
@@ -80,6 +91,10 @@ function onActionClick({
onAssignDataPermission(row);
break;
}
case 'assign-menu': {
onAssignMenu(row);
break;
}
}
}
@@ -129,6 +144,7 @@ async function onExport() {
<Page auto-content-height>
<FormModal @success="onRefresh" />
<AssignDataPermissionFormModel @success="onRefresh" />
<AssignMenuFormModel @success="onRefresh" />
<Grid table-title="角色列表">
<template #toolbar-tools>
<Button type="primary" @click="onCreate">