From f5e6487a78789ee372a8c6458bfd0cb740d6a0e8 Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期三, 13 五月 2026 22:13:58 +0800
Subject: [PATCH] 青岛维护

---
 src/views/business/assess/assessInfo.vue |  209 ++++++++++++++++++++-------------------------------
 1 files changed, 83 insertions(+), 126 deletions(-)

diff --git a/src/views/business/assess/assessInfo.vue b/src/views/business/assess/assessInfo.vue
index 346cff1..a465c99 100644
--- a/src/views/business/assess/assessInfo.vue
+++ b/src/views/business/assess/assessInfo.vue
@@ -1,63 +1,7 @@
 <template>
   <div class="assessment-detail">
     <!-- 鍩虹妗堜緥淇℃伅 -->
-    <case-basic-info
-      :case-id="caseId"
-      :show-attachment="true"
-    />
-    <!-- <el-card class="basic-info-card">
-      <div slot="header" class="clearfix">
-        <span>妗堜緥鍩烘湰淇℃伅</span>
-        <el-button
-          style="float: right; padding: 3px 0"
-          type="text"
-          @click="handleAttachmentPreview"
-        >
-          <i class="el-icon-folder-opened"></i> 鏌ョ湅闄勪欢
-        </el-button>
-      </div>
-
-      <el-descriptions :column="2" border>
-        <el-descriptions-item label="浣忛櫌鍙�">{{
-          assessmentData.caseNo
-        }}</el-descriptions-item>
-        <el-descriptions-item label="娼滃湪鎹愮尞鑰呭鍚�">{{
-          assessmentData.name || assessmentData.donorName
-        }}</el-descriptions-item>
-        <el-descriptions-item label="鎬у埆">
-          <dict-tag
-            :options="dict.type.sys_user_sex"
-            :value="assessmentData.sex"
-          />
-        </el-descriptions-item>
-        <el-descriptions-item label="骞撮緞"
-          >{{ assessmentData.age }}宀�</el-descriptions-item
-        >
-        <el-descriptions-item label="琛�鍨�">
-          {{ assessmentData.bloodtype }}
-        </el-descriptions-item>
-        <el-descriptions-item label="璇佷欢鍙风爜">{{
-          assessmentData.idcardno
-        }}</el-descriptions-item>
-        <el-descriptions-item label="鐤剧梾璇婃柇">{{
-          assessmentData.diagnosisname
-        }}</el-descriptions-item>
-        <el-descriptions-item label="鎵�鍦ㄥ尰鐤楁満鏋�">{{
-          assessmentData.treatmenthospitalname
-        }}</el-descriptions-item>
-        <el-descriptions-item label="鍗忚皟鍛�">{{
-          assessmentData.coordinatorName
-        }}</el-descriptions-item>
-        <el-descriptions-item label="璇勪及鏃堕棿">{{
-          assessmentData.assessTime
-        }}</el-descriptions-item>
-        <el-descriptions-item label="璇勪及鐘舵��">
-          <el-tag :type="statusFilter(assessmentData.assessState)">
-            {{ statusTextFilter(assessmentData.assessState) }}
-          </el-tag>
-        </el-descriptions-item>
-      </el-descriptions>
-    </el-card> -->
+    <case-basic-info :case-id="caseId" :show-attachment="true" />
 
     <el-card class="organ-assessment-card">
       <div slot="header" class="clearfix">
@@ -128,7 +72,7 @@
                   v-for="(assessment, index) in getOrganAssessments(scope.row)"
                   :key="`${scope.row.organno}_${index}`"
                   :label="`绗�${index + 1}娆¤瘎浼癭"
-                  :name="index"
+                  :name="String(index)"
                 >
                   <organ-assessment-form
                     :organ-data="scope.row"
@@ -195,7 +139,7 @@
                       class="assessment-detail-card"
                     >
                       <div
-                        v-if="getOrganAssessments(scope.row).length === 0"
+                        v-if="getOrganAssessments(scope.row).length == 0"
                         class="no-assessment"
                       >
                         <el-empty description="鏆傛棤璇勪及璁板綍"></el-empty>
@@ -229,18 +173,24 @@
                               border
                               class="detail-descriptions"
                             >
+                              <!-- 璇勪及鏃堕棿 -->
                               <el-descriptions-item label="璇勪及鏃堕棿" :span="2">
-                                <span class="time-text">{{
-                                  assessment.assessmentTime || "-"
-                                }}</span>
+                                <span class="time-text">
+                                  {{
+                                    parseTime(assessment.assessmentTime) ||
+                                      "鏈缃�"
+                                  }}
+                                </span>
                               </el-descriptions-item>
 
+                              <!-- 鍘熸湁鐨勮瘎浼颁汉淇℃伅 -->
                               <el-descriptions-item label="璇勪及浜�">
                                 <el-tag type="info" size="small">
                                   {{ assessment.assessor || "鏈~鍐�" }}
                                 </el-tag>
                               </el-descriptions-item>
 
+                              <!-- 鍔熻兘鐘舵�� -->
                               <el-descriptions-item label="鍔熻兘鐘舵��">
                                 <el-tag
                                   :type="
@@ -258,6 +208,7 @@
                                 </el-tag>
                               </el-descriptions-item>
 
+                              <!-- 璇勪及鎰忚 -->
                               <el-descriptions-item label="璇勪及鎰忚" :span="2">
                                 <div class="opinion-content">
                                   {{
@@ -267,6 +218,7 @@
                                 </div>
                               </el-descriptions-item>
 
+                              <!-- 闄勪欢鏁伴噺 -->
                               <el-descriptions-item
                                 label="闄勪欢鏁伴噺"
                                 :span="2"
@@ -308,52 +260,50 @@
                         <el-descriptions-item label="鑾峰彇鍓嶆椿妫�">
                           <el-tag
                             :type="
-                              scope.row.isbiopsybefore === '1'
+                              scope.row.isbiopsybefore == '1'
                                 ? 'success'
                                 : 'info'
                             "
                             size="small"
                           >
-                            {{ scope.row.isbiopsybefore === "1" ? "鏄�" : "鍚�" }}
+                            {{ scope.row.isbiopsybefore == "1" ? "鏄�" : "鍚�" }}
                           </el-tag>
                         </el-descriptions-item>
                         <el-descriptions-item label="鑾峰彇鍚庢椿妫�">
                           <el-tag
                             :type="
-                              scope.row.isbiopsyafter === '1'
+                              scope.row.isbiopsyafter == '1'
                                 ? 'success'
                                 : 'info'
                             "
                             size="small"
                           >
-                            {{ scope.row.isbiopsyafter === "1" ? "鏄�" : "鍚�" }}
+                            {{ scope.row.isbiopsyafter == "1" ? "鏄�" : "鍚�" }}
                           </el-tag>
                         </el-descriptions-item>
                         <el-descriptions-item label="杈圭紭鍣ㄥ畼">
                           <el-tag
                             :type="
-                              scope.row.ismarginalorgan === '1'
+                              scope.row.ismarginalorgan == '1'
                                 ? 'warning'
                                 : 'info'
                             "
                             size="small"
                           >
-                            {{
-                              scope.row.ismarginalorgan === "1" ? "鏄�" : "鍚�"
-                            }}
+                            {{ scope.row.ismarginalorgan == "1" ? "鏄�" : "鍚�" }}
                           </el-tag>
                         </el-descriptions-item>
                         <el-descriptions-item label="鐥呭師鑿岄槼鎬�">
                           <el-tag
                             :type="
-                              scope.row.ispathogenpositive === '1'
+                              scope.row.ispathogenpositive == '1'
                                 ? 'danger'
                                 : 'info'
                             "
                             size="small"
                           >
                             {{
-                              scope.row.ispathogenpositive === "1" ? "鏄�" : "鍚�"
+                              scope.row.ispathogenpositive == "1" ? "鏄�" : "鍚�"
                             }}
                           </el-tag>
                         </el-descriptions-item>
@@ -372,7 +322,11 @@
           </template>
         </el-table-column>
 
-        <el-table-column label="鍣ㄥ畼缂栧彿" align="center" prop="organnumber" />
+        <el-table-column label="鍣ㄥ畼缂栧彿" align="center" prop="organnumber">
+          <template slot-scope="scope">
+            {{ getOrganvalue(scope.row.organno) }}
+          </template>
+        </el-table-column>
 
         <el-table-column
           label="鑾峰彇鏈烘瀯"
@@ -413,9 +367,9 @@
           <template slot-scope="scope">
             <el-tag
               :type="
-                getOrganOverallStatus(scope.row) === 'completed'
+                getOrganOverallStatus(scope.row) == 'completed'
                   ? 'success'
-                  : getOrganOverallStatus(scope.row) === 'assessing'
+                  : getOrganOverallStatus(scope.row) == 'assessing'
                   ? 'primary'
                   : 'warning'
               "
@@ -554,14 +508,14 @@
   },
   computed: {
     isCoordinator() {
-      return this.currentUser.role === "coordinator";
+      return this.currentUser.role == "coordinator";
     },
     currentDepartment() {
       return this.currentUser.department;
     },
     // 鏍规嵁鎹愮尞鍐冲畾杩囨护鍚庣殑鍣ㄥ畼鍒楄〃
     filteredOrganAssessmentList() {
-      if (!this.organdecisionValues || this.organdecisionValues.length === 0) {
+      if (!this.organdecisionValues || this.organdecisionValues.length == 0) {
         return [];
       }
 
@@ -585,7 +539,7 @@
         return (
           assessments &&
           assessments.length > 0 &&
-          assessments.every(assessment => assessment.status === "assessed")
+          assessments.every(assessment => assessment.status == "assessed")
         );
       });
     },
@@ -611,20 +565,25 @@
     this.infoid = this.$route.query.infoid;
     this.caseId = this.infoid;
     this.assessmentId = this.$route.query.id;
-    this.isEdit = this.$route.query.assess === "true";
+    this.isEdit = this.$route.query.assess == "true";
     this.getAssessmentDetail();
   },
   methods: {
     // 鏍规嵁瀛楀吀value鑾峰彇label
     getOrganLabel(organValue) {
-      const dictItem = this.organDict.find(item => item.value === organValue);
+      const dictItem = this.organDict.find(item => item.value == organValue);
       return dictItem ? dictItem.label : organValue;
+    },
+    getOrganvalue(organValue) {
+      const dictItem = this.organDict.find(item => item.value == organValue);
+
+      return dictItem ? dictItem.value : organValue;
     },
 
     // Tab鐐瑰嚮浜嬩欢
     handleTabClick(organ, tab) {
       if (tab.name !== "add") {
-        this.activeTabMap.set(organ.organno, tab.name);
+        this.activeTabMap.set(organ.organno, String(tab.name));
       }
     },
     // 鑾峰彇鍔熻兘鐘舵�佹爣绛剧被鍨�
@@ -651,7 +610,7 @@
 
     // 鏄剧ず闄勪欢鍒楄〃
     showAttachmentList(attachments, assessmentNumber) {
-      if (!attachments || attachments.length === 0) {
+      if (!attachments || attachments.length == 0) {
         this.$message.info(`绗�${assessmentNumber}娆¤瘎浼版殏鏃犻檮浠禶);
         return;
       }
@@ -694,7 +653,7 @@
       if (!organ.assesscontent) return [];
       try {
         const assessData =
-          typeof organ.assesscontent === "string"
+          typeof organ.assesscontent == "string"
             ? JSON.parse(organ.assesscontent)
             : organ.assesscontent;
 
@@ -780,7 +739,7 @@
         const saveMethod = this.assessmentData.id ? assessedit : assessAdd;
         const response = await saveMethod(saveData);
 
-        if (response.code === 200) {
+        if (response.code == 200) {
           this.$message.success("璇勪及琛ㄤ繚瀛樻垚鍔燂紒");
           if (!this.assessmentData.id && response.data) {
             this.assessmentData.id = response.data;
@@ -806,6 +765,7 @@
     async handleOrganDecisionChange(newDecision) {
       const oldDecision = [...this.prevOrgandecisionValues];
       this.autoHandleDecisionChange(newDecision);
+      console.log(newDecision);
 
       const removedDecisions = oldDecision.filter(
         item => !newDecision.includes(item)
@@ -818,7 +778,7 @@
       this.prevOrgandecisionValues = [...newDecision];
       this.$forceUpdate();
 
-      if (newDecision.length === 0) {
+      if (newDecision.length == 0) {
         this.expandedRowKeys = [];
       }
     },
@@ -917,7 +877,7 @@
 
       for (const organValue of relatedOrgans) {
         const organIndex = this.organAssessmentList.findIndex(
-          organ => organ.organno === organValue && organ.delFlag !== "1"
+          organ => organ.organno == organValue && organ.delFlag !== "1"
         );
 
         if (organIndex !== -1) {
@@ -959,7 +919,7 @@
     // 纭繚鍣ㄥ畼瀛樺湪
     ensureOrganExists(organValue) {
       const exists = this.organAssessmentList.some(
-        organ => organ.organno === organValue && organ.delFlag !== "1"
+        organ => organ.organno == organValue && organ.delFlag !== "1"
       );
 
       if (!exists) {
@@ -991,7 +951,7 @@
       try {
         const response = await evaluateBaseInfolist({ infoid: this.infoid });
 
-        if (response.code === 200) {
+        if (response.code == 200) {
           this.handleResponseData(response);
         } else {
           this.$message.error("鑾峰彇璇︽儏澶辫触锛�" + (response.msg || "鏈煡閿欒"));
@@ -1065,7 +1025,7 @@
         const organno = organ.organno;
 
         // 濡傛灉 assesscontent 鏄瓧绗︿覆锛岀‘淇濆畠鏄湁鏁堢殑 JSON
-        if (organ.assesscontent && typeof organ.assesscontent === "string") {
+        if (organ.assesscontent && typeof organ.assesscontent == "string") {
           try {
             JSON.parse(organ.assesscontent);
           } catch (error) {
@@ -1081,9 +1041,9 @@
 
         const assessments = this.getOrganAssessments(organ);
         const activeTab = this.activeTabMap.has(organno)
-          ? this.activeTabMap.get(organno)
+          ? String(this.activeTabMap.get(organno))
           : assessments.length > 0
-          ? 0
+          ? "0"
           : "summary";
 
         return {
@@ -1101,7 +1061,7 @@
       return {
         index: index,
         status: "pending",
-        assessmentTime: "",
+        assessmentTime: new Date().toLocaleString("zh-CN"), // 娣诲姞榛樿璇勪及鏃堕棿
         assessor: "",
         functionStatus: "",
         assessmentOpinion: "",
@@ -1125,20 +1085,20 @@
     // 鑾峰彇鍣ㄥ畼鏁翠綋鐘舵��
     getOrganOverallStatus(organ) {
       const assessments = this.getOrganAssessments(organ);
-      if (assessments.length === 0) {
+      if (assessments.length == 0) {
         return "pending";
       }
 
       const validAssessments = assessments.filter(a => a.delFlag !== "1");
-      if (validAssessments.length === 0) {
+      if (validAssessments.length == 0) {
         return "pending";
       }
 
       const allAssessed = validAssessments.every(
-        assessment => assessment.status === "assessed"
+        assessment => assessment.status == "assessed"
       );
       const someAssessed = validAssessments.some(
-        assessment => assessment.status === "assessed"
+        assessment => assessment.status == "assessed"
       );
 
       if (allAssessed) return "completed";
@@ -1167,7 +1127,7 @@
       } else {
         this.expandedRowKeys = [key];
         this.organAssessmentList.forEach(item => {
-          item.expanded = item.organno === key;
+          item.expanded = item.organno == key;
         });
       }
     },
@@ -1185,14 +1145,15 @@
       const assessments = this.getOrganAssessments(organ);
       const newAssessment = {
         ...this.getDefaultAssessment(assessments.length),
-        assessor: this.currentUser.name
+        assessor: this.currentUser.name,
+        assessmentTime: new Date().toLocaleString("zh-CN") // 璁剧疆鍏蜂綋鐨勮瘎浼版椂闂�
       };
 
       const newAssessments = [...assessments, newAssessment];
       this.$set(organ, "assesscontent", JSON.stringify(newAssessments));
 
-      organ.activeTab = assessments.length;
-      this.activeTabMap.set(organ.organno, assessments.length);
+      organ.activeTab = String(assessments.length);
+      this.activeTabMap.set(organ.organno, String(assessments.length));
 
       this.$message.success("宸叉坊鍔犳柊鐨勮瘎浼�");
     },
@@ -1203,32 +1164,25 @@
       this.deleteOrganAssessment(organData, assessmentIndex);
     },
     // 澶勭悊璇勪及淇濆瓨
+    // 鍦� AssessmentDetail.vue 鐨� handleSaveAssessment 鏂规硶涓�
     handleSaveAssessment(data) {
       const { organData, assessmentData, assessmentIndex } = data;
       const assessments = this.getOrganAssessments(organData);
 
-      console.log("淇濆瓨璇勪及鏁版嵁:", data);
-
       if (assessments[assessmentIndex]) {
-        // 鍒涘缓鏂扮殑璇勪及鏁扮粍
         const newAssessments = [...assessments];
         newAssessments[assessmentIndex] = {
           ...assessments[assessmentIndex],
           ...assessmentData,
-          status: "assessed", // 鏍囪涓哄凡璇勪及
-          assessmentTime: new Date().toISOString(), // 璁剧疆璇勪及鏃堕棿
-          delFlag: "0" // 纭繚鍒犻櫎鏍囧織
+          status: "assessed",
+          assessmentTime:
+            assessmentData.assessmentTime || new Date().toLocaleString("zh-CN"),
+          delFlag: "0"
         };
 
-        // 鏇存柊 assesscontent
         this.$set(organData, "assesscontent", JSON.stringify(newAssessments));
-
-        // 寮哄埗閲嶆柊娓叉煋
         this.$forceUpdate();
-
         this.$message.success("璇勪及淇濆瓨鎴愬姛");
-
-        // 妫�鏌ユ槸鍚﹂渶瑕佽嚜鍔ㄥ垏鎹㈠埌涓嬩竴涓瘎浼�
         this.checkAndSwitchTab(organData, assessmentIndex);
       }
     },
@@ -1238,8 +1192,8 @@
       const assessments = this.getOrganAssessments(organData);
       if (currentIndex < assessments.length - 1) {
         // 濡傛灉杩樻湁涓嬩竴涓瘎浼帮紝鑷姩鍒囨崲鍒颁笅涓�涓�
-        organData.activeTab = currentIndex + 1;
-        this.activeTabMap.set(organData.organno, currentIndex + 1);
+        organData.activeTab = String(currentIndex + 1);
+        this.activeTabMap.set(organData.organno, String(currentIndex + 1));
       } else {
         // 濡傛灉娌℃湁涓嬩竴涓瘎浼帮紝鍒囨崲鍒版眹鎬婚〉
         organData.activeTab = "summary";
@@ -1279,14 +1233,14 @@
           this.$set(organ, "assesscontent", JSON.stringify(newAssessments));
 
           // 澶勭悊tab鍒囨崲
-          if (newAssessments.length === 0) {
+          if (newAssessments.length == 0) {
             organ.activeTab = "summary";
             this.activeTabMap.set(organ.organno, "summary");
-          } else if (organ.activeTab === assessmentIndex) {
+          } else if (organ.activeTab == String(assessmentIndex)) {
             const newIndex = Math.max(0, assessmentIndex - 1);
-            organ.activeTab = newIndex;
-            this.activeTabMap.set(organ.organno, newIndex);
-          } else if (organ.activeTab === "summary") {
+            organ.activeTab = String(newIndex);
+            this.activeTabMap.set(organ.organno, String(newIndex));
+          } else if (organ.activeTab == "summary") {
             this.activeTabMap.set(organ.organno, "summary");
           }
 
@@ -1301,16 +1255,18 @@
     // 鑾峰彇鏈�鏂拌瘎浼版椂闂�
     getLatestAssessmentTime(organ) {
       const assessments = this.getOrganAssessments(organ);
-      if (assessments.length === 0) return null;
+      if (assessments.length == 0) return null;
 
       const assessed = assessments.filter(
         a => a.assessmentTime && a.delFlag !== "1"
       );
-      if (assessed.length === 0) return null;
+      if (assessed.length == 0) return null;
 
-      return assessed.sort(
-        (a, b) => new Date(b.assessmentTime) - new Date(a.assessmentTime)
-      )[0].assessmentTime;
+      return this.parseTime(
+        assessed.sort(
+          (a, b) => new Date(b.assessmentTime) - new Date(a.assessmentTime)
+        )[0].assessmentTime
+      );
     },
 
     // 鑾峰彇璇勪及鐘舵�佹爣绛剧被鍨�
@@ -1372,7 +1328,7 @@
       if (this.assessmentData.assessannex) {
         try {
           const annexData =
-            typeof this.assessmentData.assessannex === "string"
+            typeof this.assessmentData.assessannex == "string"
               ? JSON.parse(this.assessmentData.assessannex)
               : this.assessmentData.assessannex;
 
@@ -1411,7 +1367,7 @@
 
         const response = await assessedit(updateData);
 
-        if (response.code === 200) {
+        if (response.code == 200) {
           this.$message.success("璇勪及瀹屾垚纭鎴愬姛");
           this.assessmentData.assessState = "3";
           this.isEdit = false;
@@ -1519,6 +1475,7 @@
 .fixed-width .el-button {
   margin: 0 2px;
 }
+
 /* 姹囨�婚〉闈㈡牱寮� */
 .assessment-summary {
   padding: 10px;

--
Gitblit v1.9.3