From 5dbc69b4e792dcce998038822b92402366bec47f Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 18 八月 2026 10:45:24 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/fix/hsy/20260812' into dev_pro2.0
---
src/views/wls/arrivalnotice/index.vue | 71 +++++++++++++++++++++++++++++++----
1 files changed, 62 insertions(+), 9 deletions(-)
diff --git a/src/views/wls/arrivalnotice/index.vue b/src/views/wls/arrivalnotice/index.vue
index df90182..5cfe5b4 100644
--- a/src/views/wls/arrivalnotice/index.vue
+++ b/src/views/wls/arrivalnotice/index.vue
@@ -2,9 +2,9 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesWmArrivalNoticeApi } from '#/api/mes/wm/arrivalnotice';
-import { Page, useVbenModal } from '../../../packages/effects/common-ui/src';
-import { MesWmArrivalNoticeStatusEnum } from '../../../packages/constants/src';
-import { downloadFileFromBlobPart } from '../../../packages/utils/src';
+import { Page, useVbenModal } from '@vben/common-ui';
+import { MesWmArrivalNoticeStatusEnum } from '@vben/constants';
+import { downloadFileFromBlobPart } from '@vben/utils';
import { Button, message } from 'ant-design-vue';
@@ -12,15 +12,23 @@
import {
deleteArrivalNotice,
exportArrivalNotice,
+ generateArrivalNoticeFromPurchaseOrder,
getArrivalNoticePage,
} from '#/api/mes/wm/arrivalnotice';
+import { generateItemReceiptFromArrivalNotice } from '#/api/mes/wm/itemreceipt';
import { $t } from '#/locales';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
+import PoSelectDialog from './modules/po-select-dialog.vue';
const [FormModal, formModalApi] = useVbenModal({
connectedComponent: Form,
+ destroyOnClose: true,
+});
+
+const [PoSelectModal, poSelectModalApi] = useVbenModal({
+ connectedComponent: PoSelectDialog,
destroyOnClose: true,
});
@@ -61,12 +69,44 @@
/** 鎻愮ず鍓嶅線璐ㄦ妯″潡 */
function handleQc() {
- message.info('璇峰墠寰�銆愯川閲忕鐞� - 寰呮浠诲姟銆戜腑杩涜鏉ユ枡妫�楠屾搷浣�');
+ message.info('璇峰墠寰�銆愯川閲忕鐞� - IQC妫�楠屻�戜腑杩涜鏉ユ枡妫�楠屾搷浣�');
}
-/** 鎻愮ず鍓嶅線閲囪喘鍏ュ簱妯″潡 */
-function handleReceipt() {
- message.info('璇峰墠寰�銆愪粨搴撶鐞� - 閲囪喘鍏ュ簱銆戜腑杩涜鍏ュ簱鎿嶄綔');
+/** 鎵ц鍏ュ簱锛氭牴鎹埌璐ч�氱煡鍗曠敓鎴愰噰璐叆搴撳崟 */
+async function handleReceipt(row: MesWmArrivalNoticeApi.ArrivalNotice) {
+ const hideLoading = message.loading({
+ content: '姝e湪鐢熸垚閲囪喘鍏ュ簱鍗�...',
+ duration: 0,
+ });
+ try {
+ await generateItemReceiptFromArrivalNotice(row.id!);
+ message.success('鍏ュ簱鎴愬姛');
+ handleRefresh();
+ } finally {
+ hideLoading();
+ }
+}
+
+/** 浠庨噰璐鍗曠敓鎴愬埌璐ч�氱煡鍗� */
+async function handleGenerateFromPO() {
+ poSelectModalApi.open();
+}
+
+/** 閲囪喘璁㈠崟閫夋嫨鍥炶皟 */
+async function handlePurchaseOrderSelected(purchaseOrderId: number) {
+ const hideLoading = message.loading({
+ content: '姝e湪鐢熸垚鍒拌揣閫氱煡鍗�...',
+ duration: 0,
+ });
+ try {
+ const id = await generateArrivalNoticeFromPurchaseOrder(purchaseOrderId);
+ message.success('鍒拌揣閫氱煡鍗曠敓鎴愭垚鍔�');
+ // 璺宠浆鍒扮紪杈戦〉
+ formModalApi.setData({ formType: 'update', id }).open();
+ handleRefresh();
+ } finally {
+ hideLoading();
+ }
}
/** 瀵煎嚭琛ㄦ牸 */
@@ -107,7 +147,9 @@
</script>
<template>
- <Page auto-content-height><FormModal @success="handleRefresh" />
+ <Page auto-content-height>
+ <FormModal @success="handleRefresh" />
+ <PoSelectModal @selected="handlePurchaseOrderSelected" />
<Grid table-title="鍒拌揣閫氱煡鍗曞垪琛�">
<template #toolbar-tools>
@@ -119,6 +161,13 @@
icon: ACTION_ICON.ADD,
auth: ['mes:wm-arrival-notice:create'],
onClick: handleCreate,
+ },
+ {
+ label: '浠庨噰璐鍗曠敓鎴�',
+ type: 'primary',
+ icon: ACTION_ICON.ADD,
+ auth: ['mes:wm-arrival-notice:create'],
+ onClick: handleGenerateFromPO,
},
{
label: $t('ui.actionTitle.export'),
@@ -167,9 +216,13 @@
{
label: '鎵ц鍏ュ簱',
type: 'link',
+ auth: ['mes:wm-item-receipt:create'],
ifShow:
row.status === MesWmArrivalNoticeStatusEnum.PENDING_RECEIPT,
- onClick: handleReceipt,
+ popConfirm: {
+ title: `纭鏍规嵁鍒拌揣閫氱煡鍗� ${row.code} 鐢熸垚閲囪喘鍏ュ簱鍗曪紵`,
+ confirm: handleReceipt.bind(null, row),
+ },
},
]"
/>
--
Gitblit v1.9.3