From 1677b6e8c20c3c8dd8297c08428538ca5e0029fc Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期一, 26 一月 2026 13:43:52 +0800
Subject: [PATCH] feat: 库存管理的冻结与解冻物料批次
---
src/api/inventoryManagement/stockManage.js | 18 +++++
src/views/inventoryManagement/issueManagement/index.vue | 39 ++++++++++++-
src/views/inventoryManagement/stockManagement/index.vue | 68 ++++++++++++++++++++++
3 files changed, 121 insertions(+), 4 deletions(-)
diff --git a/src/api/inventoryManagement/stockManage.js b/src/api/inventoryManagement/stockManage.js
index e2a4ebf..7cf9691 100644
--- a/src/api/inventoryManagement/stockManage.js
+++ b/src/api/inventoryManagement/stockManage.js
@@ -80,4 +80,20 @@
})
}
-//
\ No newline at end of file
+// 閲囪喘鍏ュ簱-搴撳瓨绠$悊-鍐荤粨涓嶅悎鏍间骇鍝�
+export function frozenQuality(ids) {
+ return request({
+ url: '/stockin/frozenQuality',
+ method: 'post',
+ data: ids
+ })
+}
+
+// 閲囪喘鍏ュ簱-搴撳瓨绠$悊-瑙e喕涓嶅悎鏍间骇鍝�
+export function thawQuality(ids) {
+ return request({
+ url: '/stockin/thawQuality',
+ method: 'post',
+ data: ids
+ })
+}
\ No newline at end of file
diff --git a/src/views/inventoryManagement/issueManagement/index.vue b/src/views/inventoryManagement/issueManagement/index.vue
index 6f82adc..6e345d1 100644
--- a/src/views/inventoryManagement/issueManagement/index.vue
+++ b/src/views/inventoryManagement/issueManagement/index.vue
@@ -51,12 +51,22 @@
prop="inboundNum0"
width="90"
show-overflow-tooltip />
+ <el-table-column label="鐘舵��"
+ align="center"
+ prop="isFrozen"
+ width="100">
+ <template #default="scope">
+ <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
+ {{ scope.row.isFrozen ? '宸插喕缁�' : '姝e父' }}
+ </el-tag>
+ </template>
+ </el-table-column>
<el-table-column fixed="right"
label="鎿嶄綔"
min-width="60"
align="center">
<template #default="scope">
- <el-button :disabled="scope.row.inboundNum0 <= 0"
+ <el-button :disabled="scope.row.inboundNum0 <= 0 || scope.row.isFrozen"
link
type="primary"
size="small"
@@ -131,13 +141,23 @@
<el-table-column label="鍚◣鎬讳环(鍏�)"
prop="taxInclusiveTotalPrice"
width="150"></el-table-column>
+ <el-table-column label="鐘舵��"
+ align="center"
+ prop="isFrozen"
+ width="100">
+ <template #default="scope">
+ <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
+ {{ scope.row.isFrozen ? '宸插喕缁�' : '姝e父' }}
+ </el-tag>
+ </template>
+ </el-table-column>
<el-table-column fixed="right"
label="鎿嶄綔"
min-width="60"
align="center">
<template #default="scope">
<el-button link
- :disabled="scope.row.inboundNum0 <= 0"
+ :disabled="scope.row.inboundNum0 <= 0 || scope.row.isFrozen"
type="primary"
size="small"
@click="openForm(scope.row);">棰嗙敤</el-button>
@@ -201,13 +221,23 @@
prop="inboundNum0"
width="90"
show-overflow-tooltip />
+ <el-table-column label="鐘舵��"
+ align="center"
+ prop="isFrozen"
+ width="100">
+ <template #default="scope">
+ <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
+ {{ scope.row.isFrozen ? '宸插喕缁�' : '姝e父' }}
+ </el-tag>
+ </template>
+ </el-table-column>
<el-table-column fixed="right"
label="鎿嶄綔"
min-width="60"
align="center">
<template #default="scope">
<el-button link
- :disabled="scope.row.inboundNum0 <= 0"
+ :disabled="scope.row.inboundNum0 <= 0 || scope.row.isFrozen"
type="primary"
size="small"
@click="openForm(scope.row);">棰嗙敤</el-button>
@@ -421,6 +451,9 @@
const productModelId = ref(null);
// 鎵撳紑寮规
const openForm = async row => {
+ if (row.isFrozen) {
+ return proxy.$modal.msgError("璇ヤ骇鍝佸凡鍐荤粨锛屾棤娉曢鐢�");
+ }
dialogFormVisible.value = true;
currentRowId.value = row.id;
currentRowNum.value = row.inboundNum0;
diff --git a/src/views/inventoryManagement/stockManagement/index.vue b/src/views/inventoryManagement/stockManagement/index.vue
index 88ca4ff..dd27462 100644
--- a/src/views/inventoryManagement/stockManagement/index.vue
+++ b/src/views/inventoryManagement/stockManagement/index.vue
@@ -108,6 +108,12 @@
</div>
<div>
<el-button @click="handleOut">瀵煎嚭</el-button>
+ <el-button type="danger"
+ plain
+ @click="handleFrozen">鍐荤粨</el-button>
+ <el-button type="success"
+ plain
+ @click="handleThaw">瑙e喕</el-button>
<!-- <el-button type="danger" plain @click="handleDelete">鍒犻櫎</el-button>-->
</div>
</div>
@@ -164,6 +170,16 @@
<el-table-column label="鍚◣鎬讳环(鍏�)"
prop="taxInclusiveTotalPrice"
width="150"></el-table-column>
+ <el-table-column label="鐘舵��"
+ align="center"
+ prop="isFrozen"
+ width="100">
+ <template #default="scope">
+ <el-tag :type="scope.row.isFrozen ? 'danger' : 'success'">
+ {{ scope.row.isFrozen ? '宸插喕缁�' : '姝e父' }}
+ </el-tag>
+ </template>
+ </el-table-column>
</el-table>
<pagination v-show="total > 0"
:total="total"
@@ -200,6 +216,8 @@
getStockManagePage,
getStockManagePageByProduction,
delStockManage, getStockManageProduction,
+ frozenQuality,
+ thawQuality,
} from "@/api/inventoryManagement/stockManage.js";
import {
updateManagement,
@@ -534,6 +552,56 @@
proxy.$modal.msg("宸插彇娑�");
});
};
+
+ // 鍐荤粨
+ const handleFrozen = () => {
+ let ids = [];
+ if (selectedRows.value.length > 0) {
+ ids = selectedRows.value.map(item => item.id);
+ } else {
+ proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚爣璁颁负涓嶅悎鏍间骇鍝佸苟鍐荤粨锛屾槸鍚︾‘璁�?", "璀﹀憡", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "warning",
+ })
+ .then(() => {
+ frozenQuality(ids).then(res => {
+ proxy.$modal.msgSuccess("鎿嶄綔鎴愬姛");
+ getList();
+ });
+ })
+ .catch(() => {
+ proxy.$modal.msg("宸插彇娑�");
+ });
+ };
+
+ // 瑙e喕
+ const handleThaw = () => {
+ let ids = [];
+ if (selectedRows.value.length > 0) {
+ ids = selectedRows.value.map(item => item.id);
+ } else {
+ proxy.$modal.msgWarning("璇烽�夋嫨鏁版嵁");
+ return;
+ }
+ ElMessageBox.confirm("閫変腑鐨勫唴瀹瑰皢琚В鍐伙紝鏄惁纭?", "鎻愮ず", {
+ confirmButtonText: "纭",
+ cancelButtonText: "鍙栨秷",
+ type: "success",
+ })
+ .then(() => {
+ thawQuality(ids).then(res => {
+ proxy.$modal.msgSuccess("鎿嶄綔鎴愬姛");
+ getList();
+ });
+ })
+ .catch(() => {
+ proxy.$modal.msg("宸插彇娑�");
+ });
+ };
// 鍒犻櫎
const handleDelete = () => {
let ids = [];
--
Gitblit v1.9.3