修改
This commit is contained in:
@@ -74,8 +74,9 @@ const queryFields = computed<QueryField[]>(() => [
|
||||
{ key: 'containerKeyword', type: 'input', label: '柜次', placeholder: '柜次号、集装箱号、目的仓', width: 230 },
|
||||
{ key: 'warehouseId', type: 'select', label: '装柜仓库', options: warehouseOptions.value, width: 190 },
|
||||
{ key: 'status', type: 'select', label: '柜次状态', width: 160, options: [
|
||||
{ label: '可编辑', value: 'EDITING' },
|
||||
{ label: '装柜中', value: 'LOADING' },
|
||||
{ label: '待装柜', value: 'WAIT_LOADING' },
|
||||
{ label: '预装柜中', value: 'EDITING' },
|
||||
{ label: '拣货中', value: 'LOADING' },
|
||||
] },
|
||||
])
|
||||
|
||||
@@ -102,7 +103,8 @@ const filteredCandidates = computed(() => {
|
||||
function preferredContainerId() {
|
||||
const visible = filteredContainers.value
|
||||
if (String(appliedQuery.value.status || '').trim()) return visible[0]?.id || ''
|
||||
return visible.find((item) => item.planStatus === 'EDITING')?.id || visible[0]?.id || ''
|
||||
return visible.find((item) => item.planStatus === 'EDITING')?.id
|
||||
|| visible.find((item) => item.planStatus === 'WAIT_LOADING')?.id || visible[0]?.id || ''
|
||||
}
|
||||
|
||||
const candidateColumns: DataTableColumn[] = [
|
||||
@@ -131,10 +133,10 @@ function formatNumber(value: number, digits = 3) {
|
||||
function candidateRow(source: object) { return source as SmartLoadingCandidate }
|
||||
function itemRow(source: object) { return source as SmartLoadingItem }
|
||||
function statusLabel(status: ContainerPlanStatus) {
|
||||
return ({ EDITING: '可编辑', LOADING: '装柜中', COMPLETED: '已完成' } as const)[status]
|
||||
return ({ WAIT_LOADING: '待装柜', EDITING: '预装柜中', LOADING: '拣货中', COMPLETED: '装柜完成' } as const)[status]
|
||||
}
|
||||
function statusType(status: ContainerPlanStatus) {
|
||||
return status === 'EDITING' ? 'primary' : status === 'LOADING' ? 'warning' : 'success'
|
||||
return status === 'WAIT_LOADING' ? 'info' : status === 'EDITING' ? 'primary' : status === 'LOADING' ? 'warning' : 'success'
|
||||
}
|
||||
function routeMatches(source: object) {
|
||||
const candidate = candidateRow(source)
|
||||
@@ -274,7 +276,7 @@ async function remove(source: object) {
|
||||
await mutate(async () => {
|
||||
acceptPlan(await removeSmartLoadingItem(plan.value!.id, item.id, plan.value!.version, item.version))
|
||||
ElMessage.success('装柜明细已移除')
|
||||
}, '移除装柜明细失败')
|
||||
}, '移除装柜明细失败', { pickingConflict: true })
|
||||
}
|
||||
async function pushPreload() {
|
||||
if (!plan.value) return
|
||||
@@ -291,7 +293,7 @@ async function pushPreload() {
|
||||
async function mutate(
|
||||
action: () => Promise<void>,
|
||||
fallback: string,
|
||||
recovery: { preserveDrafts?: Record<string, number>; preserveAssign?: boolean } = {},
|
||||
recovery: { preserveDrafts?: Record<string, number>; preserveAssign?: boolean; pickingConflict?: boolean } = {},
|
||||
) {
|
||||
mutating.value = true
|
||||
mutationError.value = null
|
||||
@@ -301,9 +303,13 @@ async function mutate(
|
||||
const details = getApiErrorDetails(error, fallback)
|
||||
if (details.code === 'A0409') {
|
||||
await loadSelectedData(recovery.preserveDrafts)
|
||||
mutationError.value = { ...details, message: '方案已被其他人修改,已刷新最新版本并保留本次输入,请重新确认后提交' }
|
||||
const pickingMessage = recovery.pickingConflict && details.message.includes('拣货')
|
||||
? '该订单在拣货中不许删除'
|
||||
: null
|
||||
mutationError.value = { ...details, message: pickingMessage || '方案已被其他人修改,已刷新最新版本并保留本次输入,请重新确认后提交' }
|
||||
if (recovery.preserveAssign) assignOpen.value = true
|
||||
ElMessage.warning(mutationError.value.message)
|
||||
if (pickingMessage) ElMessage.error(pickingMessage)
|
||||
else ElMessage.warning(mutationError.value.message)
|
||||
} else {
|
||||
mutationError.value = details
|
||||
ElMessage.error(details.message)
|
||||
@@ -374,7 +380,7 @@ onMounted(load)
|
||||
</section>
|
||||
|
||||
<aside class="dispatch-pane container-pane" aria-label="货柜列表">
|
||||
<header class="pane-header"><div><strong>货柜</strong><small>可用与装柜中</small></div></header>
|
||||
<header class="pane-header"><div><strong>货柜</strong><small>待装柜、预装柜中与拣货中</small></div></header>
|
||||
<div v-loading="loading" class="container-list">
|
||||
<el-empty v-if="!filteredContainers.length" description="暂无符合条件的货柜" :image-size="72" />
|
||||
<button
|
||||
|
||||
Reference in New Issue
Block a user