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

---
 src/views/business/appear/caseDetail.vue |  110 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 88 insertions(+), 22 deletions(-)

diff --git a/src/views/business/appear/caseDetail.vue b/src/views/business/appear/caseDetail.vue
index 58eb5c6..c13f35b 100644
--- a/src/views/business/appear/caseDetail.vue
+++ b/src/views/business/appear/caseDetail.vue
@@ -29,11 +29,15 @@
         </el-descriptions-item>
         <el-descriptions-item label="Rh闃存��">
           {{
-            caseData.rhYin === "1" ? "鏄�" : caseData.rhYin === "0" ? "鍚�" : "-"
+            caseData.rhYin == "1" ? "鏄�" : caseData.rhYin == "0" ? "鍚�" : "-"
           }}
         </el-descriptions-item>
+
         <el-descriptions-item label="璇佷欢绫诲瀷">
-          {{ getIdCardTypeText(caseData.idcardtype) }}
+          <dict-tag
+            :options="dict.type.sys_IDType"
+            :value="caseData.idcardtype"
+          />
         </el-descriptions-item>
         <el-descriptions-item label="璇佷欢鍙风爜">{{
           caseData.idcardno || "-"
@@ -47,12 +51,16 @@
         <el-descriptions-item label="绫嶈疮">{{
           caseData.nativeplace || "-"
         }}</el-descriptions-item>
-        <el-descriptions-item label="瀛﹀巻">{{
-          caseData.education || "-"
-        }}</el-descriptions-item>
-        <el-descriptions-item label="鑱屼笟">{{
-          caseData.occupation || "-"
-        }}</el-descriptions-item>
+        <el-descriptions-item label="瀛﹀巻">
+          <dict-tag
+            :options="dict.type.sys_education"
+            :value="String(caseData.education)"
+        /></el-descriptions-item>
+        <el-descriptions-item label="鑱屼笟">
+          <dict-tag
+            :options="dict.type.sys_occupation"
+            :value="caseData.occupation"
+        /></el-descriptions-item>
         <el-descriptions-item label="鍑虹敓鏃ユ湡">{{
           formatDate(caseData.birthday)
         }}</el-descriptions-item>
@@ -63,7 +71,7 @@
     </el-card>
 
     <!-- 鍦板潃淇℃伅妯″潡 -->
-    <!-- <el-card class="detail-section">
+    <el-card class="detail-section">
       <div slot="header" class="section-header">
         <span class="section-title">鍦板潃淇℃伅</span>
       </div>
@@ -75,7 +83,7 @@
           {{ getFullResidenceAddress() }}
         </el-descriptions-item>
       </el-descriptions>
-    </el-card> -->
+    </el-card>
 
     <!-- 鍖荤枟淇℃伅妯″潡 -->
     <el-card class="detail-section">
@@ -106,7 +114,13 @@
           >{{ caseData.infectiousOther }}</el-descriptions-item
         >
         <el-descriptions-item label="鏄惁闇�瑕佽浆杩�">
-          {{ caseData.isTransport === "2" ? "闇�瑕�" : "涓嶉渶瑕�" }}
+          {{
+            caseData.isTransport == "1"
+              ? "涓嶉渶瑕�"
+              : caseData.isTransport == "2"
+              ? "闇�瑕�"
+              : "寰呭畾"
+          }}
         </el-descriptions-item>
       </el-descriptions>
     </el-card>
@@ -172,7 +186,7 @@
           formatDateTime(caseData.createTime)
         }}</el-descriptions-item>
         <el-descriptions-item label="鏄惁缁堟妗堜緥">
-          {{ caseData.terminationCase === "1" ? "宸茬粓姝�" : "杩涜涓�" }}
+          {{ caseData.terminationCase == "1" ? "宸茬粓姝�" : "杩涜涓�" }}
         </el-descriptions-item>
       </el-descriptions>
     </el-card>
@@ -289,15 +303,15 @@
     <!-- 瀹℃壒淇℃伅妯″潡锛堢姸鎬佷负宸插悓鎰忔垨宸查┏鍥炴椂鏄剧ず锛� -->
     <el-card
       class="detail-section"
-      v-if="caseData.reportStatus === '3' || caseData.reportStatus === '4'"
+      v-if="caseData.reportStatus == '3' || caseData.reportStatus == '4'"
     >
       <div slot="header" class="section-header">
         <span class="section-title">瀹℃壒淇℃伅</span>
       </div>
       <el-descriptions :column="1" border>
         <el-descriptions-item label="瀹℃壒缁撴灉">
-          <el-tag :type="caseData.reportStatus === '3' ? 'success' : 'danger'">
-            {{ caseData.reportStatus === "3" ? "宸插悓鎰�" : "宸查┏鍥�" }}
+          <el-tag :type="caseData.reportStatus == '3' ? 'success' : 'danger'">
+            {{ caseData.reportStatus == "3" ? "宸插悓鎰�" : "宸查┏鍥�" }}
           </el-tag>
         </el-descriptions-item>
         <el-descriptions-item
@@ -331,7 +345,7 @@
       <div slot="header" class="section-header">
         <span class="section-title">杞繍淇℃伅</span>
         <el-button
-          v-if="caseData.reportStatus === '3'"
+          v-if="caseData.reportStatus == '3'"
           type="primary"
           size="small"
           icon="el-icon-truck"
@@ -382,7 +396,7 @@
     <!-- 鏃犺浆杩愪俊鎭絾闇�瑕佽浆杩愮殑鎻愮ず -->
     <el-card
       class="detail-section"
-      v-else-if="caseData.isTransport === '2' && caseData.reportStatus === '3'"
+      v-else-if="caseData.isTransport == '2' && caseData.reportStatus == '3'"
     >
       <div slot="header" class="section-header">
         <span class="section-title">杞繍淇℃伅</span>
@@ -428,6 +442,15 @@
     pdf,
     FilePreviewDialog
   },
+  dicts: [
+    "sys_user_sex",
+    "sys_BloodType",
+    "sys_Infectious",
+    "sys_IDType",
+    "sys_education",
+    "sys_occupation",
+    "reject_type"
+  ],
   props: {
     caseData: {
       type: Object,
@@ -438,13 +461,13 @@
       default: true
     }
   },
-  dicts: ["sys_user_sex", "sys_BloodType", "sys_Infectious", "reject_type"],
   data() {
     return {
       // 棰勮鐩稿叧
       previewVisible: false,
       currentPreviewFile: null,
-
+      // 鍔ㄦ�佽绠楃殑 baseUrlHt
+      baseUrlHt: "",
       // 鍥剧墖棰勮鐩稿叧
       imagePreviewUrls: [],
       rejectOptions: [
@@ -471,11 +494,31 @@
         .filter(url => url);
     }
   },
+  created() {
+    this.calculateBaseUrl();
+  },
   methods: {
     handleClose() {
       this.$emit("close");
     },
+    /** 璁$畻 baseUrlHt */
+    calculateBaseUrl() {
+      const currentUrl = window.location.href;
 
+      try {
+        const urlObj = new URL(currentUrl);
+        const hostname = urlObj.hostname;
+        this.baseUrlHt = `http://${hostname}:9095`;
+      } catch (error) {
+        console.error("瑙f瀽URL澶辫触:", error);
+        const match = currentUrl.match(/https?:\/\/([^:\/]+)/);
+        if (match) {
+          this.baseUrlHt = `http://${match[1]}:9095`;
+        } else {
+          this.baseUrlHt = "http://localhost:9095";
+        }
+      }
+    },
     // 鏍煎紡鍖栨棩鏈熸椂闂�
     formatDateTime(dateTime) {
       if (!dateTime) return "-";
@@ -657,7 +700,30 @@
     },
 
     getFileUrl(file) {
-      return file.path || file.fileUrl || "";
+      if (!file) return "";
+      const url = file.path || file.fileUrl || file.url || "";
+      return this.processFileUrl(url);
+    },
+    // URL澶勭悊鍑芥暟 - 灏嗗畬鏁碪RL鏇挎崲涓篵aseUrlHt
+    processFileUrl(url) {
+      if (!url) return "";
+
+      // 濡傛灉宸茬粡鏄畬鏁寸殑http鎴杊ttps閾炬帴
+      if (url.startsWith("http://") || url.startsWith("https://")) {
+        // 鎵惧埌绗笁涓枩鏉犲悗鐨勪綅缃紝鎻愬彇璺緞閮ㄥ垎
+        const thirdSlashIndex = url.indexOf("/", 8);
+        if (thirdSlashIndex !== -1) {
+          return `${this.baseUrlHt}${url.substring(thirdSlashIndex)}`;
+        }
+        return this.baseUrlHt;
+      }
+
+      // 鐩稿璺緞澶勭悊
+      if (url.startsWith("/")) {
+        return `${this.baseUrlHt}${url}`;
+      }
+
+      return `${this.baseUrlHt}/${url}`;
     },
 
     getImagePreviewList(file) {
@@ -719,7 +785,7 @@
     handlePreview(file) {
       this.currentPreviewFile = {
         fileName: file.fileName,
-        fileUrl: this.getFileUrl(file),
+        fileUrl: this.getFileUrl(file), // 宸茬粡澶勭悊杩嘦RL
         fileType: this.getFileType(file.fileName)
       };
       this.previewVisible = true;
@@ -743,7 +809,7 @@
 
     // 鏂囦欢涓嬭浇
     handleDownload(file) {
-      const fileUrl = this.getFileUrl(file);
+      const fileUrl = this.getFileUrl(file); // 浣跨敤澶勭悊杩囩殑URL
       const fileName = file.fileName;
 
       if (fileUrl) {

--
Gitblit v1.9.3