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 @@
- +