From e15d032770157952bab8d9b15177ac03d736851c Mon Sep 17 00:00:00 2001
From: WXL <wl_5969728@163.com>
Date: 星期六, 09 五月 2026 17:34:53 +0800
Subject: [PATCH] 医疗信息

---
 src/views/business/appear/index.vue |  204 ++++++++++++++++++++++++++-------------------------
 1 files changed, 104 insertions(+), 100 deletions(-)

diff --git a/src/views/business/appear/index.vue b/src/views/business/appear/index.vue
index 4c578c3..e4a0e19 100644
--- a/src/views/business/appear/index.vue
+++ b/src/views/business/appear/index.vue
@@ -16,10 +16,10 @@
             style="width: 200px"
           />
         </el-form-item>
-        <el-form-item label="鎹愮尞鑰呭鍚�" prop="name">
+        <el-form-item label="鎮h�呭鍚�" prop="name">
           <el-input
             v-model="queryParams.name"
-            placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+            placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
             clearable
             style="width: 200px"
           />
@@ -88,7 +88,26 @@
         width="160"
       />
       <el-table-column
-        label="鎹愮尞鑰呭鍚�"
+        label="鐘舵��"
+        align="center"
+        prop="reportStatus"
+        width="100"
+      >
+        <template #default="scope">
+          <el-tag :type="scope.row.reportStatus | statusFilter">
+            {{ scope.row.reportStatus | statusTextFilter }}
+          </el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="杞繍鐘舵��" align="center" width="100">
+        <template #default="scope">
+          <el-tag :type="getTransportStatusTag(scope.row)">
+            {{ getTransportStatusText(scope.row) }}
+          </el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column
+        label="鎮h�呭鍚�"
         align="center"
         prop="name"
         width="100"
@@ -127,32 +146,8 @@
         prop="treatmenthospitalname"
         width="150"
       />
-      <el-table-column
-        label="鐘舵��"
-        align="center"
-        prop="reportStatus"
-        width="100"
-      >
-        <template #default="scope">
-          <el-tag :type="scope.row.reportStatus | statusFilter">
-            {{ scope.row.reportStatus | statusTextFilter }}
-          </el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column label="杞繍鐘舵��" align="center" width="100">
-        <template #default="scope">
-          <el-tag :type="getTransportStatusTag(scope.row)">
-            {{ getTransportStatusText(scope.row) }}
-          </el-tag>
-        </template>
-      </el-table-column>
-      <el-table-column
-        label="鎿嶄綔"
-        align="center"
-        fixed="right"
-        class-name="small-padding fixed-width"
-        width="350"
-      >
+
+      <el-table-column label="鎿嶄綔" align="center" fixed="right" width="350">
         <template #default="scope">
           <el-button
             size="mini"
@@ -179,13 +174,13 @@
             icon="el-icon-check"
             @click="handleApprove(scope.row)"
             v-if="scope.row.reportStatus === '2' && scope.row.delFlag === 0"
-            >瀹℃壒</el-button
+            >纭</el-button
           >
           <el-button
             size="mini"
             type="text"
             icon="el-icon-truck"
-            :type="shouldShowTransportButton(scope.row) ? 'primary' : 'text'"
+            :type="getTransportStatustype(scope.row)"
             @click="handleTransport(scope.row)"
             v-if="shouldShowTransportButton(scope.row)"
             :disabled="!canGoToTransport(scope.row)"
@@ -216,9 +211,9 @@
       <case-detail :caseData="currentCase" @close="detailOpen = false" />
     </el-dialog>
 
-    <!-- 瀹℃壒寮规 -->
+    <!-- 纭寮规 -->
     <el-dialog
-      title="妗堜緥瀹℃壒"
+      title="妗堜緥纭"
       :visible.sync="approveOpen"
       width="80vw"
       append-to-body
@@ -236,7 +231,7 @@
           </div>
         </el-aside>
 
-        <!-- 鍙充晶锛氬鎵硅〃鍗� -->
+        <!-- 鍙充晶锛氱‘璁よ〃鍗� -->
         <el-main style="padding: 20px;">
           <el-form
             ref="approveForm"
@@ -244,17 +239,17 @@
             :rules="approveRules"
             label-width="100px"
           >
-            <el-form-item label="瀹℃壒缁撴灉" prop="approveResult">
+            <el-form-item label="纭缁撴灉" prop="approveResult">
               <el-radio-group v-model="approveForm.approveResult">
                 <el-radio label="3">鍚屾剰</el-radio>
                 <el-radio label="4">椹冲洖</el-radio>
               </el-radio-group>
             </el-form-item>
-            <el-form-item label="瀹℃壒鎰忚" prop="approveOpinion">
+            <el-form-item label="纭鎰忚" prop="approveOpinion">
               <el-input
                 type="textarea"
                 v-model="approveForm.approveOpinion"
-                placeholder="璇疯緭鍏ヨ缁嗙殑瀹℃壒鎰忚锛屽寘鎷�氳繃鎴栭┏鍥炵殑鐞嗙敱"
+                placeholder="璇疯緭鍏ヨ缁嗙殑纭鎰忚锛屽寘鎷�氳繃鎴栭┏鍥炵殑鐞嗙敱"
                 :rows="6"
                 maxlength="500"
                 show-word-limit
@@ -305,10 +300,10 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="鎹愮尞鑰呭鍚�" prop="name">
+              <el-form-item label="鎮h�呭鍚�" prop="name">
                 <el-input
                   v-model="editForm.name"
-                  placeholder="璇疯緭鍏ユ崘鐚�呭鍚�"
+                  placeholder="璇疯緭鍏ユ偅鑰呭鍚�"
                 />
               </el-form-item>
             </el-col>
@@ -361,10 +356,10 @@
                   placeholder="璇烽�夋嫨琛�鍨�"
                   style="width: 100%"
                 >
-                  <el-option label="A鍨�" value="A" />
-                  <el-option label="B鍨�" value="B" />
-                  <el-option label="O鍨�" value="O" />
-                  <el-option label="AB鍨�" value="AB" />
+                  <el-option label="A鍨�" :value="1" />
+                  <el-option label="B鍨�" :value="2" />
+                  <el-option label="O鍨�" :value="3" />
+                  <el-option label="AB鍨�" :value="4" />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -400,9 +395,11 @@
                   placeholder="璇烽�夋嫨璇佷欢绫诲瀷"
                   style="width: 100%"
                 >
-                  <el-option label="韬唤璇�" value="1" />
-                  <el-option label="鎶ょ収" value="2" />
-                  <el-option label="鍐涘畼璇�" value="3" />
+                  <el-option
+                    v-for="item in dict.type.sys_IDType"
+                    :label="item.label"
+                    :value="item.value"
+                  />
                 </el-select>
               </el-form-item>
             </el-col>
@@ -632,10 +629,18 @@
           <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="浼犳煋鐥呮儏鍐�" prop="infectious">
-                <el-input
+                <el-checkbox-group v-model="editForm.infectious">
+                  <el-checkbox
+                    v-for="item in dict.type.sys_Infectious"
+                    :label="item.value"
+                    :value="item.value"
+                    >{{ item.label }}</el-checkbox
+                  >
+                </el-checkbox-group>
+                <!-- <el-input
                   v-model="editForm.infectious"
                   placeholder="璇疯緭鍏ヤ紶鏌撶梾鎯呭喌"
-                />
+                /> -->
               </el-form-item>
             </el-col>
             <el-col :span="12">
@@ -744,24 +749,16 @@
               </el-form-item>
             </el-col>
             <el-col :span="12">
-              <el-form-item label="鎶ュ憡鑰呯紪鍙�" prop="infoNo">
+              <el-form-item label="鎶ュ憡鑰呯數璇�" prop="reporterphone">
                 <el-input
-                  v-model="editForm.infoNo"
-                  placeholder="璇疯緭鍏ユ姤鍛婅�呯紪鍙�"
+                  v-model="editForm.phone"
+                  placeholder="璇疯緭鍏ユ姤鍛婅�呰仈绯荤數璇�"
                 />
               </el-form-item>
             </el-col>
           </el-row>
 
           <el-row :gutter="20">
-            <el-col :span="12">
-              <el-form-item label="鎶ュ憡鑰呯數璇�" prop="reporterphone">
-                <el-input
-                  v-model="editForm.reporterphone"
-                  placeholder="璇疯緭鍏ユ姤鍛婅�呰仈绯荤數璇�"
-                />
-              </el-form-item>
-            </el-col>
             <el-col :span="12">
               <el-form-item label="鍗忚皟鍛樺鍚�" prop="coordinatorName">
                 <el-input
@@ -770,23 +767,12 @@
                 />
               </el-form-item>
             </el-col>
-          </el-row>
-
-          <el-row :gutter="20">
             <el-col :span="12">
               <el-form-item label="鍗忚皟鍛樼紪鍙�" prop="coordinatorNo">
                 <el-input
                   v-model="editForm.coordinatorNo"
                   placeholder="璇疯緭鍏ュ崗璋冨憳缂栧彿"
                 />
-              </el-form-item>
-            </el-col>
-            <el-col :span="12">
-              <el-form-item label="鏄惁缁堟妗堜緥" prop="terminationCase">
-                <el-radio-group v-model="editForm.terminationCase">
-                  <el-radio label="0">杩涜涓�</el-radio>
-                  <el-radio label="1">宸茬粓姝�</el-radio>
-                </el-radio-group>
               </el-form-item>
             </el-col>
           </el-row>
@@ -966,7 +952,7 @@
     UploadAttachment,
     FilePreviewDialog
   },
-  dicts: ["sys_user_sex", "sys_BloodType"],
+  dicts: ["sys_user_sex", "sys_BloodType", "sys_Infectious", "sys_IDType"],
   data() {
     return {
       // 閬僵灞�
@@ -984,7 +970,7 @@
       caseList: [],
       // 璇︽儏寮规鏄惁鏄剧ず
       detailOpen: false,
-      // 瀹℃壒寮规鏄惁鏄剧ず
+      // 纭寮规鏄惁鏄剧ず
       approveOpen: false,
       // 缂栬緫寮规鏄惁鏄剧ず
       editOpen: false,
@@ -1002,19 +988,19 @@
         name: undefined,
         reportStatus: undefined
       },
-      // 瀹℃壒琛ㄥ崟
+      // 纭琛ㄥ崟
       approveForm: {
         id: null,
         approveResult: "3",
         approveOpinion: ""
       },
-      // 瀹℃壒琛ㄥ崟楠岃瘉
+      // 纭琛ㄥ崟楠岃瘉
       approveRules: {
         approveResult: [
-          { required: true, message: "璇烽�夋嫨瀹℃壒缁撴灉", trigger: "change" }
+          { required: true, message: "璇烽�夋嫨纭缁撴灉", trigger: "change" }
         ],
         approveOpinion: [
-          { required: true, message: "璇疯緭鍏ュ鎵规剰瑙�", trigger: "blur" }
+          { required: true, message: "璇疯緭鍏ョ‘璁ゆ剰瑙�", trigger: "blur" }
         ]
       },
       // 缂栬緫琛ㄥ崟
@@ -1024,9 +1010,7 @@
         caseNo: [
           { required: true, message: "璇疯緭鍏ユ渚嬬紪鍙�", trigger: "blur" }
         ],
-        name: [
-          { required: true, message: "璇疯緭鍏ユ崘鐚�呭鍚�", trigger: "blur" }
-        ],
+        name: [{ required: true, message: "璇疯緭鍏ユ偅鑰呭鍚�", trigger: "blur" }],
         sex: [{ required: true, message: "璇烽�夋嫨鎬у埆", trigger: "change" }],
         age: [{ required: true, message: "璇疯緭鍏ュ勾榫�", trigger: "blur" }],
         diagnosisname: [
@@ -1052,7 +1036,7 @@
     statusFilter(reportStatus) {
       const statusMap = {
         "1": "info", // 宸蹭笂鎶�
-        "2": "warning", // 宸查槄璇伙紙寰呭鎵癸級
+        "2": "warning", // 宸查槄璇伙紙寰呯‘璁わ級
         "3": "success", // 宸插悓鎰�
         "4": "danger" // 宸查┏鍥�
       };
@@ -1112,12 +1096,29 @@
         ) {
           return "鏌ョ湅杞繍鍗�";
         } else {
-          return "鍓嶅線杞繍鍗�";
+          return "鍒涘缓杞繍鍗�";
         }
       }
-      return "杞繍";
+      return "鏃犻渶杞繍";
     },
-
+    getTransportStatustype(row) {
+      if (row.isTransport == "1") {
+        return "info"; // 涓嶉渶瑕佽浆杩�
+      }
+      if (
+        row.serviceTransport &&
+        Array.isArray(row.serviceTransport) &&
+        row.serviceTransport.length > 0
+      ) {
+        // 鏍规嵁杞繍鍗曠姸鎬佹樉绀轰笉鍚岄鑹�
+        const transport = row.serviceTransport[0];
+        if (transport.transitStatus) {
+          return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
+        }
+        return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
+      }
+      return "success"; // 闇�瑕佽浆杩愪絾鏃犺浆杩愪俊鎭�
+    },
     /** 鑾峰彇杞繍鐘舵�佹爣绛炬牱寮� */
     getTransportStatusTag(row) {
       if (row.isTransport === "1") {
@@ -1148,7 +1149,7 @@
         }
         return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
       }
-      return "danger"; // 闇�瑕佽浆杩愪絾鏃犺浆杩愪俊鎭�
+      return "success"; // 闇�瑕佽浆杩愪絾鏃犺浆杩愪俊鎭�
     },
 
     /** 鑾峰彇杞繍鐘舵�佹枃鏈� */
@@ -1197,7 +1198,7 @@
           ) {
             // 宸叉湁杞繍鍗曪紝璺宠浆鍒拌浆杩愬崟璇︽儏椤�
             const transport = caseData.serviceTransport[0];
-            this.goToTransportDetail(transport.id, row.caseNo);
+            this.goToTransportDetail(transport.id, row.name);
           } else {
             // 娌℃湁杞繍鍗曪紝璺宠浆鍒板垱寤鸿浆杩愬崟椤甸潰
             this.goToCreateTransport(row);
@@ -1213,12 +1214,11 @@
 
     /** 璺宠浆鍒板垱寤鸿浆杩愬崟椤甸潰 */
     goToCreateTransport(caseData) {
-      // 杩欓噷鍙互璺宠浆鍒板垱寤鸿浆杩愬崟鐨勯〉闈�
       // 鏂瑰紡1锛氬湪鏂伴〉闈㈡墦寮�
       this.$router.push({
         path: "/report/transfer",
         query: {
-          autoCreate: "true",
+          autoCreate: "true", //璺宠浆杞繍鏍囪瘑
           caseId: caseData.id,
           caseNo: caseData.caseNo,
           patName: caseData.name,
@@ -1228,9 +1228,6 @@
           treatmentHospitalName: caseData.treatmenthospitalname
         }
       });
-
-      // 鏂瑰紡2锛氬湪褰撳墠椤甸潰鎵撳紑寮规锛堟帹鑽愶級
-      // this.openTransportDialog(caseData);
     },
 
     /** 鎵撳紑杞繍鍗曞脊妗� */
@@ -1265,12 +1262,12 @@
     },
 
     /** 璺宠浆鍒拌浆杩愬崟璇︽儏椤� */
-    goToTransportDetail(transportId, caseNo) {
+    goToTransportDetail(transportId, name) {
       this.$router.push({
         path: "/report/transfer",
         query: {
-          id: transportId,
-          caseNo: caseNo
+          autoCreate: "true",
+          patName: name
         }
       });
     },
@@ -1356,6 +1353,12 @@
 
           this.currentCase = data;
           this.editForm = { ...data };
+          this.editForm.idcardtype = this.editForm.idcardtype.toString();
+          console.log(this.editForm.idcardtype);
+          this.editForm.infectious = this.editForm.infectious
+            .split(",")
+            .filter(item => item.trim() !== "");
+
           this.editOpen = true;
           this.$nextTick(() => {
             this.$refs.editForm && this.$refs.editForm.clearValidate();
@@ -1380,7 +1383,7 @@
       });
     },
 
-    /** 瀹℃壒鎸夐挳鎿嶄綔 */
+    /** 纭鎸夐挳鎿嶄綔 */
     async handleApprove(row) {
       try {
         const response = await donateInfo(row.id);
@@ -1404,11 +1407,11 @@
         this.approveForm.approveResult = "3";
         this.approveForm.approveOpinion = "";
         this.approveOpen = true;
-        this.$modal.msgError("鑾峰彇璇︽儏澶辫触锛屼絾宸叉墦寮�瀹℃壒绐楀彛");
+        this.$modal.msgError("鑾峰彇璇︽儏澶辫触锛屼絾宸叉墦寮�纭绐楀彛");
       }
     },
 
-    /** 鎻愪氦瀹℃壒 */
+    /** 鎻愪氦纭 */
     async submitApprove() {
       try {
         const valid = await this.$refs.approveForm.validate();
@@ -1424,14 +1427,14 @@
           };
 
           await donateEdit(approveData);
-          this.$modal.msgSuccess("瀹℃壒鎴愬姛");
+          this.$modal.msgSuccess("纭鎴愬姛");
           this.approveOpen = false;
           this.getList();
         }
       } catch (error) {
-        console.error("瀹℃壒澶辫触:", error);
+        console.error("纭澶辫触:", error);
         if (error !== "cancel") {
-          this.$modal.msgError("瀹℃壒澶辫触");
+          this.$modal.msgError("纭澶辫触");
         }
       }
     },
@@ -1675,6 +1678,7 @@
         this.saveLoading = true;
 
         const requestData = { ...this.editForm };
+        requestData.infectious = requestData.infectious.join(",");
         let response;
 
         if (this.isEditing) {
@@ -1774,7 +1778,7 @@
   white-space: nowrap;
 }
 
-/* 瀹℃壒寮规鏍峰紡 */
+/* 纭寮规鏍峰紡 */
 .approve-dialog >>> .el-dialog__body {
   padding: 0;
 }

--
Gitblit v1.9.3