This commit is contained in:
2026-09-20 14:22:14 +08:00
parent afd722a7e2
commit 117431a4fb
5 changed files with 51 additions and 7 deletions
+5 -4
View File
@@ -101,10 +101,10 @@
<view v-if="itemState(item) === ITEM_STATUS.PENDING && isSealedPalletItem(item)" class="pick-item-actions">
<button class="pick-btn pick-btn-confirm" @tap="pickItem(item.id)">确认整托拣出</button>
</view>
<view v-else-if="itemState(item) === ITEM_STATUS.PENDING" class="pick-item-actions">
<view v-else-if="!isSealedPalletItem(item) && [ITEM_STATUS.PENDING, ITEM_STATUS.PARTIAL].includes(itemState(item))" class="pick-item-actions">
<button class="pick-btn pick-btn-confirm" @tap="pickItem(item.id)">确认拣出</button>
<button class="pick-btn pick-btn-partial" @tap="openPartial(item.id)">部分拣货</button>
<button class="pick-btn pick-btn-skip" @tap="openSkip(item.id)">跳拣</button>
<button v-if="itemState(item) === ITEM_STATUS.PENDING" class="pick-btn pick-btn-skip" @tap="openSkip(item.id)">跳拣</button>
</view>
<view v-else-if="pickingOperationReady" class="pick-item-actions processed-actions">
<text class="version-hint">已同步服务端</text>
@@ -469,12 +469,13 @@
if (!this.partialTargetItem) return false
const value = parseInt(this.partialInput, 10)
const available = this.availablePickQuantity(this.partialTargetItem)
return Number.isInteger(value) && value > 0 && value < this.partialTargetItem.qty && (available === null || value <= available)
return Number.isInteger(value) && value > 0 && value >= Number(this.partialTargetItem.pickedPackageCount || 0) && value < this.partialTargetItem.qty && (available === null || value <= available)
},
partialValidationMessage() {
if (!this.partialInput || !this.partialTargetItem) return ''
const value = parseInt(this.partialInput, 10)
if (!Number.isInteger(value) || value <= 0) return '请输入大于 0 的整数'
if (value < Number(this.partialTargetItem.pickedPackageCount || 0)) return `实际拣出总数不能少于已拣的 ${this.partialTargetItem.pickedPackageCount} 箱`
if (value >= this.partialTargetItem.qty) return `部分拣货必须少于 ${this.partialTargetItem.qty},整单请返回后点击“确认拣出”`
const available = this.availablePickQuantity(this.partialTargetItem)
if (available !== null && value > available) return `超过库存/库位可用量,可拣 ${available}`
@@ -1527,7 +1528,7 @@
const item = this.currentBox.items.find((entry) => entry.id === id)
if (isSealedPalletItem(item)) { this.showToast(`整托货物不能部分拣货,请扫描 ${item.palletNo}`, 'warning'); return }
this.partialTargetId = id
this.partialInput = ''
this.partialInput = Number(item?.pickedPackageCount || 0) > 0 ? String(item.pickedPackageCount) : ''
this.openOverlay('partial')
this.$nextTick(() => {
this.partialFocused = true