| | |
| | | <view class="section-title">基本信息</view> |
| | | <view class="info-item"> |
| | | <view class="label">任务编号</view> |
| | | <view class="value">{{ taskDetail.showTaskCode }}</view> |
| | | <view class="value"> |
| | | {{ taskDetail.showTaskCode }} |
| | | <text v-if="taskDetail.emergencyInfo && taskDetail.emergencyInfo.serviceOrdVip === '1'" class="vip-tag">VIP</text> |
| | | <text v-if="taskDetail.emergencyInfo && taskDetail.emergencyInfo.fromHq2Is === '1'" class="hq-tag">广总</text> |
| | | </view> |
| | | </view> |
| | | <view class="info-item"> |
| | | <view class="label">任务类型</view> |
| | |
| | | <view class="assignee-role"> |
| | | <view |
| | | class="role-tag" |
| | | :class="{ |
| | | 'role-driver': assignee.userType === 'driver', |
| | | 'role-doctor': assignee.userType === 'doctor', |
| | | 'role-nurse': assignee.userType === 'nurse' |
| | | }" |
| | | > |
| | | :class="{'role-driver': assignee.userType === 'driver','role-doctor': assignee.userType === 'doctor','role-nurse': assignee.userType === 'nurse'}"> |
| | | {{ getUserTypeLabel(assignee.userType) }} |
| | | </view> |
| | | <view |
| | | class="ready-badge" |
| | | :class="{ |
| | | 'ready': isAssigneeReady(assignee), |
| | | 'unready': !isAssigneeReady(assignee) |
| | | }" |
| | | > |
| | | :class="{'ready': isAssigneeReady(assignee),'unready': !isAssigneeReady(assignee)}"> |
| | | {{ isAssigneeReady(assignee) ? '已就绪' : '未就绪' }} |
| | | </view> |
| | | </view> |
| | |
| | | <view class="section-title">位置信息</view> |
| | | <!-- 转运任务:显示转出/转入医院地址 --> |
| | | <template v-if="taskDetail.taskType === 'EMERGENCY_TRANSFER' && taskDetail.emergencyInfo"> |
| | | <view class="info-item" v-if="taskDetail.emergencyInfo.hospitalOutAddress"> |
| | | <view class="info-item" v-if="taskDetail.emergencyInfo.hospitalOutName"> |
| | | <view class="label">转出医院</view> |
| | | <view class="value">{{ taskDetail.emergencyInfo.hospitalOutAddress }}</view> |
| | | <view class="value">{{ taskDetail.emergencyInfo.hospitalOutName }}</view> |
| | | </view> |
| | | <view class="info-item" v-if="taskDetail.emergencyInfo.hospitalInAddress"> |
| | | <view class="info-item" v-if="taskDetail.emergencyInfo.hospitalInName"> |
| | | <view class="label">转入医院</view> |
| | | <view class="value">{{ taskDetail.emergencyInfo.hospitalInAddress }}</view> |
| | | <view class="value">{{ taskDetail.emergencyInfo.hospitalInName }}</view> |
| | | </view> |
| | | </template> |
| | | <!-- 福祉车任务:显示接送/目的地址 --> |
| | |
| | | } |
| | | return ['COMPLETED', 'CANCELLED'].includes(this.taskDetail.taskStatus) |
| | | }, |
| | | // 显示任务类型 |
| | | |
| | | // 生成执行人员角色标签的类名 |
| | | getRoleTagClass() { |
| | | return (userType) => { |
| | | const baseClass = 'role-tag' |
| | | const roleClasses = { |
| | | 'driver': 'role-driver', |
| | | 'doctor': 'role-doctor', |
| | | 'nurse': 'role-nurse' |
| | | } |
| | | return [baseClass, roleClasses[userType] || ''] |
| | | } |
| | | }, // 显示任务类型 |
| | | displayTaskType() { |
| | | if (!this.taskDetail || !this.taskDetail.taskType) { |
| | | return '未设置' |
| | |
| | | |
| | | getTask(this.taskId).then(response => { |
| | | this.taskDetail = response.data || response |
| | | // 调试:打印返回的数据 |
| | | // console.log('任务详情完整数据:', JSON.stringify(this.taskDetail, null, 2)) |
| | | // console.log('任务类型字段值:', this.taskDetail.taskType) |
| | | // console.log('任务状态字段值:', this.taskDetail.taskStatus) |
| | | // console.log('出发地址:', this.taskDetail.departureAddress) |
| | | // console.log('目的地址:', this.taskDetail.destinationAddress) |
| | | // console.log('转运任务信息 (emergencyInfo):', this.taskDetail.emergencyInfo) |
| | | |
| | | |
| | | // 如果是转运任务,加载支付信息 |
| | | if (this.taskDetail.taskType === 'EMERGENCY_TRANSFER') { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .vip-tag { |
| | | display: inline-block; |
| | | padding: 2rpx 8rpx; |
| | | font-size: 20rpx; |
| | | color: #fff; |
| | | background-color: #ff0000; |
| | | border-radius: 4rpx; |
| | | margin-left: 10rpx; |
| | | vertical-align: middle; |
| | | } |
| | | |
| | | .hq-tag { |
| | | display: inline-block; |
| | | padding: 2rpx 8rpx; |
| | | font-size: 20rpx; |
| | | color: #fff; |
| | | background-color: #5856d6; |
| | | border-radius: 4rpx; |
| | | margin-left: 10rpx; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | </style> |