From c64bb94c7e1758f47e8c946e4656a71bb5fd53e8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 12 八月 2026 17:10:57 +0800
Subject: [PATCH] feat(system): 新增部门管理和岗位管理的 Excel 导入功能
---
src/views/wls/itemreceipt/index.vue | 46 ++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 42 insertions(+), 4 deletions(-)
diff --git a/src/views/wls/itemreceipt/index.vue b/src/views/wls/itemreceipt/index.vue
index 9e3f25c..552e77a 100644
--- a/src/views/wls/itemreceipt/index.vue
+++ b/src/views/wls/itemreceipt/index.vue
@@ -2,9 +2,9 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesWmItemReceiptApi } from '#/api/mes/wm/itemreceipt';
-import { Page, useVbenModal } from '../../../packages/effects/common-ui/src';
-import { MesWmItemReceiptStatusEnum } from '../../../packages/constants/src';
-import { downloadFileFromBlobPart } from '../../../packages/utils/src';
+import { Page, useVbenModal } from '@vben/common-ui';
+import { MesWmItemReceiptStatusEnum } from '@vben/constants';
+import { downloadFileFromBlobPart } from '@vben/utils';
import { Button, message } from 'ant-design-vue';
@@ -13,15 +13,22 @@
cancelItemReceipt,
deleteItemReceipt,
exportItemReceipt,
+ generateItemReceiptFromArrivalNotice,
getItemReceiptPage,
} from '#/api/mes/wm/itemreceipt';
import { $t } from '#/locales';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
+import AnSelectDialog from './modules/an-select-dialog.vue';
const [FormModal, formModalApi] = useVbenModal({
connectedComponent: Form,
+ destroyOnClose: true,
+});
+
+const [AnSelectModal, anSelectModalApi] = useVbenModal({
+ connectedComponent: AnSelectDialog,
destroyOnClose: true,
});
@@ -77,6 +84,28 @@
handleRefresh();
}
+/** 浠庡埌璐ч�氱煡鐢熸垚閲囪喘鍏ュ簱鍗� */
+async function handleGenerateFromAN() {
+ anSelectModalApi.open();
+}
+
+/** 鍒拌揣閫氱煡閫夋嫨鍥炶皟 */
+async function handleArrivalNoticeSelected(arrivalNoticeId: number) {
+ const hideLoading = message.loading({
+ content: '姝e湪鐢熸垚閲囪喘鍏ュ簱鍗�...',
+ duration: 0,
+ });
+ try {
+ const id = await generateItemReceiptFromArrivalNotice(arrivalNoticeId);
+ message.success('閲囪喘鍏ュ簱鍗曠敓鎴愭垚鍔�');
+ // 璺宠浆鍒扮紪杈戦〉
+ formModalApi.setData({ formType: 'update', id }).open();
+ handleRefresh();
+ } finally {
+ hideLoading();
+ }
+}
+
/** 瀵煎嚭琛ㄦ牸 */
async function handleExport() {
const data = await exportItemReceipt(await gridApi.formApi.getValues());
@@ -115,7 +144,9 @@
</script>
<template>
- <Page auto-content-height><FormModal @success="handleRefresh" />
+ <Page auto-content-height>
+ <FormModal @success="handleRefresh" />
+ <AnSelectModal @selected="handleArrivalNoticeSelected" />
<Grid table-title="閲囪喘鍏ュ簱鍗曞垪琛�">
<template #toolbar-tools>
@@ -129,6 +160,13 @@
onClick: handleCreate,
},
{
+ label: '浠庡埌璐ч�氱煡鐢熸垚',
+ type: 'primary',
+ icon: ACTION_ICON.ADD,
+ auth: ['mes:wm-item-receipt:create'],
+ onClick: handleGenerateFromAN,
+ },
+ {
label: $t('ui.actionTitle.export'),
type: 'primary',
icon: ACTION_ICON.DOWNLOAD,
--
Gitblit v1.9.3