发布:将已验 TEST 功能更新至既有生产灰度(2026-10-23) #15

Merged
admin merged 69 commits from release/test into main 2026-10-23 10:51:31 +08:00
2 changed files with 4 additions and 11 deletions
Showing only changes of commit f5a6c7fd88 - Show all commits
@@ -387,6 +387,7 @@ onBeforeUnmount(clearPhotoUrls)
<section v-if="selected.packingDetails?.length" class="return-detail-section">
<h3>合箱明细</h3>
<el-table class="return-aligned-table" :data="selected.packingDetails" size="small">
<el-table-column prop="planNo" label="合箱计划" width="240" />
<el-table-column prop="sourceCartonMark" label="来源箱唛" width="300" />
<el-table-column prop="targetCartonMark" label="目标箱唛" width="300" />
<el-table-column prop="skuCode" label="SKU" width="200" />
@@ -443,14 +444,6 @@ onBeforeUnmount(clearPhotoUrls)
</el-dialog>
</section>
<section class="return-detail-section">
<h3>合箱记录</h3>
<el-table :data="selected.packingDetails || []" border empty-text="暂无合箱记录">
<el-table-column prop="planNo" label="合箱计划" min-width="200" />
<el-table-column prop="sourceCartonMark" label="来源箱唛" min-width="210" />
<el-table-column prop="targetCartonMark" label="目标箱唛" min-width="210" />
<el-table-column prop="skuCode" label="SKU" min-width="180" />
<el-table-column prop="quantity" label="本单合入数量" width="130" />
</el-table>
<h3>当前关联实物箱</h3>
<el-collapse v-if="selected.currentCartons?.length">
<el-collapse-item v-for="current in selected.currentCartons" :key="current.carton.cartonMark" :name="current.carton.cartonMark">
@@ -252,7 +252,7 @@ const relabelInboundOptions = computed(() => {
if (current) {
current.hasOutbound ||= candidate.hasOutbound === true || candidate.inventoryStatus === 'OUTBOUNDED'
current.availablePackages += inventoryQuantity(candidate.availablePackages)
current.units += candidate.returnCartonId && candidate.stockQuantity === 0 ? 0 : 1
current.units += candidate.returnCartonId && Number(candidate.stockQuantity) === 0 ? 0 : 1
current.stockQuantity = current.stockQuantity == null || candidate.stockQuantity == null ? null : current.stockQuantity + inventoryQuantity(candidate.stockQuantity)
if (candidate.returnCartonId) current.reasons.push(returnInventoryState(candidate))
}
@@ -261,7 +261,7 @@ const relabelInboundOptions = computed(() => {
inboundCode: candidate.returnCartonId ? '已签收退货库存(含合箱)' : (candidate.inboundCode || '—'),
availablePackages: inventoryQuantity(candidate.availablePackages),
quantityUnit: candidate.returnCartonId ? '件' : '箱',
stockQuantity: candidate.stockQuantity == null ? null : inventoryQuantity(candidate.stockQuantity), units: candidate.returnCartonId && candidate.stockQuantity === 0 ? 0 : 1, hasOutbound: candidate.hasOutbound === true || candidate.inventoryStatus === 'OUTBOUNDED', reasons: candidate.returnCartonId ? [returnInventoryState(candidate)] : [],
stockQuantity: candidate.stockQuantity == null ? null : inventoryQuantity(candidate.stockQuantity), units: candidate.returnCartonId && Number(candidate.stockQuantity) === 0 ? 0 : 1, hasOutbound: candidate.hasOutbound === true || candidate.inventoryStatus === 'OUTBOUNDED', reasons: candidate.returnCartonId ? [returnInventoryState(candidate)] : [],
})
}
}
@@ -270,7 +270,7 @@ const relabelInboundOptions = computed(() => {
const visibleRelabelInboundOptions = computed(() => relabelInboundOptions.value.filter(option => option.availablePackages > 0))
function relabelOptionLabel(option: typeof relabelInboundOptions.value[number]) {
if (option.quantityUnit === '箱') return option.inboundOrderNo + '|' + option.inboundCode + '|可选 ' + option.availablePackages + ' 箱'
return option.inboundOrderNo + '|在仓 ' + option.units + ' 包裹/箱 · ' + (option.stockQuantity ?? '待查询') + ' 件' + (option.hasOutbound && Number(option.stockQuantity) > 0 ? '|部分出库' : '')
return option.inboundOrderNo + '|在仓 ' + option.units + ' 包裹/箱 · ' + (option.stockQuantity ?? '待查询') + ' 件' + (option.reasons.some(reason => reason.includes('跨来源单')) ? '(关联整箱数量,含其他来源)' : '') + (option.hasOutbound && Number(option.stockQuantity) > 0 ? '|部分出库' : '')
}
const loading = ref(false)
const saving = ref(false)