| | |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="Rh阴性"> |
| | | {{ |
| | | caseData.rhYin === "1" ? "是" : caseData.rhYin === "0" ? "否" : "-" |
| | | caseData.rhYin == "1" ? "是" : caseData.rhYin == "0" ? "否" : "-" |
| | | }} |
| | | </el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="证件类型"> |
| | | {{ getIdCardTypeText(caseData.idcardtype) }} |
| | | <dict-tag |
| | | :options="dict.type.sys_IDType" |
| | | :value="caseData.idcardtype" |
| | | /> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="证件号码">{{ |
| | | caseData.idcardno || "-" |
| | |
| | | <el-descriptions-item label="籍贯">{{ |
| | | caseData.nativeplace || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="学历">{{ |
| | | caseData.education || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="职业">{{ |
| | | caseData.occupation || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="学历"> |
| | | <dict-tag |
| | | :options="dict.type.sys_education" |
| | | :value="String(caseData.education)" |
| | | /></el-descriptions-item> |
| | | <el-descriptions-item label="职业"> |
| | | <dict-tag |
| | | :options="dict.type.sys_occupation" |
| | | :value="caseData.occupation" |
| | | /></el-descriptions-item> |
| | | <el-descriptions-item label="出生日期">{{ |
| | | formatDate(caseData.birthday) |
| | | }}</el-descriptions-item> |
| | |
| | | </el-card> |
| | | |
| | | <!-- 地址信息模块 --> |
| | | <!-- <el-card class="detail-section"> |
| | | <el-card class="detail-section"> |
| | | <div slot="header" class="section-header"> |
| | | <span class="section-title">地址信息</span> |
| | | </div> |
| | |
| | | {{ getFullResidenceAddress() }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> --> |
| | | </el-card> |
| | | |
| | | <!-- 医疗信息模块 --> |
| | | <el-card class="detail-section"> |
| | |
| | | <el-descriptions-item label="GCS评分">{{ |
| | | caseData.gcsScore || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="传染病情况">{{ |
| | | caseData.infectious || "无" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="传染病情况" |
| | | >{{ |
| | | getLabelsFromString(caseData.infectious, dict.type.sys_Infectious) |
| | | }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item |
| | | label="传染病其他说明" |
| | | v-if="caseData.infectiousOther" |
| | | >{{ caseData.infectiousOther }}</el-descriptions-item |
| | | > |
| | | <el-descriptions-item label="是否需要转运"> |
| | | {{ caseData.isTransport === "2" ? "需要" : "不需要" }} |
| | | {{ |
| | | caseData.isTransport == "1" |
| | | ? "不需要" |
| | | : caseData.isTransport == "2" |
| | | ? "需要" |
| | | : "待定" |
| | | }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | |
| | | <span class="section-title">医院信息</span> |
| | | </div> |
| | | <el-descriptions :column="2" border> |
| | | <el-descriptions-item label="治疗医院名称">{{ |
| | | <el-descriptions-item label="ICU评估医生">{{ |
| | | caseData.icuDoctor || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="ICU医生电话">{{ |
| | | caseData.icuDoctorPhone || "-" |
| | | }}</el-descriptions-item |
| | | ><el-descriptions-item label="治疗医院名称">{{ |
| | | caseData.treatmenthospitalname || "-" |
| | | }}</el-descriptions-item> |
| | | <!-- <el-descriptions-item label="治疗科室名称">{{ |
| | |
| | | <!-- <el-descriptions-item label="部门编号">{{ |
| | | caseData.deptNo || "-" |
| | | }}</el-descriptions-item> --> |
| | | <el-descriptions-item label="上报医院">{{ |
| | | caseData.toHospital || "-" |
| | | }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | | |
| | |
| | | <span class="section-title">上报信息</span> |
| | | </div> |
| | | <el-descriptions :column="2" border> |
| | | <el-descriptions-item label="上报医院">{{ |
| | | caseData.toHospital || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="报告者姓名">{{ |
| | | caseData.infoName || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="报告者编号">{{ |
| | | caseData.infoNo || "-" |
| | | }}</el-descriptions-item> |
| | | |
| | | <el-descriptions-item label="报告者联系电话">{{ |
| | | caseData.reporterphone || "-" |
| | | caseData.phone || "-" |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="协调员姓名">{{ |
| | | caseData.coordinatorName || "-" |
| | |
| | | formatDateTime(caseData.createTime) |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="是否终止案例"> |
| | | {{ caseData.terminationCase === "1" ? "已终止" : "进行中" }} |
| | | {{ caseData.terminationCase == "1" ? "已终止" : "进行中" }} |
| | | </el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | |
| | | <!-- 审批信息模块(状态为已同意或已驳回时显示) --> |
| | | <el-card |
| | | class="detail-section" |
| | | v-if="caseData.reportStatus === '3' || caseData.reportStatus === '4'" |
| | | v-if="caseData.reportStatus == '3' || caseData.reportStatus == '4'" |
| | | > |
| | | <div slot="header" class="section-header"> |
| | | <span class="section-title">审批信息</span> |
| | | </div> |
| | | <el-descriptions :column="1" border> |
| | | <el-descriptions-item label="审批结果"> |
| | | <el-tag :type="caseData.reportStatus === '3' ? 'success' : 'danger'"> |
| | | {{ caseData.reportStatus === "3" ? "已同意" : "已驳回" }} |
| | | <el-tag :type="caseData.reportStatus == '3' ? 'success' : 'danger'"> |
| | | {{ caseData.reportStatus == "3" ? "已同意" : "已驳回" }} |
| | | </el-tag> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item |
| | | label="驳回原因" |
| | | v-if="caseData.reportStatus == 4" |
| | | > |
| | | <dict-tag |
| | | :options="dict.type.reject_type" |
| | | :value="caseData.rejectType" |
| | | /> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="审批人">{{ |
| | | caseData.updateBy || "-" |
| | |
| | | formatDateTime(caseData.updateTime) |
| | | }}</el-descriptions-item> |
| | | <el-descriptions-item label="审批意见">{{ |
| | | caseData.remark || "无" |
| | | caseData.confirmResult || "无" |
| | | }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </el-card> |
| | |
| | | <div slot="header" class="section-header"> |
| | | <span class="section-title">转运信息</span> |
| | | <el-button |
| | | v-if="caseData.reportStatus === '3'" |
| | | v-if="caseData.reportStatus == '3'" |
| | | type="primary" |
| | | size="small" |
| | | icon="el-icon-truck" |
| | |
| | | <!-- 无转运信息但需要转运的提示 --> |
| | | <el-card |
| | | class="detail-section" |
| | | v-else-if="caseData.isTransport === '2' && caseData.reportStatus === '3'" |
| | | v-else-if="caseData.isTransport == '2' && caseData.reportStatus == '3'" |
| | | > |
| | | <div slot="header" class="section-header"> |
| | | <span class="section-title">转运信息</span> |
| | |
| | | pdf, |
| | | FilePreviewDialog |
| | | }, |
| | | dicts: [ |
| | | "sys_user_sex", |
| | | "sys_BloodType", |
| | | "sys_Infectious", |
| | | "sys_IDType", |
| | | "sys_education", |
| | | "sys_occupation", |
| | | "reject_type" |
| | | ], |
| | | props: { |
| | | caseData: { |
| | | type: Object, |
| | |
| | | default: true |
| | | } |
| | | }, |
| | | dicts: ["sys_user_sex", "sys_BloodType"], |
| | | data() { |
| | | return { |
| | | // 预览相关 |
| | | previewVisible: false, |
| | | currentPreviewFile: null, |
| | | |
| | | // 动态计算的 baseUrlHt |
| | | baseUrlHt: "", |
| | | // 图片预览相关 |
| | | imagePreviewUrls: [] |
| | | imagePreviewUrls: [], |
| | | rejectOptions: [ |
| | | { label: "好转", value: "1" }, |
| | | { label: "死亡", value: "2" }, |
| | | { label: "不符合捐献标准", value: "3" }, |
| | | { label: "家属放弃捐献", value: "4" }, |
| | | { label: "其他", value: "5" } |
| | | ] |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | .filter(url => url); |
| | | } |
| | | }, |
| | | created() { |
| | | this.calculateBaseUrl(); |
| | | }, |
| | | methods: { |
| | | handleClose() { |
| | | this.$emit("close"); |
| | | }, |
| | | /** 计算 baseUrlHt */ |
| | | calculateBaseUrl() { |
| | | const currentUrl = window.location.href; |
| | | |
| | | try { |
| | | const urlObj = new URL(currentUrl); |
| | | const hostname = urlObj.hostname; |
| | | this.baseUrlHt = `http://${hostname}:9095`; |
| | | } catch (error) { |
| | | console.error("解析URL失败:", error); |
| | | const match = currentUrl.match(/https?:\/\/([^:\/]+)/); |
| | | if (match) { |
| | | this.baseUrlHt = `http://${match[1]}:9095`; |
| | | } else { |
| | | this.baseUrlHt = "http://localhost:9095"; |
| | | } |
| | | } |
| | | }, |
| | | // 格式化日期时间 |
| | | formatDateTime(dateTime) { |
| | | if (!dateTime) return "-"; |
| | |
| | | /** 创建转运单 */ |
| | | handleCreateTransport() { |
| | | this.$router.push({ |
| | | path: "/business/transport/create", |
| | | path: "/report/transfer", |
| | | query: { |
| | | autoCreate: "true", |
| | | caseId: this.caseData.id, |
| | | caseNo: this.caseData.caseNo, |
| | | patName: this.caseData.name, |
| | |
| | | }, |
| | | |
| | | getFileUrl(file) { |
| | | return file.path || file.fileUrl || ""; |
| | | if (!file) return ""; |
| | | const url = file.path || file.fileUrl || file.url || ""; |
| | | return this.processFileUrl(url); |
| | | }, |
| | | // URL处理函数 - 将完整URL替换为baseUrlHt |
| | | processFileUrl(url) { |
| | | if (!url) return ""; |
| | | |
| | | // 如果已经是完整的http或https链接 |
| | | if (url.startsWith("http://") || url.startsWith("https://")) { |
| | | // 找到第三个斜杠后的位置,提取路径部分 |
| | | const thirdSlashIndex = url.indexOf("/", 8); |
| | | if (thirdSlashIndex !== -1) { |
| | | return `${this.baseUrlHt}${url.substring(thirdSlashIndex)}`; |
| | | } |
| | | return this.baseUrlHt; |
| | | } |
| | | |
| | | // 相对路径处理 |
| | | if (url.startsWith("/")) { |
| | | return `${this.baseUrlHt}${url}`; |
| | | } |
| | | |
| | | return `${this.baseUrlHt}/${url}`; |
| | | }, |
| | | |
| | | getImagePreviewList(file) { |
| | |
| | | handlePreview(file) { |
| | | this.currentPreviewFile = { |
| | | fileName: file.fileName, |
| | | fileUrl: this.getFileUrl(file), |
| | | fileUrl: this.getFileUrl(file), // 已经处理过URL |
| | | fileType: this.getFileType(file.fileName) |
| | | }; |
| | | this.previewVisible = true; |
| | |
| | | |
| | | // 文件下载 |
| | | handleDownload(file) { |
| | | const fileUrl = this.getFileUrl(file); |
| | | const fileUrl = this.getFileUrl(file); // 使用处理过的URL |
| | | const fileName = file.fileName; |
| | | |
| | | if (fileUrl) { |