diff --git a/pages/tasks/tasks.vue b/pages/tasks/tasks.vue index 6519de8..a17dec1 100644 --- a/pages/tasks/tasks.vue +++ b/pages/tasks/tasks.vue @@ -54,6 +54,7 @@ return status === 'IN_PROGRESS' ? '拣货中' : '待领取' }, taskActionLabel(task) { + if (!task.currentContainerNo) return '待平台补录集装箱号' if (!this.isTaskReady(task)) return '任务暂不可进入' if (task.workflowStatus === 'COMPLETION_FAILED') return '重试完成' return task.workflowStatus === 'AWAITING_REVIEW' ? '继续装柜取证' : '进入并开始拣货' @@ -80,6 +81,7 @@ } finally { this.loading = false } }, enterTask(task) { + if (!task.currentContainerNo) { this.showToast('请先在平台预装详情补录真实集装箱号', 'error'); return } if (!this.isTaskReady(task)) { this.showToast('任务尚未满足后端进入条件', 'error'); return } uni.navigateTo({ url: `/pages/picking/picking?taskId=${encodeURIComponent(task.taskId)}&warehouseId=${encodeURIComponent(task.warehouseId)}` }) }, diff --git a/tests/page-contract.test.mjs b/tests/page-contract.test.mjs index 9313843..f525ef9 100644 --- a/tests/page-contract.test.mjs +++ b/tests/page-contract.test.mjs @@ -61,6 +61,8 @@ test('picking task list uses remote loading orders and never falls back to demo assert.match(tasks, /listLoadingOrders/) assert.match(tasks, /当前网络不可用,请联网后刷新/) assert.match(tasks, /进入并开始拣货/) + assert.match(tasks, /待平台补录集装箱号/) + assert.match(tasks, /请先在平台预装详情补录真实集装箱号/) assert.match(tasks, /AWAITING_REVIEW[\s\S]*?待上传证据\/确认装柜/) assert.match(tasks, /task\.workflowStatus === 'AWAITING_REVIEW' \? '继续装柜取证'/) assert.match(tasks, /\['UNASSIGNED', 'IN_PROGRESS', 'AWAITING_REVIEW', 'COMPLETION_FAILED'\]\.includes\(task\.workflowStatus\)/)