diff --git a/src/components/SystemForm/src/Form.vue b/src/components/SystemForm/src/Form.vue index 33d818a..7a645fd 100644 --- a/src/components/SystemForm/src/Form.vue +++ b/src/components/SystemForm/src/Form.vue @@ -169,13 +169,13 @@ async function setFieldsValue(record) { flowConfig.draftsFormData = record; } - async function workflowSubmit() { + async function workflowSubmit(saveRowKey) { let values = {}; try { values = await SystemFormRef.value.validate(); // 提交表单 if (visible.value) { - let id = await submit(); + let id = await submit(saveRowKey); let rowKey = getRowKey(); values[rowKey] = id; values['_id'] = id @@ -184,7 +184,7 @@ return values; } catch (error) {} } - async function submit() { + async function submit(saveRowKey) { let saveValId = ''; let values = await SystemFormRef.value.validate(); let rowKey = getRowKey(); @@ -198,6 +198,10 @@ } else { // 新增 saveValId = await SystemFormRef.value.add(values); + if (saveRowKey) { + // 把rowKey写回去,新建流程的时候防止取消了重复提交 + props.workflowConfig.formModel[rowKey] = saveValId; + } } return saveValId; } diff --git a/src/views/secondDev/FormInformation.vue b/src/views/secondDev/FormInformation.vue index d6e03b8..b48d17c 100644 --- a/src/views/secondDev/FormInformation.vue +++ b/src/views/secondDev/FormInformation.vue @@ -239,13 +239,13 @@ return formModes; } - async function getFormModels() { + async function getFormModels(saveRowKey) { let formModes = {}; for (let index = 0; index < forms.configs.length; index++) { const ele = forms.configs[index]; if (ele.formType == FormType.SYSTEM) { - let values = await itemRefs.value[index].workflowSubmit(); + let values = await itemRefs.value[index].workflowSubmit(saveRowKey); formModes[ele.formKey] = values; } else { formModes[ele.formKey] = ele.formModel; diff --git a/src/views/secondDev/createFlow.vue b/src/views/secondDev/createFlow.vue index 2740ab8..62dbec9 100644 --- a/src/views/secondDev/createFlow.vue +++ b/src/views/secondDev/createFlow.vue @@ -1,6 +1,6 @@ diff --git a/src/views/workflow/task/components/flow/FormInformation.vue b/src/views/workflow/task/components/flow/FormInformation.vue index b169b5f..91d8038 100644 --- a/src/views/workflow/task/components/flow/FormInformation.vue +++ b/src/views/workflow/task/components/flow/FormInformation.vue @@ -300,13 +300,13 @@ } return formModes; } - async function getFormModels() { + async function getFormModels(saveRowKey) { let formModes = {}; for (let index = 0; index < forms.configs.length; index++) { const ele = forms.configs[index]; if (ele.formType == FormType.SYSTEM) { - let values = await itemRefs.value[index].workflowSubmit(); + let values = await itemRefs.value[index].workflowSubmit(saveRowKey); formModes[ele.formKey] = values; } else { formModes[ele.formKey] = ele.formModel;