1.修复角色组不能选择权限的报错

2.修复角色创建子角色报权限不够的问题
This commit is contained in:
2026-05-29 10:06:10 +08:00
parent 2140b37dfd
commit eba80b1bf4
7 changed files with 194 additions and 51 deletions

View File

@@ -2,7 +2,7 @@ import createAxios from '/@/utils/axios'
export function getAdminRules() {
return createAxios({
url: '/admin/auth.Rule/index',
url: '/admin/auth.Group/rules',
method: 'get',
params: {
force_menu_zh: 1,

View File

@@ -104,6 +104,14 @@ const baTable = new baTableClass(
}
)
// 编辑自身时不提交角色组,避免与后端「不可修改自己所在管理组」校验冲突
baTable.before.onSubmit = ({ operate, items }) => {
if (operate === 'edit' && items.id == adminInfo.id) {
delete items.group_arr
delete items.group_name_arr
}
}
provide('baTable', baTable)
baTable.mount()

View File

@@ -162,6 +162,9 @@ const rules: Partial<Record<string, FormItemRule[]>> = reactive({
{
required: true,
validator: (_rule: any, val: unknown, callback: Function) => {
if (baTable.form.operate === 'Edit' && adminInfo.id == baTable.form.items?.id) {
return callback()
}
if (Array.isArray(val)) {
if (val.length !== 1) {
return callback(new Error(t('auth.admin.Please select exactly one group')))

View File

@@ -182,9 +182,17 @@ const menuRuleTreeUpdate = () => {
if (baTable.form.items!.rules && baTable.form.items!.rules.length) {
if (baTable.form.items!.rules.includes('*')) {
let arr: number[] = []
for (const key in baTable.form.extend!.menuRules) {
arr.push(baTable.form.extend!.menuRules[key].id)
const walk = (nodes: anyObj[]) => {
nodes.forEach((node) => {
if (node.id) {
arr.push(node.id)
}
if (node.children?.length) {
walk(node.children)
}
})
}
walk(res.data.list || [])
baTable.form.extend!.defaultCheckedKeys = arr
} else {
baTable.form.extend!.defaultCheckedKeys = baTable.form.items!.rules