1
This commit is contained in:
@@ -14,6 +14,7 @@ import { formatOverseasDateTime } from '../lastMilePresentation'
|
||||
import type { InboundOrderListItem } from '../types'
|
||||
import { dispatchVehicleSpecs } from '../dispatchVehicleSpecs'
|
||||
import OrderReferenceText from './OrderReferenceText.vue'
|
||||
import { matchesSmartDispatchWarehouseTab, type SmartDispatchWarehouseTab } from '../smartDispatchWarehouseTab'
|
||||
|
||||
interface LoadingContainer {
|
||||
id: string
|
||||
@@ -50,7 +51,7 @@ const query = reactive({
|
||||
sourceStage: 'RECEIVED' as '' | 'PLAN' | 'RECEIVED' | 'RELABEL',
|
||||
fbaWarehouseCode: '',
|
||||
})
|
||||
const warehouseTab = ref<'ALL' | 'LAX' | 'NYC'>('ALL')
|
||||
const warehouseTab = ref<SmartDispatchWarehouseTab>('ALL')
|
||||
|
||||
const orderTypeOptions = [
|
||||
{ value: 'FIRST_LEG', label: '头程订单' },
|
||||
@@ -65,9 +66,7 @@ const visibleCandidates = computed(() =>
|
||||
candidates.value.filter((item) => {
|
||||
const typeMatches = !query.orderType || String(item.orderType || '') === query.orderType
|
||||
if (!typeMatches) return false
|
||||
if (warehouseTab.value === 'ALL') return true
|
||||
const warehouse = `${item.overseasWarehouseId || ''} ${item.overseasWarehouseName || ''}`.toLowerCase()
|
||||
return warehouseTab.value === 'LAX' ? /lax|洛杉矶|los angeles/.test(warehouse) : /nyc|jfk|纽约|new york/.test(warehouse)
|
||||
return matchesSmartDispatchWarehouseTab(item, warehouseTab.value)
|
||||
}),
|
||||
)
|
||||
const orderGroups = computed(() => {
|
||||
@@ -88,7 +87,14 @@ const assigned = computed(() => assignedIds.value.map((id) => palletSnapshot(id)
|
||||
const assignedPackages = computed(() => assigned.value.reduce((sum, item) => sum + Number(item.packageCount || 0), 0))
|
||||
const assignedVolume = computed(() => assigned.value.reduce((sum, item) => sum + Number(item.volumeCbm || 0), 0))
|
||||
const selectedVehicleSpec = computed(() => dispatchVehicleSpecs.find((item) => item.value === selectedVehicle.value))
|
||||
const weightLb = (item?: DispatchPalletCandidateDto) => Number(item?.volumeWeightKg || 0) * 2.2046226218
|
||||
function weightKg(item?: DispatchPalletCandidateDto) {
|
||||
const grossWeightKg = Number(item?.grossWeightKg)
|
||||
if (Number.isFinite(grossWeightKg) && grossWeightKg > 0) return grossWeightKg
|
||||
const volumeWeightKg = Number(item?.volumeWeightKg)
|
||||
return Number.isFinite(volumeWeightKg) && volumeWeightKg > 0 ? volumeWeightKg : 0
|
||||
}
|
||||
const weightLb = (item?: DispatchPalletCandidateDto) => weightKg(item) * 2.2046226218
|
||||
const orderWeightLb = (pallets: DispatchPalletCandidateDto[]) => pallets.reduce((sum, item) => sum + weightLb(item), 0)
|
||||
const containerWeightLb = (container: LoadingContainer) => container.palletIds.reduce((sum, id) => sum + weightLb(palletSnapshot(id)), 0)
|
||||
|
||||
function palletId(item: DispatchPalletCandidateDto) {
|
||||
@@ -390,7 +396,7 @@ watch([warehouseTab, () => query.orderType], () => {
|
||||
:key="tab.value"
|
||||
type="button"
|
||||
:class="['warehouse-tab', { active: warehouseTab === tab.value }]"
|
||||
@click="warehouseTab = tab.value as 'ALL' | 'LAX' | 'NYC'"
|
||||
@click="warehouseTab = tab.value as SmartDispatchWarehouseTab"
|
||||
>
|
||||
{{ tab.label }}
|
||||
</button>
|
||||
@@ -428,7 +434,7 @@ watch([warehouseTab, () => query.orderType], () => {
|
||||
><template #default="{ row }">{{ orderType(row.first.orderType) }}</template></el-table-column
|
||||
>
|
||||
<el-table-column label="重量(lb)" width="100" align="right"
|
||||
><template #default="{ row }">{{ number(Number(row.first.volumeWeightKg || 0) * 2.2046226218, 0) }}LB</template></el-table-column
|
||||
><template #default="{ row }">{{ number(orderWeightLb(row.pallets), 0) }}LB</template></el-table-column
|
||||
>
|
||||
<el-table-column label="托盘数量" width="90" align="right"
|
||||
><template #default="{ row }">{{ row.pallets.length }}</template></el-table-column
|
||||
|
||||
Reference in New Issue
Block a user