feat: 已完成任务卡片添加子任务进度节点和任务明细显示,与进行中任务保持一致
This commit is contained in:
parent
37a35e8cb5
commit
23e413984c
@ -1352,7 +1352,7 @@
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">获得积分</span>
|
||||
<span class="value text-brand">{{ formatScore(task.score) }} 分</span>
|
||||
<span class="value text-brand">{{ formatScore(task.totalScore || task.score) }} 分</span>
|
||||
</div>
|
||||
<div class="info-item">
|
||||
<span class="label">数量</span>
|
||||
@ -1368,6 +1368,43 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 子任务进度时间线(流水线任务)- 横向拉满 -->
|
||||
<div v-if="task.isPipeline === 1 && task.subTaskTotal" class="subtask-timeline-wrapper full-width">
|
||||
<div class="subtask-timeline">
|
||||
<div
|
||||
v-for="(subTask, index) in (task.subTasks || []).slice(0, 5)"
|
||||
:key="subTask.id || index"
|
||||
class="timeline-node"
|
||||
:class="getSubTaskStatusClass(subTask.status)"
|
||||
>
|
||||
<div class="node-dot"></div>
|
||||
<div class="node-label">{{ getSubTaskLabel(subTask, index) }}</div>
|
||||
<div class="node-status">{{ getSubTaskStatusText(subTask.status) }}</div>
|
||||
</div>
|
||||
<!-- 显示更多子任务提示 -->
|
||||
<div v-if="(task.subTasks || []).length > 5" class="timeline-node more">
|
||||
<div class="node-dot"></div>
|
||||
<div class="node-label">+{{ (task.subTasks || []).length - 5 }}</div>
|
||||
</div>
|
||||
<!-- 完结节点 -->
|
||||
<div class="timeline-node final" :class="{ completed: task.status === 'completed' }">
|
||||
<div class="node-dot"></div>
|
||||
<div class="node-label">完结</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 任务类型明细 -->
|
||||
<div v-if="parseTypeDetails(task.typeDetails).length > 0" class="type-details-section">
|
||||
<div class="type-details-title">任务明细:</div>
|
||||
<div class="type-details-list">
|
||||
<div v-for="(detail, idx) in parseTypeDetails(task.typeDetails)" :key="idx" class="type-detail-item">
|
||||
<span class="type-name">└ {{ detail.typeName }}</span>
|
||||
<span class="type-score">x{{ detail.quantity }} = {{ formatScore(detail.totalScore) }}分</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 任务详情 -->
|
||||
<div class="task-details">
|
||||
<div class="detail-item">
|
||||
@ -1380,7 +1417,30 @@
|
||||
<span class="icon">
|
||||
<Icon name="user" size="sm" color="#31f08b" />
|
||||
</span>
|
||||
<span>完成人: {{ task.receiverName || '--' }}</span>
|
||||
<span>
|
||||
完成人: {{ task.receiverName || '--' }}
|
||||
<span
|
||||
v-if="task.isPipeline === 1 && task.subTasks && task.subTasks.length > 0 && task.id"
|
||||
class="expand-subtasks"
|
||||
@click.stop="toggleTaskSubtasks(task.id!)"
|
||||
>
|
||||
<Icon :name="expandedTaskSubtasks[task.id!] ? 'arrowUp' : 'arrowDown'" size="xs" style="margin-left: 4px; cursor: pointer;" />
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
<!-- 流水线任务子任务详细信息(可展开) -->
|
||||
<div v-if="task.isPipeline === 1 && task.subTasks && task.subTasks.length > 0 && task.id && expandedTaskSubtasks[task.id]"
|
||||
class="subtasks-detail">
|
||||
<div v-for="(subTask, index) in task.subTasks" :key="subTask.id || index" class="subtask-item">
|
||||
<span class="subtask-label">{{ getSubTaskLabel(subTask, index) }}:</span>
|
||||
<span class="subtask-receiver">{{ subTask.receiverName || '待接单' }}</span>
|
||||
<span v-if="getSubTaskDeadline(subTask)" class="subtask-deadline">
|
||||
完成截止日期: {{ getSubTaskDeadline(subTask) }}
|
||||
</span>
|
||||
<span :class="['subtask-status', getSubTaskStatusClass(subTask.status)]">
|
||||
{{ getSubTaskStatusText(subTask.status) }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="task.brandName" class="detail-item">
|
||||
<span class="icon">
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user