fix(approval): 上传附件先建空草稿,不再要求先填完表单

八个审批表单页的 uploadFiles 由 ensureDraft(全量校验)改为 ensureInstance:
未建实例时调 createEmptyDraft 只拿实例 id,附件可先传;保存/提交仍走原校验。

后端新增 POST /approval/instance/{flowCode}/draft,空草稿不能提交。
This commit is contained in:
2026-11-05 11:44:02 +08:00
parent 403422dce7
commit 2f8bb7e820
9 changed files with 203 additions and 14 deletions
@@ -112,6 +112,7 @@ import { computed, reactive, ref } from 'vue';
import { onLoad } from '@dcloudio/uni-app';
import { useUserStore } from '@/store/modules/user';
import {
createEmptyDraft,
getInstance,
saveCoordination,
saveDocument,
@@ -296,6 +297,24 @@ async function ensureDraft(): Promise<number> {
}
}
/**
* 上传附件只需要实例 id:不校验表单,未建实例时先建空草稿
*/
async function ensureInstance(): Promise<number> {
if (instanceId.value) {
return instanceId.value;
}
try {
const id = await createEmptyDraft(flowCode.value);
instanceId.value = id;
mode.value = 'edit';
return id;
} catch (error: any) {
showError(error?.message || '创建草稿失败', null);
return 0;
}
}
async function saveDraft() {
const id = await ensureDraft();
if (!id) {
@@ -402,7 +421,7 @@ async function uploadFiles(files: Array<{ path: string; name?: string; size?: nu
if (!files.length) {
return;
}
const id = await ensureDraft();
const id = await ensureInstance();
if (!id) {
return;
}