fix(approval): 上传附件先建空草稿,不再要求先填完表单
八个审批表单页的 uploadFiles 由 ensureDraft(全量校验)改为 ensureInstance:
未建实例时调 createEmptyDraft 只拿实例 id,附件可先传;保存/提交仍走原校验。
后端新增 POST /approval/instance/{flowCode}/draft,空草稿不能提交。
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user