将首页(index.vue)的任务列表样式调整为与任务功能页面(task/index.vue)一致,提升用户体验的一致性。
之前:
- 标题独立一行
- 没有状态标签
现在:
- 标题和状态标签并排显示
- 状态标签带有颜色标识,更直观
<!-- 任务头部:标题和状态标签 -->
<view class="task-header">
<view class="task-title">{{ getTaskTypeText(task.type) }} - {{ task.vehicle }}</view>
<view class="task-status" :class="getStatusClass(task.taskStatus)">
{{ getStatusText(task.status) }}
</view>
</view>
之前:
- 任务编号与其他信息混在一起
现在:
- 任务编号单独一行
- 使用虚线边框分隔
- 使用等宽字体(monospace)提升可读性
<!-- 任务编号单独一行 -->
<view class="task-code-row">
<text class="task-code">{{ task.taskNo }}</text>
</view>
添加了完整的状态颜色系统,与任务页面保持一致:
| 状态 | 颜色 | 背景色 |
|---|---|---|
| 待处理 (PENDING) | 橙色 #ff9500 | #fff3e0 |
| 出发中 (DEPARTING) | 蓝色 #007AFF | #e3f2fd |
| 已到达 (ARRIVED) | 紫色 #9c27b0 | #f3e5f5 |
| 返程中 (RETURNING) | 青色 #009688 | #e0f2f1 |
| 已完成 (COMPLETED) | 绿色 #34C759 | #e8f5e9 |
| 已取消 (CANCELLED) | 灰色 #999 | #f5f5f5 |
| 处理中 (IN_PROGRESS) | 蓝色 #007AFF | #e3f2fd |
调整内容:
- 移除了任务状态信息行(已在头部显示)
- 优化了出发地和目的地的显示位置
- 保持出发时间和执行人员的显示
布局结构: ┌─────────────────────────────────────┐ │ 急救转运 - 粤A12345 [待处理] │ ├─────────────────────────────────────┤ │ TD1021 │ ← 任务编号 ├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤ │ 出发地: 广州天河 目的地: 广州东站 │ │ 出发时间: 13:20 执行人员: 张三 │ └─────────────────────────────────────┘ │ [出发] [取消] │ └─────────────────────────────────────┘
<!-- 之前 -->
<view class="task-main">
<view class="task-title">{{ getTaskTypeText(task.type) }} - {{ task.vehicle }}</view>
<view class="task-info">
<view class="info-row">
<view class="info-item">
<view class="label">任务编号:</view>
<view class="value">{{ task.taskNo }}</view>
</view>
<view class="info-item">
<view class="label">任务状态:</view>
<view class="value">{{ getStatusText(task.status) }}</view>
</view>
</view>
<!-- 其他信息 -->
</view>
</view>
<!-- 现在 -->
<view class="task-main">
<!-- 任务头部:标题和状态标签 -->
<view class="task-header">
<view class="task-title">{{ getTaskTypeText(task.type) }} - {{ task.vehicle }}</view>
<view class="task-status" :class="getStatusClass(task.taskStatus)">
{{ getStatusText(task.status) }}
</view>
</view>
<!-- 任务编号单独一行 -->
<view class="task-code-row">
<text class="task-code">{{ task.taskNo }}</text>
</view>
<!-- 任务详细信息 -->
<view class="task-info">
<!-- 只保留出发地、目的地、时间、人员 -->
</view>
</view>
添加了 getStatusClass() 方法:
getStatusClass(status) {
const statusClassMap = {
'PENDING': 'status-pending',
'DEPARTING': 'status-departing',
'ARRIVED': 'status-arrived',
'RETURNING': 'status-returning',
'COMPLETED': 'status-completed',
'CANCELLED': 'status-cancelled',
'IN_PROGRESS': 'status-in-progress'
}
return statusClassMap[status] || 'status-default'
}
新增样式类:
.task-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 15rpx;
.task-title {
flex: 1;
font-size: 32rpx;
font-weight: bold;
padding-right: 20rpx;
line-height: 1.4;
}
.task-status {
padding: 8rpx 20rpx;
border-radius: 30rpx;
font-size: 24rpx;
white-space: nowrap;
flex-shrink: 0;
&.status-pending { /* 橙色 */ }
&.status-departing { /* 蓝色 */ }
&.status-arrived { /* 紫色 */ }
&.status-returning { /* 青色 */ }
&.status-completed { /* 绿色 */ }
&.status-cancelled { /* 灰色 */ }
}
}
.task-code-row {
margin-bottom: 15rpx;
padding: 10rpx 0;
border-bottom: 1rpx dashed #e0e0e0;
.task-code {
font-size: 28rpx;
color: #333;
font-weight: 500;
font-family: monospace;
}
}
┌─────────────────────────────────────┐
│ 急救转运 - 粤A12345 │
│ │
│ 任务编号: TD1021 任务状态: 待处理│
│ 出发地: 广州天河 目的地: 广州东站 │
│ 出发时间: 13:20 执行人员: 张三 │
└─────────────────────────────────────┘
┌─────────────────────────────────────┐
│ 急救转运 - 粤A12345 [待处理] │ ← 状态标签带颜色
├─────────────────────────────────────┤
│ TD1021 │ ← 编号突出显示
├ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ┤
│ 出发地: 广州天河 目的地: 广州东站 │
│ 出发时间: 13:20 执行人员: 张三 │
└─────────────────────────────────────┘
| 特性 | 首页 | 任务页面 | 状态 |
|---|---|---|---|
| 任务头部布局 | ✅ | ✅ | 一致 |
| 状态标签颜色 | ✅ | ✅ | 一致 |
| 任务编号样式 | ✅ | ✅ | 一致 |
| 信息行布局 | ✅ | ✅ | 一致 |
| 操作按钮样式 | ✅ | ✅ | 一致 |