From f2d4aab2ffca6983b1e859d65492126fe0ca3331 Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期二, 01 七月 2025 21:01:55 +0800
Subject: [PATCH] ID1743-暂存
---
src/views/deviceWindoes2.vue | 239 ++++++++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 192 insertions(+), 47 deletions(-)
diff --git a/src/views/deviceWindoes2.vue b/src/views/deviceWindoes2.vue
index ef615ad..75cefbf 100644
--- a/src/views/deviceWindoes2.vue
+++ b/src/views/deviceWindoes2.vue
@@ -1,7 +1,9 @@
<template>
<div class="divice">
<!-- {{数据初始化}} -->
- <div class="youzhiliao" style="height: 100%" v-if="deviceData.患者姓名">
+ <el-carousel v-if="deviceData.患者姓名 && pageHeight > 0" height="auto" :autoplay="false" motion-blur :initial-index="0" always="always">
+ <el-carousel-item :style="{ height: pageHeight + 'px'}">
+ <div class="youzhiliao" style="height: 100%" >
<div class="toubu" style="height: 11%">
<el-row
v-if="deviceData.患者姓名 !== ''"
@@ -24,22 +26,33 @@
<span
class="grid-container"
@click="initTupiao"
- style="margin-left: 5%; font-size: 350%; height: 100%"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
>{{ deviceData.患者姓名 }}
</span>
<span
class="grid-container"
v-if="deviceData.年龄 !== null"
- style="margin-left: 5%; font-size: 300%; height: 100%"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
>{{ deviceData.年龄 }}岁</span
>
<span
class="grid-container"
- style="margin-left: 5%; font-size: 300%; height: 100%"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
>{{ deviceData.性别 }}</span
>
-
+ <span
+ class="grid-container"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ patientSourceAndCode }}</span
+ >
+ <span
+ v-if="deviceData.签到号"
+ class="grid-container"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ deviceData.签到号 }}</span
+ >
+
<div
style="
position: absolute;
@@ -475,6 +488,7 @@
font-weight: 600;
color: #333333;
color: #ca7070;
+ overflow-y: auto;
"
>
<el-row style="font-size: 20px">
@@ -857,13 +871,14 @@
font-size: 50px;
color: #333333;
color: #ca7070;
+ overflow-y: auto;
"
>
<el-row style="font-size: 20px">
<el-col
v-for="(row, index) in deviceData.异常检验指标"
:span="12"
- style="font-weight: 700"
+ style="font-weight: 700;"
:key="index"
>
{{ getItemName(row?.项目名称) }}
@@ -918,7 +933,7 @@
referrerpolicy="no-referrer"
src="https://lanhu-oss.lanhuapp.com/SketchPng7d7c4e66d2f3fb56cb7c93cf3b359782ee05a12117f39e9b1836bff686aca428"
/>
-
+
<span
class="text-group_3"
v-if="isinitXy && Number(deviceData.透析状态) >= 1"
@@ -1088,6 +1103,100 @@
</el-row>
</div>
</div>
+ </el-carousel-item>
+ <el-carousel-item :style="{ height: pageHeight + 'px'}">
+ <div class="toubu" style="height: 11%">
+ <el-row
+ v-if="deviceData.患者姓名 !== ''"
+ style="
+ font-weight: 900;
+ color: #ffffff;
+ width: 100%;
+ height: 100%;
+ line-height: 100%;
+ padding: 20px;
+ position: relative;
+ "
+ >
+ <span
+ class="grid-container"
+ style="font-size: 300%; height: 100%"
+ v-if="deviceData.设备名称 !== null"
+ >{{ deviceData.设备名称 }}
+ </span>
+ <span
+ class="grid-container"
+ @click="initTupiao"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ deviceData.患者姓名 }}
+ </span>
+
+ <span
+ class="grid-container"
+ v-if="deviceData.年龄 !== null"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ deviceData.年龄 }}岁</span
+ >
+ <span
+ class="grid-container"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ deviceData.性别 }}</span
+ >
+ <span
+ class="grid-container"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ patientSourceAndCode }}</span
+ >
+ <span
+ v-if="deviceData.签到号"
+ class="grid-container"
+ style="margin-left: 2%; font-size: 200%; height: 100%"
+ >{{ deviceData.签到号 }}</span
+ >
+
+ <div
+ style="
+ position: absolute;
+ top: 0;
+ right: 0;
+ display: flex;
+ align-items: center;
+ justify-content: flex-end;
+ padding: 5px;
+ height: 100%;
+ "
+ >
+ <div
+ class="grid-container"
+ style="display: flex; align-items: center; padding-right: 20px"
+ >
+ <span
+ style="
+ display: inline-block;
+ margin-right: 15px;
+ font-size: 30px;
+ color: #f56c6c;
+ "
+ >{{ 倒计时显示 }}</span
+ >
+ <span style="display: inline-block; margin-right: 15px">
+ <img @click="dingshiShow" :src="dingshi" alt="Image 1" />
+ </span>
+ <span style="display: inline-block">
+ <img
+ @click="centerDialogVisible = true"
+ :src="shezhi"
+ alt="Image 2"
+ />
+ </span>
+ </div>
+ </div>
+ </el-row>
+ </div>
+ <DoctorAdvice :height="'89%'" :list="deviceData.透析单医嘱列表" />
+ </el-carousel-item>
+ </el-carousel>
+
<div v-else style="height: 100%">
<div class="toubu" style="height: 11%">
<el-row
@@ -1107,7 +1216,7 @@
v-if="deviceData.设备名称 !== null"
>{{ deviceData.设备名称 }}
</span>
-
+
<div
style="
position: absolute;
@@ -1144,7 +1253,7 @@
"
>{{ 倒计时显示 }}</span
>
-
+
<span style="display: inline-block; margin-right: 15px">
<img @click="dingshiShow" :src="dingshi" alt="Image 1" />
</span>
@@ -1294,7 +1403,7 @@
</div>
</div>
<!-- <div class="container-weiqiandao" >
-
+
<div class="item-weiqiandao" style="background: #E5EEFF;border-radius: 8px;height: 100%;">
<div class="container-cord" style="height: 30px;">
<img style="width: 25px;" referrerpolicy="no-referrer" :src="tsl"
@@ -1578,7 +1687,7 @@
<span class="text-gray-500">分钟 </span>
</el-col>
</el-form-item>
-
+
<el-form-item label="提醒内容:">
<el-input
v-if="!formInline.selectOpen"
@@ -1674,7 +1783,7 @@
import tdddbaojing from "../assets/tzddd.mp3";
import tzxllbaojing from "../assets/tzxll.mp3";
import cgbaojing from "../assets/cg.mp3";
-
+
import {
computed,
getCurrentInstance,
@@ -1689,6 +1798,7 @@
import * as echarts from "echarts";
import { jgTime4 } from "../utils/formatTime";
import { setTimeoutAlert } from "../utils/httpApi";
+import DoctorAdvice from '../components/doctorAdvice/index.vue';
// 创建 Audio 对象,指向 public 目录下的音频文件
const alarmSound = new Audio(alertbaojin); //一般报警声音
const alarmSoundCXY = new Audio(cxybaojing); //测血压报警
@@ -1703,7 +1813,7 @@
alarmSoundTZxll.loop = true; // 循环播放
const alarmSoundCG = new Audio(cgbaojing); //冲管
alarmSoundCG.loop = true; // 循环播放
-
+
// 控制播放状态的变量
const isPlaying = ref(false);
// 切换播放/暂停的方法
@@ -1778,7 +1888,7 @@
const sseData = ref({});
// sse状态
const readyState = ref({ key: 0, value: "正在链接中" });
-
+
const deviceCode = ref("");
const shishiTime = ref(new Date());
//有没有推送过血压如果有 就一直会显示血压数据
@@ -1797,9 +1907,13 @@
selectType: "",
selectOpen: false,
});
-
+
const 当前客户耗材集合 = ref({});
const deviceData = ref({
+ 患者来源: null,
+ 患者门诊住院号: '',
+ 签到号: '',
+ 透析单医嘱列表: [],
iot_传输时间: "2025-01-10 19:15:24",
iot_当前脱水量: 2.04,
iot_脱水目标量: 3.3,
@@ -1974,6 +2088,7 @@
const wd = ref("");
const ls = ref("");
const ddd = ref("");
+const pageHeight = ref(0);
const isShowXY = computed(() => {
if (床旁血压计.value.zuihouTime > shishiTime.value) {
return true;
@@ -1981,6 +2096,18 @@
return false;
}
});
+
+const patientSourceAndCode = computed(() => {
+ let res = '';
+ if (deviceData.value.患者来源 === null) {
+ return ''
+ } else {
+ res = deviceData.value.患者来源 === 1 ? '住院号:' : '门诊号:';
+ res += deviceData.value.患者门诊住院号;
+ }
+ return res;
+})
+
watch(
() => isShowXY.value,
() => {
@@ -2042,7 +2169,7 @@
});
// centerDialogVisible2.value=false
};
-
+
// 状态颜色
const zhuangtaiColor = computed(() => {
const list = deviceData.value.设备状态列表;
@@ -2101,7 +2228,7 @@
}
});
}
-
+
return zhuantaiStr;
});
const isbaioji = computed(() => {
@@ -2142,7 +2269,7 @@
backgroundSize: "cover", // 根据需要调整
backgroundPosition: "center", // 根据需要调整
};
-
+
watch(
() => txzt.value,
() => {
@@ -2189,13 +2316,13 @@
let hours = Math.floor(totalSeconds / 3600);
let minutes = Math.floor((totalSeconds % 3600) / 60);
let seconds = totalSeconds % 60;
-
+
// 补零函数
const pad = (num) => String(num).padStart(2, "0");
-
+
return `${pad(hours)}:${pad(minutes)}:${pad(seconds)}`;
};
-
+
const 倒计时 = ref(-100);
const 倒计时显示 = ref("00:00:00");
const 倒计时告警文本 = ref("");
@@ -2259,6 +2386,8 @@
centerDialogVisible.value = true;
}
intervalId = setInterval(updateTime, 1000);
+ const height = window.innerHeight;
+ pageHeight.value = height;
});
// 在组件卸载前清除定时器,防止内存泄漏
onBeforeUnmount(() => {
@@ -2266,7 +2395,7 @@
clearInterval(intervalId);
}
});
-
+
const saveSet = () => {
if (deviceCode.value) {
centerDialogVisible.value = false;
@@ -2277,7 +2406,7 @@
ElMessage.warning("请先输入设备编号");
}
};
-
+
/**
* 刷新页面
*/
@@ -2287,10 +2416,10 @@
const onFileChange = async (event: Event) => {
const inputElement = event.target as HTMLInputElement;
if (!inputElement.files || inputElement.files.length === 0) return;
-
+
const file = inputElement.files[0];
const reader = new FileReader();
-
+
reader.onload = async (e) => {
if (e.target && typeof e.target.result === "string") {
try {
@@ -2318,7 +2447,7 @@
}
}
};
-
+
reader.readAsDataURL(file);
};
const shaoma = () => {};
@@ -2339,7 +2468,7 @@
// http://testbs.ihemodialysis.com/sse/sseEvent
// const test='http://testbs.ihemodialysis.com/sse/sseEvent/'
数据初始化.value = true;
- const test = "https://backend.ihemodialysis.com/sse/sseEvent/";
+ const test = import.meta.env.VITE_API_BASE_URL;
const stateArr = [
{ key: 0, value: "正在链接中" },
{ key: 1, value: "已经链接并且可以通讯" },
@@ -2409,6 +2538,21 @@
console.log(Date.now() + "DEV");
if (dataBody?.透析状态) {
deviceData.value = dataBody?.透析状态;
+ if ('透析单医嘱列表' in dataBody.透析状态) {
+ deviceData.value.透析单医嘱列表 = dataBody.透析状态.透析单医嘱列表;
+ } else {
+ deviceData.value.透析单医嘱列表 = []
+ }
+ if ('患者来源' in dataBody.透析状态) {
+ deviceData.value.患者来源 = dataBody.透析状态.患者来源;
+ } else {
+ deviceData.value.患者来源 = null
+ }
+ if ('患者门诊住院号' in dataBody.透析状态) {
+ deviceData.value.患者门诊住院号 = dataBody.透析状态.患者门诊住院号;
+ } else {
+ deviceData.value.患者门诊住院号 = ''
+ }
} else {
deviceData.value.设备名称 = dataBody.IOT信息.床号;
deviceData.value.患者姓名 = "";
@@ -2416,9 +2560,9 @@
当前客户耗材集合.value = dataBody?.使用耗材字典;
}
}
-
+
deviceData.value.设备变化 = Date.now() + "DEV";
-
+
deviceData.value.属性历史列表 = dataBody?.IOT信息?.属性历史列表;
console.log(deviceData.value.设备变化);
deviceData.value.设备状态列表 = dataBody.IOT信息.状态列表;
@@ -2498,7 +2642,7 @@
],
},
},
-
+
{
name: "",
type: "line",
@@ -2612,7 +2756,7 @@
label: { fontSize: 20, color: "#409EFF" },
});
seriesData[2].markPoint.data.push({
- name: "上机血压",
+ name: "上机压",
value: e.脉搏,
xAxis: index,
yAxis: e.脉搏,
@@ -2674,7 +2818,7 @@
const myChart = echarts.init(
proxy.$refs["echartsDiv" + deviceData.value.设备编号]
);
-
+
const option = {
backgroundColor:
床旁血压计.value.zuihouTime > shishiTime.value
@@ -2731,7 +2875,7 @@
tbdata1.push(Number(wdMode?.finalText));
wd.value = Number(wdMode?.finalText);
}
-
+
// 血液流速
const xymode = e.属性列表.find((l) => {
return l.identifierText === "血液流速";
@@ -2740,7 +2884,7 @@
tbdata2.push(Number(xymode?.finalText));
ls.value = Number(xymode?.finalText);
}
-
+
// 电导度
const dddMode = e.属性列表.find((l) => {
return l.identifierText === "透析液电导度";
@@ -2890,7 +3034,7 @@
} catch (e) {
console.log("图标渲染异常异常");
}
-
+
console.log(deviceData.value);
}
};
@@ -2929,6 +3073,7 @@
width: 100%;
height: 100%;
border: 1px solid coral;
+ user-select: none;
.toubu {
// padding-left: 20px;
width: 100%;
@@ -2983,17 +3128,17 @@
// border-bottom:8px solid red ;
}
}
-
+
/* 应用闪烁动画 */
.blink {
// float: left; /* 让div浮动到左边 */
width: 100%;
height: 100%;
animation: blink 2s infinite; /* 每秒闪烁一次,无限次数 */
-
+
// border-left:5px solid red ;
// border-right:5px solid red ;
-
+
// background: red;
cursor: pointer;
// margin-bottom: 100%;
@@ -3020,7 +3165,7 @@
align-items: center; /* 垂直居中 */
height: 100vh; /* 根据需要调整高度 */
}
-
+
.centered-text {
font-weight: 600;
/* 其他样式 */
@@ -3046,7 +3191,7 @@
height: 100%;
gap: 10px; /* 调整这个值来设置间隔 */
}
-
+
.item-weiqiandao {
flex: 1; /* 确保每个子 div 占据相同的高度 */
background-color: lightblue; /* 可以根据需要调整背景颜色 */
@@ -3081,7 +3226,7 @@
width: 100%; /* 设置一个具体的宽度或确保有继承宽度 */
font-weight: 600;
}
-
+
.right-div {
width: 50px; /* 固定宽度 */
font-size: 16px;
@@ -3094,27 +3239,27 @@
height: 100%;
overflow-y: auto; /* 当内容超出容器高度时,垂直方向上显示滚动条 */
}
-
+
/* 可选:给ul设置一些样式 */
.scrollable-container ul {
list-style: none;
padding: 0;
margin: 0;
}
-
+
.scrollable-container li {
// padding: 4px;
font-weight: 600;
// border-bottom: 1px solid #ddd;
}
-
+
.cont_parent {
height: 100%;
display: grid;
grid-template-rows: repeat(3, 1fr); /* 将容器划分为3行,每行占1份 */
gap: 5px; /* 子元素之间的间隙(可选) */
}
-
+
.cont_child {
border: 1px solid #ccc;
padding: 10px;
@@ -3133,7 +3278,7 @@
.custom-dialog {
border-radius: 10px;
}
-
+
.my-header {
background-color: #ff6b6b; /* 标题背景颜色 */
color: white; /* 标题文字颜色 */
@@ -3148,4 +3293,4 @@
padding: 0;
padding-bottom: 10px;
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.8.0