WXL
2025-12-28 40bd04c1299a0edf63771b90b5f9e78bfb943474
src/views/business/appear/caseDetail.vue
@@ -3,40 +3,76 @@
    <el-tabs v-model="activeTab">
      <el-tab-pane label="基本信息" name="basic">
        <el-descriptions :column="2" border>
          <el-descriptions-item label="捐献编号">{{ caseData.donorNo }}</el-descriptions-item>
          <el-descriptions-item label="捐献者姓名">{{ caseData.donorName }}</el-descriptions-item>
          <el-descriptions-item label="捐献编号">{{
            caseData.donorNo
          }}</el-descriptions-item>
          <el-descriptions-item label="捐献者姓名">{{
            caseData.donorName
          }}</el-descriptions-item>
          <el-descriptions-item label="性别">
            <dict-tag :options="genderOptions" :value="caseData.gender"/>
          </el-descriptions-item>
          <el-descriptions-item label="年龄">{{ caseData.age }}岁</el-descriptions-item>
          <el-descriptions-item label="年龄"
            >{{ caseData.age }}岁</el-descriptions-item
          >
          <el-descriptions-item label="血型">
            <dict-tag :options="bloodTypeOptions" :value="caseData.bloodType"/>
          </el-descriptions-item>
          <el-descriptions-item label="证件号码">{{ caseData.idCardNo }}</el-descriptions-item>
          <el-descriptions-item label="民族">{{ caseData.nation }}</el-descriptions-item>
          <el-descriptions-item label="联系电话">{{ caseData.phone }}</el-descriptions-item>
          <el-descriptions-item label="住址" :span="2">{{ caseData.address }}</el-descriptions-item>
          <el-descriptions-item label="证件号码">{{
            caseData.idCardNo
          }}</el-descriptions-item>
          <el-descriptions-item label="民族">{{
            caseData.nation
          }}</el-descriptions-item>
          <el-descriptions-item label="联系电话">{{
            caseData.phone
          }}</el-descriptions-item>
          <el-descriptions-item label="住址" :span="2">{{
            caseData.address
          }}</el-descriptions-item>
        </el-descriptions>
      </el-tab-pane>
      <el-tab-pane label="医疗信息" name="medical">
        <el-descriptions :column="1" border>
          <el-descriptions-item label="疾病诊断">{{ caseData.diagnosis }}</el-descriptions-item>
          <el-descriptions-item label="住院号">{{ caseData.inpatientNo }}</el-descriptions-item>
          <el-descriptions-item label="所在科室">{{ caseData.departmentName }}</el-descriptions-item>
          <el-descriptions-item label="主治医生">{{ caseData.doctorName }}</el-descriptions-item>
          <el-descriptions-item label="传染病情况">{{ caseData.infectiousDisease || '无' }}</el-descriptions-item>
          <el-descriptions-item label="医疗记录">{{ caseData.medicalRecord }}</el-descriptions-item>
          <el-descriptions-item label="疾病诊断">{{
            caseData.diagnosis
          }}</el-descriptions-item>
          <el-descriptions-item label="住院号">{{
            caseData.inpatientNo
          }}</el-descriptions-item>
          <el-descriptions-item label="所在科室">{{
            caseData.departmentName
          }}</el-descriptions-item>
          <el-descriptions-item label="主治医生">{{
            caseData.doctorName
          }}</el-descriptions-item>
          <el-descriptions-item label="传染病情况">{{
            caseData.infectiousDisease || "无"
          }}</el-descriptions-item>
          <el-descriptions-item label="医疗记录">{{
            caseData.medicalRecord
          }}</el-descriptions-item>
        </el-descriptions>
      </el-tab-pane>
      <el-tab-pane label="医院信息" name="hospital">
        <el-descriptions :column="2" border>
          <el-descriptions-item label="医院名称">{{ caseData.hospitalName }}</el-descriptions-item>
          <el-descriptions-item label="医院级别">{{ caseData.hospitalLevel }}</el-descriptions-item>
          <el-descriptions-item label="联系人">{{ caseData.contactPerson }}</el-descriptions-item>
          <el-descriptions-item label="联系电话">{{ caseData.contactPhone }}</el-descriptions-item>
          <el-descriptions-item label="医院地址" :span="2">{{ caseData.hospitalAddress }}</el-descriptions-item>
          <el-descriptions-item label="医院名称">{{
            caseData.hospitalName
          }}</el-descriptions-item>
          <el-descriptions-item label="医院级别">{{
            caseData.hospitalLevel
          }}</el-descriptions-item>
          <el-descriptions-item label="联系人">{{
            caseData.contactPerson
          }}</el-descriptions-item>
          <el-descriptions-item label="联系电话">{{
            caseData.contactPhone
          }}</el-descriptions-item>
          <el-descriptions-item label="医院地址" :span="2">{{
            caseData.hospitalAddress
          }}</el-descriptions-item>
        </el-descriptions>
      </el-tab-pane>
@@ -99,16 +135,26 @@
        </el-card>
      </el-tab-pane>
      <el-tab-pane label="审批信息" name="approval" v-if="caseData.status !== '0'">
      <el-tab-pane
        label="审批信息"
        name="approval"
        v-if="caseData.status !== '0'"
      >
        <el-descriptions :column="1" border>
          <el-descriptions-item label="审批结果">
            <el-tag :type="caseData.status | statusFilter">
              {{ caseData.status | statusTextFilter }}
            </el-tag>
          </el-descriptions-item>
          <el-descriptions-item label="审批时间">{{ caseData.approveTime }}</el-descriptions-item>
          <el-descriptions-item label="审批人">{{ caseData.approverName }}</el-descriptions-item>
          <el-descriptions-item label="审批意见">{{ caseData.approveOpinion }}</el-descriptions-item>
          <el-descriptions-item label="审批时间">{{
            caseData.approveTime
          }}</el-descriptions-item>
          <el-descriptions-item label="审批人">{{
            caseData.approverName
          }}</el-descriptions-item>
          <el-descriptions-item label="审批意见">{{
            caseData.approveOpinion
          }}</el-descriptions-item>
        </el-descriptions>
      </el-tab-pane>
    </el-tabs>
@@ -252,24 +298,24 @@
  filters: {
    statusFilter(status) {
      const statusMap = {
        '0': 'warning',
        '1': 'success',
        '2': 'danger'
        "0": "warning",
        "1": "success",
        "2": "danger"
      };
      return statusMap[status];
    },
    statusTextFilter(status) {
      const statusMap = {
        '0': '待审批',
        '1': '已通过',
        '2': '已驳回'
        "0": "待审批",
        "1": "已通过",
        "2": "已驳回"
      };
      return statusMap[status];
    }
  },
  data() {
    return {
      activeTab: 'basic',
      activeTab: "basic",
      genderOptions: [
        { value: "0", label: "男" },
        { value: "1", label: "女" }
@@ -333,12 +379,15 @@
  },
  methods: {
    handleClose() {
      this.$emit('close');
      this.$emit("close");
    },
    // 获取文件类型
    getFileType(fileName) {
      const extension = fileName.split('.').pop().toLowerCase();
      const extension = fileName
        .split(".")
        .pop()
        .toLowerCase();
      const imageTypes = ["jpg", "jpeg", "png", "gif", "bmp", "webp"];
      const pdfTypes = ["pdf"];