From 1c1af9b0fc10778ae5ac13cc68fd4030affbcfe1 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 10:59:53 +0800
Subject: [PATCH] feat(wm): 新增SN码管理和设备入库功能
---
src/views/wls/miscreceipt/index.vue | 64 ++++++++++++++++++++++++++++++++
1 files changed, 64 insertions(+), 0 deletions(-)
diff --git a/src/views/wls/miscreceipt/index.vue b/src/views/wls/miscreceipt/index.vue
index b9d2d2f..03a6f12 100644
--- a/src/views/wls/miscreceipt/index.vue
+++ b/src/views/wls/miscreceipt/index.vue
@@ -2,6 +2,8 @@
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesWmMiscReceiptApi } from '#/api/mes/wm/miscreceipt';
+import { useRouter } from 'vue-router';
+
import { Page, useVbenModal } from '@vben/common-ui';
import { MesWmMiscReceiptStatusEnum } from '@vben/constants';
import { downloadFileFromBlobPart } from '@vben/utils';
@@ -13,15 +15,25 @@
cancelMiscReceipt,
deleteMiscReceipt,
exportMiscReceipt,
+ getMiscReceiptApproveProcessList,
getMiscReceiptPage,
+ submitMiscReceiptApproval,
} from '#/api/mes/wm/miscreceipt';
import { $t } from '#/locales';
+import ProcessSelectModal from '#/views/wls/components/process-select-modal.vue';
import { useGridColumns, useGridFormSchema } from './data';
import Form from './modules/form.vue';
+const router = useRouter();
+
const [FormModal, formModalApi] = useVbenModal({
connectedComponent: Form,
+ destroyOnClose: true,
+});
+
+const [ProcessModal, processModalApi] = useVbenModal({
+ connectedComponent: ProcessSelectModal,
destroyOnClose: true,
});
@@ -48,6 +60,43 @@
/** 鎵ц鍏ュ簱 */
function handleFinish(row: MesWmMiscReceiptApi.MiscReceipt) {
formModalApi.setData({ formType: 'finish', id: row.id }).open();
+}
+
+/** 鎻愪氦瀹℃壒 - 鍏堣幏鍙栨祦绋嬪垪琛� */
+async function handleSubmitApproval(row: MesWmMiscReceiptApi.MiscReceipt) {
+ const hideLoading = message.loading({
+ content: '鑾峰彇瀹℃壒娴佺▼...',
+ duration: 0,
+ });
+ try {
+ const processList = await getMiscReceiptApproveProcessList();
+ hideLoading();
+ if (!processList || processList.length === 0) {
+ message.warning('鏆傛棤鍙敤瀹℃壒娴佺▼锛岃鍏堥厤缃� BPM 娴佺▼');
+ return;
+ }
+ processModalApi
+ .setData({
+ id: row.id,
+ processList,
+ submitFn: submitMiscReceiptApproval,
+ })
+ .open();
+ } catch {
+ hideLoading();
+ }
+}
+
+/** 鏌ョ湅瀹℃壒璇︽儏 */
+function handleProcessDetail(row: MesWmMiscReceiptApi.MiscReceipt) {
+ if (!row.processInstanceId) {
+ message.warning('璇ュ崟鎹皻鏈彁浜ゅ鎵�');
+ return;
+ }
+ router.push({
+ name: 'BpmProcessInstanceDetail',
+ query: { id: row.processInstanceId },
+ });
}
/** 鍒犻櫎鏉傞」鍏ュ簱鍗� */
@@ -111,6 +160,7 @@
<template>
<Page auto-content-height><FormModal @success="handleRefresh" />
+ <ProcessModal @success="handleRefresh" />
<Grid table-title="鏉傞」鍏ュ簱鍗曞垪琛�">
<template #toolbar-tools>
@@ -162,6 +212,20 @@
},
},
{
+ label: '鎻愪氦瀹℃壒',
+ type: 'link',
+ auth: ['mes:wm:misc-receipt:submit'],
+ ifShow: row.status === MesWmMiscReceiptStatusEnum.PREPARE,
+ onClick: handleSubmitApproval.bind(null, row),
+ },
+ {
+ label: '鏌ョ湅瀹℃壒',
+ type: 'link',
+ auth: ['mes:wm:misc-receipt:query'],
+ ifShow: row.status === MesWmMiscReceiptStatusEnum.APPROVING,
+ onClick: handleProcessDetail.bind(null, row),
+ },
+ {
label: '鎵ц鍏ュ簱',
type: 'link',
auth: ['mes:wm-misc-receipt:finish'],
--
Gitblit v1.9.3