From ed62678cd16042506bad5e5f75665a822f2d5717 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期二, 30 十二月 2025 10:28:18 +0800
Subject: [PATCH] 数据更新推送

---
 src/views/business/maintain/maintainInfo.vue | 1137 ++++++++++++++++++++++++++++++++++++++++-------------------
 1 files changed, 771 insertions(+), 366 deletions(-)

diff --git a/src/views/business/maintain/maintainInfo.vue b/src/views/business/maintain/maintainInfo.vue
index 3f88144..06794a8 100644
--- a/src/views/business/maintain/maintainInfo.vue
+++ b/src/views/business/maintain/maintainInfo.vue
@@ -17,7 +17,7 @@
       <el-form :model="form" ref="form" label-width="120px">
         <el-row :gutter="20">
           <el-col :span="8">
-            <el-form-item label="妗堜緥缂栧彿" prop="caseNo">
+            <el-form-item label="浣忛櫌鍙�" prop="caseNo">
               <el-input v-model="form.caseNo" :readonly="!isEdit" />
             </el-form-item>
           </el-col>
@@ -28,7 +28,11 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="鎬у埆" prop="gender">
-              <el-select v-model="form.gender" :disabled="!isEdit" style="width: 100%">
+              <el-select
+                v-model="form.gender"
+                :disabled="!isEdit"
+                style="width: 100%"
+              >
                 <el-option label="鐢�" value="0" />
                 <el-option label="濂�" value="1" />
               </el-select>
@@ -57,7 +61,11 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="鎮h�呯姸鎬�" prop="patientStatus">
-              <el-select v-model="form.patientStatus" :disabled="!isEdit" style="width: 100%">
+              <el-select
+                v-model="form.patientStatus"
+                :disabled="!isEdit"
+                style="width: 100%"
+              >
                 <el-option label="DCD" value="1" />
                 <el-option label="DBD" value="2" />
                 <el-option label="DBCD" value="3" />
@@ -67,7 +75,11 @@
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="鏈畬鎴愬師鍥�" prop="incompleteReason" v-if="form.patientStatus === '5'">
+            <el-form-item
+              label="鏈畬鎴愬師鍥�"
+              prop="incompleteReason"
+              v-if="form.patientStatus === '5'"
+            >
               <el-input
                 v-model="form.incompleteReason"
                 :readonly="!isEdit"
@@ -110,7 +122,11 @@
         <el-row :gutter="20">
           <el-col :span="8">
             <el-form-item label="琛�鍨�" prop="bloodType">
-              <el-select v-model="form.bloodType" :disabled="!isEdit" style="width: 100%">
+              <el-select
+                v-model="form.bloodType"
+                :disabled="!isEdit"
+                style="width: 100%"
+              >
                 <el-option label="A鍨�" value="A" />
                 <el-option label="B鍨�" value="B" />
                 <el-option label="O鍨�" value="O" />
@@ -120,7 +136,11 @@
           </el-col>
           <el-col :span="8">
             <el-form-item label="RH鍥犲瓙" prop="rhFactor">
-              <el-select v-model="form.rhFactor" :disabled="!isEdit" style="width: 100%">
+              <el-select
+                v-model="form.rhFactor"
+                :disabled="!isEdit"
+                style="width: 100%"
+              >
                 <el-option label="闃虫��" value="positive" />
                 <el-option label="闃存��" value="negative" />
               </el-select>
@@ -139,75 +159,146 @@
         </el-form-item>
       </el-form>
     </el-card>
-
-    <!-- 鍩瑰吇缁撴灉璁板綍 -->
- <!-- 鍩瑰吇缁撴灉璁板綍 -->
-    <el-card class="culture-card">
+    <el-card class="assessment-card">
       <div slot="header" class="clearfix">
-        <span class="detail-title">鍩瑰吇缁撴灉璁板綍</span>
+        <span class="detail-title">渚涜�呰瘎浼板悇椤硅褰�</span>
         <el-button
           type="primary"
           size="mini"
-          icon="el-icon-plus"
-          @click="handleAddCulture"
+          @click="toggleEditMode"
+          style="float: right;"
         >
-          鏂板鍩瑰吇璁板綍
+          {{ isEdit ? "瀹屾垚缂栬緫" : "寮�濮嬬紪杈�" }}
         </el-button>
       </div>
 
-      <el-table :data="cultureList" v-loading="cultureLoading">
-        <el-table-column label="鍩瑰吇绫诲瀷" align="center" prop="cultureType" width="120">
-          <template slot-scope="scope">
-            <dict-tag :options="cultureTypeOptions" :value="scope.row.cultureType" />
-          </template>
-        </el-table-column>
-        <el-table-column label="閲囨牱鏃堕棿" align="center" prop="sampleTime" width="160" />
-        <el-table-column label="鍩瑰吇缁撴灉" align="center" prop="result" width="100">
-          <template slot-scope="scope">
-            <el-tag :type="scope.row.result === '闃存��' ? 'success' : 'danger'" effect="plain">
-              {{ scope.row.result }}
-            </el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column label="鑿岀" align="center" prop="bacteria" width="120" />
-        <el-table-column label="鑽晱缁撴灉" align="center" prop="drugSensitivity" min-width="150" show-overflow-tooltip />
-        <el-table-column label="妫�娴嬫満鏋�" align="center" prop="testingInstitution" width="120" />
-        <el-table-column label="鎿嶄綔" align="center" width="180" class-name="small-padding fixed-width">
-          <template slot-scope="scope">
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-edit"
-              @click="handleEditCulture(scope.row)"
-            >缂栬緫</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-delete"
-              style="color: #F56C6C;"
-              @click="handleDeleteCulture(scope.row)"
-            >鍒犻櫎</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-view"
-              @click="handleViewCulture(scope.row)"
-            >璇︽儏</el-button>
-          </template>
-        </el-table-column>
-      </el-table>
+      <el-tabs v-model="activeTab" type="card" @tab-click="handleTabClick">
+        <!-- 鍩瑰吇缁撴灉璁板綍 -->
+        <el-tab-pane label="鍩瑰吇缁撴灉" name="culture">
+          <el-card class="culture-card">
+            <div slot="header" class="clearfix">
+              <span class="detail-title">鍩瑰吇缁撴灉璁板綍</span>
+              <el-button
+                type="primary"
+                size="mini"
+                icon="el-icon-plus"
+                @click="handleAddCulture"
+              >
+                鏂板鍩瑰吇璁板綍
+              </el-button>
+            </div>
 
-      <!-- 鍒嗛〉缁勪欢 -->
-      <pagination
-        v-show="cultureTotal > 0"
-        :total="cultureTotal"
-        :page.sync="cultureQueryParams.pageNum"
-        :limit.sync="cultureQueryParams.pageSize"
-        @pagination="getCultureList"
-      />
+            <el-table :data="cultureList" v-loading="cultureLoading">
+              <el-table-column
+                label="鍩瑰吇绫诲瀷"
+                align="center"
+                prop="cultureType"
+              >
+                <!-- <template slot-scope="scope">
+            <dict-tag
+              :options="cultureTypeOptions"
+              :value="scope.row.cultureType"
+            />
+          </template> -->
+              </el-table-column>
+              <el-table-column
+                label="閲囨牱鏃堕棿"
+                align="center"
+                prop="sampleTime"
+              />
+              <el-table-column label="鍩瑰吇缁撴灉" align="center" prop="result">
+                <template slot-scope="scope">
+                  <el-tag
+                    :type="scope.row.result === '闃存��' ? 'success' : 'danger'"
+                    effect="plain"
+                  >
+                    {{ scope.row.result }}
+                  </el-tag>
+                </template>
+              </el-table-column>
+              <!-- 闄勪欢鍒� -->
+              <el-table-column label="闄勪欢" align="center">
+                <template slot-scope="scope">
+                  <el-button
+                    v-if="
+                      scope.row.attachments && scope.row.attachments.length > 0
+                    "
+                    size="mini"
+                    type="text"
+                    @click="handleViewCultureAttachments(scope.row)"
+                  >
+                    鏌ョ湅闄勪欢({{ scope.row.attachments.length }})
+                  </el-button>
+                  <span v-else>鏃犻檮浠�</span>
+                </template>
+              </el-table-column>
+              <el-table-column
+                label="鎿嶄綔"
+                align="center"
+                width="200"
+                class-name="small-padding fixed-width"
+              >
+                <template slot-scope="scope">
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-edit"
+                    @click="handleEditCulture(scope.row)"
+                    >缂栬緫</el-button
+                  >
+                  <el-button
+                    size="mini"
+                    type="text"
+                    icon="el-icon-delete"
+                    style="color: #F56C6C;"
+                    @click="handleDeleteCulture(scope.row)"
+                    >鍒犻櫎</el-button
+                  >
+                </template>
+              </el-table-column>
+            </el-table>
+
+            <pagination
+              v-show="cultureTotal > 0"
+              :total="cultureTotal"
+              :page.sync="cultureQueryParams.pageNum"
+              :limit.sync="cultureQueryParams.pageSize"
+              @pagination="getCultureList"
+            />
+          </el-card>
+        </el-tab-pane>
+
+        <!-- 鑲濆姛鑳借偩鍔熻兘 -->
+        <el-tab-pane label="鑲濆姛鑳借偩鍔熻兘" name="liverKidney">
+          <liver-kidney-panel
+            ref="liverKidney"
+            :is-editing="isEdit && activeTab === 'liverKidney'"
+            @data-change="handleLiverKidneyDataChange"
+          />
+        </el-tab-pane>
+
+        <!-- 琛�甯歌 -->
+        <el-tab-pane label="琛�甯歌" name="bloodRoutine">
+          <blood-routine-panel
+            ref="bloodRoutine"
+            :is-editing="isEdit && activeTab === 'bloodRoutine'"
+            @data-change="handleBloodRoutineDataChange"
+          />
+        </el-tab-pane>
+
+        <!-- 灏垮父瑙� -->
+        <el-tab-pane label="灏垮父瑙�" name="urineRoutine">
+          <urine-routine-panel
+            ref="urineRoutine"
+            :is-editing="isEdit && activeTab === 'urineRoutine'"
+            @data-change="handleUrineRoutineDataChange"
+          />
+        </el-tab-pane>
+      </el-tabs>
     </el-card>
+    <!-- 鍩瑰吇缁撴灉璁板綍 -->
 
-    <!-- 鎶ょ悊鏍告煡璁板綍 -->
+    <!-- 绠�鍖栧悗鐨勬姢鐞嗘牳鏌ヨ褰� -->
     <el-card class="record-card">
       <div slot="header" class="clearfix">
         <span class="detail-title">鎶ょ悊鏍告煡璁板綍</span>
@@ -222,40 +313,63 @@
       </div>
 
       <el-table :data="recordList" v-loading="recordLoading">
-        <el-table-column label="鏍告煡鏃堕棿" align="center" prop="recordTime" width="160" />
-        <el-table-column label="鏍告煡浜�" align="center" prop="recorder" width="100" />
-        <el-table-column label="浣撴俯(鈩�)" align="center" prop="temperature"  />
-        <el-table-column label="蹇冪巼(娆�/鍒�)" align="center" prop="heartRate"  />
-        <el-table-column label="琛�鍘�(mmHg)" align="center" prop="bloodPressure" width="160" />
-        <el-table-column label="鍛煎惛(娆�/鍒�)" align="center" prop="respirationRate"  />
-        <el-table-column label="琛�姘чケ鍜屽害(%)" align="center" prop="oxygenSaturation" width="160" />
-        <el-table-column label="灏块噺(ml/h)" align="center" prop="urineOutput"  />
-        <el-table-column label="鎿嶄綔" align="center" width="200" class-name="small-padding fixed-width">
+        <el-table-column
+          label="鏍告煡鏃堕棿"
+          align="center"
+          prop="recordTime"
+          width="160"
+        />
+        <el-table-column
+          label="鏍告煡浜�"
+          align="center"
+          prop="recorder"
+          width="100"
+        />
+        <el-table-column
+          label="鏍告煡璁板綍"
+          align="center"
+          prop="checkRecord"
+          min-width="200"
+          show-overflow-tooltip
+        />
+        <!-- 闄勪欢鍒� -->
+        <el-table-column label="闄勪欢" align="center" width="120">
           <template slot-scope="scope">
             <el-button
+              v-if="scope.row.attachments && scope.row.attachments.length > 0"
               size="mini"
               type="text"
-              icon="el-icon-edit"
-              @click="handleEditRecord(scope.row)"
-            >缂栬緫</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-delete"
-              style="color: #F56C6C;"
-              @click="handleDeleteRecord(scope.row)"
-            >鍒犻櫎</el-button>
-            <el-button
-              size="mini"
-              type="text"
-              icon="el-icon-view"
-              @click="handleViewRecord(scope.row)"
-            >璇︽儏</el-button>
+              @click="handleViewRecordAttachments(scope.row)"
+            >
+              鏌ョ湅闄勪欢({{ scope.row.attachments.length }})
+            </el-button>
+            <span v-else>鏃犻檮浠�</span>
           </template>
+        </el-table-column>
+        <el-table-column
+          label="鎿嶄綔"
+          align="center"
+          width="180"
+          class-name="small-padding fixed-width"
+        >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-edit"
+            @click="handleEditRecord(scope.row)"
+            >缂栬緫</el-button
+          >
+          <el-button
+            size="mini"
+            type="text"
+            icon="el-icon-delete"
+            style="color: #F56C6C;"
+            @click="handleDeleteRecord(scope.row)"
+            >鍒犻櫎</el-button
+          >
         </el-table-column>
       </el-table>
 
-      <!-- 鍒嗛〉缁勪欢 -->
       <pagination
         v-show="recordTotal > 0"
         :total="recordTotal"
@@ -264,7 +378,6 @@
         @pagination="getRecordList"
       />
     </el-card>
-
     <!-- 鍩瑰吇璁板綍缂栬緫瀵硅瘽妗� -->
     <el-dialog
       :title="cultureDialogTitle"
@@ -272,16 +385,25 @@
       width="700px"
       :close-on-click-modal="false"
     >
-      <el-form :model="cultureForm" ref="cultureForm" :rules="cultureRules" label-width="120px">
+      <el-form
+        :model="cultureForm"
+        ref="cultureForm"
+        :rules="cultureRules"
+        label-width="120px"
+      >
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="鍩瑰吇绫诲瀷" prop="cultureType">
-              <el-select v-model="cultureForm.cultureType" placeholder="璇烽�夋嫨鍩瑰吇绫诲瀷" style="width: 100%">
+              <el-select
+                v-model="cultureForm.cultureType"
+                placeholder="璇烽�夋嫨鍩瑰吇绫诲瀷"
+                style="width: 100%"
+              >
                 <el-option
                   v-for="item in cultureTypeOptions"
                   :key="item.value"
                   :label="item.label"
-                  :value="item.value"
+                  :value="item.label"
                 />
               </el-select>
             </el-form-item>
@@ -302,54 +424,35 @@
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="鍩瑰吇缁撴灉" prop="result">
-              <el-select v-model="cultureForm.result" placeholder="璇烽�夋嫨鍩瑰吇缁撴灉" style="width: 100%">
+              <el-select
+                v-model="cultureForm.result"
+                placeholder="璇烽�夋嫨鍩瑰吇缁撴灉"
+                style="width: 100%"
+              >
                 <el-option label="闃存��" value="闃存��" />
                 <el-option label="闃虫��" value="闃虫��" />
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="鑿岀" prop="bacteria">
-              <el-input v-model="cultureForm.bacteria" placeholder="璇疯緭鍏ユ娴嬪埌鐨勮弻绉�" />
-            </el-form-item>
-          </el-col>
         </el-row>
 
-        <el-form-item label="鑽晱缁撴灉" prop="drugSensitivity">
-          <el-input
-            type="textarea"
-            :rows="3"
-            v-model="cultureForm.drugSensitivity"
-            placeholder="璇疯緭鍏ヨ嵂鏁忚瘯楠岀粨鏋�"
-          />
-        </el-form-item>
-
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="妫�娴嬫満鏋�" prop="testingInstitution">
-              <el-input v-model="cultureForm.testingInstitution" placeholder="璇疯緭鍏ユ娴嬫満鏋�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="鏍囨湰绫诲瀷" prop="specimenType">
-              <el-input v-model="cultureForm.specimenType" placeholder="璇疯緭鍏ユ爣鏈被鍨�" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-form-item label="澶囨敞" prop="remarks">
-          <el-input
-            type="textarea"
-            :rows="2"
-            v-model="cultureForm.remarks"
-            placeholder="璇疯緭鍏ュ娉ㄤ俊鎭�"
+        <!-- 闄勪欢涓婁紶 -->
+        <el-form-item label="闄勪欢">
+          <upload-attachment
+            :file-list="cultureForm.attachments"
+            @change="handleCultureAttachmentChange"
           />
         </el-form-item>
       </el-form>
 
       <span slot="footer" class="dialog-footer">
         <el-button @click="cultureDialogVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="handleSaveCulture" :loading="cultureSaveLoading">淇濆瓨</el-button>
+        <el-button
+          type="primary"
+          @click="handleSaveCulture"
+          :loading="cultureSaveLoading"
+          >淇濆瓨</el-button
+        >
       </span>
     </el-dialog>
 
@@ -357,10 +460,15 @@
     <el-dialog
       :title="recordDialogTitle"
       :visible.sync="recordDialogVisible"
-      width="800px"
+      width="700px"
       :close-on-click-modal="false"
     >
-      <el-form :model="recordForm" ref="recordForm" :rules="recordRules" label-width="120px">
+      <el-form
+        :model="recordForm"
+        ref="recordForm"
+        :rules="recordRules"
+        label-width="120px"
+      >
         <el-row :gutter="20">
           <el-col :span="12">
             <el-form-item label="鏍告煡鏃堕棿" prop="recordTime">
@@ -375,203 +483,374 @@
           </el-col>
           <el-col :span="12">
             <el-form-item label="鏍告煡浜�" prop="recorder">
-              <el-input v-model="recordForm.recorder" placeholder="璇疯緭鍏ユ牳鏌ヤ汉濮撳悕" />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="8">
-            <el-form-item label="浣撴俯(鈩�)" prop="temperature">
-              <el-input-number
-                v-model="recordForm.temperature"
-                :min="30" :max="45" :step="0.1"
-                controls-position="right"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="蹇冪巼(娆�/鍒�)" prop="heartRate">
-              <el-input-number
-                v-model="recordForm.heartRate"
-                :min="0" :max="200"
-                controls-position="right"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="8">
-            <el-form-item label="鍛煎惛(娆�/鍒�)" prop="respirationRate">
-              <el-input-number
-                v-model="recordForm.respirationRate"
-                :min="0" :max="60"
-                controls-position="right"
-                style="width: 100%"
+              <el-input
+                v-model="recordForm.recorder"
+                placeholder="璇疯緭鍏ユ牳鏌ヤ汉濮撳悕"
               />
             </el-form-item>
           </el-col>
         </el-row>
 
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="琛�鍘�(mmHg)" prop="bloodPressure">
-              <el-input v-model="recordForm.bloodPressure" placeholder="鏍煎紡锛氭敹缂╁帇/鑸掑紶鍘�" />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="琛�姘чケ鍜屽害(%)" prop="oxygenSaturation">
-              <el-input-number
-                v-model="recordForm.oxygenSaturation"
-                :min="0" :max="100"
-                controls-position="right"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-row :gutter="20">
-          <el-col :span="12">
-            <el-form-item label="灏块噺(ml/h)" prop="urineOutput">
-              <el-input-number
-                v-model="recordForm.urineOutput"
-                :min="0" :max="1000"
-                controls-position="right"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-          <el-col :span="12">
-            <el-form-item label="涓績闈欒剦鍘�" prop="cvp">
-              <el-input-number
-                v-model="recordForm.cvp"
-                :min="0" :max="20" :step="0.1"
-                controls-position="right"
-                style="width: 100%"
-              />
-            </el-form-item>
-          </el-col>
-        </el-row>
-
-        <el-form-item label="澶囨敞" prop="remarks">
+        <el-form-item label="鏍告煡璁板綍" prop="checkRecord">
           <el-input
             type="textarea"
-            :rows="3"
-            v-model="recordForm.remarks"
-            placeholder="璇疯緭鍏ユ牳鏌ュ娉ㄤ俊鎭�"
+            :rows="4"
+            v-model="recordForm.checkRecord"
+            placeholder="璇疯緭鍏ユ牳鏌ヨ褰曞唴瀹�"
+          />
+        </el-form-item>
+
+        <!-- 闄勪欢涓婁紶 -->
+        <el-form-item label="闄勪欢">
+          <upload-attachment
+            :file-list="recordForm.attachments"
+            @change="handleRecordAttachmentChange"
           />
         </el-form-item>
       </el-form>
 
       <span slot="footer" class="dialog-footer">
         <el-button @click="recordDialogVisible = false">鍙栨秷</el-button>
-        <el-button type="primary" @click="handleSaveRecord" :loading="recordSaveLoading">淇濆瓨</el-button>
+        <el-button
+          type="primary"
+          @click="handleSaveRecord"
+          :loading="recordSaveLoading"
+          >淇濆瓨</el-button
+        >
       </span>
     </el-dialog>
+
+    <!-- 闄勪欢棰勮瀵硅瘽妗� -->
+    <attachment-preview
+      :visible="attachmentPreviewVisible"
+      :file-list="currentAttachmentList"
+      :title="attachmentPreviewTitle"
+      @close="attachmentPreviewVisible = false"
+    />
   </div>
 </template>
 
 <script>
 import { getMaintenanceDetail, updateMaintenance } from "./mockMaintenanceApi";
-import { listCultureResults, addCultureResult, updateCultureResult, deleteCultureResult } from "./mockMaintenanceApi";
-import { listNursingRecords, addNursingRecord, updateNursingRecord, deleteNursingRecord } from "./mockMaintenanceApi";
+import {
+  listCultureResults,
+  addCultureResult,
+  updateCultureResult,
+  deleteCultureResult
+} from "./mockMaintenanceApi";
+import {
+  listNursingRecords,
+  addNursingRecord,
+  updateNursingRecord,
+  deleteNursingRecord
+} from "./mockMaintenanceApi";
 import Pagination from "@/components/Pagination";
+import UploadAttachment from "@/components/UploadAttachment";
+import AttachmentPreview from "@/components/AttachmentPreview";
+import LiverKidneyPanel from "./components/LiverKidneyPanel.vue";
+import BloodRoutinePanel from "./components/BloodRoutinePanel.vue";
+import UrineRoutinePanel from "./components/UrineRoutinePanel.vue";
 
 export default {
- name: "MaintenanceDetail",
-  components: { Pagination },
+  name: "MaintenanceDetail",
+  components: {
+    Pagination,
+    UploadAttachment,
+    AttachmentPreview,
+    LiverKidneyPanel,
+    BloodRoutinePanel,
+    UrineRoutinePanel
+  },
   data() {
     return {
-      isEdit: false,
+      isEdit: true,
       form: {
         id: undefined,
-        caseNo: '',
-        donorName: '',
-        gender: '',
-        age: '',
-        diagnosis: '',
-        hospitalName: '',
-        patientStatus: '1',
-        admissionTime: '',
-        dischargeTime: '',
-        coordinator: '',
-        bloodType: '',
-        rhFactor: '',
-        specialMedicalHistory: '',
-        incompleteReason: ''
+        caseNo: "",
+        donorName: "",
+        gender: "",
+        age: "",
+        diagnosis: "",
+        hospitalName: "",
+        patientStatus: "1",
+        admissionTime: "",
+        dischargeTime: "",
+        coordinator: "",
+        bloodType: "",
+        rhFactor: "",
+        specialMedicalHistory: "",
+        incompleteReason: ""
       },
-
+      activeTab: "culture",
       // 鍩瑰吇缁撴灉鐩稿叧鏁版嵁
-      cultureList: [],
+      // 鍩瑰吇缁撴灉鐩稿叧鏁版嵁
+      cultureList: [
+        {
+          id: 1,
+          cultureType: "琛�鍩瑰吇",
+          sampleTime: "2024-12-19 10:30:00",
+          result: "闃存��",
+          bacteria: "",
+          drugSensitivity: "",
+          testingInstitution: "闈掑矝澶у闄勫睘鍖婚櫌",
+          specimenType: "琛�娑�",
+          remarks: "甯歌妫�娴�",
+          attachments: [
+            {
+              id: 1,
+              fileName: "琛�鍩瑰吇鎶ュ憡.pdf",
+              fileUrl:
+                "http://localhost:8080/profile/upload/2025/12/27/1.COPO渚涗綋璇勪及琛�.pdf",
+              fileSize: 1024000,
+              uploadTime: "2024-12-19 11:00:00"
+            }
+          ]
+        },
+        {
+          id: 3,
+          cultureType: "琛�鍩瑰吇",
+          sampleTime: "2024-12-20 09:15:00",
+          result: "闃存��",
+          bacteria: "",
+          drugSensitivity: "",
+          testingInstitution: "骞垮窞妫�娴嬩腑蹇�",
+          specimenType: "灏挎恫",
+          remarks: "娓呮磥涓灏挎爣鏈�",
+          attachments: []
+        },
+        {
+          id: 2,
+          cultureType: "鐥板煿鍏荤粨鏋�",
+          sampleTime: "2024-12-19 14:20:00",
+          result: "闃虫��",
+          bacteria: "閲戦粍鑹茶憽钀勭悆鑿�",
+          drugSensitivity: "瀵归潚闇夌礌鏁忔劅锛屽澶村绫讳腑浠�",
+          testingInstitution: "涓婃捣鍖诲妫�楠屾墍",
+          specimenType: "鐥版恫",
+          remarks: "鑽晱璇曢獙瀹屾垚",
+          attachments: [
+            {
+              id: 2,
+              fileName: "鐥板煿鍏荤粨鏋�.jpg",
+              fileUrl:
+                "https://img95.699pic.com/photo/40142/8262.jpg_wh860.jpg",
+              fileSize: 512000,
+              uploadTime: "2024-12-19 15:30:00"
+            },
+            {
+              id: 3,
+              fileName: "鑽晱鎶ュ憡.pdf",
+              fileUrl:
+                "http://localhost:8080/profile/upload/2025/12/27/(鍚撮緳8.7)姣忔棩宸ヤ綔鎬荤粨.pdf",
+              fileSize: 768000,
+              uploadTime: "2024-12-19 16:00:00"
+            }
+          ]
+        },
+
+        {
+          id: 4,
+          cultureType: "鐪熻弻鍩瑰吇",
+          sampleTime: "2024-12-20 11:45:00",
+          result: "闃虫��",
+          bacteria: "澶ц偁鏉嗚弻",
+          drugSensitivity: "瀵瑰乏姘ф盁娌欐槦鏁忔劅",
+          testingInstitution: "娣卞湷浜烘皯鍖婚櫌",
+          specimenType: "浼ゅ彛鍒嗘硨鐗�",
+          remarks: "鏈悗浼ゅ彛鎰熸煋鐩戞祴",
+          attachments: [
+            {
+              id: 4,
+              fileName: "鐪熻弻鍩瑰吇.pdf",
+              fileUrl: "/reports/culture4.pdf",
+              fileSize: 890000,
+              uploadTime: "2024-12-20 13:20:00"
+            }
+          ]
+        }
+      ],
       cultureLoading: false,
-      cultureTotal: 0,
+      cultureTotal: 5,
       cultureQueryParams: {
         pageNum: 1,
         pageSize: 10
       },
       cultureDialogVisible: false,
-      cultureDialogTitle: '',
+      cultureDialogTitle: "",
       cultureSaveLoading: false,
       cultureForm: {
         id: undefined,
-        cultureType: '',
-        sampleTime: '',
-        result: '闃存��',
-        bacteria: '',
-        drugSensitivity: '',
-        testingInstitution: '',
-        specimenType: '',
-        remarks: ''
+        cultureType: "",
+        sampleTime: "",
+        result: "闃存��",
+        attachments: [] // 鏂板闄勪欢瀛楁
       },
       cultureRules: {
-        cultureType: [{ required: true, message: '璇烽�夋嫨鍩瑰吇绫诲瀷', trigger: 'change' }],
-        sampleTime: [{ required: true, message: '璇烽�夋嫨閲囨牱鏃堕棿', trigger: 'change' }],
-        result: [{ required: true, message: '璇烽�夋嫨鍩瑰吇缁撴灉', trigger: 'change' }]
+        cultureType: [
+          { required: true, message: "璇烽�夋嫨鍩瑰吇绫诲瀷", trigger: "change" }
+        ],
+        sampleTime: [
+          { required: true, message: "璇烽�夋嫨閲囨牱鏃堕棿", trigger: "change" }
+        ],
+        result: [
+          { required: true, message: "璇烽�夋嫨鍩瑰吇缁撴灉", trigger: "change" }
+        ]
       },
       cultureTypeOptions: [
-        { value: '1', label: '琛�鍩瑰吇' },
-        { value: '2', label: '鐥板煿鍏�' },
-        { value: '3', label: '灏垮煿鍏�' },
-        { value: '4', label: '浼ゅ彛鍒嗘硨鐗�' },
-        { value: '5', label: '鑴戣剨娑插煿鍏�' },
-        { value: '6', label: '鍏朵粬' }
+        { value: "1", label: "琛�鍩瑰吇" },
+        { value: "2", label: "鐥板煿鍏�" },
+        { value: "3", label: "灏垮煿鍏�" },
+        { value: "4", label: "浼ゅ彛鍒嗘硨鐗�" },
+        { value: "5", label: "鑴戣剨娑插煿鍏�" },
+        { value: "6", label: "鍏朵粬" }
       ],
 
       // 鎶ょ悊鏍告煡璁板綍鐩稿叧鏁版嵁
-      recordList: [],
+      recordList: [
+        {
+          id: 1,
+          recordTime: "2024-12-19 08:30:00",
+          recorder: "寮犳姢澹�",
+          temperature: 36.8,
+          heartRate: 78,
+          bloodPressure: "120/80",
+          respirationRate: 18,
+          oxygenSaturation: 98,
+          urineOutput: 60,
+          cvp: 8,
+          checkRecord: "鎮h�呯敓鍛戒綋寰佸钩绋筹紝鎰忚瘑娓呮锛岄厤鍚堟不鐤�",
+          remarks: "澶滈棿鐫$湢鑹ソ",
+          attachments: [
+            {
+              id: 1,
+              fileName: "鏃╃彮鎶ょ悊璁板綍.jpg",
+              fileUrl: "/records/nursing1.jpg",
+              fileSize: 1024000,
+              uploadTime: "2024-12-19 09:00:00"
+            }
+          ]
+        },
+        {
+          id: 2,
+          recordTime: "2024-12-19 14:30:00",
+          recorder: "鏉庢姢澹�",
+          temperature: 37.2,
+          heartRate: 82,
+          bloodPressure: "118/76",
+          respirationRate: 16,
+          oxygenSaturation: 97,
+          urineOutput: 45,
+          cvp: 7.5,
+          checkRecord: "鎮h�呭崍鍚庝綋娓╃暐鏈夊崌楂橈紝瑙傚療涓�",
+          remarks: "寤鸿澧炲姞姘村垎鎽勫叆",
+          attachments: []
+        },
+        {
+          id: 3,
+          recordTime: "2024-12-19 20:30:00",
+          recorder: "鐜嬫姢澹�",
+          temperature: 36.9,
+          heartRate: 75,
+          bloodPressure: "122/78",
+          respirationRate: 17,
+          oxygenSaturation: 98,
+          urineOutput: 55,
+          cvp: 8.2,
+          checkRecord: "鏅氶棿鐢熷懡浣撳緛绋冲畾锛屾偅鑰呬紤鎭壇濂�",
+          remarks: "澶滈棿鐩戞祴鏃犲紓甯�",
+          attachments: [
+            {
+              id: 2,
+              fileName: "鏅氱彮鎶ょ悊璁板綍.pdf",
+              fileUrl: "/records/nursing3.pdf",
+              fileSize: 890000,
+              uploadTime: "2024-12-19 21:00:00"
+            },
+            {
+              id: 3,
+              fileName: "浣撳緛鐩戞祴琛�.xlsx",
+              fileUrl: "/records/monitoring3.xlsx",
+              fileSize: 256000,
+              uploadTime: "2024-12-19 21:15:00"
+            }
+          ]
+        },
+        {
+          id: 4,
+          recordTime: "2024-12-20 08:30:00",
+          recorder: "璧垫姢澹�",
+          temperature: 36.7,
+          heartRate: 80,
+          bloodPressure: "119/77",
+          respirationRate: 18,
+          oxygenSaturation: 99,
+          urineOutput: 65,
+          cvp: 7.8,
+          checkRecord: "鏅ㄩ棿鐢熷懡浣撳緛姝e父锛屾偅鑰呯簿绁炵姸鎬佽壇濂�",
+          remarks: "鍑嗗浠婃棩妫�鏌�",
+          attachments: []
+        },
+        {
+          id: 5,
+          recordTime: "2024-12-20 12:30:00",
+          recorder: "鍒樻姢澹�",
+          temperature: 37.1,
+          heartRate: 85,
+          bloodPressure: "121/79",
+          respirationRate: 19,
+          oxygenSaturation: 96,
+          urineOutput: 40,
+          cvp: 8.5,
+          checkRecord: "鍗堥棿浣撴俯鐣ユ湁娉㈠姩锛岀户缁瀵�",
+          remarks: "宸查�氱煡鍖荤敓",
+          attachments: [
+            {
+              id: 4,
+              fileName: "鍗堥棿鎶ょ悊璁板綍.jpg",
+              fileUrl: "/records/nursing5.jpg",
+              fileSize: 765000,
+              uploadTime: "2024-12-20 13:00:00"
+            }
+          ]
+        }
+      ],
       recordLoading: false,
-      recordTotal: 0,
+      recordTotal: 4,
       recordQueryParams: {
         pageNum: 1,
         pageSize: 10
       },
       recordDialogVisible: false,
-      recordDialogTitle: '',
+      recordDialogTitle: "",
       recordSaveLoading: false,
       recordForm: {
         id: undefined,
-        recordTime: '',
-        recorder: '',
-        temperature: 36.5,
-        heartRate: 80,
-        bloodPressure: '120/80',
-        respirationRate: 18,
-        oxygenSaturation: 98,
-        urineOutput: 50,
-        cvp: 8,
-        remarks: ''
+        recordTime: "",
+        recorder: "",
+        checkRecord: "", // 鏀逛负鍗曞瓧娈佃褰�
+        attachments: [] // 鏂板闄勪欢瀛楁
       },
       recordRules: {
-        recordTime: [{ required: true, message: '璇烽�夋嫨鏍告煡鏃堕棿', trigger: 'change' }],
-        recorder: [{ required: true, message: '璇疯緭鍏ユ牳鏌ヤ汉', trigger: 'blur' }],
-        temperature: [{ required: true, message: '璇疯緭鍏ヤ綋娓�', trigger: 'blur' }]
-      }
+        recordTime: [
+          { required: true, message: "璇烽�夋嫨鏍告煡鏃堕棿", trigger: "change" }
+        ],
+        recorder: [
+          { required: true, message: "璇疯緭鍏ユ牳鏌ヤ汉", trigger: "blur" }
+        ],
+        checkRecord: [
+          { required: true, message: "璇疯緭鍏ユ牳鏌ヨ褰�", trigger: "blur" }
+        ]
+      },
+
+      // 闄勪欢棰勮鐩稿叧
+      attachmentPreviewVisible: false,
+      currentAttachmentList: [],
+      attachmentPreviewTitle: ""
     };
   },
- created() {
+  created() {
     const id = this.$route.query.id;
-    this.isEdit = this.$route.query.edit === 'true';
+    // this.isEdit = this.$route.query.edit === "true";
     if (id) {
       this.getDetail(id);
       this.getCultureList();
@@ -579,7 +858,7 @@
     }
   },
   methods: {
-     // 鑾峰彇璇︽儏
+    // 鑾峰彇璇︽儏
     getDetail(id) {
       getMaintenanceDetail(id).then(response => {
         if (response.code === 200) {
@@ -587,33 +866,78 @@
         }
       });
     },
+    // 鍩瑰吇璁板綍闄勪欢鍙樻洿
+    handleCultureAttachmentChange(fileList) {
+      this.cultureForm.attachments = fileList;
+    },
 
+    // 鎶ょ悊璁板綍闄勪欢鍙樻洿
+    handleRecordAttachmentChange(fileList) {
+      this.recordForm.attachments = fileList;
+    },
+
+    // 鏌ョ湅鍩瑰吇璁板綍闄勪欢
+    handleViewCultureAttachments(row) {
+      console.log(22, row.attachments);
+
+      this.currentAttachmentList = row.attachments || [];
+      this.attachmentPreviewTitle = `鍩瑰吇璁板綍闄勪欢 - ${row.cultureType}`;
+      this.attachmentPreviewVisible = true;
+    },
+    handleTabClick(tab) {
+      this.$nextTick(() => {
+        console.log(tab.name, 88);
+        const tableRef=null;
+        if (tab.name == "liverKidney") {
+           tableRef = this.$refs.liverKidney; // 璇锋浛鎹负鎮ㄧ殑琛ㄦ牸 ref
+        } else if (tab.name == "bloodRoutine") {
+           tableRef = this.$refs.bloodRoutine; // 璇锋浛鎹负鎮ㄧ殑琛ㄦ牸 ref
+        } else if (tab.name == "bloodRoutine") {
+           tableRef = this.$refs.bloodRoutine; // 璇锋浛鎹负鎮ㄧ殑琛ㄦ牸 ref
+        }
+        // 濡傛灉鏄� el-table锛屽皾璇曡皟鐢ㄥ叾 doLayout 鏂规硶
+        if (tableRef && tableRef.doLayout) {
+          tableRef.doLayout();
+        }
+
+        // 鎴栬�咃紝鏇撮�氱敤鐨勫己鍒堕噸鏂版覆鏌撴柟寮�
+        this.$forceUpdate(); // 鎱庣敤锛屽彲鑳藉紩鍙戝叾浠栭棶棰榌1](@ref)
+      });
+    },
+    // 鏌ョ湅鎶ょ悊璁板綍闄勪欢
+    handleViewRecordAttachments(row) {
+      this.currentAttachmentList = row.attachments || [];
+      this.attachmentPreviewTitle = `鎶ょ悊鏍告煡璁板綍闄勪欢 - ${row.recorder}`;
+      this.attachmentPreviewVisible = true;
+    },
     // 鍩瑰吇璁板綍鐩稿叧鏂规硶
     getCultureList() {
       this.cultureLoading = true;
-      listCultureResults(this.form.id, this.cultureQueryParams).then(response => {
-        if (response.code === 200) {
-          this.cultureList = response.data.rows;
-          this.cultureTotal = response.data.total;
-        }
-        this.cultureLoading = false;
-      }).catch(() => {
-        this.cultureLoading = false;
-      });
+      listCultureResults(this.form.id, this.cultureQueryParams)
+        .then(response => {
+          if (response.code === 200) {
+            // this.cultureList = response.data.rows;
+            // this.cultureTotal = response.data.total;
+          }
+          this.cultureLoading = false;
+        })
+        .catch(() => {
+          this.cultureLoading = false;
+        });
     },
 
     handleAddCulture() {
-      this.cultureDialogTitle = '鏂板鍩瑰吇璁板綍';
+      this.cultureDialogTitle = "鏂板鍩瑰吇璁板綍";
       this.cultureForm = {
         id: undefined,
-        cultureType: '',
-        sampleTime: '',
-        result: '闃存��',
-        bacteria: '',
-        drugSensitivity: '',
-        testingInstitution: '',
-        specimenType: '',
-        remarks: ''
+        cultureType: "",
+        sampleTime: "",
+        result: "闃存��",
+        bacteria: "",
+        drugSensitivity: "",
+        testingInstitution: "",
+        specimenType: "",
+        remarks: ""
       };
       this.cultureDialogVisible = true;
       this.$nextTick(() => {
@@ -622,7 +946,7 @@
     },
 
     handleEditCulture(row) {
-      this.cultureDialogTitle = '缂栬緫鍩瑰吇璁板綍';
+      this.cultureDialogTitle = "缂栬緫鍩瑰吇璁板綍";
       this.cultureForm = { ...row };
       this.cultureDialogVisible = true;
       this.$nextTick(() => {
@@ -631,93 +955,128 @@
     },
 
     handleViewCulture(row) {
-      this.$alert(`
+      this.$alert(
+        `
         <div>
-          <p><strong>鍩瑰吇绫诲瀷锛�</strong>${this.getCultureTypeLabel(row.cultureType)}</p>
+          <p><strong>鍩瑰吇绫诲瀷锛�</strong>${this.getCultureTypeLabel(
+            row.cultureType
+          )}</p>
           <p><strong>閲囨牱鏃堕棿锛�</strong>${row.sampleTime}</p>
           <p><strong>鍩瑰吇缁撴灉锛�</strong>${row.result}</p>
-          <p><strong>鑿岀锛�</strong>${row.bacteria || '鏃�'}</p>
-          <p><strong>鑽晱缁撴灉锛�</strong>${row.drugSensitivity || '鏃�'}</p>
           <p><strong>妫�娴嬫満鏋勶細</strong>${row.testingInstitution}</p>
         </div>
-      `, '鍩瑰吇璁板綍璇︽儏', {
-        dangerouslyUseHTMLString: true,
-        customClass: 'detail-dialog'
-      });
+      `,
+        "鍩瑰吇璁板綍璇︽儏",
+        {
+          dangerouslyUseHTMLString: true,
+          customClass: "detail-dialog"
+        }
+      );
     },
-
+    toggleEditMode() {
+      this.isEdit = !this.isEdit;
+      // if (!this.isEdit) {
+      //   this.saveAllData();
+      // }
+    },
+    handleLiverKidneyDataChange(data) {
+      console.log("鑲濆姛鑳借偩鍔熻兘鏁版嵁鍙樻洿:", data);
+      // 澶勭悊鏁版嵁淇濆瓨鎴栦复鏃跺瓨鍌�
+    },
+    handleBloodRoutineDataChange(data) {
+      console.log("琛�甯歌鍔熻兘鏁版嵁鍙樻洿:", data);
+      // 澶勭悊鏁版嵁淇濆瓨鎴栦复鏃跺瓨鍌�
+    },
+    handleUrineRoutineDataChange(data) {
+      console.log("灏垮父瑙勫姛鑳芥暟鎹彉鏇�:", data);
+      // 澶勭悊鏁版嵁淇濆瓨鎴栦复鏃跺瓨鍌�
+    },
+    // 淇濆瓨鍩瑰吇璁板綍
     handleSaveCulture() {
       this.$refs.cultureForm.validate(valid => {
         if (valid) {
           this.cultureSaveLoading = true;
-          const api = this.cultureForm.id ? updateCultureResult : addCultureResult;
+          const api = this.cultureForm.id
+            ? updateCultureResult
+            : addCultureResult;
           const requestData = {
             ...this.cultureForm,
             maintenanceId: this.form.id
           };
 
-          api(requestData).then(response => {
-            if (response.code === 200) {
-              this.$message.success(this.cultureForm.id ? '淇敼鎴愬姛' : '鏂板鎴愬姛');
-              this.cultureDialogVisible = false;
-              this.getCultureList();
-            }
-            this.cultureSaveLoading = false;
-          }).catch(() => {
-            this.cultureSaveLoading = false;
-          });
+          api(requestData)
+            .then(response => {
+              if (response.code === 200) {
+                this.$message.success(
+                  this.cultureForm.id ? "淇敼鎴愬姛" : "鏂板鎴愬姛"
+                );
+                this.cultureDialogVisible = false;
+                this.getCultureList();
+              }
+              this.cultureSaveLoading = false;
+            })
+            .catch(() => {
+              this.cultureSaveLoading = false;
+            });
         }
       });
     },
 
     handleDeleteCulture(row) {
-      this.$confirm('纭畾瑕佸垹闄よ繖鏉″煿鍏昏褰曞悧锛�', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        deleteCultureResult(row.id).then(response => {
-          if (response.code === 200) {
-            this.$message.success('鍒犻櫎鎴愬姛');
-            this.getCultureList();
-          }
-        });
-      }).catch(() => {});
+      this.$confirm("纭畾瑕佸垹闄よ繖鏉″煿鍏昏褰曞悧锛�", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          deleteCultureResult(row.id).then(response => {
+            if (response.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛");
+              this.getCultureList();
+            }
+          });
+        })
+        .catch(() => {});
     },
 
     getCultureTypeLabel(value) {
       const type = this.cultureTypeOptions.find(item => item.value === value);
-      return type ? type.label : '鏈煡';
+      return type ? type.label : "鏈煡";
     },
 
     // 鎶ょ悊鏍告煡璁板綍鐩稿叧鏂规硶
     getRecordList() {
       this.recordLoading = true;
-      listNursingRecords(this.form.id, this.recordQueryParams).then(response => {
-        if (response.code === 200) {
-          this.recordList = response.data.rows;
-          this.recordTotal = response.data.total;
-        }
-        this.recordLoading = false;
-      }).catch(() => {
-        this.recordLoading = false;
-      });
+      listNursingRecords(this.form.id, this.recordQueryParams)
+        .then(response => {
+          if (response.code === 200) {
+            // this.recordList = response.data.rows;
+            // this.recordTotal = response.data.total;
+          }
+          this.recordLoading = false;
+        })
+        .catch(() => {
+          this.recordLoading = false;
+        });
     },
 
     handleAddRecord() {
-      this.recordDialogTitle = '鏂板鎶ょ悊鏍告煡璁板綍';
+      this.recordDialogTitle = "鏂板鎶ょ悊鏍告煡璁板綍";
       this.recordForm = {
         id: undefined,
-        recordTime: new Date().toISOString().replace('T', ' ').substring(0, 19),
-        recorder: '褰撳墠鐢ㄦ埛', // 瀹為檯椤圭洰涓粠鐢ㄦ埛淇℃伅鑾峰彇
+        recordTime: new Date()
+          .toISOString()
+          .replace("T", " ")
+          .substring(0, 19),
+        recorder: "褰撳墠鐢ㄦ埛", // 瀹為檯椤圭洰涓粠鐢ㄦ埛淇℃伅鑾峰彇
         temperature: 36.5,
         heartRate: 80,
-        bloodPressure: '120/80',
+        bloodPressure: "120/80",
         respirationRate: 18,
         oxygenSaturation: 98,
         urineOutput: 50,
         cvp: 8,
-        remarks: ''
+        remarks: ""
       };
       this.recordDialogVisible = true;
       this.$nextTick(() => {
@@ -726,7 +1085,7 @@
     },
 
     handleEditRecord(row) {
-      this.recordDialogTitle = '缂栬緫鎶ょ悊鏍告煡璁板綍';
+      this.recordDialogTitle = "缂栬緫鎶ょ悊鏍告煡璁板綍";
       this.recordForm = { ...row };
       this.recordDialogVisible = true;
       this.$nextTick(() => {
@@ -735,7 +1094,8 @@
     },
 
     handleViewRecord(row) {
-      this.$alert(`
+      this.$alert(
+        `
         <div>
           <p><strong>鏍告煡鏃堕棿锛�</strong>${row.recordTime}</p>
           <p><strong>鏍告煡浜猴細</strong>${row.recorder}</p>
@@ -748,51 +1108,62 @@
             <li>琛�姘чケ鍜屽害锛�${row.oxygenSaturation}%</li>
             <li>灏块噺锛�${row.urineOutput}ml/h</li>
           </ul>
-          <p><strong>澶囨敞锛�</strong>${row.remarks || '鏃�'}</p>
+          <p><strong>澶囨敞锛�</strong>${row.remarks || "鏃�"}</p>
         </div>
-      `, '鎶ょ悊鏍告煡璁板綍璇︽儏', {
-        dangerouslyUseHTMLString: true,
-        customClass: 'detail-dialog'
-      });
+      `,
+        "鎶ょ悊鏍告煡璁板綍璇︽儏",
+        {
+          dangerouslyUseHTMLString: true,
+          customClass: "detail-dialog"
+        }
+      );
     },
 
     handleSaveRecord() {
       this.$refs.recordForm.validate(valid => {
         if (valid) {
           this.recordSaveLoading = true;
-          const api = this.recordForm.id ? updateNursingRecord : addNursingRecord;
+          const api = this.recordForm.id
+            ? updateNursingRecord
+            : addNursingRecord;
           const requestData = {
             ...this.recordForm,
             maintenanceId: this.form.id
           };
 
-          api(requestData).then(response => {
-            if (response.code === 200) {
-              this.$message.success(this.recordForm.id ? '淇敼鎴愬姛' : '鏂板鎴愬姛');
-              this.recordDialogVisible = false;
-              this.getRecordList();
-            }
-            this.recordSaveLoading = false;
-          }).catch(() => {
-            this.recordSaveLoading = false;
-          });
+          api(requestData)
+            .then(response => {
+              if (response.code === 200) {
+                this.$message.success(
+                  this.recordForm.id ? "淇敼鎴愬姛" : "鏂板鎴愬姛"
+                );
+                this.recordDialogVisible = false;
+                this.getRecordList();
+              }
+              this.recordSaveLoading = false;
+            })
+            .catch(() => {
+              this.recordSaveLoading = false;
+            });
         }
       });
     },
 
     handleDeleteRecord(row) {
-      this.$confirm('纭畾瑕佸垹闄よ繖鏉℃姢鐞嗘牳鏌ヨ褰曞悧锛�', '鎻愮ず', {
-        confirmButtonText: '纭畾',
-        cancelButtonText: '鍙栨秷',
-        type: 'warning'
-      }).then(() => {
-        deleteNursingRecord(row.id).then(response => {
-          if (response.code === 200) {
-            this.$message.success('鍒犻櫎鎴愬姛');
-            this.getRecordList();
-          }
-        });
-      }).catch(() => {});
+      this.$confirm("纭畾瑕佸垹闄よ繖鏉℃姢鐞嗘牳鏌ヨ褰曞悧锛�", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      })
+        .then(() => {
+          deleteNursingRecord(row.id).then(response => {
+            if (response.code === 200) {
+              this.$message.success("鍒犻櫎鎴愬姛");
+              this.getRecordList();
+            }
+          });
+        })
+        .catch(() => {});
     },
 
     // 淇濆瓨鍩烘湰淇℃伅
@@ -853,7 +1224,41 @@
   font-size: 16px;
   font-weight: bold;
 }
+.medical-panel {
+  padding: 20px;
+}
 
+.attachment-section {
+  margin-top: 20px;
+  padding: 15px;
+  border: 1px solid #ebeef5;
+  border-radius: 4px;
+}
+
+.attachment-title {
+  font-weight: bold;
+  margin-bottom: 10px;
+  color: #409eff;
+}
+
+.required-item::before {
+  content: "*";
+  color: #f56c6c;
+  margin-right: 4px;
+}
+
+.assessment-card {
+  margin-bottom: 20px;
+}
+
+.medical-table {
+  width: 100%;
+  margin-bottom: 20px;
+}
+
+.dynamic-column {
+  min-width: 120px;
+}
 .fixed-width .el-button {
   margin: 0 2px;
 }

--
Gitblit v1.9.3