From c8e9849cb5f24848df0174c13bfbbff37bb08a5a Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 21 七月 2026 15:45:30 +0800
Subject: [PATCH] 维护

---
 src/components/CaseBasicInfo/index.vue |   73 +++++++++++++++++++++++++++++-------
 1 files changed, 59 insertions(+), 14 deletions(-)

diff --git a/src/components/CaseBasicInfo/index.vue b/src/components/CaseBasicInfo/index.vue
index c7a9c90..1fa9b10 100644
--- a/src/components/CaseBasicInfo/index.vue
+++ b/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,

--
Gitblit v1.9.3