chore: keys依赖于menu 需要先加载menu
This commit is contained in:
parent
6cf8f57ed4
commit
2b850a5b89
@ -6,7 +6,7 @@ import { MenuSelectTable } from '#/components/tree';
|
|||||||
import { useVbenDrawer } from '@vben/common-ui';
|
import { useVbenDrawer } from '@vben/common-ui';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { cloneDeep, eachTree } from '@vben/utils';
|
import { cloneDeep, eachTree } from '@vben/utils';
|
||||||
import { computed, ref } from 'vue';
|
import { computed, nextTick, ref } from 'vue';
|
||||||
|
|
||||||
import { drawerSchema } from './data';
|
import { drawerSchema } from './data';
|
||||||
|
|
||||||
@ -34,7 +34,6 @@ const menuTree = ref<any[]>([]);
|
|||||||
async function setupMenuTree(id?: number | string) {
|
async function setupMenuTree(id?: number | string) {
|
||||||
if (id) {
|
if (id) {
|
||||||
const resp = await roleMenuTreeSelect(id);
|
const resp = await roleMenuTreeSelect(id);
|
||||||
formApi.setFieldValue('menuIds', resp.checkedKeys);
|
|
||||||
const menus = resp.menus;
|
const menus = resp.menus;
|
||||||
// i18n处理
|
// i18n处理
|
||||||
eachTree(menus, (node) => {
|
eachTree(menus, (node) => {
|
||||||
@ -42,15 +41,20 @@ async function setupMenuTree(id?: number | string) {
|
|||||||
});
|
});
|
||||||
// 设置菜单信息
|
// 设置菜单信息
|
||||||
menuTree.value = resp.menus;
|
menuTree.value = resp.menus;
|
||||||
|
// keys依赖于menu 需要先加载menu
|
||||||
|
await nextTick();
|
||||||
|
await formApi.setFieldValue('menuIds', resp.checkedKeys);
|
||||||
} else {
|
} else {
|
||||||
const resp = await menuTreeSelect();
|
const resp = await menuTreeSelect();
|
||||||
formApi.setFieldValue('menuIds', []);
|
|
||||||
// i18n处理
|
// i18n处理
|
||||||
eachTree(resp, (node) => {
|
eachTree(resp, (node) => {
|
||||||
node.label = $t(node.label);
|
node.label = $t(node.label);
|
||||||
});
|
});
|
||||||
// 设置菜单信息
|
// 设置菜单信息
|
||||||
menuTree.value = resp;
|
menuTree.value = resp;
|
||||||
|
// keys依赖于menu 需要先加载menu
|
||||||
|
await nextTick();
|
||||||
|
await formApi.setFieldValue('menuIds', []);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -125,7 +129,6 @@ function handleMenuCheckStrictlyChange(value: boolean) {
|
|||||||
<div class="h-[400px] w-full">
|
<div class="h-[400px] w-full">
|
||||||
<!-- check-strictly为readonly 不能通过v-model绑定 -->
|
<!-- check-strictly为readonly 不能通过v-model绑定 -->
|
||||||
<MenuSelectTable
|
<MenuSelectTable
|
||||||
v-if="menuTree.length > 0"
|
|
||||||
ref="menuSelectRef"
|
ref="menuSelectRef"
|
||||||
v-model:checked-keys="slotProps.value"
|
v-model:checked-keys="slotProps.value"
|
||||||
:association="formApi.form.values.menuCheckStrictly"
|
:association="formApi.form.values.menuCheckStrictly"
|
||||||
|
Loading…
Reference in New Issue
Block a user