From 317c17ee887982f0fdee52b9d78df06134aa4a8c Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 22 Jul 2025 19:59:26 +0800 Subject: [PATCH] refactor: spel --- apps/web-antd/src/views/workflow/spel/common.ts | 15 +++++++++++++++ .../src/views/workflow/spel/spel-drawer.vue | 9 ++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) create mode 100644 apps/web-antd/src/views/workflow/spel/common.ts diff --git a/apps/web-antd/src/views/workflow/spel/common.ts b/apps/web-antd/src/views/workflow/spel/common.ts new file mode 100644 index 00000000..fb552a65 --- /dev/null +++ b/apps/web-antd/src/views/workflow/spel/common.ts @@ -0,0 +1,15 @@ +export function generateSpel(data: { + componentName?: string; + methodName?: string; + methodParams?: string; +}) { + const { componentName, methodName, methodParams } = data; + if (!componentName || !methodName) { + return '-'; + } + + const params = methodParams ? methodParams.split(',') : []; + const methodParamsText = params.map((item) => `#${item}`).join(','); + + return `#{@${componentName}.${methodName}(${methodParamsText})}`; +} diff --git a/apps/web-antd/src/views/workflow/spel/spel-drawer.vue b/apps/web-antd/src/views/workflow/spel/spel-drawer.vue index 0e2bc833..3f55a76f 100644 --- a/apps/web-antd/src/views/workflow/spel/spel-drawer.vue +++ b/apps/web-antd/src/views/workflow/spel/spel-drawer.vue @@ -9,6 +9,7 @@ import { useVbenForm } from '#/adapter/form'; import { spelAdd, spelInfo, spelUpdate } from '#/api/workflow/spel'; import { defaultFormValueGetter, useBeforeCloseDiff } from '#/utils/popup'; +import { generateSpel } from './common'; import { drawerSchema } from './data'; import SpelPreviewer from './spel-previewer.vue'; @@ -69,7 +70,13 @@ async function handleConfirm() { return; } const data = cloneDeep(await formApi.getValues()); - await (isUpdate.value ? spelUpdate(data) : spelAdd(data)); + if (isUpdate.value) { + await spelUpdate(data); + } else { + // 新增需要生成 + data.viewSpel = generateSpel(data); + await spelAdd(data); + } resetInitialized(); emit('reload'); drawerApi.close();