Forráskód Böngészése

perf: [BPM 工作流] 更多设置,监听流程表单数据优化

jason 7 hónapja
szülő
commit
e1151738f5

+ 13 - 34
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<any>()
-const formFields = ref<string[]>([])
-   
-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<Array<{ field: string; title: string }>>([])
+/** 已解析表单字段 */
+const formFields = ref<Array<{ field: string; title: string }>>([])
 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<string[]>([])
+/** 暴露给子组件 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 }

+ 1 - 4
src/views/bpm/model/form/index.vue

@@ -77,10 +77,7 @@
 
         <!-- 第四步:更多设置 -->
         <div v-show="currentStep === 3" class="mx-auto w-700px">
-          <ExtraSettings
-            ref="extraSettingsRef"   
-            v-model="formData" 
-            :model-form-id="formData.formId"/>
+          <ExtraSettings ref="extraSettingsRef" v-model="formData" />
         </div>
       </div>
     </div>