diff --git a/packages/editor/src/fields/EventSelect.vue b/packages/editor/src/fields/EventSelect.vue index 984bbc9d..228d9042 100644 --- a/packages/editor/src/fields/EventSelect.vue +++ b/packages/editor/src/fields/EventSelect.vue @@ -232,7 +232,7 @@ const compActionConfig = computed(() => { let methods: EventOption[] | CascaderOption[] = []; - methods = eventsService.getMethod(node.type); + methods = eventsService.getMethod(node.type, model.to); if (node.type === 'page-fragment-container' && node.pageFragmentId) { const pageFragment = editorService.get('root')?.items?.find((page) => page.id === node.pageFragmentId); @@ -240,7 +240,7 @@ const compActionConfig = computed(() => { methods = []; pageFragment.items.forEach((node: MComponent | MContainer) => { traverseNode(node, (node) => { - const nodeMethods = (node.type && eventsService.getMethod(node.type)) || []; + const nodeMethods = (node.type && eventsService.getMethod(node.type, node.id)) || []; if (nodeMethods.length) { methods.push({ @@ -317,7 +317,7 @@ const tableConfig = computed(() => ({ const node = editorService.getNodeById(model.to); if (!node?.type) return []; - return eventsService.getMethod(node.type).map((option: any) => ({ + return eventsService.getMethod(node.type, model.to).map((option: any) => ({ text: option.label, value: option.value, })); diff --git a/packages/editor/src/services/events.ts b/packages/editor/src/services/events.ts index d178c80a..4f3da6d0 100644 --- a/packages/editor/src/services/events.ts +++ b/packages/editor/src/services/events.ts @@ -20,7 +20,7 @@ import { reactive } from 'vue'; import { cloneDeep } from 'lodash-es'; import type { Writable } from 'type-fest'; -import { type EventOption } from '@tmagic/core'; +import { type EventOption, type Id } from '@tmagic/core'; import { toLine } from '@tmagic/utils'; import type { AsyncHookPlugin, SyncHookPlugin } from '@editor/type'; @@ -70,7 +70,7 @@ class Events extends BaseService { methodMap[toLine(type)] = [...method]; } - public getMethod(type: string) { + public getMethod(type: string, _targetId: Id) { return cloneDeep(methodMap[toLine(type)]) || []; }