pull/22/merge
zhou0818 2022-06-10 09:24:32 +08:00 committed by GitHub
commit 84e68e0357
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 2 deletions

14
src/utils/tree.ts Normal file
View File

@ -0,0 +1,14 @@
export function filterTree<T extends { children: T[] | undefined }>(tree: T[], iterate: (item: T, index: number) => boolean): T[] {
function filter(tree: T[]): T[] {
return tree.filter((item, index) => {
if (!iterate(item, index)) {
return false;
}
if (item.children && item.children.length > 0) {
item.children = filter(item.children);
}
return true;
})
}
return filter(tree);
}

View File

@ -10,6 +10,8 @@
import {BasicDrawer, useDrawerInner} from '/@/components/Drawer';
import {list, saveOrUpdateMenu} from './menu.api';
import { useAdapt } from '/@/hooks/system/useAutoAdapt.ts';
import { filterTree } from '/@/utils/tree';
// Emits
const emit = defineEmits(['success', 'register']);
const {width}= useAdapt();
@ -36,8 +38,15 @@
isUpdate.value = !!data?.isUpdate;
menuType.value = data?.record?.menuType;
//
const treeData = await list();
// record id
const currentId = data?.record?.id;
//
let treeData = await list();
if (currentId) {
treeData = filterTree(treeData, (item: any) => item.id !== currentId);
}
updateSchema([{
field: 'parentId',
componentProps: {treeData},