From e9a3ddbff371ec45fc2d1c3ba522a91d8463549b Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 14 八月 2026 10:34:30 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0
---
src/views/wls/salesnotice/index.vue | 45 +++++++++++++++++++++++++++++++++++++--------
1 files changed, 37 insertions(+), 8 deletions(-)
diff --git a/src/views/wls/salesnotice/index.vue b/src/views/wls/salesnotice/index.vue
index cd323e8..a4c4590 100644
--- a/src/views/wls/salesnotice/index.vue
+++ b/src/views/wls/salesnotice/index.vue
@@ -3,15 +3,18 @@
import type { MesWmSalesNoticeApi } from '#/api/mes/wm/salesnotice';
import { Page, useVbenModal } from '@vben/common-ui';
-import { MesWmSalesNoticeStatusEnum } from '@vben/constants';
+import { MesWmSalesNoticeOutStatusEnum, MesWmSalesNoticeStatusEnum } from '@vben/constants';
import { downloadFileFromBlobPart } from '@vben/utils';
-import { Button, message } from 'ant-design-vue';
+import { Button, message, Tag } from 'ant-design-vue';
+
+import { useRouter } from 'vue-router';
import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
import {
deleteSalesNotice,
exportSalesNotice,
+ generateProductSales,
getSalesNoticePage,
} from '#/api/mes/wm/salesnotice';
import { $t } from '#/locales';
@@ -23,6 +26,19 @@
connectedComponent: Form,
destroyOnClose: true,
});
+
+const router = useRouter();
+
+const outStatusLabelMap: Record<number, string> = {
+ [MesWmSalesNoticeOutStatusEnum.NONE]: '鏈嚭搴�',
+ [MesWmSalesNoticeOutStatusEnum.PARTIAL]: '閮ㄥ垎鍑哄簱',
+ [MesWmSalesNoticeOutStatusEnum.ALL]: '鍏ㄩ儴鍑哄簱',
+};
+const outStatusColorMap: Record<number, string> = {
+ [MesWmSalesNoticeOutStatusEnum.NONE]: 'default',
+ [MesWmSalesNoticeOutStatusEnum.PARTIAL]: 'warning',
+ [MesWmSalesNoticeOutStatusEnum.ALL]: 'success',
+};
/** 鍒锋柊琛ㄦ牸 */
function handleRefresh() {
@@ -44,9 +60,18 @@
formModalApi.setData({ formType: 'update', id: row.id }).open();
}
-/** 鎵ц鍑哄簱 */
-function handleFinish(row: MesWmSalesNoticeApi.SalesNotice) {
- formModalApi.setData({ formType: 'finish', id: row.id }).open();
+/** 鐢熸垚閿�鍞嚭搴撳崟 */
+async function handleGenerateProductSales(row: MesWmSalesNoticeApi.SalesNotice) {
+ try {
+ const productSalesId = await generateProductSales(row.id!);
+ message.success('鐢熸垚閿�鍞嚭搴撳崟鎴愬姛');
+ router.push({
+ name: 'MesWmProductSales',
+ query: { id: String(productSalesId) },
+ });
+ } catch (e) {
+ console.error(e);
+ }
}
/** 鍒犻櫎鍙戣揣閫氱煡鍗� */
@@ -130,6 +155,9 @@
{{ row.code }}
</Button>
</template>
+ <template #outStatus="{ row }">
+ <Tag :color="outStatusColorMap[row.outStatus ?? 0]">{{ outStatusLabelMap[row.outStatus ?? 0] }}</Tag>
+ </template>
<template #actions="{ row }">
<TableAction
:actions="[
@@ -154,11 +182,12 @@
},
},
{
- label: '鎵ц鍑哄簱',
+ label: '鐢熸垚鍑哄簱鍗�',
type: 'link',
- auth: ['mes:wm-sales-notice:update'],
+ icon: 'ant-design:file-protect-outlined',
+ auth: ['mes:wm-product-sales:create'],
ifShow: row.status === MesWmSalesNoticeStatusEnum.APPROVED,
- onClick: handleFinish.bind(null, row),
+ onClick: handleGenerateProductSales.bind(null, row),
},
]"
/>
--
Gitblit v1.9.3