WXL
2026-05-09 e15d032770157952bab8d9b15177ac03d736851c
医疗信息
已修改6个文件
129 ■■■■■ 文件已修改
src/main.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/utils/ruoyi.js 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/OrganUtilization/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/appear/caseDetail.vue 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/business/appear/index.vue 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/project/donatebaseinfo/EditCaseModal.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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
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} - 逗号分隔的label字符串
 */
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到label的映射
  const valueToLabelMap = {};
  options.forEach(option => {
    if (option.value !== undefined && option.label !== undefined) {
      valueToLabelMap[option.value] = option.label;
    }
  });
  // 获取对应的label
  const labelArray = valueArray.map(value => {
    return valueToLabelMap[value] || value; // 如果找不到对应label,就返回原值
  });
  // 返回逗号分隔的label字符串
  return labelArray.join(",");
}
export function donatebaseinfoEdit(data) {
  updateDonatebaseinfo(data);
}
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"
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 {
      // 预览相关
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) {
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">