fix(editor): 组件树右键菜单支持多选

This commit is contained in:
roymondchen 2023-06-26 16:57:11 +08:00
parent 91e4680024
commit 1660e941d7
2 changed files with 9 additions and 4 deletions

View File

@ -22,6 +22,7 @@ const props = defineProps<{
const services = inject<Services>('services');
const menu = ref<InstanceType<typeof ContentMenu>>();
const node = computed(() => services?.editorService.get('node'));
const nodes = computed(() => services?.editorService.get('nodes'));
const isRoot = computed(() => node.value?.type === NodeType.ROOT);
const isPage = computed(() => node.value?.type === NodeType.PAGE);
const componentList = computed(() => services?.componentListService.getList() || []);
@ -82,7 +83,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [
type: 'button',
text: '新增',
icon: markRaw(Plus),
display: () => node.value?.items,
display: () => node.value?.items && nodes.value?.length === 1,
items: getSubMenuData.value,
},
{
@ -91,7 +92,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [
icon: markRaw(CopyDocument),
display: () => !isRoot.value,
handler: () => {
node.value && services?.editorService.copy(node.value);
node.value && services?.editorService.copy(nodes.value || []);
},
},
{
@ -100,7 +101,7 @@ const menuData = computed<(MenuButton | MenuComponent)[]>(() => [
icon: markRaw(Delete),
display: () => !isRoot.value && !isPage.value,
handler: () => {
node.value && services?.editorService.remove(node.value);
node.value && services?.editorService.remove(nodes.value || []);
},
},
...props.layerContentMenu,

View File

@ -350,7 +350,11 @@ const clickHandler = (data: MNode): void => {
//
const contextmenu = async (event: MouseEvent, data: MNode): Promise<void> => {
event.preventDefault();
await select(data);
if (nodes.value.length < 2) {
await select(data);
}
menu.value?.show(event);
};
</script>