mirror of
https://github.com/Tencent/tmagic-editor.git
synced 2025-09-02 21:59:54 +08:00
feat(editor): contentmenu支持扩展
This commit is contained in:
parent
586711b9bd
commit
70292b92c8
@ -56,7 +56,7 @@ import eventsService from '@editor/services/events';
|
||||
import historyService from '@editor/services/history';
|
||||
import propsService from '@editor/services/props';
|
||||
import uiService from '@editor/services/ui';
|
||||
import type { ComponentGroup, MenuBarData, Services, SideBarData, StageRect } from '@editor/type';
|
||||
import type { ComponentGroup, MenuBarData, MenuItem, Services, SideBarData, StageRect } from '@editor/type';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'm-editor',
|
||||
@ -88,6 +88,16 @@ export default defineComponent({
|
||||
type: Object as PropType<SideBarData>,
|
||||
},
|
||||
|
||||
layerContentMenu: {
|
||||
type: Array as PropType<MenuItem[]>,
|
||||
default: () => [],
|
||||
},
|
||||
|
||||
stageContentMenu: {
|
||||
type: Array as PropType<MenuItem[]>,
|
||||
default: () => [],
|
||||
},
|
||||
|
||||
/** 顶部工具栏配置 */
|
||||
menu: {
|
||||
type: Object as PropType<MenuBarData>,
|
||||
@ -237,6 +247,9 @@ export default defineComponent({
|
||||
|
||||
provide('services', services);
|
||||
|
||||
provide('layerContentMenu', props.layerContentMenu);
|
||||
provide('stageContentMenu', props.stageContentMenu);
|
||||
|
||||
return services;
|
||||
},
|
||||
});
|
||||
|
@ -22,6 +22,8 @@ export default defineComponent({
|
||||
const isPage = computed(() => node.value?.type === NodeType.PAGE);
|
||||
const componentList = computed(() => services?.componentListService.getList() || []);
|
||||
|
||||
const layerContentMenu = inject<MenuItem[]>('layerContentMenu', []);
|
||||
|
||||
const createMenuItems = (group: ComponentGroup): MenuButton[] =>
|
||||
group.items.map((component) => ({
|
||||
text: component.text,
|
||||
@ -101,6 +103,7 @@ export default defineComponent({
|
||||
node.value && services?.editorService.remove(node.value);
|
||||
},
|
||||
},
|
||||
...layerContentMenu,
|
||||
]),
|
||||
|
||||
show(e: MouseEvent) {
|
||||
|
@ -27,6 +27,8 @@ export default defineComponent({
|
||||
const parent = computed(() => editorService?.get('parent'));
|
||||
const isPage = computed(() => node.value?.type === NodeType.PAGE);
|
||||
|
||||
const stageContentMenu = inject<MenuItem[]>('stageContentMenu', []);
|
||||
|
||||
onMounted(() => {
|
||||
const data = globalThis.localStorage.getItem(COPY_STORAGE_KEY);
|
||||
canPaste.value = data !== 'undefined' && !!data;
|
||||
@ -150,6 +152,7 @@ export default defineComponent({
|
||||
editorService?.get<StageCore>('stage').clearGuides();
|
||||
},
|
||||
},
|
||||
...stageContentMenu,
|
||||
]),
|
||||
|
||||
show(e: MouseEvent) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user