From af98acceb3cebb7c5b63fd4f9e8eff8cd18e39a1 Mon Sep 17 00:00:00 2001 From: caoxiaozhu Date: Thu, 14 May 2026 12:34:43 +0000 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E4=BC=98=E5=8C=96=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E5=A4=96=E5=A3=B3=E7=BB=84=E5=90=88=E5=BC=8F=E5=87=BD?= =?UTF-8?q?=E6=95=B0=E5=92=8C=E5=B7=AE=E6=97=85=E6=8A=A5=E9=94=80=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E8=84=9A=E6=9C=AC=EF=BC=8C=E5=A2=9E=E5=BC=BA=E5=89=8D?= =?UTF-8?q?=E7=AB=AF=E7=8A=B6=E6=80=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/composables/useAppShell.js | 8 +++++++- .../scripts/TravelReimbursementCreateView.js | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/web/src/composables/useAppShell.js b/web/src/composables/useAppShell.js index afcc900..aca536b 100644 --- a/web/src/composables/useAppShell.js +++ b/web/src/composables/useAppShell.js @@ -198,9 +198,15 @@ export function useAppShell() { async function handleDraftSaved(payload = {}) { const claimNo = String(payload.claimNo || payload.claim_no || '').trim() + const status = String(payload.status || payload.claimStatus || '').trim() + const approvalStage = String(payload.approvalStage || payload.approval_stage || '').trim() smartEntryOpen.value = false await reloadRequests() - toast(`${claimNo || '该'}单据已保存到草稿,请到报销页面查看。`) + if (status === 'submitted') { + toast(`${claimNo || '该'}单据已提交审批${approvalStage ? `,当前节点:${approvalStage}` : ''}。`) + } else { + toast(`${claimNo || '该'}单据已保存到草稿,请到报销页面查看。`) + } router.push({ name: 'app-requests' }) } diff --git a/web/src/views/scripts/TravelReimbursementCreateView.js b/web/src/views/scripts/TravelReimbursementCreateView.js index fb794b6..988dabe 100644 --- a/web/src/views/scripts/TravelReimbursementCreateView.js +++ b/web/src/views/scripts/TravelReimbursementCreateView.js @@ -854,6 +854,8 @@ function buildDraftSavedPayload({ return { claimId: String(draftPayload?.claim_id || '').trim(), claimNo: String(draftPayload?.claim_no || '').trim(), + status: String(draftPayload?.status || '').trim(), + approvalStage: String(draftPayload?.approval_stage || '').trim(), person: String(currentUser?.name || '').trim() || '当前用户', dept: String(currentUser?.role || '').trim() || '待补充部门', entity: String(linkedRequest?.entity || '').trim() || 'Northstar China Ltd.', @@ -876,7 +878,9 @@ function buildDraftSavedPayload({ expenseTableSummary: documents.length ? `已关联 ${documents.length} 份票据,请继续在报销页补充和确认` : '当前尚未上传票据,请在报销页继续补充附件', - note: '该草稿由 AI 工作台根据当前识别结果生成,可在个人报销页面继续补充明细、票据与说明。' + note: String(draftPayload?.status || '').trim() === 'submitted' + ? '该报销单已由 AI 工作台提交审批,可在个人报销页面持续跟踪进度。' + : '该草稿由 AI 工作台根据当前识别结果生成,可在个人报销页面继续补充明细、票据与说明。' } } @@ -3111,6 +3115,19 @@ export default { review_document_form_values: buildReviewDocumentCorrectionContext(reviewDocumentDrafts.value) } }) + + if (payload?.result?.draft_payload?.status === 'submitted') { + emit( + 'draft-saved', + buildDraftSavedPayload({ + draftPayload: payload.result.draft_payload, + reviewPayload: payload?.result?.review_payload || message?.reviewPayload || activeReviewPayload.value, + inlineState: reviewInlineForm.value, + linkedRequest: linkedRequest.value, + currentUser: currentUser.value + }) + ) + } } finally { reviewActionBusy.value = false }