From 1e26ad6dd14105db6d721c32bc2b4e88361edbff Mon Sep 17 00:00:00 2001 From: wangdan-fit2cloud Date: Sun, 6 Sep 2026 21:08:09 +0800 Subject: [PATCH] feat: form node --- ui/src/assets/workflow/icon_form.svg | 7 + ui/src/components/COMPONENT_README.md | 5 + .../markdown-editor/MdEditorMagnify.vue | 9 +- ui/src/components/mk-dynamics-form/Demo.vue | 2 - .../components/mk-dynamics-form/constant.ts | 13 + .../mk-dynamics-form/constructor/index.vue | 45 ++- .../items/JsonInputConstructor.vue | 12 +- .../constructor/items/MultiRowConstructor.vue | 19 +- .../items/MultiSelectConstructor.vue | 18 +- .../items/RadioCardConstructor.vue | 18 +- .../constructor/items/RadioRowConstructor.vue | 18 +- .../items/SingleSelectConstructor.vue | 20 +- .../constructor/visibility/ConditionRow.vue | 25 +- .../constructor/visibility/FieldSelector.vue | 22 +- .../constructor/visibility/index.vue | 26 +- ui/src/workflow-canvas/WORKFLOW_README.md | 8 + ui/src/workflow-canvas/config/node-data.ts | 8 +- .../workflow-canvas/icons/form-node-icon.vue | 4 +- .../base-node/component/user-input/index.vue | 9 +- .../workflow-canvas/nodes/base-node/index.vue | 98 +++-- .../form-setting/FormFieldDialog.vue | 70 ++++ .../form-setting/FormSettingTable.vue | 118 ++++++ .../workflow-canvas/nodes/form-node/index.ts | 10 +- .../workflow-canvas/nodes/form-node/index.vue | 341 +++++------------- .../nodes/variable-aggregation-node/index.ts | 5 +- 25 files changed, 492 insertions(+), 438 deletions(-) create mode 100644 ui/src/assets/workflow/icon_form.svg create mode 100644 ui/src/workflow-canvas/nodes/form-node/component/form-setting/FormFieldDialog.vue create mode 100644 ui/src/workflow-canvas/nodes/form-node/component/form-setting/FormSettingTable.vue diff --git a/ui/src/assets/workflow/icon_form.svg b/ui/src/assets/workflow/icon_form.svg new file mode 100644 index 00000000000..19d148d1ea2 --- /dev/null +++ b/ui/src/assets/workflow/icon_form.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ui/src/components/COMPONENT_README.md b/ui/src/components/COMPONENT_README.md index 180eaee7316..83150c534b0 100644 --- a/ui/src/components/COMPONENT_README.md +++ b/ui/src/components/COMPONENT_README.md @@ -1084,6 +1084,11 @@ const formValue = ref>({}) `enableVisibility` 和 `leftOptions`,其中 `leftOptions` 使用 `VisibilityFieldOption[]`;公开 `validate()`、`getData()` 与 `render()`。 +启用显隐设置时,配置器将 Tabs 导航与内容分开,只继承容器的最大高度,内容较少时自然撑开。 +`el-scrollbar` 及其内部滚动容器使用可收缩的 Flex 布局,并覆盖默认的百分比高度;达到最大高度后 +仅内容区滚动,Tabs 保持固定。普通 `MkDialog` 已提供内容最大高度,调用方不需要设置固定高度。 +两个表单通过 `v-show` 切换并保持挂载,确保未选中的页签也能回填、取值和校验。 + 字段配置中的动态校验器和表格行表达式属于受信任的服务端协议,只允许加载可信配置;普通业务 输入不得作为脚本传入。 diff --git a/ui/src/components/global/markdown-editor/MdEditorMagnify.vue b/ui/src/components/global/markdown-editor/MdEditorMagnify.vue index cc932bf0402..15ec251c2b0 100644 --- a/ui/src/components/global/markdown-editor/MdEditorMagnify.vue +++ b/ui/src/components/global/markdown-editor/MdEditorMagnify.vue @@ -59,7 +59,14 @@ async function submitEditorDialog() { - +