From 03e4dc8f9bf77a287728d398979a8a83134d97d5 Mon Sep 17 00:00:00 2001 From: weicw Date: Sat, 31 Oct 2026 06:33:50 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=A1=E6=89=B9=20API=20=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=80=9A=E7=94=A8=E8=8D=89=E7=A8=BF=E4=BF=9D=E5=AD=98?= =?UTF-8?q?=E4=B8=8E=E5=9B=9E=E5=A1=AB=EF=BC=9B=E9=99=84=E4=BB=B6=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E6=89=A9=E4=B8=BA=E4=B8=89=E6=A1=A3=EF=BC=88#46?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/approval/instance/index.ts | 14 ++++++++++++ src/api/approval/task/index.ts | 22 +++++++++++++++++-- src/packageApproval/pages/form-completion.vue | 1 + .../pages/form-coordination.vue | 1 + 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/src/api/approval/instance/index.ts b/src/api/approval/instance/index.ts index 20975e0..ac73f01 100644 --- a/src/api/approval/instance/index.ts +++ b/src/api/approval/instance/index.ts @@ -38,6 +38,20 @@ export async function saveCoordination(data: ApprovalCoordinationForm) { return Promise.reject(new Error(res.data.message)); } +/** + * 新建或保存任意单据草稿(按流程编码路由),返回实例id + */ +export async function saveDocument(flowCode: string, data: Record) { + const res = await request.post>( + THINK_API_URL + '/approval/instance/' + flowCode, + data + ); + if (res.data.code === 0) { + return res.data.data as number; + } + return Promise.reject(new Error(res.data.message)); +} + /** * 提交或重提 */ diff --git a/src/api/approval/task/index.ts b/src/api/approval/task/index.ts index 462f0d5..bd0233a 100644 --- a/src/api/approval/task/index.ts +++ b/src/api/approval/task/index.ts @@ -19,10 +19,28 @@ export async function getTodoCount() { /** * 通过(意见可选) */ -export async function approveTask(id: number, opinion?: string) { +export async function approveTask( + id: number, + opinion?: string, + fields?: Record +) { const res = await request.post>( THINK_API_URL + '/approval/task/' + id + '/approve', - { opinion } + { opinion, fields } + ); + if (res.data.code === 0 && res.data.data) { + return res.data; + } + return Promise.reject(new Error(res.data.message)); +} + +/** + * 回填(只写字段,不推进节点) + */ +export async function backfillTask(id: number, fields: Record) { + const res = await request.post>( + THINK_API_URL + '/approval/task/' + id + '/backfill', + { fields } ); if (res.data.code === 0 && res.data.data) { return res.data; diff --git a/src/packageApproval/pages/form-completion.vue b/src/packageApproval/pages/form-completion.vue index 5fdb5c9..825b333 100644 --- a/src/packageApproval/pages/form-completion.vue +++ b/src/packageApproval/pages/form-completion.vue @@ -115,6 +115,7 @@ import { showError, showSuccess } from '@/utils/app'; const userStore = useUserStore(); const categories = [ { value: 'SIGNED', label: '签字件' }, + { value: 'VOUCHER', label: '凭证' }, { value: 'OTHER', label: '其他' } ]; diff --git a/src/packageApproval/pages/form-coordination.vue b/src/packageApproval/pages/form-coordination.vue index fadaa0e..23ba569 100644 --- a/src/packageApproval/pages/form-coordination.vue +++ b/src/packageApproval/pages/form-coordination.vue @@ -126,6 +126,7 @@ import { showError, showSuccess } from '@/utils/app'; const userStore = useUserStore(); const categories = [ { value: 'SIGNED', label: '签字件' }, + { value: 'VOUCHER', label: '凭证' }, { value: 'OTHER', label: '其他' } ];