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                |   60 +++++++++----------
 src/views/business/OrganUtilization/index.vue      |    2 
 src/views/project/donatebaseinfo/EditCaseModal.vue |    4 
 src/main.js                                        |    3 
 src/utils/ruoyi.js                                 |   37 ++++++++++++
 src/views/business/appear/caseDetail.vue           |   23 ++++---
 6 files changed, 82 insertions(+), 47 deletions(-)

diff --git a/src/main.js b/src/main.js
index 4ddfc07..2d5ec49 100644
--- a/src/main.js
+++ b/src/main.js
@@ -25,7 +25,7 @@
 import './permission' // permission control
 import { getDicts } from "@/api/system/dict/data";
 import { getConfigKey } from "@/api/system/config";
-import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels,donatebaseinfoEdit, handleTree } from "@/utils/ruoyi";
+import { parseTime, getLabelsFromString,resetForm, addDateRange, selectDictLabel, selectDictLabels,donatebaseinfoEdit, handleTree } from "@/utils/ruoyi";
 import { formatTime } from "@/utils/index";
 import dataV from '@jiaminghi/data-view';//dataV
 // 鍒嗛〉缁勪欢
@@ -66,6 +66,7 @@
 Vue.prototype.getDicts = getDicts
 Vue.prototype.getConfigKey = getConfigKey
 Vue.prototype.parseTime = parseTime
+Vue.prototype.getLabelsFromString = getLabelsFromString
 Vue.prototype.donatebaseinfoEdit = donatebaseinfoEdit
 Vue.prototype.formatTime = formatTime
 Vue.prototype.resetForm = resetForm
diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js
index ef61200..d8782ff 100644
--- a/src/utils/ruoyi.js
+++ b/src/utils/ruoyi.js
@@ -50,6 +50,43 @@
   });
   return time_str;
 }
+/**
+ * 灏嗛�楀彿鍒嗛殧鐨勫瓧绗︿覆杞崲涓哄搴旂殑label瀛楃涓�
+ * @param {string} str - 閫楀彿鍒嗛殧鐨勫瓧绗︿覆锛屽 "2,3,1"
+ * @param {Array} options - 閫夐」鏁扮粍锛屾牸寮�: [{value: "1", label: "閫夐」1"}, ...]
+ * @returns {string} - 閫楀彿鍒嗛殧鐨刲abel瀛楃涓�
+ */
+export function getLabelsFromString(str, options) {
+  if (!str || !options || !Array.isArray(options)) {
+    return "";
+  }
+
+  // 灏嗗瓧绗︿覆鍒嗗壊涓烘暟缁�
+  const valueArray = str
+    .split(",")
+    .map(item => item.trim())
+    .filter(item => item !== "");
+
+  if (valueArray.length === 0) {
+    return "";
+  }
+
+  // 鍒涘缓value鍒發abel鐨勬槧灏�
+  const valueToLabelMap = {};
+  options.forEach(option => {
+    if (option.value !== undefined && option.label !== undefined) {
+      valueToLabelMap[option.value] = option.label;
+    }
+  });
+
+  // 鑾峰彇瀵瑰簲鐨刲abel
+  const labelArray = valueArray.map(value => {
+    return valueToLabelMap[value] || value; // 濡傛灉鎵句笉鍒板搴攍abel锛屽氨杩斿洖鍘熷��
+  });
+
+  // 杩斿洖閫楀彿鍒嗛殧鐨刲abel瀛楃涓�
+  return labelArray.join(",");
+}
 export function donatebaseinfoEdit(data) {
   updateDonatebaseinfo(data);
 }
diff --git a/src/views/business/OrganUtilization/index.vue b/src/views/business/OrganUtilization/index.vue
index 852a800..ee5d473 100644
--- a/src/views/business/OrganUtilization/index.vue
+++ b/src/views/business/OrganUtilization/index.vue
@@ -10,7 +10,7 @@
       >
         <el-form-item label="浣忛櫌鍙�" prop="inpatientno">
           <el-input
-            v-model="queryParams.inpatientno"
+            v-model="queryParams.caseNo"
             placeholder="璇疯緭鍏ヤ綇闄㈠彿"
             clearable
             style="width: 200px"
diff --git a/src/views/business/appear/caseDetail.vue b/src/views/business/appear/caseDetail.vue
index b4c0a47..1e41453 100644
--- a/src/views/business/appear/caseDetail.vue
+++ b/src/views/business/appear/caseDetail.vue
@@ -95,9 +95,11 @@
         <el-descriptions-item label="GCS璇勫垎">{{
           caseData.gcsScore || "-"
         }}</el-descriptions-item>
-        <el-descriptions-item label="浼犳煋鐥呮儏鍐�">{{
-          caseData.infectious || "鏃�"
-        }}</el-descriptions-item>
+        <el-descriptions-item label="浼犳煋鐥呮儏鍐�"
+          >{{
+            getLabelsFromString(caseData.infectious, dict.type.sys_Infectious)
+          }}
+        </el-descriptions-item>
         <el-descriptions-item
           label="浼犳煋鐥呭叾浠栬鏄�"
           v-if="caseData.infectiousOther"
@@ -130,9 +132,7 @@
         <!-- <el-descriptions-item label="閮ㄩ棬缂栧彿">{{
           caseData.deptNo || "-"
         }}</el-descriptions-item> -->
-        <el-descriptions-item label="涓婃姤鍖婚櫌">{{
-          caseData.toHospital || "-"
-        }}</el-descriptions-item>
+
       </el-descriptions>
     </el-card>
 
@@ -142,14 +142,15 @@
         <span class="section-title">涓婃姤淇℃伅</span>
       </div>
       <el-descriptions :column="2" border>
+         <el-descriptions-item label="涓婃姤鍖婚櫌">{{
+          caseData.toHospital || "-"
+        }}</el-descriptions-item>
         <el-descriptions-item label="鎶ュ憡鑰呭鍚�">{{
           caseData.infoName || "-"
         }}</el-descriptions-item>
-        <el-descriptions-item label="鎶ュ憡鑰呯紪鍙�">{{
-          caseData.infoNo || "-"
-        }}</el-descriptions-item>
+
         <el-descriptions-item label="鎶ュ憡鑰呰仈绯荤數璇�">{{
-          caseData.reporterphone || "-"
+          caseData.phone || "-"
         }}</el-descriptions-item>
         <el-descriptions-item label="鍗忚皟鍛樺鍚�">{{
           caseData.coordinatorName || "-"
@@ -423,7 +424,7 @@
       default: true
     }
   },
-  dicts: ["sys_user_sex", "sys_BloodType"],
+  dicts: ["sys_user_sex", "sys_BloodType",'sys_Infectious'],
   data() {
     return {
       // 棰勮鐩稿叧
diff --git a/src/views/business/appear/index.vue b/src/views/business/appear/index.vue
index 18fc743..e4a0e19 100644
--- a/src/views/business/appear/index.vue
+++ b/src/views/business/appear/index.vue
@@ -395,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>
@@ -627,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">
@@ -739,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
@@ -765,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>
@@ -961,7 +952,7 @@
     UploadAttachment,
     FilePreviewDialog
   },
-  dicts: ["sys_user_sex", "sys_BloodType"],
+  dicts: ["sys_user_sex", "sys_BloodType", "sys_Infectious", "sys_IDType"],
   data() {
     return {
       // 閬僵灞�
@@ -1019,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: [
@@ -1124,7 +1113,7 @@
         // 鏍规嵁杞繍鍗曠姸鎬佹樉绀轰笉鍚岄鑹�
         const transport = row.serviceTransport[0];
         if (transport.transitStatus) {
-         return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
+          return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
         }
         return "primary"; // 鏈夎浆杩愪俊鎭絾鏃犵姸鎬�
       }
@@ -1364,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();
@@ -1683,6 +1678,7 @@
         this.saveLoading = true;
 
         const requestData = { ...this.editForm };
+        requestData.infectious = requestData.infectious.join(",");
         let response;
 
         if (this.isEditing) {
diff --git a/src/views/project/donatebaseinfo/EditCaseModal.vue b/src/views/project/donatebaseinfo/EditCaseModal.vue
index 8669cb9..a37af4b 100644
--- a/src/views/project/donatebaseinfo/EditCaseModal.vue
+++ b/src/views/project/donatebaseinfo/EditCaseModal.vue
@@ -26,14 +26,14 @@
                 />
               </el-form-item>
             </el-col>
-            <el-col :span="11">
+            <!-- <el-col :span="11">
               <el-form-item label="鎹愮尞鑰呯紪鍙�" prop="donorno">
                 <el-input
                   v-model="formData.donorno"
                   placeholder="璇疯緭鍏ユ崘鐚�呯紪鍙�"
                 />
               </el-form-item>
-            </el-col>
+            </el-col> -->
           </el-row>
 
           <el-row :gutter="20">

--
Gitblit v1.9.3