| | |
| | | :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" |
| | |
| | | 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 handleEdit = (row) => { |
| | | const handleEdit = async (row) => { |
| | | dialogType.value = 'edit'; |
| | | resetForm(); |
| | | // 填充表单数据 |
| | |
| | | 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]); |
| | | // 如果当前有仓库ID,解析该仓库的批号库存 |
| | | 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; |
| | | }; |
| | | |