优化
This commit is contained in:
@@ -11,6 +11,7 @@ export type PreloadConfirmationStatus = 'PENDING' | 'PARTIALLY_CONFIRMED' | 'CON
|
||||
export type PreloadBlockingReason =
|
||||
| 'LOADING_PLAN_NOT_EDITING'
|
||||
| 'PRELOAD_LINK_MISSING'
|
||||
| 'CONTAINER_NO_MISSING'
|
||||
| 'OCEAN_BOOKING_NOT_LINKED'
|
||||
| 'OCEAN_BOOKING_NOT_RELEASED'
|
||||
| 'PDA_TASK_ALREADY_CREATED'
|
||||
|
||||
@@ -104,6 +104,7 @@ const visibleHistories = computed(() => {
|
||||
const blockingReasonLabels: Record<string, string> = {
|
||||
LOADING_PLAN_NOT_EDITING: '装柜计划已不在可确认的编辑状态',
|
||||
PRELOAD_LINK_MISSING: '装柜明细尚未完整关联入库预装票据',
|
||||
CONTAINER_NO_MISSING: '尚未录入真实集装箱号,请先补录后再确认预装',
|
||||
OCEAN_BOOKING_NOT_LINKED: '尚未关联真实订舱',
|
||||
OCEAN_BOOKING_NOT_RELEASED: '关联订舱尚未放舱',
|
||||
PDA_TASK_ALREADY_CREATED: 'PDA 任务已创建,无需重复确认',
|
||||
|
||||
@@ -63,22 +63,21 @@ describe('PreloadPlanDetailView prototype contract', () => {
|
||||
expect(source).toContain(':confirm-loading="remarkSaving"')
|
||||
})
|
||||
|
||||
it('supports first entry and reasoned correction before PDA claim without blocking earlier flow', () => {
|
||||
it('requires first entry before confirmation and still repairs historical tasks that were created without it', () => {
|
||||
expect(source).toContain("{ required: true, message: '请输入集装箱号'")
|
||||
expect(source).toContain("summary?.status === 'EDITING'")
|
||||
expect(source).toContain("(!pdaStatus || pdaStatus === 'PENDING')")
|
||||
expect(source).toContain("['EDITING', 'LOADING'].includes(summary.status)")
|
||||
expect(source).toContain('if (!summary.containerNo) return true')
|
||||
expect(source).not.toContain('summary?.containerNo && summary.status')
|
||||
expect(source).toContain('PDA 已领取或作业已开始,真实集装箱号只读。')
|
||||
expect(source).toContain('该历史 PDA 任务缺少真实集装箱号;补录保存后即可进入任务。')
|
||||
expect(source).toContain('确认预装前必须补录真实集装箱号。')
|
||||
expect(source).toContain("isContainerCorrection.value ? '纠正集装箱号 / 航次' : '补录集装箱号 / 航次'")
|
||||
expect(source).toContain("isContainerCorrection.value && !String(value || '').trim() ? new Error('纠错时请输入操作原因')")
|
||||
expect(source).toContain("String(value || '').trim().toUpperCase()")
|
||||
expect(source).toContain('operationReason: editForm.operationReason.trim() || null')
|
||||
expect(detailSource).toContain('v-if="canEditTransport"')
|
||||
expect(detailSource).toContain("summary.containerNo || '待补录'")
|
||||
expect(source).toContain('由服务端按真实条件创建唯一 PDA 任务')
|
||||
expect(source).toContain('缺号不阻断此前流程')
|
||||
expect(source).toContain('PDA 确认装柜完成前由服务端执行最终门禁')
|
||||
expect(source).not.toContain('真实集装箱号未录入时不能确认')
|
||||
expect(detailSource).toContain("CONTAINER_NO_MISSING: '尚未录入真实集装箱号,请先补录后再确认预装'")
|
||||
})
|
||||
|
||||
it('uses a flat blocking note instead of repeated colored page alerts', () => {
|
||||
@@ -97,8 +96,7 @@ describe('PreloadPlanDetailView prototype contract', () => {
|
||||
expect(source).toContain('confirmSaving.value')
|
||||
expect(source).toContain('await loadDetail()')
|
||||
expect(source).toContain('本操作将确认整份预装计划')
|
||||
expect(source).toContain('全部入库预装票据')
|
||||
expect(source).toContain('当前页面不会伪造 PDA 成功')
|
||||
expect(source).toContain(':confirm-disabled="!detail?.summary.readiness.canConfirm"')
|
||||
expect(source).not.toContain('/inbounds/')
|
||||
})
|
||||
|
||||
|
||||
@@ -52,16 +52,18 @@ const canEdit = computed(() => access.can('platform:firstleg:preload:edit'))
|
||||
const canCorrectTransport = computed(() => {
|
||||
const summary = detail.value?.summary
|
||||
const pdaStatus = summary?.readiness.pdaTaskStatus
|
||||
return Boolean(canEdit.value && summary?.status === 'EDITING'
|
||||
&& (!pdaStatus || pdaStatus === 'PENDING'))
|
||||
if (!canEdit.value || !summary || !['EDITING', 'LOADING'].includes(summary.status)) return false
|
||||
if (!summary.containerNo) return true
|
||||
return !pdaStatus || pdaStatus === 'PENDING'
|
||||
})
|
||||
const isContainerCorrection = computed(() => Boolean(detail.value?.summary.containerNo))
|
||||
const transportCorrectionNote = computed(() => {
|
||||
const summary = detail.value?.summary
|
||||
if (!summary) return ''
|
||||
if (!summary.containerNo && summary.readiness.pdaTaskId) return '该历史 PDA 任务缺少真实集装箱号;补录保存后即可进入任务。'
|
||||
if (summary.readiness.pdaTaskStatus && summary.readiness.pdaTaskStatus !== 'PENDING') return 'PDA 已领取或作业已开始,真实集装箱号只读。'
|
||||
if (!canCorrectTransport.value) return '当前服务端阶段不允许纠正真实集装箱号。'
|
||||
if (!summary.containerNo) return '真实集装箱号待补录;可在预装详情首次录入,PDA 领取或作业开始后只读。'
|
||||
if (!summary.containerNo) return '确认预装前必须补录真实集装箱号。'
|
||||
return '真实集装箱号仅可在 PDA 领取前纠错,纠错保存时必须填写操作原因。'
|
||||
})
|
||||
const editDialogTitle = computed(() => isContainerCorrection.value ? '纠正集装箱号 / 航次' : '补录集装箱号 / 航次')
|
||||
|
||||
Reference in New Issue
Block a user