From af6be9b1bf9e0c70f1e2c5fed7ca9ae056881fdf Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 15 五月 2026 09:43:14 +0800
Subject: [PATCH] 浪潮 1.出库台账编辑反显错误
---
src/views/inventoryManagement/dispatchLog/Record.vue | 148 +++++++++++++++++++++++++++++++++++++++----------
1 files changed, 118 insertions(+), 30 deletions(-)
diff --git a/src/views/inventoryManagement/dispatchLog/Record.vue b/src/views/inventoryManagement/dispatchLog/Record.vue
index 7ba8dfd..39b6408 100644
--- a/src/views/inventoryManagement/dispatchLog/Record.vue
+++ b/src/views/inventoryManagement/dispatchLog/Record.vue
@@ -150,7 +150,7 @@
<el-input v-model="formState.unit" disabled />
</el-form-item>
<el-form-item label="浠撳簱"
- prop="warehouseId"
+ prop="warehouseInfoId"
:rules="[
{
required: true,
@@ -158,15 +158,14 @@
trigger: 'change',
}
]">
- <el-select v-model="formState.warehouseId"
+ <el-select v-model="formState.warehouseInfoId"
placeholder="璇烽�夋嫨浠撳簱"
clearable
- :disabled="isEdit || !formState.productId"
@change="handleWarehouseChange"
style="width: 100%">
<el-option v-for="warehouse in warehouseList"
:key="warehouse.id"
- :label="warehouse.name"
+ :label="warehouse.warehouseName"
:value="warehouse.id" />
</el-select>
</el-form-item>
@@ -182,7 +181,6 @@
<el-select v-model="formState.batchNo"
placeholder="璇烽�夋嫨鎵瑰彿"
clearable
- :disabled="isEdit"
@change="handleBatchNoChange"
style="width: 100%">
<el-option v-for="batch in batchNoList"
@@ -191,10 +189,10 @@
:value="batch" />
</el-select>
</el-form-item>
- <el-form-item v-if="formState.batchNo && batchNoStockMap[formState.batchNo]"
+ <el-form-item v-if="formState.batchNo && batchNoStockMap[formState.batchNo] !== undefined"
label="褰撳墠鎵瑰彿搴撳瓨"
prop="currentStock">
- <el-input v-model="batchNoStockMap[formState.batchNo]" disabled />
+ <el-input :model-value="batchNoStockMap[formState.batchNo]" disabled />
</el-form-item>
<el-form-item label="鍑哄簱鏁伴噺"
prop="qualitity"
@@ -244,7 +242,7 @@
]">
<el-select v-model="formState.type"
placeholder="璇烽�夋嫨搴撳瓨绫诲瀷"
- :disabled="isEdit">
+ >
<el-option label="鍚堟牸搴撳瓨"
value="qualified" />
<el-option label="涓嶅悎鏍煎簱瀛�"
@@ -290,9 +288,10 @@
findAllQualifiedStockOutRecordTypeOptions,
findAllUnQualifiedStockOutRecordTypeOptions,
} from "@/api/basicData/enum.js";
-import { addStockOutRecordOnly } from "@/api/inventoryManagement/stockInventory.js";
+import { addStockOutRecordOnly, getStockInventoryByModelId } from "@/api/inventoryManagement/stockInventory.js";
import { addUnqualifiedStockOutRecordOnly } from "@/api/inventoryManagement/stockUninventory.js";
import { getWarehouseList } from "@/api/inventoryManagement/warehouse.js";
+import { productModelListByUrl } from "@/api/basicData/productModel.js";
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
@@ -357,7 +356,7 @@
productName: "",
productModelName: "",
unit: "",
- warehouseId: null, // 浠撳簱ID
+ warehouseInfoId: null, // 浠撳簱ID
type: undefined,
qualitity: 0,
batchNo: null,
@@ -463,7 +462,7 @@
};
// 缂栬緫
-const handleEdit = (row) => {
+const handleEdit = async (row) => {
dialogType.value = 'edit';
resetForm();
// 濉厖琛ㄥ崟鏁版嵁
@@ -477,21 +476,110 @@
type: props.type === '0' ? 'qualified' : 'unqualified',
qualitity: row.stockOutNum,
batchNo: row.batchNo,
+ warehouseInfoId: row.warehouseInfoId,
recordType: row.recordType,
remark: row.remark || "",
- maxStock: row.stockOutNum || 0, // 缂栬緫鏃朵娇鐢ㄥ綋鍓嶅嚭搴撴暟閲忎綔涓烘渶澶у簱瀛橈紙鍥犱负鏄慨鏀瑰凡鏈夎褰曪級
+ maxStock: 0,
};
- // 缂栬緫鏃朵粠batchNoMaps鑾峰彇鎵瑰彿鍒楄〃
- if (row.batchNoMaps && Object.keys(row.batchNoMaps).length > 0) {
- batchNoList.value = Object.keys(row.batchNoMaps);
- batchNoStockMap.value = row.batchNoMaps;
- } else if (row.batchNo) {
- batchNoList.value = [row.batchNo];
- batchNoStockMap.value = { [row.batchNo]: row.stockOutNum || 0 };
- } else {
- batchNoList.value = [];
- batchNoStockMap.value = {};
+ // 缂栬緫鏃跺姞杞戒粨搴撳垪琛�
+ if (row.warehouseInfoId) {
+ const allWarehouses = await loadWarehouseList();
+ const currentWarehouse = allWarehouses.find(w => String(w.id) === String(row.warehouseInfoId));
+ if (currentWarehouse) {
+ warehouseList.value = [{
+ id: currentWarehouse.id,
+ warehouseName: currentWarehouse.warehouseName || currentWarehouse.name || currentWarehouse.warehouseCode || `浠撳簱${currentWarehouse.id}`
+ }];
+ }
}
+ // 缂栬緫鏃舵煡璇骇鍝佸簱瀛�
+ if (row.productModelId) {
+ try {
+ console.log('缂栬緫鏃舵煡璇㈠簱瀛橈紝productModelId:', row.productModelId);
+ console.log('褰撳墠row鏁版嵁:', row);
+ const res = await productModelListByUrl('/basic/product/pageModelAndQua', {
+ id: row.productModelId,
+ page: 1,
+ size: 1
+ });
+ console.log('鏌ヨ搴撳瓨鎺ュ彛杩斿洖:', res);
+ // 鎺ュ彛鐩存帴杩斿洖 {records: [], total: ...}锛屾病鏈� data 灞傚拰 code
+ const records = res.records || (res.data && res.data.records) || [];
+ if (records.length > 0) {
+ const product = records[0];
+ console.log('浜у搧鏁版嵁:', product);
+ console.log('batchNoMaps:', product.batchNoMaps);
+ if (product.batchNoMaps && Object.keys(product.batchNoMaps).length > 0) {
+ rawBatchNoMaps.value = product.batchNoMaps;
+ // 鑾峰彇鎵�鏈変粨搴撲俊鎭敤浜庡弽鏄惧悕绉�
+ const allWarehouses = await loadWarehouseList();
+ const warehouseMap = {};
+ allWarehouses.forEach(w => {
+ warehouseMap[w.id] = w.warehouseName || w.name || w.warehouseCode || `浠撳簱${w.id}`;
+ });
+ // 鏋勫缓浠撳簱鍒楄〃
+ warehouseList.value = Object.keys(product.batchNoMaps).map(warehouseInfoId => ({
+ id: warehouseInfoId,
+ warehouseName: warehouseMap[warehouseInfoId] || `浠撳簱${warehouseInfoId}`
+ }));
+ console.log('褰撳墠浠撳簱ID:', row.warehouseInfoId);
+ console.log('璇ヤ粨搴撶殑batchNoMaps:', product.batchNoMaps[row.warehouseInfoId]);
+ // 濡傛灉褰撳墠鏈変粨搴揑D锛岃В鏋愯浠撳簱鐨勬壒鍙峰簱瀛�
+ if (row.warehouseInfoId && product.batchNoMaps[row.warehouseInfoId]) {
+ const batchArray = product.batchNoMaps[row.warehouseInfoId];
+ console.log('batchArray:', batchArray);
+ const batchMap = {};
+ const batches = [];
+ batchArray.forEach(item => {
+ const batchNo = Object.keys(item)[0];
+ const stock = item[batchNo];
+ console.log('鎵瑰彿:', batchNo, '搴撳瓨:', stock);
+ batches.push(batchNo);
+ batchMap[batchNo] = stock;
+ });
+ batchNoList.value = batches;
+ batchNoStockMap.value = batchMap;
+ console.log('batchMap:', batchMap);
+ console.log('褰撳墠鎵瑰彿:', row.batchNo);
+ // 璁剧疆褰撳墠鎵瑰彿鐨勫簱瀛�
+ if (row.batchNo && batchMap[row.batchNo] !== undefined) {
+ formState.value.maxStock = batchMap[row.batchNo];
+ console.log('璁剧疆maxStock涓�:', formState.value.maxStock);
+ } else {
+ console.log('鏈壘鍒板綋鍓嶆壒鍙风殑搴撳瓨');
+ formState.value.maxStock = 0;
+ }
+ } else {
+ console.log('鏈壘鍒板綋鍓嶄粨搴撶殑batchNoMaps');
+ batchNoList.value = row.batchNo ? [row.batchNo] : [];
+ batchNoStockMap.value = {};
+ formState.value.maxStock = 0;
+ }
+ } else {
+ console.log('浜у搧娌℃湁batchNoMaps');
+ batchNoList.value = row.batchNo ? [row.batchNo] : [];
+ batchNoStockMap.value = {};
+ formState.value.maxStock = 0;
+ }
+ } else {
+ console.log('鎺ュ彛杩斿洖鏁版嵁寮傚父:', res);
+ batchNoList.value = row.batchNo ? [row.batchNo] : [];
+ batchNoStockMap.value = {};
+ formState.value.maxStock = 0;
+ }
+ } catch (error) {
+ console.error('鏌ヨ浜у搧搴撳瓨澶辫触', error);
+ batchNoList.value = row.batchNo ? [row.batchNo] : [];
+ batchNoStockMap.value = {};
+ formState.value.maxStock = 0;
+ }
+ } else {
+ console.log('娌℃湁productModelId');
+ batchNoList.value = row.batchNo ? [row.batchNo] : [];
+ batchNoStockMap.value = {};
+ formState.value.maxStock = 0;
+ }
+ // 鎵�鏈夋暟鎹姞杞藉畬鎴愬悗鍐嶆樉绀哄脊绐�
dialogVisible.value = true;
};
@@ -504,7 +592,7 @@
productName: "",
productModelName: "",
unit: "",
- warehouseId: null,
+ warehouseInfoId: null,
type: undefined,
qualitity: 0,
batchNo: null,
@@ -551,7 +639,7 @@
batchNoList.value = [];
batchNoStockMap.value = {};
rawBatchNoMaps.value = {};
- formState.value.warehouseId = null;
+ formState.value.warehouseInfoId = null;
formState.value.batchNo = null;
formState.value.maxStock = 0;
@@ -564,9 +652,9 @@
warehouseMap[w.id] = w.warehouseName || w.name || w.warehouseCode || `浠撳簱${w.id}`;
});
// 鏋勫缓浠撳簱鍒楄〃
- warehouseList.value = Object.keys(product.batchNoMaps).map(warehouseId => ({
- id: warehouseId,
- name: warehouseMap[warehouseId] || `浠撳簱${warehouseId}`
+ warehouseList.value = Object.keys(product.batchNoMaps).map(warehouseInfoId => ({
+ id: warehouseInfoId,
+ warehouseName: warehouseMap[warehouseInfoId] || `浠撳簱${warehouseInfoId}`
}));
}
showProductSelect.value = false;
@@ -576,15 +664,15 @@
};
// 浠撳簱閫夋嫨鍙樺寲澶勭悊
-const handleWarehouseChange = (warehouseId) => {
+const handleWarehouseChange = (warehouseInfoId) => {
batchNoList.value = [];
batchNoStockMap.value = {};
formState.value.batchNo = null;
formState.value.maxStock = 0;
- if (warehouseId && rawBatchNoMaps.value[warehouseId]) {
+ if (warehouseInfoId && rawBatchNoMaps.value[warehouseInfoId]) {
// 瑙f瀽璇ヤ粨搴撲笅鐨勬壒鍙锋暟鎹紝鏍煎紡涓猴細[{鎵瑰彿: 搴撳瓨}, {鎵瑰彿: 搴撳瓨}]
- const batchArray = rawBatchNoMaps.value[warehouseId];
+ const batchArray = rawBatchNoMaps.value[warehouseInfoId];
const batchMap = {};
const batches = [];
--
Gitblit v1.9.3