fix(admin): validate co-load routes by business code
This commit is contained in:
@@ -815,15 +815,28 @@ function handleOrderSelectionChange(rows: UnifiedOrderResource[]) {
|
||||
selectedApprovalOrders.value = rows.filter(canApprove)
|
||||
}
|
||||
|
||||
function coLoadSelectionMemberLabel(row: UnifiedOrderResource) {
|
||||
const inboundCode = row.inboundCode?.trim() || '待生成入仓码'
|
||||
const warehouseName = row.receivingWarehouseName?.trim() || '未配置仓库'
|
||||
const channelName = row.channelName?.trim() || '未配置渠道'
|
||||
return `${inboundCode}(仓库:${warehouseName};渠道:${channelName})`
|
||||
}
|
||||
|
||||
function coLoadSelectionMembersLabel(rows: UnifiedOrderResource[]) {
|
||||
return rows.map(coLoadSelectionMemberLabel).join('、')
|
||||
}
|
||||
|
||||
const coLoadSelectionProblem = computed(() => {
|
||||
if (selectedOrders.value.length < 2) return null
|
||||
if (selectedOrders.value.some((row) => row.coLoadGroup)) return '所选订单中已有同柜组,请先解除原同柜组'
|
||||
const warehouseIds = selectedOrders.value.map((row) => String(row.receivingWarehouseId || '').trim())
|
||||
if (warehouseIds.some((value) => !value)) return '所选订单缺少平台收货仓,请刷新后重试'
|
||||
if (new Set(warehouseIds).size > 1) return '所选订单的平台收货仓不同,不能设为同柜组'
|
||||
const channels = selectedOrders.value.map((row) => String(row.channelName || '').trim())
|
||||
if (channels.some((value) => !value)) return '所选订单缺少渠道,请刷新后重试'
|
||||
if (new Set(channels).size > 1) return '所选订单的渠道不同,不能设为同柜组'
|
||||
const missingWarehouseRows = selectedOrders.value.filter((row) => !String(row.receivingWarehouseId || '').trim())
|
||||
if (missingWarehouseRows.length) return `以下入仓码缺少平台收货仓:${coLoadSelectionMembersLabel(missingWarehouseRows)},请刷新后重试`
|
||||
const warehouseIds = selectedOrders.value.map((row) => String(row.receivingWarehouseId).trim())
|
||||
if (new Set(warehouseIds).size > 1) return `所选订单的平台收货仓不同:${coLoadSelectionMembersLabel(selectedOrders.value)},不能设为同柜组`
|
||||
const missingChannelRows = selectedOrders.value.filter((row) => !row.channelCode?.trim())
|
||||
if (missingChannelRows.length) return `以下入仓码缺少渠道:${coLoadSelectionMembersLabel(missingChannelRows)},请刷新后重试`
|
||||
const channelCodes = selectedOrders.value.map((row) => row.channelCode!.trim())
|
||||
if (new Set(channelCodes).size > 1) return `所选订单的渠道不同:${coLoadSelectionMembersLabel(selectedOrders.value)},不能设为同柜组`
|
||||
return null
|
||||
})
|
||||
const canCreateCoLoadGroup = computed(() => selectedOrders.value.length >= 2 && !coLoadSelectionProblem.value)
|
||||
|
||||
Reference in New Issue
Block a user