From e1151738f5adfe22093e0eb6a90aa7481c4a396a Mon Sep 17 00:00:00 2001 From: jason <2667446@qq.com> Date: Sun, 10 Aug 2025 22:47:47 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=20[BPM=20=E5=B7=A5=E4=BD=9C=E6=B5=81]?= =?UTF-8?q?=20=E6=9B=B4=E5=A4=9A=E8=AE=BE=E7=BD=AE=EF=BC=8C=E7=9B=91?= =?UTF-8?q?=E5=90=AC=E6=B5=81=E7=A8=8B=E8=A1=A8=E5=8D=95=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/bpm/model/form/ExtraSettings.vue | 47 ++++++---------------- src/views/bpm/model/form/index.vue | 5 +-- 2 files changed, 14 insertions(+), 38 deletions(-) diff --git a/src/views/bpm/model/form/ExtraSettings.vue b/src/views/bpm/model/form/ExtraSettings.vue index 9c5beaf60..0f40ad66b 100644 --- a/src/views/bpm/model/form/ExtraSettings.vue +++ b/src/views/bpm/model/form/ExtraSettings.vue @@ -232,34 +232,6 @@ import { ProcessVariableEnum } from '@/components/SimpleProcessDesignerV2/src/co import HttpRequestSetting from '@/components/SimpleProcessDesignerV2/src/nodes-config/components/HttpRequestSetting.vue' const modelData = defineModel() -const formFields = ref([]) - -const props = defineProps({ - // 流程表单 ID - modelFormId: { - type: Number, - required: false, - default: undefined, - } -}) - - -// 监听 modelFormId 变化 -watch( - () => props.modelFormId, - async (newVal) => { - if (newVal) { - const form = await FormApi.getForm(newVal); - formFields.value = form?.fields; - } else { - // 如果 modelFormId 为空,清空表单字段 - formFields.value = []; - } - }, - { immediate: true }, -); -// 暴露给子组件使用 -provide('formFields', formFields) /** 自定义 ID 流程编码 */ const timeOptions = ref([ @@ -374,10 +346,10 @@ const handleTaskAfterTriggerEnableChange = (val: boolean | string | number) => { } } -/** 表单选项 */ -const formField = ref>([]) +/** 已解析表单字段 */ +const formFields = ref>([]) const formFieldOptions4Title = computed(() => { - let cloneFormField = formField.value.map((item) => { + let cloneFormField = formFields.value.map((item) => { return { label: item.title, value: item.field @@ -399,7 +371,7 @@ const formFieldOptions4Title = computed(() => { return cloneFormField }) const formFieldOptions4Summary = computed(() => { - return formField.value.map((item) => { + return formFields.value.map((item) => { return { label: item.title, value: item.field @@ -407,6 +379,11 @@ const formFieldOptions4Summary = computed(() => { }) }) +/** 未解析的表单字段 */ +const unParsedFormFields = ref([]) +/** 暴露给子组件 HttpRequestSetting 使用 */ +provide('formFields', unParsedFormFields) + /** 兼容以前未配置更多设置的流程 */ const initData = () => { if (!modelData.value.processIdRule) { @@ -456,13 +433,15 @@ watch( const data = await FormApi.getForm(newFormId) const result: Array<{ field: string; title: string }> = [] if (data.fields) { + unParsedFormFields.value = data.fields data.fields.forEach((fieldStr: string) => { parseFormFields(JSON.parse(fieldStr), result) }) } - formField.value = result + formFields.value = result } else { - formField.value = [] + formFields.value = [] + unParsedFormFields.value = [] } }, { immediate: true } diff --git a/src/views/bpm/model/form/index.vue b/src/views/bpm/model/form/index.vue index 341d95684..ec8efa287 100644 --- a/src/views/bpm/model/form/index.vue +++ b/src/views/bpm/model/form/index.vue @@ -77,10 +77,7 @@
- +