<template>
|
<base-stage :stage-data="stageData" :case-info="caseInfo">
|
<template #header>
|
<el-alert
|
:title="alertTitle"
|
:type="alertType"
|
:description="alertDescription"
|
show-icon
|
:closable="false"
|
/>
|
</template>
|
|
<el-row :gutter="20" style="margin-top: 20px;">
|
<el-col :span="8">
|
<el-card>
|
<div slot="header" class="card-header">
|
<span>评估概况</span>
|
</div>
|
<div class="assessment-stats">
|
<div class="stat-item">
|
<span class="stat-label">评估状态:</span>
|
<el-tag :type="getStatusTag(stageData.status)">
|
{{ getStatusText(stageData.status) }}
|
</el-tag>
|
</div>
|
<div class="stat-item">
|
<span class="stat-label">评估医生:</span>
|
<span>{{ stageData.operator || '待分配' }}</span>
|
</div>
|
<div class="stat-item">
|
<span class="stat-label">开始时间:</span>
|
<span>{{ formatTime(stageData.updateTime) }}</span>
|
</div>
|
<div class="stat-item">
|
<span class="stat-label">完成时间:</span>
|
<span>{{ formatTime(stageData.completeTime) || '-' }}</span>
|
</div>
|
</div>
|
</el-card>
|
</el-col>
|
|
<el-col :span="16">
|
<el-card>
|
<div slot="header" class="card-header">
|
<span>评估项目进度</span>
|
</div>
|
<div class="progress-list">
|
<div v-for="item in assessmentItems" :key="item.name" class="progress-item">
|
<div class="progress-info">
|
<span class="item-name">{{ item.name }}</span>
|
<span class="item-status">
|
<el-tag :type="item.status === 'completed' ? 'success' : 'warning'" size="small">
|
{{ item.status === 'completed' ? '已完成' : '待评估' }}
|
</el-tag>
|
</span>
|
</div>
|
<el-progress
|
:percentage="item.status === 'completed' ? 100 : 0"
|
:show-text="false"
|
:status="item.status === 'completed' ? 'success' : 'exception'"
|
/>
|
</div>
|
</div>
|
</el-card>
|
</el-col>
|
</el-row>
|
|
<el-card style="margin-top: 20px;">
|
<div slot="header" class="card-header">
|
<span>评估详情记录</span>
|
<el-button type="primary" size="small" @click="handleViewReport">
|
查看评估报告
|
</el-button>
|
</div>
|
<el-descriptions :column="2" border>
|
<el-descriptions-item label="生理指标评估">
|
{{ assessmentDetails.physiological || '待评估' }}
|
</el-descriptions-item>
|
<el-descriptions-item label="器官功能评估">
|
{{ assessmentDetails.organFunction || '待评估' }}
|
</el-descriptions-item>
|
<el-descriptions-item label="感染性疾病筛查">
|
{{ assessmentDetails.infectionScreening || '待筛查' }}
|
</el-descriptions-item>
|
<el-descriptions-item label="恶性肿瘤筛查">
|
{{ assessmentDetails.cancerScreening || '待筛查' }}
|
</el-descriptions-item>
|
<el-descriptions-item label="评估结论">
|
<el-tag :type="assessmentDetails.conclusion ? 'success' : 'warning'">
|
{{ assessmentDetails.conclusion || '评估中' }}
|
</el-tag>
|
</el-descriptions-item>
|
<el-descriptions-item label="评估医生意见">
|
{{ assessmentDetails.doctorOpinion || '待填写' }}
|
</el-descriptions-item>
|
</el-descriptions>
|
</el-card>
|
</base-stage>
|
</template>
|
|
<script>
|
import BaseStage from './BaseStage.vue';
|
|
export default {
|
name: 'MedicalAssessmentStage',
|
components: { BaseStage },
|
props: {
|
stageData: {
|
type: Object,
|
default: () => ({})
|
},
|
caseInfo: {
|
type: Object,
|
default: () => ({})
|
}
|
},
|
computed: {
|
alertTitle() {
|
const status = this.stageData.status;
|
return status === 'completed' ? '医学评估完成' :
|
status === 'in_progress' ? '医学评估进行中' : '待开始医学评估';
|
},
|
alertType() {
|
const status = this.stageData.status;
|
return status === 'completed' ? 'success' :
|
status === 'in_progress' ? 'warning' : 'info';
|
},
|
alertDescription() {
|
const status = this.stageData.status;
|
return status === 'completed' ? '所有医学评估项目已完成,供者符合捐献条件' :
|
status === 'in_progress' ? '医学评估正在进行中,请关注评估进度' : '等待开始医学评估流程';
|
}
|
},
|
data() {
|
return {
|
assessmentItems: [
|
{ name: '生理指标评估', status: 'completed' },
|
{ name: '器官功能评估', status: 'completed' },
|
{ name: '感染性疾病筛查', status: 'completed' },
|
{ name: '恶性肿瘤筛查', status: 'completed' },
|
{ name: '遗传性疾病筛查', status: 'completed' },
|
{ name: '心理状态评估', status: 'completed' }
|
],
|
assessmentDetails: {
|
physiological: '各项生理指标正常,符合捐献要求',
|
organFunction: '主要器官功能良好,无禁忌症',
|
infectionScreening: '传染病筛查均为阴性',
|
cancerScreening: '无恶性肿瘤迹象',
|
conclusion: '适合器官捐献',
|
doctorOpinion: '供者身体状况良好,符合捐献医学标准'
|
}
|
};
|
},
|
methods: {
|
getStatusText(status) {
|
const map = {
|
'completed': '已完成',
|
'in_progress': '进行中',
|
'pending': '未开始'
|
};
|
return map[status] || '未知';
|
},
|
handleViewReport() {
|
this.$message.info('查看医学评估报告功能');
|
}
|
}
|
};
|
</script>
|
|
<style scoped>
|
.assessment-stats {
|
padding: 10px 0;
|
}
|
|
.stat-item {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
margin-bottom: 15px;
|
padding: 8px 0;
|
border-bottom: 1px solid #f0f0f0;
|
}
|
|
.stat-label {
|
color: #606266;
|
font-weight: 500;
|
}
|
|
.progress-list {
|
padding: 10px 0;
|
}
|
|
.progress-item {
|
margin-bottom: 15px;
|
}
|
|
.progress-info {
|
display: flex;
|
justify-content: space-between;
|
align-items: center;
|
margin-bottom: 8px;
|
}
|
|
.item-name {
|
color: #606266;
|
font-size: 14px;
|
}
|
</style>
|