优化
This commit is contained in:
+26
-22
@@ -95,7 +95,7 @@
|
||||
</view>
|
||||
<view class="pick-item-row2">
|
||||
<text class="pick-item-desc">{{ itemDescription(item) }}</text>
|
||||
<text v-if="item.location" class="pick-item-location">{{ item.location }}</text>
|
||||
<text class="pick-item-location" :class="{ 'location-missing': !item.location }">库位 {{ item.location || '—' }}</text>
|
||||
</view>
|
||||
|
||||
<view v-if="itemState(item) === ITEM_STATUS.PENDING && isSealedPalletItem(item)" class="pick-item-actions">
|
||||
@@ -336,7 +336,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ITEM_STATUS, classifyScan, createItemStates, getPickSummary, isSealedPalletItem, submitStates } from '@/utils/picking-state.js'
|
||||
import { ITEM_STATUS, classifyScan, createItemStates, getPickSummary, isSealedPalletItem, submitStates, summarizeInventoryResources } from '@/utils/picking-state.js'
|
||||
import { SKIP_REASONS, INCOMPLETE_REASONS } from '@/data/demo-data.js'
|
||||
import { session, requireSession } from '@/stores/session.js'
|
||||
import { clearLoadingCompletionAttempt, clearPickingDraft, getPickingSession, restoreLoadingCompletionAttempt, restorePickingSession, saveLoadingCompletionAttempt, savePickingSession } from '@/stores/picking.js'
|
||||
@@ -970,8 +970,7 @@
|
||||
const reason = this.itemState(item) === ITEM_STATUS.SKIPPED && item.skipReason
|
||||
? ` · ${item.skipReason}`
|
||||
: ''
|
||||
const inbound = isSealedPalletItem(item) && item.inboundCode ? `${item.inboundCode} · ` : ''
|
||||
return `${inbound}${item.desc}${reason}`
|
||||
return `入仓码 ${item.inboundCode || '—'}${reason}`
|
||||
},
|
||||
async processScannedValue(scanValue, source = 'broadcast') {
|
||||
if (!this.requirePickingOperation()) return
|
||||
@@ -1102,24 +1101,29 @@
|
||||
const remoteItems = task.items || task.pickItems || task.details || task.lines
|
||||
if (!Array.isArray(remoteItems) || !remoteItems.length) throw new Error('当前拣货任务暂无可作业明细,请返回刷新')
|
||||
{
|
||||
this.currentBox.items = remoteItems.map((item) => ({
|
||||
...item,
|
||||
id: item.id ?? item.itemId,
|
||||
// The batch endpoint expects the PDA task-item primary key (`id`),
|
||||
// not a nested loading-plan item alias when both are returned.
|
||||
taskItemId: item.id ?? item.itemId,
|
||||
boxCodes: Array.isArray(item.boxCodes) ? item.boxCodes.map(String) : [],
|
||||
orderNo: item.orderNo ?? '', inboundCode: item.inboundCode ?? '',
|
||||
desc: item.cargoName ?? item.desc ?? item.description ?? '箱级拣货明细',
|
||||
qty: Number(item.qty ?? item.plannedPackageCount ?? item.packageCount ?? 0),
|
||||
unit: '箱',
|
||||
location: item.location ?? item.locationCode ?? '',
|
||||
availablePackageCount: item.availablePackageCount ?? item.locationAvailablePackageCount ?? item.availableQty ?? item.stockAvailableQty ?? null,
|
||||
locationIds: item.locationIds ?? item.reservationIds ?? [],
|
||||
locationAvailable: item.locationAvailable ?? item.locationUsable ?? null,
|
||||
locationStatus: item.locationStatus ?? null,
|
||||
skipReason: item.skipReason || '', finalState: item.finalState || '', finalPartialQuantity: item.finalPartialQuantity || 0
|
||||
}))
|
||||
this.currentBox.items = remoteItems.map((item) => {
|
||||
const inventoryResources = Array.isArray(item.inventoryResources) ? item.inventoryResources : []
|
||||
const inventorySummary = summarizeInventoryResources(inventoryResources)
|
||||
return {
|
||||
...item,
|
||||
id: item.id ?? item.itemId,
|
||||
// The batch endpoint expects the PDA task-item primary key (`id`),
|
||||
// not a nested loading-plan item alias when both are returned.
|
||||
taskItemId: item.id ?? item.itemId,
|
||||
boxCodes: Array.isArray(item.boxCodes) ? item.boxCodes.map(String) : [],
|
||||
inventoryResources,
|
||||
orderNo: item.orderNo ?? '', inboundCode: item.inboundCode ?? '',
|
||||
desc: item.cargoName ?? item.desc ?? item.description ?? '箱级拣货明细',
|
||||
qty: Number(item.qty ?? item.plannedPackageCount ?? item.packageCount ?? 0),
|
||||
unit: '箱',
|
||||
location: item.location || item.locationCode || inventorySummary.location,
|
||||
availablePackageCount: item.availablePackageCount ?? item.locationAvailablePackageCount ?? item.availableQty ?? item.stockAvailableQty ?? inventorySummary.availablePackageCount,
|
||||
locationIds: item.locationIds ?? item.reservationIds ?? inventoryResources.map((resource) => resource.locationId).filter(Boolean),
|
||||
locationAvailable: item.locationAvailable ?? item.locationUsable ?? null,
|
||||
locationStatus: item.locationStatus ?? null,
|
||||
skipReason: item.skipReason || '', finalState: item.finalState || '', finalPartialQuantity: item.finalPartialQuantity || 0
|
||||
}
|
||||
})
|
||||
const firstItem = this.currentBox.items[0]
|
||||
this.currentBox.orderNo = firstItem.orderNo || task.orderNo || this.currentBox.orderNo
|
||||
this.currentBox.inboundCode = firstItem.inboundCode || task.inboundCode || this.currentBox.inboundCode
|
||||
|
||||
Reference in New Issue
Block a user