From 8192b75a1b1e46fd962485d26690b5ecc7e2af06 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期五, 23 一月 2026 10:10:04 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/assess/assessInfo.vue |  527 +++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 409 insertions(+), 118 deletions(-)

diff --git a/src/views/business/assess/assessInfo.vue b/src/views/business/assess/assessInfo.vue
index 33cf2ac..727e73a 100644
--- a/src/views/business/assess/assessInfo.vue
+++ b/src/views/business/assess/assessInfo.vue
@@ -13,7 +13,7 @@
       </div>
 
       <el-descriptions :column="2" border>
-        <el-descriptions-item label="妗堜緥缂栧彿">{{
+        <el-descriptions-item label="浣忛櫌鍙�">{{
           assessmentData.caseNo
         }}</el-descriptions-item>
         <el-descriptions-item label="娼滃湪鎹愮尞鑰呭鍚�">{{
@@ -106,9 +106,31 @@
           label="璇勪及浜哄憳"
           align="center"
           prop="assessor"
-          width="100"
+
         />
-        <el-table-column label="璇勪及鐘舵��" align="center" width="100">
+        <!-- 鏂板锛氱涓�娆¤瘎浼扮姸鎬� -->
+        <el-table-column label="绗竴娆¤瘎浼�" align="center" >
+          <template slot-scope="scope">
+            <el-tag
+              :type="getAssessmentTagType(scope.row.firstAssessment.status)"
+              size="small"
+            >
+              {{ getAssessmentStatusText(scope.row.firstAssessment.status) }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <!-- 鏂板锛氱浜屾璇勪及鐘舵�� -->
+        <el-table-column label="绗簩娆¤瘎浼�" align="center" >
+          <template slot-scope="scope">
+            <el-tag
+              :type="getAssessmentTagType(scope.row.secondAssessment.status)"
+              size="small"
+            >
+              {{ getAssessmentStatusText(scope.row.secondAssessment.status) }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="鏁翠綋鐘舵��" align="center" >
           <template slot-scope="scope">
             <el-tag
               :type="scope.row.assessmentStatus === '1' ? 'success' : 'warning'"
@@ -118,32 +140,10 @@
             </el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="鍔熻兘鐘舵��" align="center" width="100">
-          <template slot-scope="scope">
-            <el-tag
-              :type="getFunctionStatusType(scope.row.functionStatus)"
-              size="small"
-            >
-              {{ getFunctionStatusText(scope.row.functionStatus) }}
-            </el-tag>
-          </template>
-        </el-table-column>
-        <el-table-column
-          label="璇勪及鎰忚"
-          align="center"
-          prop="assessmentOpinion"
-          min-width="150"
-          show-overflow-tooltip
-        />
-        <el-table-column label="璇勪及鏃堕棿" align="center" width="120">
-          <template slot-scope="scope">
-            <span>{{ scope.row.assessmentTime || "-" }}</span>
-          </template>
-        </el-table-column>
         <el-table-column
           label="鎿嶄綔"
           align="center"
-          width="150"
+          width="180"
           class-name="small-padding fixed-width"
         >
           <template slot-scope="scope">
@@ -152,91 +152,166 @@
               size="mini"
               type="text"
               @click="handleOrganAssess(scope.row)"
-              >{{
-                scope.row.assessmentStatus === "1" ? "鏌ョ湅/淇敼" : "璇勪及"
-              }}</el-button
             >
+              璇勪及
+            </el-button>
             <el-button v-else size="mini" type="text" disabled
               >鏃犳潈闄�</el-button
             >
             <el-button
-              v-if="isCoordinator"
               size="mini"
               type="text"
               @click="handleViewOrganDetail(scope.row)"
-              >璇︽儏</el-button
             >
+              璇︽儏
+            </el-button>
           </template>
         </el-table-column>
       </el-table>
 
-      <!-- 鍣ㄥ畼璇勪及璇︽儏 -->
-      <el-collapse
-        v-model="activeOrgans"
-        accordion
-        class="organ-detail-collapse"
+      <!-- 鍣ㄥ畼璇勪及璇︽儏 - 鏀逛负Tab椤靛舰寮� -->
+      <el-dialog
+        :title="`${currentOrgan.organName}璇勪及璇︽儏`"
+        :visible.sync="organDetailVisible"
+        width="90%"
+        top="5vh"
+        class="organ-detail-dialog"
       >
-        <el-collapse-item
-          v-for="organ in organAssessmentList"
-          :key="organ.organType"
-          :name="organ.organType"
-          :title="getOrganTitle(organ)"
-        >
-          <organ-assessment-form
-            :organ-data="organ"
-            :readonly="!canAssessOrgan(organ)"
-            @save="handleSaveOrganAssessment"
-          />
-        </el-collapse-item>
-      </el-collapse>
+        <el-tabs v-model="activeAssessmentTab" type="card">
+          <!-- 绗竴娆¤瘎浼癟ab -->
+          <el-tab-pane label="绗竴娆¤瘎浼�" name="first">
+            <organ-assessment-form
+              :organ-data="currentOrgan"
+              :assessment-data="currentOrgan.firstAssessment"
+              assessment-type="first"
+              :readonly="!canAssessOrgan(currentOrgan)"
+              @save="handleSaveOrganAssessment"
+            />
+          </el-tab-pane>
+
+          <!-- 绗簩娆¤瘎浼癟ab -->
+          <el-tab-pane label="绗簩娆¤瘎浼�" name="second">
+            <organ-assessment-form
+              :organ-data="currentOrgan"
+              :assessment-data="currentOrgan.secondAssessment"
+              assessment-type="second"
+              :readonly="!canAssessOrgan(currentOrgan)"
+              @save="handleSaveOrganAssessment"
+            />
+          </el-tab-pane>
+
+          <!-- 璇勪及姹囨�籘ab -->
+          <el-tab-pane label="璇勪及姹囨��" name="summary">
+            <div class="assessment-summary">
+              <el-descriptions title="璇勪及缁撴灉姹囨��" :column="2" border>
+                <el-descriptions-item label="鍣ㄥ畼绫诲瀷">
+                  {{ currentOrgan.organName }}
+                </el-descriptions-item>
+                <el-descriptions-item label="璇勪及绉戝">
+                  {{ currentOrgan.department }}
+                </el-descriptions-item>
+                <el-descriptions-item label="绗竴娆¤瘎浼扮姸鎬�">
+                  <el-tag :type="getAssessmentTagType(currentOrgan.firstAssessment.status)">
+                    {{ getAssessmentStatusText(currentOrgan.firstAssessment.status) }}
+                  </el-tag>
+                </el-descriptions-item>
+                <el-descriptions-item label="绗簩娆¤瘎浼扮姸鎬�">
+                  <el-tag :type="getAssessmentTagType(currentOrgan.secondAssessment.status)">
+                    {{ getAssessmentStatusText(currentOrgan.secondAssessment.status) }}
+                  </el-tag>
+                </el-descriptions-item>
+                <el-descriptions-item label="绗竴娆¤瘎浼版椂闂�" :span="2">
+                  {{ currentOrgan.firstAssessment.assessmentTime || '-' }}
+                </el-descriptions-item>
+                <el-descriptions-item label="绗簩娆¤瘎浼版椂闂�" :span="2">
+                  {{ currentOrgan.secondAssessment.assessmentTime || '-' }}
+                </el-descriptions-item>
+              </el-descriptions>
+
+              <!-- 闄勪欢姹囨�� -->
+              <el-card header="璇勪及闄勪欢" style="margin-top: 20px;">
+                <el-table :data="getAllAttachments(currentOrgan)" size="small">
+                  <el-table-column label="闄勪欢鍚嶇О" prop="fileName" />
+                  <el-table-column label="璇勪及闃舵" >
+                    <template slot-scope="{row}">
+                      {{ row.assessmentType === 'first' ? '绗竴娆¤瘎浼�' : '绗簩娆¤瘎浼�' }}
+                    </template>
+                  </el-table-column>
+                  <el-table-column label="涓婁紶鏃堕棿" prop="uploadTime" width="180" />
+                  <el-table-column label="鎿嶄綔" width="120">
+                    <template slot-scope="{row}">
+                      <el-button type="text" @click="handlePreviewAttachment(row)">棰勮</el-button>
+                    </template>
+                  </el-table-column>
+                </el-table>
+              </el-card>
+            </div>
+          </el-tab-pane>
+        </el-tabs>
+
+        <div slot="footer" class="dialog-footer">
+          <el-button @click="organDetailVisible = false">鍏抽棴</el-button>
+          <el-button
+            v-if="canAssessOrgan(currentOrgan)"
+            type="primary"
+            @click="handleSaveAllAssessments"
+          >
+            淇濆瓨鎵�鏈夎瘎浼�
+          </el-button>
+        </div>
+      </el-dialog>
     </el-card>
 
     <!-- 闄勪欢棰勮寮圭獥 -->
-    <attachment-preview
+    <!-- <attachment-preview
       :visible="attachmentVisible"
       :attachment-list="attachmentList"
+      @close="attachmentVisible = false"
+    /> -->
+    <FilePreviewDialog
+      :visible="attachmentVisible"
+      :file="attachmentList"
       @close="attachmentVisible = false"
     />
   </div>
 </template>
 
 <script>
-// import { getAssessment, updateOrganAssessment, completeAssessment } from "@/api/case/assessment";
-import {
-  getAssessment,
-  updateOrganAssessment,
-  completeAssessment
-} from "./mockAssessmentApi";
-
+import { getAssessment, updateOrganAssessment, completeAssessment } from "./mockAssessmentApi";
+import FilePreviewDialog from "@/components/FilePreviewDialog";
 import OrganAssessmentForm from "./components/OrganAssessmentForm.vue";
-import AttachmentPreview from "./components/AttachmentPreview.vue";
 
 export default {
   name: "AssessmentDetail",
-  components: { OrganAssessmentForm, AttachmentPreview },
+  components: { OrganAssessmentForm, FilePreviewDialog },
   data() {
     return {
-      // 璇勪及ID
       assessmentId: undefined,
-      // 璇勪及鏁版嵁
       assessmentData: {},
-      // 鍣ㄥ畼璇勪及鍒楄〃
       organAssessmentList: [],
-      // 闄勪欢鍒楄〃
       attachmentList: [],
-      // 鍔犺浇鐘舵��
       assessmentLoading: false,
-      // 褰撳墠鐢ㄦ埛淇℃伅
+
+      // 鍣ㄥ畼璇︽儏鐩稿叧鏁版嵁
+      organDetailVisible: false,
+      currentOrgan: {
+        organType: '',
+        organName: '',
+        department: '',
+        firstAssessment: this.getDefaultAssessment(),
+        secondAssessment: this.getDefaultAssessment()
+      },
+      activeAssessmentTab: 'first',
+
       currentUser: {
         id: "001",
         name: "寮犲尰鐢�",
         department: "蹇冭剰澶栫",
-        role: "department" // coordinator: 鍗忚皟鍛�, department: 绉戝浜哄憳
+        role: "department"
       },
-      // 灞曞紑鐨勫櫒瀹�
-      activeOrgans: [],
-      // 闄勪欢棰勮鍙鎬�
+
       attachmentVisible: false,
+
       // 瀛楀吀閫夐」
       genderOptions: [
         { value: "0", label: "鐢�" },
@@ -265,18 +340,16 @@
     };
   },
   computed: {
-    // 鏄惁鏄崗璋冨憳
     isCoordinator() {
       return this.currentUser.role === "coordinator";
     },
-    // 褰撳墠绉戝
     currentDepartment() {
       return this.currentUser.department;
     },
-    // 鎵�鏈夊櫒瀹樻槸鍚﹂兘宸茶瘎浼�
     allOrgansAssessed() {
-      return this.organAssessmentList.every(
-        organ => organ.assessmentStatus === "1"
+      return this.organAssessmentList.every(organ =>
+        organ.firstAssessment.status === 'assessed' &&
+        organ.secondAssessment.status === 'assessed'
       );
     }
   },
@@ -285,45 +358,90 @@
     this.getAssessmentDetail();
   },
   methods: {
-    // 鑾峰彇璇勪及璇︽儏 - 浣跨敤Mock鏁版嵁
+    // 鑾峰彇榛樿璇勪及鏁版嵁缁撴瀯
+    getDefaultAssessment() {
+      return {
+        status: 'pending', // pending, assessing, assessed
+        assessmentTime: '',
+        assessor: '',
+        functionStatus: '',
+        assessmentOpinion: '',
+        attachments: [],
+        clinicalData: {},
+        labResults: {}
+      };
+    },
+
+    // 鑾峰彇璇勪及璇︽儏
     getAssessmentDetail() {
       this.assessmentLoading = true;
       getAssessment(this.assessmentId)
         .then(response => {
           if (response.code === 200) {
             this.assessmentData = response.data.caseInfo;
-            this.organAssessmentList = response.data.organAssessments || [];
-            this.attachmentList = response.data.attachments || [];
-          } else {
-            this.$message.error("鑾峰彇璇勪及璇︽儏澶辫触");
+            this.organAssessmentList = this.transformOrganData(response.data.organAssessments || []);
           }
           this.assessmentLoading = false;
         })
         .catch(error => {
           console.error("鑾峰彇璇勪及璇︽儏澶辫触:", error);
           this.assessmentLoading = false;
-          this.$message.error("鑾峰彇璇勪及璇︽儏澶辫触");
         });
     },
-    // 鐘舵�佽繃婊ゅ櫒
-    statusFilter(status) {
-      const statusMap = {
-        "0": "warning",
-        "1": "primary",
-        "2": "success",
-        "3": "danger"
-      };
-      return statusMap[status] || "info";
+
+    // 杞崲鍣ㄥ畼鏁版嵁鏍煎紡锛屾敮鎸佷袱娆¤瘎浼�
+    transformOrganData(organList) {
+      return organList.map(organ => {
+        const organName = this.getOrganName(organ.organType);
+
+        // 纭繚鏈変袱娆¤瘎浼扮殑鏁版嵁缁撴瀯
+        if (!organ.firstAssessment) {
+          organ.firstAssessment = this.getDefaultAssessment();
+        }
+        if (!organ.secondAssessment) {
+          organ.secondAssessment = this.getDefaultAssessment();
+        }
+
+        // 璁剧疆鍣ㄥ畼鍚嶇О
+        organ.organName = organName;
+
+        // 璁$畻鏁翠綋璇勪及鐘舵��
+        organ.assessmentStatus = this.calculateOverallStatus(organ);
+
+        return organ;
+      });
     },
-    statusTextFilter(status) {
-      const statusMap = {
-        "0": "寰呰瘎浼�",
-        "1": "璇勪及涓�",
-        "2": "宸插畬鎴�",
-        "3": "宸插叧闂�"
-      };
-      return statusMap[status] || "鏈煡";
+
+    // 璁$畻鏁翠綋璇勪及鐘舵��
+    calculateOverallStatus(organ) {
+      const firstDone = organ.firstAssessment.status === 'assessed';
+      const secondDone = organ.secondAssessment.status === 'assessed';
+
+      if (firstDone && secondDone) return '1'; // 宸插畬鎴�
+      if (firstDone || secondDone) return '2'; // 閮ㄥ垎瀹屾垚
+      return '0'; // 鏈紑濮�
     },
+
+    // 鑾峰彇璇勪及鐘舵�佹爣绛剧被鍨�
+    getAssessmentTagType(status) {
+      const typeMap = {
+        'pending': 'info',
+        'assessing': 'warning',
+        'assessed': 'success'
+      };
+      return typeMap[status] || 'info';
+    },
+
+    // 鑾峰彇璇勪及鐘舵�佹枃鏈�
+    getAssessmentStatusText(status) {
+      const textMap = {
+        'pending': '寰呰瘎浼�',
+        'assessing': '璇勪及涓�',
+        'assessed': '宸茶瘎浼�'
+      };
+      return textMap[status] || '鏈煡';
+    },
+
     // 鑾峰彇鍔熻兘鐘舵�佺被鍨�
     getFunctionStatusType(status) {
       const typeMap = {
@@ -334,6 +452,7 @@
       };
       return typeMap[status] || "info";
     },
+
     // 鑾峰彇鍔熻兘鐘舵�佹枃鏈�
     getFunctionStatusText(status) {
       const textMap = {
@@ -344,38 +463,66 @@
       };
       return textMap[status] || "鏈煡";
     },
-    // 妫�鏌ユ槸鍚︽湁鏉冮檺璇勪及璇ュ櫒瀹�
+
+    // 鑾峰彇鍣ㄥ畼鍚嶇О
+    getOrganName(organType) {
+      const organ = this.organTypeOptions.find(opt => opt.value === organType);
+      return organ ? organ.label : organType;
+    },
+
+    // 妫�鏌ヨ瘎浼版潈闄�
     canAssessOrgan(organ) {
       if (this.isCoordinator) return true;
       return organ.department === this.currentDepartment;
     },
+
     // 鑾峰彇琛岀被鍚�
     getRowClassName({ row }) {
       return this.canAssessOrgan(row) ? "assessable-row" : "non-assessable-row";
     },
-    // 鑾峰彇鍣ㄥ畼鏍囬
-    getOrganTitle(organ) {
-      const organName =
-        this.organTypeOptions.find(opt => opt.value === organ.organType)
-          ?.label || organ.organType;
-      return `${organName}璇勪及璇︽儏锛�${organ.department}锛塦;
+
+    // 鏍煎紡鍖栨椂闂�
+    formatTime(time) {
+      if (!time) return '';
+      return new Date(time).toLocaleString();
     },
-    // 鍣ㄥ畼璇勪及
-    handleOrganAssess(organ) {
-      this.activeOrgans = [organ.organType];
-    },
+
     // 鏌ョ湅鍣ㄥ畼璇︽儏
     handleViewOrganDetail(organ) {
-      this.activeOrgans = [organ.organType];
+      this.currentOrgan = JSON.parse(JSON.stringify(organ));
+      this.activeAssessmentTab = 'first';
+      this.organDetailVisible = true;
     },
-    // 淇濆瓨鍣ㄥ畼璇勪及 - 浣跨敤Mock API
-    handleSaveOrganAssessment(organData) {
-      updateOrganAssessment(organData)
+
+    // 鍣ㄥ畼璇勪及
+    handleOrganAssess(organ) {
+      this.currentOrgan = JSON.parse(JSON.stringify(organ));
+      this.activeAssessmentTab = 'first';
+      this.organDetailVisible = true;
+    },
+
+    // 淇濆瓨鍗曚釜璇勪及
+    handleSaveOrganAssessment(assessmentData, assessmentType) {
+      const organToUpdate = {
+        ...this.currentOrgan,
+        [assessmentType === 'first' ? 'firstAssessment' : 'secondAssessment']: {
+          ...assessmentData,
+          status: 'assessed',
+          assessmentTime: new Date().toISOString(),
+          assessor: this.currentUser.name
+        }
+      };
+
+      // 鏇存柊鏁翠綋鐘舵��
+      organToUpdate.assessmentStatus = this.calculateOverallStatus(organToUpdate);
+
+      updateOrganAssessment(organToUpdate)
         .then(response => {
           if (response.code === 200) {
-            this.$message.success("璇勪及淇濆瓨鎴愬姛");
-            // 鍒锋柊鏁版嵁
+            this.$message.success(`${assessmentType === 'first' ? '绗竴娆�' : '绗簩娆�'}璇勪及淇濆瓨鎴愬姛`);
             this.getAssessmentDetail();
+            // 鑷姩鍒囨崲鍒颁笅涓�涓湭瀹屾垚鐨勮瘎浼版垨姹囨�婚〉
+            this.autoSwitchTab(assessmentType);
           }
         })
         .catch(error => {
@@ -383,11 +530,101 @@
           this.$message.error("淇濆瓨澶辫触");
         });
     },
-    // 鏌ョ湅闄勪欢棰勮
+
+    // 鑷姩鍒囨崲Tab椤�
+    autoSwitchTab(currentType) {
+      if (currentType === 'first' && this.currentOrgan.secondAssessment.status === 'pending') {
+        this.activeAssessmentTab = 'second';
+      } else if (currentType === 'second' ||
+                (currentType === 'first' && this.currentOrgan.secondAssessment.status === 'assessed')) {
+        this.activeAssessmentTab = 'summary';
+      }
+    },
+
+    // 淇濆瓨鎵�鏈夎瘎浼�
+    handleSaveAllAssessments() {
+      this.$confirm("纭淇濆瓨鎵�鏈夎瘎浼版暟鎹悧锛�", "纭淇濆瓨", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      }).then(() => {
+        const organToUpdate = JSON.parse(JSON.stringify(this.currentOrgan));
+
+        // 鏇存柊鏁翠綋鐘舵��
+        organToUpdate.assessmentStatus = this.calculateOverallStatus(organToUpdate);
+
+        updateOrganAssessment(organToUpdate)
+          .then(response => {
+            if (response.code === 200) {
+              this.$message.success("鎵�鏈夎瘎浼版暟鎹繚瀛樻垚鍔�");
+              this.getAssessmentDetail();
+              this.organDetailVisible = false;
+            }
+          })
+          .catch(error => {
+            console.error("淇濆瓨璇勪及澶辫触:", error);
+            this.$message.error("淇濆瓨澶辫触");
+          });
+      });
+    },
+
+    // 鑾峰彇鎵�鏈夐檮浠�
+    getAllAttachments(organ) {
+      const attachments = [];
+
+      if (organ.firstAssessment.attachments) {
+        organ.firstAssessment.attachments.forEach(att => {
+          attachments.push({
+            ...att,
+            assessmentType: 'first'
+          });
+        });
+      }
+
+      if (organ.secondAssessment.attachments) {
+        organ.secondAssessment.attachments.forEach(att => {
+          attachments.push({
+            ...att,
+            assessmentType: 'second'
+          });
+        });
+      }
+
+      return attachments;
+    },
+
+    // 棰勮闄勪欢
+    handlePreviewAttachment(attachment) {
+      // 瀹炵幇闄勪欢棰勮閫昏緫
+      console.log('棰勮闄勪欢:', attachment);
+      this.$message.info('闄勪欢棰勮鍔熻兘寰呭疄鐜�');
+    },
+
+    // 鐘舵�佽繃婊ゅ櫒
+    statusFilter(status) {
+      const statusMap = {
+        "0": "warning",
+        "1": "primary",
+        "2": "success",
+        "3": "danger"
+      };
+      return statusMap[status] || "info";
+    },
+
+    statusTextFilter(status) {
+      const statusMap = {
+        "0": "寰呰瘎浼�",
+        "1": "璇勪及涓�",
+        "2": "宸插畬鎴�",
+        "3": "宸插叧闂�"
+      };
+      return statusMap[status] || "鏈煡";
+    },
+
     handleAttachmentPreview() {
       this.attachmentVisible = true;
     },
-    // 瀹屾垚璇勪及 - 浣跨敤Mock API
+
     handleCompleteAssessment() {
       this.$confirm("纭瀹屾垚鎵�鏈夊櫒瀹樿瘎浼板悧锛熷畬鎴愬悗灏嗘棤娉曚慨鏀�", "纭鎿嶄綔", {
         confirmButtonText: "纭畾",
@@ -424,8 +661,43 @@
   margin-bottom: 20px;
 }
 
-.organ-detail-collapse {
-  margin-top: 20px;
+.assessment-time {
+  font-size: 12px;
+  color: #909399;
+  margin-top: 4px;
+}
+
+/* Tab椤垫牱寮忎紭鍖� */
+.organ-detail-dialog ::v-deep .el-dialog__body {
+  padding: 20px;
+  max-height: 70vh;
+  overflow-y: auto;
+}
+
+.organ-detail-dialog ::v-deep .el-tabs__content {
+  padding: 20px 0;
+  min-height: 400px;
+}
+
+.assessment-summary {
+  padding: 10px;
+}
+
+.dialog-footer {
+  text-align: right;
+  padding-top: 20px;
+  border-top: 1px solid #ebeef5;
+}
+
+/* 鍝嶅簲寮忚璁� */
+@media (max-width: 768px) {
+  .organ-detail-dialog {
+    width: 95% !important;
+  }
+
+  .assessment-detail {
+    padding: 10px;
+  }
 }
 
 ::v-deep .assessable-row {
@@ -445,6 +717,7 @@
 .fixed-width .el-button {
   margin: 0 2px;
 }
+
 .jstitle {
   float: right;
   font-size: 18px !important;
@@ -452,4 +725,22 @@
   color: #2645f7;
   font-size: 12px;
 }
+
+/* Tab椤垫縺娲荤姸鎬佹牱寮� */
+::v-deep .el-tabs__item.is-active {
+  color: #409EFF;
+  font-weight: bold;
+}
+
+/* 璇勪及琛ㄥ崟鏍峰紡 */
+.assessment-form-section {
+  margin-bottom: 20px;
+}
+
+.assessment-form-section h3 {
+  margin-bottom: 15px;
+  color: #303133;
+  border-left: 4px solid #409EFF;
+  padding-left: 10px;
+}
 </style>

--
Gitblit v1.9.3