fix: limit dispatch vehicle choices
This commit is contained in:
@@ -12,14 +12,9 @@ import OperationErrorToast from '@/shared/components/OperationErrorToast.vue'
|
||||
import { createDispatchDraftContainer, deleteDispatchDraftContainer, listDispatchCandidates, listDispatchDrafts, lockDispatchDraftPallet, preArrangeDispatch, unlockDispatchDraftPallet, type DispatchPalletCandidateDto } from '../api/dispatches'
|
||||
import { formatOverseasDateTime } from '../lastMilePresentation'
|
||||
import type { InboundOrderListItem } from '../types'
|
||||
import { dispatchVehicleSpecs } from '../dispatchVehicleSpecs'
|
||||
import OrderReferenceText from './OrderReferenceText.vue'
|
||||
|
||||
type VehicleSpec = {
|
||||
value: string
|
||||
label: string
|
||||
capacity: number
|
||||
maxWeightLb: number
|
||||
}
|
||||
interface LoadingContainer {
|
||||
id: string
|
||||
capacity: number
|
||||
@@ -92,33 +87,7 @@ const assignedIds = computed(() => containers.value.flatMap((item) => item.palle
|
||||
const assigned = computed(() => assignedIds.value.map((id) => palletSnapshot(id)).filter((item): item is DispatchPalletCandidateDto => Boolean(item)))
|
||||
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 vehicleSpecs: VehicleSpec[] = [
|
||||
{
|
||||
value: 'LARGE_30',
|
||||
label: '大车(30托)',
|
||||
capacity: 30,
|
||||
maxWeightLb: 40000,
|
||||
},
|
||||
{
|
||||
value: 'SMALL_15',
|
||||
label: '小车(15托)',
|
||||
capacity: 15,
|
||||
maxWeightLb: 10000,
|
||||
},
|
||||
{
|
||||
value: 'SMALL_14',
|
||||
label: '小车(14托)',
|
||||
capacity: 14,
|
||||
maxWeightLb: 10000,
|
||||
},
|
||||
{
|
||||
value: 'SMALL_12',
|
||||
label: '小车(12托)',
|
||||
capacity: 12,
|
||||
maxWeightLb: 10000,
|
||||
},
|
||||
]
|
||||
const selectedVehicleSpec = computed(() => vehicleSpecs.find((item) => item.value === selectedVehicle.value))
|
||||
const selectedVehicleSpec = computed(() => dispatchVehicleSpecs.find((item) => item.value === selectedVehicle.value))
|
||||
const weightLb = (item?: DispatchPalletCandidateDto) => Number(item?.volumeWeightKg || 0) * 2.2046226218
|
||||
const containerWeightLb = (container: LoadingContainer) => container.palletIds.reduce((sum, id) => sum + weightLb(palletSnapshot(id)), 0)
|
||||
|
||||
@@ -368,7 +337,7 @@ watch(
|
||||
if (draft?.draftToken) {
|
||||
draftToken.value = draft.draftToken
|
||||
containers.value = (draft.containers || []).map((c) => {
|
||||
const spec = vehicleSpecs.find((item) => item.capacity === c.capacity) || vehicleSpecs[0]!
|
||||
const spec = dispatchVehicleSpecs.find((item) => item.capacity === c.capacity) || dispatchVehicleSpecs[0]!
|
||||
return {
|
||||
id: c.id,
|
||||
capacity: c.capacity,
|
||||
@@ -564,7 +533,7 @@ watch([warehouseTab, () => query.orderType], () => {
|
||||
</AppDialog>
|
||||
<el-dialog class="admin-density-dialog" v-model="vehicleDialogOpen" title="选择车型" width="360px" append-to-body>
|
||||
<el-radio-group v-model="selectedVehicle" class="vehicle-options">
|
||||
<el-radio v-for="spec in vehicleSpecs" :key="spec.value" :value="spec.value">{{ spec.label }} · 限重 {{ spec.maxWeightLb }}LB</el-radio>
|
||||
<el-radio v-for="spec in dispatchVehicleSpecs" :key="spec.value" :value="spec.value">{{ spec.label }} · 限重 {{ spec.maxWeightLb }}LB</el-radio>
|
||||
</el-radio-group>
|
||||
<template #footer><el-button @click="vehicleDialogOpen = false">取消</el-button><el-button type="primary" @click="confirmAddContainer">确定</el-button></template>
|
||||
</el-dialog>
|
||||
|
||||
Reference in New Issue
Block a user