diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 44b0f07..d2d8a42 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -292,7 +292,7 @@ :title="canGrabTask(task).canGrab ? '点击抢单' : canGrabTask(task).reason" @click.stop="handleGrab(task)" > - {{ canGrabTask(task).canGrab ? '抢单' : '不可接单' }} + {{ canGrabTask(task).canGrab ? '抢单' : (task.unlockStatus === 'queuing' ? `排队中(第${task.queuePosition || 0}位)` : '不可接单') }} @@ -3221,8 +3221,13 @@ const getProcessStage = (task: TaskOrSubTask): string => { return '开始设计中' } - // 4. 任务被接单前:任务正在被抢单中 + // 4. 任务被接单前:根据排队状态显示 if (task.status === 'pending' && !task.receiverId) { + // 检查排队状态 + if (task.unlockStatus === 'queuing') { + const position = task.queuePosition + return position ? `排队中(第${position}位)` : '排队中' + } return '任务正在被抢单中' } @@ -5859,6 +5864,12 @@ const canGrabTask = (task: TaskOrSubTask) => { } } + // 检查5:验证任务是否在排队中(排队中的任务不能抢单) + if (task.canGrab === false && task.unlockStatus === 'queuing') { + const position = task.queuePosition || 0 + return { canGrab: false, reason: `任务排队中,当前位置:第${position}位` } + } + return { canGrab: true, reason: '' } }