From 4619d7c1944afbc85eb680167ca188fccc822259 Mon Sep 17 00:00:00 2001
From: huminmin <mac@MacBook-Pro.local>
Date: 星期四, 09 四月 2026 17:55:06 +0800
Subject: [PATCH] 根据产品大类联合查询库存信息
---
src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue | 60 ++++++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 44 insertions(+), 16 deletions(-)
diff --git a/src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue b/src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue
index 463cb83..a7a9400 100644
--- a/src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue
+++ b/src/views/inventoryManagement/stockManagement/FrozenAndThaw.vue
@@ -8,10 +8,27 @@
>
<el-form label-width="140px" :model="formState" ref="formRef">
<el-form-item
+ label="搴撳瓨绫诲瀷"
+ prop="type"
+ :rules="[
+ {
+ required: true,
+ message: '璇烽�夋嫨搴撳瓨绫诲瀷',
+ trigger: 'change',
+ }
+ ]"
+ >
+ <el-select v-model="formState.type" placeholder="璇烽�夋嫨搴撳瓨绫诲瀷" @change="handleChangeType">
+ <el-option label="鍚堟牸搴撳瓨" value="qualified" :disabled="(operationType === 'frozen' && props.record.qualifiedUnLockedQuantity <= 0) || (operationType === 'thaw' && props.record.qualifiedLockedQuantity <= 0)" />
+ <el-option label="涓嶅悎鏍煎簱瀛�" value="unqualified" :disabled="(operationType === 'frozen' && props.record.unQualifiedUnLockedQuantity <= 0) || (operationType === 'thaw' && props.record.unQualifiedLockedQuantity <= 0)" />
+ </el-select>
+ </el-form-item>
+
+ <el-form-item
:label="operationType === 'frozen' ? '鍐荤粨鏁伴噺锛�' : '瑙e喕鏁伴噺锛�'"
prop="lockedQuantity"
>
- <el-input-number v-model="formState.lockedQuantity" :step="1" :min="1" precision="0" style="width: 100%" :max="maxCount" />
+ <el-input-number v-model="formState.lockedQuantity" :step="1" :min="maxCount > 0 ? 1 : 0" precision="0" style="width: 100%" :max="maxCount" :disabled="maxCount < 1" />
</el-form-item>
</el-form>
@@ -26,7 +43,7 @@
</template>
<script setup>
-import {ref, computed, getCurrentInstance} from "vue";
+import {ref, computed, getCurrentInstance, onMounted} from "vue";
import {frozenStockInventory, thawStockInventory} from "@/api/inventoryManagement/stockInventory.js";
import {frozenStockUninventory, thawStockUninventory} from "@/api/inventoryManagement/stockUninventory.js";
@@ -42,12 +59,6 @@
default: 'frozen',
},
- type: {
- type: String,
- required: true,
- default: 'qualified',
- },
-
record: {
type: Object,
default: () => {},
@@ -58,7 +69,8 @@
// 鍝嶅簲寮忔暟鎹紙鏇夸唬閫夐」寮忕殑 data锛�
const formState = ref({
- lockedQuantity: 0,
+ type: undefined,
+ lockedQuantity: undefined,
});
const isShow = computed({
@@ -76,7 +88,8 @@
const closeModal = () => {
// 閲嶇疆琛ㄥ崟鏁版嵁
formState.value = {
- lockedQuantity: undefined
+ lockedQuantity: undefined,
+ type: undefined,
};
isShow.value = false;
};
@@ -84,17 +97,32 @@
const maxCount = computed(() => {
// 鍐荤粨搴撳瓨鏈�澶ф暟閲忎负鏈В鍐绘暟閲�
if (props.operationType === 'frozen') {
- return props.record.unLockedQuantity
+ // 鍐荤粨鍚堟牸搴撳瓨鏈�澶ф暟閲忎负鏈В鍐诲悎鏍兼暟閲�
+ if (formState.value.type === 'qualified') {
+ return Math.max(0, props.record.qualifiedUnLockedQuantity || 0)
+ }
+ // 鍐荤粨涓嶅悎鏍煎簱瀛樻渶澶ф暟閲忎负鏈В鍐讳笉鍚堟牸鏁伴噺
+ return Math.max(0, props.record.unQualifiedUnLockedQuantity || 0)
}
// 瑙e喕搴撳瓨鏈�澶ф暟閲忎负宸插喕缁撴暟閲�
- return props.record.lockedQuantity
+ if (formState.value.type === 'qualified') {
+ // 瑙e喕鍚堟牸搴撳瓨鏈�澶ф暟閲忎负宸插喕缁撳悎鏍兼暟閲�
+ return Math.max(0, props.record.qualifiedLockedQuantity || 0)
+ }
+ // 瑙e喕涓嶅悎鏍煎簱瀛樻渶澶ф暟閲忎负宸插喕缁撲笉鍚堟牸鏁伴噺
+ return Math.max(0, props.record.unQualifiedLockedQuantity || 0)
})
+
+const handleChangeType = (type) => {
+ formState.value.lockedQuantity = maxCount.value;
+}
const handleSubmit = () => {
proxy.$refs["formRef"].validate(valid => {
if (valid) {
- const data = Object.assign({id: props.record.id}, formState.value);
- if (props.type === 'qualified') {
+ const data = Object.assign({}, formState.value);
+ if (formState.value.type === 'qualified') {
+ data.id = props.record.qualifiedId;
// 鍐荤粨
if (props.operationType === 'frozen') {
frozenStockInventory(data).then(res => {
@@ -122,6 +150,7 @@
})
}
} else {
+ data.id = props.record.unQualifiedId;
if (props.operationType === 'frozen') {
frozenStockUninventory(data).then(res => {
if (res.code === 200) {
@@ -153,7 +182,6 @@
};
onMounted(() => {
- formState.value.lockedQuantity = maxCount.value;
})
defineExpose({
@@ -161,4 +189,4 @@
handleSubmit,
isShow,
});
-</script>
+</script>
\ No newline at end of file
--
Gitblit v1.9.3