fix: 完善任务排队状态显示和抢单按钮

- 修改getStatusText函数显示排队中状态
- 修改canGrabTask函数检查canGrab和unlockStatus
- 抢单按钮显示排队位置信息
This commit is contained in:
Your Name 2026-01-29 11:32:36 +08:00
parent 7dc5df6f80
commit 4d4b1e2189

View File

@ -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}位)` : '不可接单') }}
</button>
</div>
@ -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: '' }
}