From ee7ac8df8bce38add1f75baf876b49de94b9e00a Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期五, 16 十月 2026 17:58:33 +0800
Subject: [PATCH] feat(mes): 赋码管理绑定托盘支持未录入批次的袋码
---
src/views/wls/materialstock/index.vue | 94 +++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 86 insertions(+), 8 deletions(-)
diff --git a/src/views/wls/materialstock/index.vue b/src/views/wls/materialstock/index.vue
index a9353f0..6fc3d37 100644
--- a/src/views/wls/materialstock/index.vue
+++ b/src/views/wls/materialstock/index.vue
@@ -17,8 +17,13 @@
} from '#/api/mes/wm/materialstock';
import { $t } from '#/locales';
import { MdItemTypeTree } from '#/views/mes/md/item/type/components';
-import { WmBatchDetail } from '#/views/wls/batch/components';
+import QrTraceModal from '#/views/mes/pro/components/qr-trace-modal.vue';
import AreaForm from '#/views/wls/warehouse/area/modules/form.vue';
+import {
+ WmStockAdjustModal,
+ WmStockBagModal,
+ WmStockMoveModal,
+} from './components';
import { useGridColumns, useGridFormSchema } from './data';
@@ -27,7 +32,30 @@
destroyOnClose: true,
});
-const batchDetailRef = ref<InstanceType<typeof WmBatchDetail>>();
+const [StockAdjustModal, stockAdjustModalApi] = useVbenModal({
+ connectedComponent: WmStockAdjustModal,
+ destroyOnClose: true,
+});
+
+const [StockMoveModal, stockMoveModalApi] = useVbenModal({
+ connectedComponent: WmStockMoveModal,
+ destroyOnClose: true,
+});
+
+const [QrTraceQueryModal, qrTraceQueryModalApi] = useVbenModal({
+ connectedComponent: QrTraceModal,
+ destroyOnClose: true,
+});
+
+const [StockBagModal, stockBagModalApi] = useVbenModal({
+ connectedComponent: WmStockBagModal,
+ destroyOnClose: true,
+});
+
+function handleOpenStockBags(row: MesWmMaterialStockApi.MaterialStock) {
+ if (!row.id) return;
+ stockBagModalApi.setData({ materialStockId: row.id }).open();
+}
/** 鍒锋柊琛ㄦ牸 */
function handleRefresh() {
@@ -58,12 +86,32 @@
areaModalApi.setData({ formType: 'detail', id: row.areaId }).open();
}
-/** 鎵撳紑鎵规璇︽儏寮圭獥 */
+/** 鎵撳紑搴撳瓨璋冩暣寮圭獥 */
+function handleOpenStockAdjust() {
+ stockAdjustModalApi.setData({}).open();
+}
+
+/** 搴撳瓨璋冩暣鎴愬姛鍥炶皟 */
+function handleStockAdjustSuccess() {
+ gridApi.query();
+}
+
+/** 鎵撳紑绉诲簱寮圭獥 */
+function handleOpenStockMove(row: MesWmMaterialStockApi.MaterialStock) {
+ stockMoveModalApi.setData(row).open();
+}
+
+/** 绉诲簱鎴愬姛鍥炶皟 */
+function handleStockMoveSuccess() {
+ gridApi.query();
+}
+
+/** 鎵撳紑鎵规杩芥函寮圭獥 */
function handleOpenBatchDetail(row: MesWmMaterialStockApi.MaterialStock) {
- if (!row.batchId) {
+ if (!row.batchCode) {
return;
}
- batchDetailRef.value?.open(row.batchId);
+ qrTraceQueryModalApi.setData({ code: row.batchCode }).open();
}
/** 澶勭悊鍐荤粨鐘舵�佸垏鎹� */
@@ -92,7 +140,7 @@
schema: useGridFormSchema(),
},
gridOptions: {
- columns: useGridColumns(handleFrozenChange),
+ columns: useGridColumns(handleFrozenChange, handleOpenStockMove),
height: 'auto',
keepSource: true,
proxyConfig: {
@@ -120,8 +168,12 @@
</script>
<template>
- <Page auto-content-height><AreaModal />
- <WmBatchDetail ref="batchDetailRef" />
+ <Page auto-content-height>
+ <AreaModal />
+ <QrTraceQueryModal />
+ <StockBagModal />
+ <StockAdjustModal @success="handleStockAdjustSuccess" />
+ <StockMoveModal @success="handleStockMoveSuccess" />
<div class="flex h-full w-full">
<!-- 宸︿晶鐗╂枡鍒嗙被鏍� -->
@@ -134,6 +186,13 @@
<template #toolbar-tools>
<TableAction
:actions="[
+ {
+ label: '搴撳瓨璋冩暣',
+ type: 'default',
+ icon: ACTION_ICON.EDIT,
+ auth: ['mes:wm-material-stock:adjust'],
+ onClick: handleOpenStockAdjust,
+ },
{
label: $t('ui.actionTitle.export'),
type: 'primary',
@@ -168,6 +227,25 @@
</Button>
<span v-else>-</span>
</template>
+ <template #actions="{ row }">
+ <TableAction
+ :actions="[
+ {
+ label: '鏌ョ湅琚嬬爜',
+ type: 'link',
+ ifShow: row.bagDetailSupported,
+ onClick: handleOpenStockBags.bind(null, row),
+ },
+ {
+ label: '绉诲簱',
+ type: 'link',
+ auth: ['mes:wm-material-stock:move'],
+ ifShow: !row.frozen,
+ onClick: handleOpenStockMove.bind(null, row),
+ },
+ ]"
+ />
+ </template>
</Grid>
</div>
</div>
--
Gitblit v1.9.3