| | |
| | | <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" |
| | |
| | | |
| | | <el-descriptions v-if="basicData" :column="column" border> |
| | | <!-- 1. 住院号 --> |
| | | <el-descriptions-item label="住院号"> |
| | | {{ basicData.inpatientno || "--" }} |
| | | <el-descriptions-item label="捐献编号"> |
| | | {{ basicData.caseNo || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="住院号"> |
| | | {{ basicData.inpatientno || "无" }} |
| | | </el-descriptions-item> |
| | | <!-- 2. 潜在捐献者姓名 --> |
| | | <el-descriptions-item label="捐献者姓名"> |
| | | {{ basicData.name || basicData.donorName || "--" }} |
| | | {{ basicData.name || basicData.donorName || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 3. 性别/年龄 --> |
| | |
| | | |
| | | <!-- 4. 证件号码 --> |
| | | <el-descriptions-item label="证件号码"> |
| | | {{ basicData.idcardno || basicData.idCardNo || "--" }} |
| | | {{ basicData.idcardno || basicData.idCardNo || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 5. 血型 --> |
| | |
| | | </template> |
| | | <template v-else>--</template> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="传染病"> |
| | | <template v-if="basicData.infectious"> |
| | | <span v-for="item in basicData.infectious.split(',')" |
| | | ><dict-tag :options="dict.type.sys_Infectious" :value="item" /> |
| | | </span> |
| | | </template> |
| | | <template v-else>--</template> |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 6. 疾病诊断 --> |
| | | <el-descriptions-item label="疾病诊断"> |
| | | {{ basicData.diagnosisname || basicData.diagnosis || "--" }} |
| | | {{ basicData.diagnosisname || basicData.diagnosis || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 7. 所在医疗机构 --> |
| | | <el-descriptions-item label="所在医疗机构"> |
| | | {{ basicData.currentMedicalInstitution || "--" }} |
| | | {{ basicData.currentMedicalInstitution || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 8. 协调员 --> |
| | | <el-descriptions-item label="协调员"> |
| | | {{ basicData.coordinatorName || basicData.contactPerson || "--" }} |
| | | {{ basicData.coordinatorName || basicData.contactPerson || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 9. 上报时间 --> |
| | | <el-descriptions-item label="上报时间"> |
| | | {{ formatDateTime(basicData.reportTime) || "--" }} |
| | | {{ formatDateTime(basicData.reportTime) || "无" }} |
| | | </el-descriptions-item> |
| | | |
| | | <!-- 10. 案例状态 --> |
| | |
| | | <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: { |
| | |
| | | "sys_user_sex", |
| | | "sys_BloodType", |
| | | "sys_DonationCategory", |
| | | "sys_donornode" |
| | | "sys_donornode", |
| | | "sys_Infectious" |
| | | ], |
| | | data() { |
| | | return { |
| | |
| | | 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 { |
| | |
| | | age: apiData.age, |
| | | ageunit: apiData.ageunit, |
| | | inpatientno: apiData.inpatientno, |
| | | infectious: apiData.infectious, |
| | | currentMedicalInstitution: apiData.currentMedicalInstitution, |
| | | workflow: apiData.workflow, |
| | | bloodType: apiData.bloodType || apiData.bloodtype, |