WXL
2 天以前 c8e9849cb5f24848df0174c13bfbbff37bb08a5a
src/components/CaseBasicInfo/index.vue
@@ -2,6 +2,16 @@
  <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"
@@ -13,14 +23,16 @@
    </div>
    <el-descriptions v-if="basicData" :column="column" border>
      <!-- 1. 案例编号 -->
      <el-descriptions-item label="案例编号">
        {{ basicData.caseNo || "--" }}
      <!-- 1. 住院号 -->
      <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. 性别/年龄 -->
@@ -41,7 +53,7 @@
      <!-- 4. 证件号码 -->
      <el-descriptions-item label="证件号码">
        {{ basicData.idcardno || basicData.idCardNo || "--" }}
        {{ basicData.idcardno || basicData.idCardNo || "无" }}
      </el-descriptions-item>
      <!-- 5. 血型 -->
@@ -51,25 +63,33 @@
        </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.treatmenthospitalname || basicData.hospitalName || "--" }}
        {{ 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. 案例状态 -->
@@ -100,14 +120,24 @@
    <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: {
@@ -165,7 +195,8 @@
    "sys_user_sex",
    "sys_BloodType",
    "sys_DonationCategory",
    "sys_donornode"
    "sys_donornode",
    "sys_Infectious"
  ],
  data() {
    return {
@@ -173,7 +204,9 @@
      basicData: null,
      // 字典选项
      sexOptions: [],
      bloodTypeOptions: []
      bloodTypeOptions: [],
      selectedAttachmentIds: ["123", "456"],
      finalAttachments: []
    };
  },
  computed: {
@@ -234,7 +267,16 @@
        console.warn("加载字典失败:", error);
      }
    },
    // 打开各阶段附件弹框
    openStageAttachments() {
      this.$refs.stageDialog.open();
    },
    onAttachmentsConfirm(list) {
      this.finalAttachments = list;
      console.log("选中的阶段附件:", list);
      // 可直接提交给接口
    },
    // 加载基本信息
    async loadBasicInfo() {
      if (!this.caseId) return;
@@ -245,7 +287,7 @@
        if (response.code === 200) {
          this.basicData = this.mapApiData(response.data);
          console.log(this.basicData );
          console.log(this.basicData);
          this.loading = false;
        } else {
@@ -273,6 +315,9 @@
        sex: apiData.sex,
        age: apiData.age,
        ageunit: apiData.ageunit,
        inpatientno: apiData.inpatientno,
        infectious: apiData.infectious,
        currentMedicalInstitution: apiData.currentMedicalInstitution,
        workflow: apiData.workflow,
        bloodType: apiData.bloodType || apiData.bloodtype,
        idcardno: apiData.idcardno || apiData.idCardNo,