From 65c04f3ed26cf19972e1adb87806f7f4f19767d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= Date: Wed, 24 Dec 2025 11:46:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(warehouse):=20=E4=BF=AE=E5=A4=8D=E5=A4=8D?= =?UTF-8?q?=E5=90=88=E6=9E=B6=E8=A7=84=E5=88=99=E9=AA=8C=E8=AF=81=E5=92=8C?= =?UTF-8?q?=E6=8B=86=E5=88=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 调整复合架规则的数据结构,增加列数配置 添加复合架规则的合法性验证条件 修改拆分逻辑以根据配置的行数进行拆分 移除调试用的console.log语句 --- .../components/WarehouseInterlaced.vue | 33 ++++++++++++++----- 1 file changed, 24 insertions(+), 9 deletions(-) diff --git a/klp-ui/src/views/wms/warehouse/components/WarehouseInterlaced.vue b/klp-ui/src/views/wms/warehouse/components/WarehouseInterlaced.vue index 6a352676..88441f7a 100644 --- a/klp-ui/src/views/wms/warehouse/components/WarehouseInterlaced.vue +++ b/klp-ui/src/views/wms/warehouse/components/WarehouseInterlaced.vue @@ -121,9 +121,10 @@ export default { compositeRules: { // 测试库区 '2002207449418686465': { - big: 19 * 5, - small: 29 * 5, - rows: [1, 2, 3, 4, 5] + col: 5, + big: 19, + small: 29, + rows: [0, 1, 2, 3, 4] }, }, dialogOpen: false, @@ -139,7 +140,20 @@ export default { computed: { // 当前的库区是否支持复合架 isComposite() { - // 如果存在id则支持,不存在 + if (!this.compositeRules[this.id]) { + return false; + } + // 检车规则是否合法, + // 1. (small - big) / 2 = rows.length + if ((this.compositeRules[this.id].small - this.compositeRules[this.id].big) / 2 !== this.compositeRules[this.id].rows.length) { + return false; + } + // 2. row中最大的值小于等于big + const maxRow = Math.max(...this.compositeRules[this.id].rows); + if (maxRow > this.compositeRules[this.id].big) { + return false; + } + return this.compositeRules[this.id]; }, sortedColumnKeys() { @@ -243,7 +257,6 @@ export default { // 向父组件发送切换事件,由父组件更新columns数据 // 如果切换为合并状态,调用handleMergeWarehouse方法 // 需要二次确认 - console.log(this.columns[column]) const columnData = this.columns[column] || {}; const columnFlag = columnData.layer1?.[0]?.actualWarehouseCode?.substring(0, 4) || ''; // 取前四位 @@ -289,10 +302,12 @@ export default { const splitIds = []; const layer1Warehouses = columnData.layer1 || []; const layer2Warehouses = columnData.layer2 || []; - const maxSplitCount = 5; // 最多拆分5个 - for (let i = 0; i < maxSplitCount; i++) { - if (layer1Warehouses[i]) splitIds.push(layer1Warehouses[i].actualWarehouseId); - if (layer2Warehouses[i]) splitIds.push(layer2Warehouses[i].actualWarehouseId); + // 将对应的行拆分 + const currentRule = this.compositeRules[this.id]; + const rows = currentRule?.rows || []; // 最多拆分5个 + for (let i = 0; i < rows.length; i++) { + if (layer1Warehouses[i]) splitIds.push(layer1Warehouses[rows[i]].actualWarehouseId); + if (layer2Warehouses[i]) splitIds.push(layer2Warehouses[rows[i]].actualWarehouseId); } payload.splitIds = splitIds; console.log(payload)