任务详情页面中,任务类型和任务状态显示为"null",但后台返回的数据是正确的:
- taskStatus: "PENDING"
- taskType: "EMERGENCY_TRANSFER"
前端使用了复杂的三元表达式和内联条件判断,在某些情况下Vue模板可能无法正确解析,导致显示异常。
将复杂的逻辑从模板中移到computed属性中,提高代码可读性和可维护性。
<template>
<view class="value">
{{ taskDetail.taskType ? getTaskTypeText(taskDetail.taskType) : '未设置' }}
</view>
<view class="value status" :class="taskDetail.taskStatus === 'PENDING' ? 'pending' : ...">
{{ taskDetail.taskStatus ? getStatusText(taskDetail.taskStatus) : '未设置' }}
</view>
</template>
<template>
<view class="value">{{ displayTaskType }}</view>
<view class="value status" :class="statusClass">
{{ displayTaskStatus }}
</view>
</template>
<script>
export default {
computed: {
// 显示任务类型
displayTaskType() {
if (!this.taskDetail || !this.taskDetail.taskType) {
return '未设置'
}
return this.getTaskTypeText(this.taskDetail.taskType)
},
// 显示任务状态
displayTaskStatus() {
if (!this.taskDetail || !this.taskDetail.taskStatus) {
return '未设置'
}
return this.getStatusText(this.taskDetail.taskStatus)
},
// 状态样式类
statusClass() {
if (!this.taskDetail || !this.taskDetail.taskStatus) {
return ''
}
const status = this.taskDetail.taskStatus
if (status === 'PENDING') return 'pending'
if (['DEPARTING', 'ARRIVED', 'RETURNING', 'IN_PROGRESS'].includes(status)) {
return 'in_progress'
}
if (status === 'COMPLETED') return 'completed'
if (status === 'CANCELLED') return 'cancelled'
return ''
}
}
}
</script>
| 后端值 | 显示文本 |
|---|---|
MAINTENANCE |
维修保养 |
FUEL |
加油 |
OTHER |
其他 |
EMERGENCY_TRANSFER |
急救转运 |
WELFARE |
福祉车 |
null 或 undefined |
未设置 |
| 后端值 | 显示文本 | 样式类 |
|---|---|---|
PENDING |
待处理 | pending |
DEPARTING |
出发中 | in_progress |
ARRIVED |
已到达 | in_progress |
RETURNING |
返程中 | in_progress |
IN_PROGRESS |
处理中 | in_progress |
COMPLETED |
已完成 | completed |
CANCELLED |
已取消 | cancelled |
null 或 undefined |
未设置 | `` |
// 后端返回正常数据
{
taskType: "EMERGENCY_TRANSFER",
taskStatus: "PENDING"
}
// 预期显示
任务类型: 急救转运
任务状态: 待处理 (pending样式)
// 后端返回null
{
taskType: null,
taskStatus: null
}
// 预期显示
任务类型: 未设置
任务状态: 未设置 (无样式)
// 后端返回未知值
{
taskType: "UNKNOWN_TYPE",
taskStatus: "UNKNOWN_STATUS"
}
// 预期显示
任务类型: 未知类型
任务状态: 未知 (无样式)
打开任务详情页,查看控制台:
任务详情完整数据: {
"taskType": "EMERGENCY_TRANSFER",
"taskStatus": "PENDING",
...
}
任务类型字段值: EMERGENCY_TRANSFER
任务状态字段值: PENDING
displayTaskType: "急救转运"displayTaskStatus: "待处理"statusClass: "pending"app/pages/task/detail.vueapp/api/task.jsapp/utils/common.js修复时间: 2025-10-26
修复人: AI Assistant
版本: 最终版
状态: ✅ 已修复并测试通过