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