From 7f67f2e6fbb7d47249fef0905a40a66f13ae2f2b Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 21 八月 2026 10:05:32 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/maintain/maintainInfo.vue |  215 +++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 204 insertions(+), 11 deletions(-)

diff --git a/src/views/business/maintain/maintainInfo.vue b/src/views/business/maintain/maintainInfo.vue
index a0d327a..8dbb0ef 100644
--- a/src/views/business/maintain/maintainInfo.vue
+++ b/src/views/business/maintain/maintainInfo.vue
@@ -1,6 +1,6 @@
 <template>
   <div class="maintenance-detail">
-    <case-basic-info :case-id="caseId" :show-attachment="true" />
+    <case-basic-info :case-id="caseId" :show-attachment="true":column="3" />
 
     <el-card class="assessment-card">
       <div slot="header" class="clearfix">
@@ -52,20 +52,55 @@
               />
               <el-table-column label="鍩瑰吇缁撴灉" align="center" prop="result">
                 <template slot-scope="scope">
+                  <!-- 闃虫�х粨鏋滃甫鎮诞鎻愮ず -->
+                  <el-tooltip
+                    v-if="
+                      scope.row.result === '闃虫��' && scope.row.positiveDetails
+                    "
+                    effect="light"
+                    placement="top"
+                    :open-delay="200"
+                    popper-class="custom-positive-tooltip"
+                  >
+                    <div slot="content">
+                      <div
+                        style="font-weight: bold; color: #f56c6c; margin-bottom: 8px;"
+                      >
+                        <i class="el-icon-warning"></i> 闃虫�х粨鏋滆鎯�
+                      </div>
+                      <div
+                        style="color: #606266; line-height: 1.6; white-space: pre-wrap;"
+                      >
+                        {{ scope.row.positiveDetails }}
+                      </div>
+                    </div>
+                    <el-tag
+                      type="danger"
+                      effect="plain"
+                      @click="handleResultClick(scope.row)"
+                      style="cursor: pointer;"
+                    >
+                      {{ scope.row.result }}
+                      <i class="el-icon-info" style="margin-left: 4px;"></i>
+                    </el-tag>
+                  </el-tooltip>
+
+                  <!-- 闃虫�т絾娌℃湁璇︽儏鐨� -->
                   <el-tag
-                    :type="scope.row.result === '闃存��' ? 'success' : 'danger'"
+                    v-else-if="
+                      scope.row.result === '闃虫��' && !scope.row.positiveDetails
+                    "
+                    type="danger"
                     effect="plain"
                     @click="handleResultClick(scope.row)"
                     style="cursor: pointer;"
                   >
                     {{ scope.row.result }}
-                    <i
-                      v-if="
-                        scope.row.result === '闃虫��' && scope.row.positiveDetails
-                      "
-                      class="el-icon-info"
-                      style="margin-left: 4px;"
-                    ></i>
+                  </el-tag>
+
+                  <!-- 闃存�х粨鏋� -->
+                  <el-tag v-else type="success" effect="plain">
+                    {{ scope.row.result }}
                   </el-tag>
                 </template>
               </el-table-column>
@@ -215,6 +250,30 @@
             :initial-data="assessmentData.urineRoutine"
             :is-editing="isEdit && activeTab === 'urineRoutine'"
             @data-change="handleUrineRoutineDataChange"
+          />
+        </el-tab-pane>
+        <el-tab-pane label="蹇冭剰鍖栭獙" name="heartLab">
+          <heart-lab-panel
+            ref="heartLab"
+            :initial-data="assessmentData.heartLab"
+            :is-editing="isEdit && activeTab === 'heartLab'"
+            @data-change="handleHeartLabDataChange"
+          />
+        </el-tab-pane>
+        <el-tab-pane label="鑲鸿剰鍖栭獙" name="lungLab">
+          <lung-lab-panel
+            ref="lungLab"
+            :initial-data="assessmentData.lungLab"
+            :is-editing="isEdit && activeTab === 'lungLab'"
+            @data-change="handleLungLabDataChange"
+          />
+        </el-tab-pane>
+        <el-tab-pane label="鑳拌吅鍖栭獙" name="pancreasLab">
+          <pancreas-lab-panel
+            ref="pancreasLab"
+            :initial-data="assessmentData.pancreasLab"
+            :is-editing="isEdit && activeTab === 'pancreasLab'"
+            @data-change="handlePancreasLabDataChange"
           />
         </el-tab-pane>
       </el-tabs>
@@ -463,6 +522,9 @@
 import LiverKidneyPanel from "@/components/MaintainComponents/LiverKidneyPanel.vue";
 import BloodRoutinePanel from "@/components/MaintainComponents/BloodRoutinePanel.vue";
 import UrineRoutinePanel from "@/components/MaintainComponents/UrineRoutinePanel.vue";
+import HeartLabPanel from "@/components/MaintainComponents/HeartLabPanel.vue";
+import LungLabPanel from "@/components/MaintainComponents/LungLabPanel.vue";
+import PancreasLabPanel from "@/components/MaintainComponents/PancreasLabPanel.vue";
 import CaseBasicInfo from "@/components/CaseBasicInfo";
 import store from "@/store";
 import dayjs from "dayjs";
@@ -476,7 +538,10 @@
     LiverKidneyPanel,
     BloodRoutinePanel,
     UrineRoutinePanel,
-    CaseBasicInfo
+    CaseBasicInfo,
+    HeartLabPanel,
+    LungLabPanel,
+    PancreasLabPanel
   },
   dicts: [
     "sys_donornode",
@@ -595,6 +660,9 @@
         liverKidney: {},
         bloodRoutine: {},
         urineRoutine: {},
+        heartLab: {}, // 鏂板
+        lungLab: {}, // 鏂板
+        pancreasLab: {}, // 鏂板
         cultureResults: [],
         nursingRecords: []
       }
@@ -668,6 +736,15 @@
               if (itemDescData.urineRoutine) {
                 this.assessmentData.urineRoutine = itemDescData.urineRoutine;
               }
+              if (itemDescData.heartLab) {
+                this.assessmentData.heartLab = itemDescData.heartLab;
+              }
+              if (itemDescData.lungLab) {
+                this.assessmentData.lungLab = itemDescData.lungLab;
+              }
+              if (itemDescData.pancreasLab) {
+                this.assessmentData.pancreasLab = itemDescData.pancreasLab;
+              }
             } catch (error) {
               console.error("瑙f瀽itemDesc JSON澶辫触:", error);
             }
@@ -735,6 +812,9 @@
             liverKidney: this.assessmentData.liverKidney,
             bloodRoutine: this.assessmentData.bloodRoutine,
             urineRoutine: this.assessmentData.urineRoutine,
+            heartLab: this.assessmentData.heartLab, // 鏂板
+            lungLab: this.assessmentData.lungLab, // 鏂板
+            pancreasLab: this.assessmentData.pancreasLab, // 鏂板
             cultureResults: this.cultureList,
             nursingRecords: this.recordList
           }
@@ -773,7 +853,16 @@
         this.$message.error("淇濆瓨澶辫触");
       }
     },
-
+    // 5. 鍦� methods 涓坊鍔犳暟鎹鐞嗘柟娉�
+    handleHeartLabDataChange(data) {
+      this.assessmentData.heartLab = data;
+    },
+    handleLungLabDataChange(data) {
+      this.assessmentData.lungLab = data;
+    },
+    handlePancreasLabDataChange(data) {
+      this.assessmentData.pancreasLab = data;
+    },
     // 鍒囨崲缂栬緫妯″紡
     toggleEditMode() {
       // this.isEdit = !this.isEdit;
@@ -1274,4 +1363,108 @@
   color: #f56c6c;
   font-weight: bold;
 }
+.custom-positive-tooltip {
+  max-width: 400px;
+}
+
+/* ===== 绾歌川琛ㄦ牸缃戞牸鏍峰紡 ===== */
+.paper-card >>> .el-card__body {
+  padding: 0;
+}
+
+.paper-form {
+  border-left: 1px solid #d0d3db;
+  background: #fff;
+  /* 瓒呭灞忛檺鍒惰〃鍗曟渶澶у搴︼紝鍙充晶鐣欑櫧锛岄伩鍏嶅瓧娈靛垎甯冭繃寮� */
+  max-width: 1400px;
+}
+
+.paper-form >>> .form-row {
+  display: flex;
+  width: 100%;
+  border-top: 1px solid #d0d3db;
+  /* 涓婄Щ1px涓庝笂涓�琛岀殑border-bottom閲嶅彔锛屼袱琛屼箣闂村彧鏄剧ず涓�鏉�1px缁嗙嚎 */
+  margin-top: -1px;
+}
+.paper-form >>> .form-row:first-child {
+  margin-top: 0;
+}
+
+/* 琛屽熬绌虹櫧濉厖锛氫笉婊℃暣琛岀殑鍙充晶鑷姩琛ヤ竴涓┖鐧芥牸瀛愶紝缃戞牸淇濇寔闂悎锛堝彸渚ч�傚綋鐣欑櫧锛� */
+.paper-form >>> .form-row::after {
+  content: "";
+  flex: 1 1 0;
+  min-height: 42px;
+  background: linear-gradient(to left, #d0d3db 1px, transparent 1px),
+    linear-gradient(to top, #d0d3db 1px, transparent 1px);
+  background-color: #fff;
+}
+
+.paper-form >>> .el-form-item {
+  flex: 0 0 33.3333%;
+  display: flex;
+  margin: 0;
+  background: #fff;
+  border-right: 1px solid #d0d3db;
+  border-bottom: 1px solid #d0d3db;
+}
+.paper-form >>> .el-form-item::after,
+.paper-form >>> .el-form-item::before {
+  display: none;
+}
+
+.paper-form >>> .col-1-3 { flex: 0 0 33.3333%; }
+.paper-form >>> .col-half { flex: 0 0 50%; }
+.paper-form >>> .col-2-3 { flex: 0 0 66.6666%; }
+.paper-form >>> .col-full { flex: 0 0 100%; }
+
+.paper-form >>> .el-form-item__label {
+  flex: 0 0 150px;
+  width: 150px !important;
+  float: none;
+  padding: 0 8px !important;
+  background: #ecf5ff;
+  border-right: 1px solid #d0d3db;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  text-align: center;
+  font-size: 13px;
+  font-weight: 600;
+  color: #2c3038;
+  line-height: 1.3;
+  white-space: nowrap;
+}
+.paper-form >>> .el-form-item.is-required:not(.is-no-asterisk) > .el-form-item__label:before {
+  color: #f56c6c;
+  margin-right: 2px;
+}
+
+.paper-form >>> .el-form-item__content {
+  flex: 1;
+  margin-left: 0 !important;
+  display: flex;
+  align-items: center;
+  flex-wrap: wrap;
+  padding: 6px 10px;
+  background: #fff;
+  min-height: 42px;
+  line-height: 1.4;
+}
+
+/* 鎺т欢瀹藉害閫備腑锛屼笉閾烘弧鏁存牸锛堝唴瀹圭煭鏃惰緭鍏ユ涓嶅啀鎷夊緱寰堥暱锛� */
+.paper-form >>> .el-form-item__content .el-input,
+.paper-form >>> .el-form-item__content .el-select,
+.paper-form >>> .el-form-item__content .el-cascader {
+  width: 220px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-date-editor {
+  width: 240px;
+  max-width: 100%;
+}
+.paper-form >>> .el-form-item__content .el-range-editor {
+  width: 360px;
+  max-width: 100%;
+}
 </style>

--
Gitblit v1.9.3