| | |
| | | <el-card class="basic-info-card" v-loading="loading"> |
| | | <div slot="header" class="clearfix"> |
| | | <span>案例基本信息</span> |
| | | |
| | | <el-button |
| | | v-if="showAttachment" |
| | | type="text" |
| | | style="float: right; margin-left: 12px" |
| | | @click="openStageAttachments" |
| | | > |
| | | <i class="el-icon-folder"></i> 查看各阶段附件 |
| | | </el-button> |
| | | |
| | | <el-button |
| | | v-if="showAttachment && hasAttachments" |
| | | style="float: right; padding: 3px 0" |
| | |
| | | </div> |
| | | |
| | | <el-descriptions v-if="basicData" :column="column" border> |
| | | <!-- 1. 案例编号 --> |
| | | <el-descriptions-item label="案例编号"> |
| | | {{ basicData.caseNo || "--" }} |
| | | <!-- 1. 住院号 --> |
| | | <el-descriptions-item label="住院号"> |
| | | {{ basicData.inpatientno || "--" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 2. 潜在捐献者姓名 --> |
| | |
| | | |
| | | <!-- 7. 所在医疗机构 --> |
| | | <el-descriptions-item label="所在医疗机构"> |
| | | {{ basicData.treatmenthospitalname || basicData.hospitalName || "--" }} |
| | | {{ basicData.currentMedicalInstitution || "--" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 8. 协调员 --> |
| | |
| | | <div v-else class="empty-state"> |
| | | <el-empty description="暂无案例信息" :image-size="100"></el-empty> |
| | | </div> |
| | | <!-- 各阶段附件弹框 --> |
| | | <case-stage-attachments-dialog |
| | | ref="stageDialog" |
| | | :case-id="caseId" |
| | | :selected-ids="selectedAttachmentIds" |
| | | @confirm="onAttachmentsConfirm" |
| | | /> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getDonatebaseinfo } from "@/api/project/donatebaseinfo"; |
| | | import { getDonatebaseinfo, getfileList } from "@/api/project/donatebaseinfo"; |
| | | import CaseStageAttachmentsDialog from "@/components/CaseStageAttachmentsDialog"; |
| | | |
| | | export default { |
| | | name: "CaseBasicInfoSimple", |
| | | components: { CaseStageAttachmentsDialog }, |
| | | |
| | | props: { |
| | | // 案例ID |
| | | caseId: { |
| | |
| | | basicData: null, |
| | | // 字典选项 |
| | | sexOptions: [], |
| | | bloodTypeOptions: [] |
| | | bloodTypeOptions: [], |
| | | selectedAttachmentIds: ["123", "456"], |
| | | finalAttachments: [] |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | console.warn("加载字典失败:", error); |
| | | } |
| | | }, |
| | | // 打开各阶段附件弹框 |
| | | openStageAttachments() { |
| | | this.$refs.stageDialog.open(); |
| | | }, |
| | | |
| | | onAttachmentsConfirm(list) { |
| | | this.finalAttachments = list; |
| | | console.log("选中的阶段附件:", list); |
| | | // 可直接提交给接口 |
| | | }, |
| | | // 加载基本信息 |
| | | async loadBasicInfo() { |
| | | if (!this.caseId) return; |
| | |
| | | |
| | | if (response.code === 200) { |
| | | this.basicData = this.mapApiData(response.data); |
| | | console.log(this.basicData ); |
| | | console.log(this.basicData); |
| | | |
| | | this.loading = false; |
| | | } else { |
| | |
| | | sex: apiData.sex, |
| | | age: apiData.age, |
| | | ageunit: apiData.ageunit, |
| | | inpatientno: apiData.inpatientno, |
| | | currentMedicalInstitution: apiData.currentMedicalInstitution, |
| | | workflow: apiData.workflow, |
| | | bloodType: apiData.bloodType || apiData.bloodtype, |
| | | idcardno: apiData.idcardno || apiData.idCardNo, |