单应用项目,可以创建很多独立工具类页面 ,不用登录 初始化的页面
zhangchen
2025-07-25 e7e1b6553f25d353612f5b0d697e0a37e9a44fd2
src/store/type/bedsideAuxiliaryScreen.type.ts
@@ -1,4 +1,4 @@
import { tryConvertToInt } from "@/utils/utils";
import { tryConvertToInt, deepClone } from "@/utils/utils";
import cache from "@/utils/cache";
export interface IotInfo {
  属性历史列表: any[];
@@ -172,6 +172,13 @@
  倒计时: Countdown | null;
  推送类型: PushType;
  透析状态: DialysisStatus | null;
  床旁血压结果?: any;
}
export interface Sphygmomanometer {
  sbp: number | null; // 高压
  dbp: number | null; // 低压
  pulseRate: number | null; // 心率
}
export interface BedsideAuxiliaryScreen {
@@ -191,7 +198,16 @@
  notSignedIn: NotSignedIn;
  signedIn: SignedIn;
  underTreatment: UnderTreatment;
  sphygmomanometer: Sphygmomanometer;
}
export const defaultSphygmomanometer = () :Sphygmomanometer => {
  return {
    sbp: null,
    dbp: null,
    pulseRate: null,
  }
}
export enum EPageType {
  NOT_INIT = 0, // 未初始化(没有设备编号)
@@ -335,7 +351,7 @@
  ktv: string; // 实时ktv
  monitoringRecord: MonitoringRecord[]; // 监测记录列表
  doctorAdvice: any[]; // 透析单医嘱列表
  bloodFlow: string; // 血流量
  bloodFlow: number | null; // 血流量
  bloodVolumeMonitoring: number | null; // 血容量监测
  dialysisFluidFlowRate: number | null; // 透析液流量
  ktvList: KtvItem[]; // 实时ktv计算结果列表
@@ -372,7 +388,7 @@
    ktv: "",
    monitoringRecord: [],
    doctorAdvice: [],
    bloodFlow: "",
    bloodFlow: null,
    bloodVolumeMonitoring: null,
    dialysisFluidFlowRate: null,
    ktvList: [],
@@ -402,14 +418,17 @@
    notSignedIn: defalutNotSignedIn(), // 未签到时需要的数据
    signedIn: defaultSignedIn(), // 已签到时需要的数据
    underTreatment: defaultUnderTreatment(), // 治疗中需要的数据
    sphygmomanometer: defaultSphygmomanometer(), // 血压计传过来的数据
  };
};
export const formatDeviceData = (
  data: BedsideAuxiliaryScreen,
  seeMsg: SseMsgData
): BedsideAuxiliaryScreen => {
  const result = defaultDeviceData();
  const result = deepClone(data);
  // 默认床号(设备号)
  result.devicdeNo = seeMsg.IOT信息?.床号;
@@ -417,6 +436,14 @@
  if (seeMsg.推送类型 === EPushType.SPHYGMOMANOMETR) {
    result.pageType = EPageType.SPHYGMOMANOMETER;
    const sphygmomanometer = defaultSphygmomanometer();
    sphygmomanometer.sbp = seeMsg?.床旁血压结果?.sbp;
    sphygmomanometer.pulseRate = seeMsg?.床旁血压结果?.pulseRate;
    sphygmomanometer.dbp = seeMsg?.床旁血压结果?.dbp;
    result.sphygmomanometer = sphygmomanometer;
  } else if (seeMsg.推送类型 === EPushType.CENTRAL_MONITORING) {
    // 判断是否存在透析状态,如果不存在就是没有排班
    if (seeMsg.透析状态 === null || !seeMsg.透析状态) {
@@ -519,11 +546,10 @@
        underTreatment.ktv = seeMsg.透析状态?.实时ktv ?? "";
        underTreatment.monitoringRecord = seeMsg.透析状态?.监测记录列表 ?? [];
        underTreatment.doctorAdvice = seeMsg.透析状态?.透析单医嘱列表 ?? [];
        underTreatment.bloodFlow = "";
        underTreatment.bloodFlow = seeMsg.透析状态?.iot_血流量 ?? null;
        underTreatment.dialysisFluidFlowRate =
          seeMsg.透析状态?.iot_血流量 ?? null;
        underTreatment.bloodVolumeMonitoring =
          seeMsg.透析状态?.iot_透析液流速 ?? null;
        underTreatment.bloodVolumeMonitoring =  null;
        underTreatment.ktvList =
          seeMsg.透析状态?.实时ktv计算结果列表
            ?.realTimeKtvCalcDetailResultInfo ?? [];