| | |
| | | </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"> |
| | |
| | | >{{ 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> |
| | |
| | | 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 |
| | |
| | | <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", "sys_Infectious", "reject_type"], |
| | | data() { |
| | | return { |
| | | // 预览相关 |
| | | previewVisible: false, |
| | | currentPreviewFile: null, |
| | | |
| | | // 动态计算的 baseUrlHt |
| | | baseUrlHt: "", |
| | | // 图片预览相关 |
| | | imagePreviewUrls: [], |
| | | rejectOptions: [ |
| | |
| | | .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 "-"; |
| | |
| | | }, |
| | | |
| | | 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) { |