diff --git a/src/components/custom/menu-tree.vue b/src/components/custom/menu-tree.vue
index 721204aa..ec5fa602 100644
--- a/src/components/custom/menu-tree.vue
+++ b/src/components/custom/menu-tree.vue
@@ -90,16 +90,23 @@ function handleCheckedTreeNodeAll(checked: boolean) {
checkedKeys.value = [];
}
-function getCheckedMenuIds() {
+function getCheckedMenuIds(isCascade: boolean = false) {
const menuIds = menuTreeRef.value?.getCheckedData()?.keys as string[];
const indeterminateData = menuTreeRef.value?.getIndeterminateData();
- if (cascade.value) {
+ if (cascade.value || isCascade) {
const parentIds: string[] = indeterminateData?.keys.filter(item => !menuIds?.includes(String(item))) as string[];
menuIds?.push(...parentIds);
}
return menuIds;
}
+watch(cascade, () => {
+ if (cascade.value) {
+ return;
+ }
+ checkedKeys.value = getCheckedMenuIds(true);
+});
+
defineExpose({
getCheckedMenuIds,
refresh: getMenuList
@@ -121,6 +128,7 @@ defineExpose({
父子联动
+ {{ checkedKeys }}
{
return {dataScopeRecord[row.dataScope]};
}
@@ -113,7 +113,7 @@ const {
key: 'operate',
title: $t('common.operate'),
align: 'center',
- width: 220,
+ width: 230,
render: row => {
if (row.roleId === 1) return null;