From fb896c4ad235c0b4fed205440f279ee85115b81f Mon Sep 17 00:00:00 2001
From: quxin <592870522@qq.com>
Date: 星期四, 03 九月 2026 11:01:53 +0800
Subject: [PATCH] 修复: 采购管理--采购申请: 采购申请的状态显示不正确,全都显示审批中
---
src/views/erp/purchase/request/index.vue | 14 +++++++++++---
src/views/erp/purchase/request/data.ts | 4 ++--
src/api/erp/purchase/request/index.ts | 34 ++++++++++++++++++++++++++++++++++
3 files changed, 47 insertions(+), 5 deletions(-)
diff --git a/src/api/erp/purchase/request/index.ts b/src/api/erp/purchase/request/index.ts
index c446da4..831cb1e 100644
--- a/src/api/erp/purchase/request/index.ts
+++ b/src/api/erp/purchase/request/index.ts
@@ -95,3 +95,37 @@
export function getApproveProcessList(id: number) {
return requestClient.get(`/erp/purchase-request/approve-process-list`, { params: { id } });
}
+
+/** BPM 娴佺▼瀹炰緥鐘舵�� 鈫� 涓氬姟鐘舵�佹槧灏� */
+export const BPM_STATUS_TO_BIZ: Record<number, number> = {
+ 1: 10, // RUNNING 鈫� 瀹℃壒涓�
+ 2: 20, // APPROVE 鈫� 瀹℃牳閫氳繃
+ 3: 30, // REJECT 鈫� 瀹℃牳涓嶉�氳繃
+ 4: 40, // CANCEL 鈫� 宸插彇娑�
+};
+
+/**
+ * 鍚屾閲囪喘鐢宠鐨勪笟鍔$姸鎬侊紙鏍规嵁 BPM 娴佺▼瀹炰緥瀹為檯鐘舵�侊級
+ * 鐢ㄤ簬淇鍚庣鐩戝惉鍣ㄦ湭姝g‘鍥炲啓瀵艰嚧鐨勪笟鍔$姸鎬佷笉涓�鑷撮棶棰�
+ */
+export async function syncPurchaseRequestStatus(items: ErpPurchaseRequestApi.PurchaseRequest[]) {
+ const processingItems = items.filter(
+ (item) => item.status === 10 && item.processInstanceId,
+ );
+ if (processingItems.length === 0) return;
+
+ const { getApprovalDetail } = await import('#/api/bpm/processInstance');
+ for (const item of processingItems) {
+ try {
+ const detail = await getApprovalDetail({
+ processInstanceId: item.processInstanceId,
+ });
+ const bizStatus = BPM_STATUS_TO_BIZ[detail.processInstance?.status];
+ if (bizStatus && bizStatus !== 10) {
+ item.status = bizStatus;
+ }
+ } catch {
+ // 鏌ヨ澶辫触鏃朵繚鎸佸師鏈夌姸鎬�
+ }
+ }
+}
diff --git a/src/views/erp/purchase/request/data.ts b/src/views/erp/purchase/request/data.ts
index cc4745b..ac87d16 100644
--- a/src/views/erp/purchase/request/data.ts
+++ b/src/views/erp/purchase/request/data.ts
@@ -271,8 +271,8 @@
options: [
{ label: '鏈彁浜�', value: 0 },
{ label: '瀹℃壒涓�', value: 10 },
- { label: '瀹℃牳閫氳繃', value: 20 },
- { label: '瀹℃牳涓嶉�氳繃', value: 30 },
+ { label: '瀹℃壒閫氳繃', value: 20 },
+ { label: '瀹℃壒涓嶉�氳繃', value: 30 },
{ label: '宸插彇娑�', value: 40 },
],
placeholder: '璇烽�夋嫨鐘舵��',
diff --git a/src/views/erp/purchase/request/index.vue b/src/views/erp/purchase/request/index.vue
index cd97ba8..26539b3 100644
--- a/src/views/erp/purchase/request/index.vue
+++ b/src/views/erp/purchase/request/index.vue
@@ -17,6 +17,7 @@
getApproveProcessList,
getPurchaseRequestPage,
submitPurchaseRequest,
+ syncPurchaseRequestStatus,
} from '#/api/erp/purchase/request';
import { $t } from '#/locales';
@@ -145,11 +146,18 @@
proxyConfig: {
ajax: {
query: async ({ page }, formValues) => {
- return await getPurchaseRequestPage({
+ const result = await getPurchaseRequestPage({
pageNo: page.currentPage,
pageSize: page.pageSize,
...formValues,
});
+ const processingItems = (result.list || []).filter(
+ (item) => item.status === 10 && item.processInstanceId,
+ );
+ if (processingItems.length > 0) {
+ await syncPurchaseRequestStatus(processingItems);
+ }
+ return result;
},
},
},
@@ -210,8 +218,8 @@
<template #status="{ row }">
<Tag v-if="row.status === 0" color="default">鏈彁浜�</Tag>
<Tag v-else-if="row.status === 10" color="processing">瀹℃壒涓�</Tag>
- <Tag v-else-if="row.status === 20" color="success">瀹℃牳閫氳繃</Tag>
- <Tag v-else-if="row.status === 30" color="error">瀹℃牳涓嶉�氳繃</Tag>
+ <Tag v-else-if="row.status === 20" color="success">瀹℃壒閫氳繃</Tag>
+ <Tag v-else-if="row.status === 30" color="error">瀹℃壒涓嶉�氳繃</Tag>
<Tag v-else-if="row.status === 40" color="warning">宸插彇娑�</Tag>
</template>
<template #inStatus="{ row }">
--
Gitblit v1.9.3