From 4d9be1e572745750541be8be52a3cb30e1a8408f Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期五, 12 九月 2025 16:01:07 +0800
Subject: [PATCH] ID1766-封装axios公共模块
---
src/views/deviceWindoes2.vue | 2518 ++++++++++++++++++++++++++++++++---------------------------
1 files changed, 1,355 insertions(+), 1,163 deletions(-)
diff --git a/src/views/deviceWindoes2.vue b/src/views/deviceWindoes2.vue
index 0322e29..b29f928 100644
--- a/src/views/deviceWindoes2.vue
+++ b/src/views/deviceWindoes2.vue
@@ -1,8 +1,10 @@
<template>
<div class="divice">
<!-- {{数据初始化}} -->
- <div class="youzhiliao" style="height: 100%" v-if="deviceData.患者姓名">
- <div id="toubu" class="toubu" style="height: 11%">
+ <el-carousel v-show="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.患者姓名 !== ''"
style="
@@ -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;
@@ -79,777 +92,292 @@
</div>
</el-row>
</div>
- <el-carousel v-if="contentHeight > 0" height="auto" :autoplay="false" motion-blur :initial-index="0">
- <el-carousel-item :style="{ height: (contentHeight - 10) + 'px' }">
- <div class="chongjian" style="height: 50%">
- <el-row :gutter="20" style="height: 100%; padding: 20px 20px 10px 20px">
- <el-col :span="6" style="height: 100%; padding-bottom: 10px">
- <div style="height: 100%">
+ <div class="chongjian" style="height: 50%">
+ <el-row :gutter="20" style="height: 100%; padding: 20px 20px 10px 20px">
+ <el-col :span="6" style="height: 100%; padding-bottom: 10px">
+ <div style="height: 100%">
+ <div
+ :style="{ backgroundImage: `url(${deviceData.患者头像})` }"
+ style="
+ background-size: 100% 100%;
+ border-radius: 5px;
+ /* margin-bottom: 1%; */
+ height: 100%;
+ width: 100%;
+ "
+ ></div>
+ </div>
+ </el-col>
+ <!-- 床旁显示血压计有数据的时候 -->
+ <template v-if="床旁血压计.zuihouTime > shishiTime">
+ <el-col :span="18" style="height: 100%">
+ <el-row style="height: 50%">
+ <div style="width: 100%; height: 100%; border-radius: 8px">
<div
- :style="{ backgroundImage: `url(${deviceData.患者头像})` }"
- style="
- background-size: 100% 100%;
- border-radius: 5px;
- /* margin-bottom: 1%; */
- height: 100%;
- width: 100%;
- "
- ></div>
- </div>
- </el-col>
- <!-- 床旁显示血压计有数据的时候 -->
- <template v-if="床旁血压计.zuihouTime > shishiTime">
- <el-col :span="18" style="height: 100%">
- <el-row style="height: 50%">
- <div style="width: 100%; height: 100%; border-radius: 8px">
- <div
- class="item"
- style="background-color: #ffffff; height: 97%"
- >
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">血压</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 65px;
- color: #70a3dd;
- "
- class="grid-container"
- >
- {{ 床旁血压计.sbp }} / {{ 床旁血压计.dbp }}
- </div>
- </div>
- </div>
- </el-row>
- <el-row style="height: 50%">
- <div style="width: 100%; height: 100%; border-radius: 8px">
- <div
- class="item"
- style="background-color: #ffffff; height: 97%"
- >
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="xinlv"
- />
- <span class="text-group_3">心率</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 65px;
- color: #70a3dd;
- "
- class="grid-container"
- >
- {{ 床旁血压计.pulseRate }}
- </div>
- </div>
- </div>
- </el-row>
- </el-col>
- </template>
- <!-- 未签到 -->
- <template v-else-if="Number(deviceData.透析状态) === 0">
- <el-col :span="18" style="height: 100%">
- <el-row :gutter="20" style="width: 100%; height: 100%">
- <el-col :span="14" style="height: 100%">
- <div class="container-weiqiandao">
- <div
- class="item-weiqiandao"
- style="background: #e5eeff; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">治疗模式</span>
- </div>
- <div
- class="container-body"
- style="height: calc(100% - 30px); width: 100%"
- >
- <div
- class="container-body-text"
- style="color: #3a75b8; font-size: 30px"
- >
- <span
- style="font-size: 30px"
- v-if="deviceData.透析方案 === 'HDF'"
- >
- {{
- deviceData?.置换方式 === "前置换" ? "前" : "后"
- }}</span
- >
- {{ deviceData.透析方案 }}
- </div>
- </div>
- </div>
- <div
- class="item-weiqiandao"
- style="background: #f9dede; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">人工肾</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 28px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #a78718"
- v-for="(item, index) in deviceData.透析器列表"
- :style="{
- fontSize:
- deviceData.透析器列表.length > 1
- ? '22px'
- : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">
- {{ item.数量 }}{{ item.单位 }}
- </div>
- </div>
- </div>
- </div>
- <div
- class="item-weiqiandao"
- style="background: #d9f0e2; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">一次性循环管路</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 28px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #3ab859"
- v-for="(item, index) in deviceData.管路列表"
- :style="{
- fontSize:
- deviceData.管路列表.length > 1 ? '22px' : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">{{ item.数量 }}支</div>
- </div>
- </div>
- </div>
- </div>
- </el-col>
- <el-col :span="10" style="height: 100%">
- <div class="container-weiqiandao">
- <div
- class="item-weiqiandao"
- style="background: #f6f5fa; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="txztimg"
- />
- <span class="text-group_3">治疗状态</span>
- </div>
- <div
- class="container-body"
- style="height: calc(100% - 30px); width: 100%"
- >
- <div
- class="container-body-text"
- style="color: #333333; font-size: 50px"
- >
- {{ txztText }}
- </div>
- </div>
- </div>
- <div
- class="item-weiqiandao"
- style="background: #efe5ff; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">透析液</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 28px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #3ab859"
- :style="{
- fontSize:
- deviceData.透析液列表.length > 1
- ? '22px'
- : '28px',
- }"
- v-for="(item, index) in deviceData.透析液列表"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">
- {{ item.数量 }}{{ item.单位 }}
- </div>
- </div>
- </div>
- </div>
- </div>
- </el-col>
- </el-row>
- </el-col>
- </template>
- <!-- 治疗中 -->
- <template v-else>
- <el-col :span="18" style="height: 100%">
- <el-row style="height: 50%; padding-bottom: 10px">
- <div style="width: 100%; height: 100%; border-radius: 8px">
- <el-row style="height: 100%" :gutter="10">
- <el-col class="itemboy" style="height: 100%" :span="7">
- <div
- class="item"
- style="background-color: #ffffff; height: 97%"
- >
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="zlms"
- />
- <span class="text-group_3">治疗模式</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #d58e56;
- "
- class="grid-container"
- >
- <div>
- <span
- style="font-size: 30px"
- v-if="deviceData.透析方案 === 'HDF'"
- >
- {{
- deviceData?.置换方式 === "前置换" ? "前" : "后"
- }}</span
- >
- {{ deviceData.透析方案 }}
- </div>
- </div>
- </div>
- </el-col>
- <el-col class="itemboy" style="height: 100%" :span="7">
- <div
- class="item"
- style="background-color: #ffffff; height: 97%"
- >
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="txztimg"
- />
- <span class="text-group_3">治疗状态</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #70a3dd;
- "
- class="grid-container"
- >
- {{ txztText }}
- </div>
- </div>
- </el-col>
- <el-col class="itemboy" style="height: 100%" :span="10">
- <div
- class="item"
- style="background-color: #ffffff; height: 97%"
- >
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="txq"
- />
- <span class="text-group_3">人工肾</span>
- </div>
- </div>
- <div
- style="
- height: 85%;
- font-weight: 600;
- font-size: 50px;
- color: #8079cb;
- "
- class="scrollable-text"
- >
- {{ deviceData.透析器 }}
- </div>
- </div>
- </el-col>
- </el-row>
- </div>
- </el-row>
- <!-- 签到未签到状态 -->
- <div
- class="container"
- v-if="Number(deviceData.透析状态) < 1"
- style="height: 50%"
+ class="item"
+ style="background-color: #ffffff; height: 97%"
>
- <div class="item" style="background-color: #ffffff">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="xinlv"
- />
- <span class="text-group_3">异常指标</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- color: #ca7070;
- "
- >
- <el-row style="font-size: 30px">
- <el-col
- v-for="(row, index) in deviceData.异常检验指标"
- :span="8"
- style="font-weight: 700"
- :key="index"
- >
- {{ getItemName(row?.项目名称) }}
- <b
- v-if="row?.结果标记 === 'g'"
- style="font-weight: bold"
- >⬆</b
- >
- <b v-else style="font-weight: bold">⬇</b>
- </el-col>
- </el-row>
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">血压</span>
</div>
</div>
- <div class="item" style="background-color: #ffffff">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">处方脱水量</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #8079cb;
- "
- class="grid-container"
- >
- <span v-if="deviceData.处方脱水量">
- {{ deviceData.处方脱水量 }} L</span
- >
- </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 65px;
+ color: #70a3dd;
+ "
+ class="grid-container"
+ >
+ {{ 床旁血压计.sbp }} / {{ 床旁血压计.dbp }}
</div>
</div>
- <!-- 透析中状态 -->
- <div class="container" v-else style="height: 50%">
- <div class="item" style="background-color: #ffffff">
- <div style="height: 10%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="sjjd"
- />
- <span class="text-group_3">时间进度</span>
- </div>
+ </div>
+ </el-row>
+ <el-row style="height: 50%">
+ <div style="width: 100%; height: 100%; border-radius: 8px">
+ <div
+ class="item"
+ style="background-color: #ffffff; height: 97%"
+ >
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="xinlv"
+ />
+ <span class="text-group_3">心率</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 65px;
+ color: #70a3dd;
+ "
+ class="grid-container"
+ >
+ {{ 床旁血压计.pulseRate }}
+ </div>
+ </div>
+ </div>
+ </el-row>
+ </el-col>
+ </template>
+ <!-- 未签到 -->
+ <template v-else-if="Number(deviceData.透析状态) === 0">
+ <el-col :span="18" style="height: 100%">
+ <el-row :gutter="20" style="width: 100%; height: 100%">
+ <el-col :span="14" style="height: 100%">
+ <div class="container-weiqiandao">
+ <div
+ class="item-weiqiandao"
+ style="background: #e5eeff; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">治疗模式</span>
</div>
<div
- style="
- height: 90%;
- text-align: center;
- font-weight: 600;
- font-size: 38px;
- color: #333333;
- "
- class="grid-container"
+ class="container-body"
+ style="height: calc(100% - 30px); width: 100%"
>
- <div>
- <span style="color: #303133">{{
- jgTime4(deviceData.iot_透析时间)
- }}</span
- >/<span
- >{{ deviceData.透析处方的时长_小时 }}:{{
- deviceData.透析处方的时长_分钟
+ <div
+ class="container-body-text"
+ style="color: #3a75b8; font-size: 30px"
+ >
+ <span
+ style="font-size: 30px"
+ v-if="deviceData.透析方案 === 'HDF'"
+ >
+ {{
+ deviceData?.置换方式 === "前置换" ? "前" : "后"
}}</span
>
- </div>
- <div>
- <el-progress
- :text-inside="true"
- :stroke-width="15"
- :show-text="false"
- color="#70A3DD"
- :percentage="
- (Number(deviceData.iot_透析时间) /
- (Number(deviceData.透析处方的时长) * 60)) *
- 100
- "
- status="success"
- />
+ {{ deviceData.透析方案 }}
</div>
</div>
</div>
- <div class="item" style="background-color: #ffffff">
- <div style="height: 10%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="cljd"
- />
- <span class="text-group_3">超滤进度</span>
- </div>
+ <div
+ class="item-weiqiandao"
+ style="background: #f9dede; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">人工肾</span>
</div>
<div
- style="
- height: 90%;
- text-align: center;
- font-weight: 600;
- font-size: 38px;
- color: #8079cb;
- "
class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 28px;
+ "
>
- <div>
- <span style="color: #303133">{{
- Number(deviceData.iot_当前脱水量).toFixed(1)
- }}</span
- >/<span>{{
- Number(deviceData.iot_脱水目标量).toFixed(1)
- }}</span
- ><span style="font-size: 80%"
- >({{ deviceData.iot_脱水速率 }})</span
- >
+ <div
+ class="grid-container-text"
+ style="color: #a78718"
+ v-for="(item, index) in deviceData.透析器列表"
+ :style="{
+ fontSize:
+ deviceData.透析器列表.length > 1
+ ? '22px'
+ : '28px',
+ }"
+ :key="index"
+ >
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">
+ {{ item.数量 }}{{ item.单位 }}
+ </div>
</div>
- <div>
- <el-progress
- :text-inside="true"
- :stroke-width="15"
- :show-text="false"
- color="#70CAAE"
- :percentage="
- (Number(deviceData.iot_当前脱水量) /
- Number(deviceData.处方脱水量)) *
- 100
- "
- />
+ </div>
+ </div>
+ <div
+ class="item-weiqiandao"
+ style="background: #d9f0e2; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">一次性循环管路</span>
+ </div>
+ <div
+ class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 28px;
+ "
+ >
+ <div
+ class="grid-container-text"
+ style="color: #3ab859"
+ v-for="(item, index) in deviceData.管路列表"
+ :style="{
+ fontSize:
+ deviceData.管路列表.length > 1 ? '22px' : '28px',
+ }"
+ :key="index"
+ >
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">{{ item.数量 }}支</div>
</div>
</div>
</div>
</div>
</el-col>
- </template>
- </el-row>
- </div>
+ <el-col :span="10" style="height: 100%">
+ <div class="container-weiqiandao">
+ <div
+ class="item-weiqiandao"
+ style="background: #f6f5fa; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="txztimg"
+ />
+ <span class="text-group_3">治疗状态</span>
+ </div>
+ <div
+ class="container-body"
+ style="height: calc(100% - 30px); width: 100%"
+ >
+ <div
+ class="container-body-text"
+ style="color: #333333; font-size: 50px"
+ >
+ {{ txztText }}
+ </div>
+ </div>
+ </div>
+ <div
+ class="item-weiqiandao"
+ style="background: #efe5ff; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">透析液</span>
+ </div>
+ <div
+ class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 28px;
+ "
+ >
+ <div
+ class="grid-container-text"
+ style="color: #3ab859"
+ :style="{
+ fontSize:
+ deviceData.透析液列表.length > 1
+ ? '22px'
+ : '28px',
+ }"
+ v-for="(item, index) in deviceData.透析液列表"
+ :key="index"
+ >
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">
+ {{ item.数量 }}{{ item.单位 }}
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </el-col>
+ </template>
<!-- 治疗中 -->
- <div
- class="mowei"
- style="height: 39%"
- v-if="Number(deviceData.透析状态) > 0"
- >
- <el-row style="height: 100%; padding: 0px 20px 10px 20px">
- <!-- 未签到 -->
- <div
- v-if="Number(deviceData.透析状态) < 1"
- style="height: 70%; width: 100%"
- >
- <div class="container">
- <div class="item">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tizhong"
- />
- <span class="text-group_3">干体重</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- "
- class="grid-container"
- >
- {{ Number(deviceData.干体重).toFixed(1) }}
- </div>
- </div>
- <div class="item">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tizhong"
- />
- <span class="text-group_3">透前称重</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- "
- class="grid-container"
- >
- {{ Number(deviceData.透前称重).toFixed(1) }}
- </div>
- </div>
- <div class="item">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tizhong"
- />
- <span class="text-group_3">上次透后体重</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- "
- class="grid-container"
- >
- {{ Number(deviceData.上次透后称重).toFixed(1) }}
- </div>
- </div>
- <div class="item">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tizhong"
- />
- <span class="text-group_3">体重增长</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- "
- class="grid-container"
- >
- <template
- v-if="
- deviceData.透前称重 &&
- deviceData.干体重 &&
- Number(deviceData.透前称重) > 0
- "
- >
- +{{
- Number(deviceData.透前称重 - deviceData.干体重).toFixed(1)
- }}
- </template>
- </div>
- </div>
- <div class="item">
- <div style="height: 25%">
- <div class="container-cord" style="height: 100%">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tizhong"
- />
- <span class="text-group_3">增长率</span>
- </div>
- </div>
- <div
- style="
- height: 75%;
- text-align: center;
- font-weight: 600;
- font-size: 50px;
- color: #333333;
- "
- class="grid-container"
- >
- <template v-if="deviceData.透前称重 && deviceData.干体重">
- {{ deviceData.体重增长率 }}%
- </template>
- </div>
- </div>
- </div>
- </div>
- <!-- 已签到 -->
- <div v-else style="height: 80%; width: 100%; padding-right: 0px">
- <div style="height: 100%">
- <el-row
- style="height: 30%; padding: 0px 0px 10px 0px"
- :gutter="20"
- >
- <el-col :span="12">
- <div
- class="container-cord"
- style="
- height: 100%;
- padding-left: 20px;
- background-color: #ffffff;
- border-radius: 8px;
- "
- >
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">平均脱水量:</span>
- <span
- style="color: #333333; font-weight: 600; font-size: 25px"
- >{{ deviceData.最近平均脱水量 }}L</span
- >
- <span style="color: #777777; font-size: 25px"> </span>
- </div>
- </el-col>
- <el-col :span="12">
- <div
- class="container-cord"
- style="
- height: 100%;
- padding-left: 20px;
- background-color: #ffffff;
- border-radius: 8px;
- "
- >
- <img
- style="width: 25px; margin-right: 10px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">最大脱水量: </span>
- <span
- style="color: #333333; font-weight: 600; font-size: 25px"
- >{{ deviceData.最近最大脱水量 }}L</span
- >
- <span style="color: #777777; font-size: 25px"
- >({{ deviceData.最近最大脱水量日期 }})</span
- >
- </div>
- </el-col>
- </el-row>
- <el-row
- style="height: 70%; padding: 0px 0px 10px 0px"
- :gutter="20"
- >
- <el-col :span="6" style="height: 100%">
+ <template v-else>
+ <el-col :span="18" style="height: 100%">
+ <el-row style="height: 50%; padding-bottom: 10px">
+ <div style="width: 100%; height: 100%; border-radius: 8px">
+ <el-row style="height: 100%" :gutter="10">
+ <el-col class="itemboy" style="height: 100%" :span="7">
<div
class="item"
- style="
- height: 100%;
- padding-bottom: 10px;
- gap: 10px; /* 设置所有方向的间距为10px */
- "
+ style="background-color: #ffffff; height: 97%"
>
<div style="height: 25%">
<div class="container-cord" style="height: 100%">
<img
style="width: 25px"
referrerpolicy="no-referrer"
- :src="xinlv"
+ :src="zlms"
/>
- <span class="text-group_3">异常指标</span>
+ <span class="text-group_3">治疗模式</span>
</div>
</div>
<div
@@ -858,245 +386,818 @@
text-align: center;
font-weight: 600;
font-size: 50px;
- color: #333333;
- color: #ca7070;
+ color: #d58e56;
"
+ class="grid-container"
>
- <el-row style="font-size: 30px">
- <el-col
- v-for="(row, index) in deviceData.异常检验指标"
- :span="12"
- style="font-weight: 700"
- :key="index"
+ <div>
+ <span
+ style="font-size: 30px"
+ v-if="deviceData.透析方案 === 'HDF'"
>
- {{ getItemName(row?.项目名称) }}
- <b
- v-if="row?.结果标记 === 'g'"
- style="font-weight: bold"
- >⬆</b
- >
- <b v-else style="font-weight: bold">⬇</b>
- </el-col>
- </el-row>
+ {{
+ deviceData?.置换方式 === "前置换" ? "前" : "后"
+ }}</span
+ >
+ {{ deviceData.透析方案 }}
+ </div>
</div>
</div>
</el-col>
- <el-col :span="18" style="height: 100%; width: 100%">
+ <el-col class="itemboy" style="height: 100%" :span="7">
<div
class="item"
- style="
- height: 100%;
- padding-bottom: 10px; /* 设置所有方向的间距为10px */
- "
+ style="background-color: #ffffff; height: 97%"
>
- <div style="height: 100%">
- <div
- v-if="Number(deviceData.透析状态) > 1"
- :ref="'echartsDiv' + deviceData.设备编号"
- style="height: 97%"
- ></div>
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="txztimg"
+ />
+ <span class="text-group_3">治疗状态</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #70a3dd;
+ "
+ class="grid-container"
+ >
+ {{ txztText }}
+ </div>
+ </div>
+ </el-col>
+ <el-col class="itemboy" style="height: 100%" :span="10">
+ <div
+ class="item"
+ style="background-color: #ffffff; height: 97%"
+ >
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="txq"
+ />
+ <span class="text-group_3">人工肾</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 85%;
+ font-weight: 600;
+ font-size: 50px;
+ color: #8079cb;
+ "
+ class="scrollable-text"
+ >
+ {{ deviceData.透析器 }}
</div>
</div>
</el-col>
</el-row>
</div>
- </div>
- <!-- 消息提示一直显示最新的消息 -->
+ </el-row>
+ <!-- 签到未签到状态 -->
<div
- style="
- height: 20%;
- width: 100%;
- background: #fef0e1;
- border-radius: 8px;
- font-size: 30px;
- "
+ class="container"
+ v-if="Number(deviceData.透析状态) < 1"
+ style="height: 50%"
>
- <div style="height: 100%">
+ <div class="item" style="background-color: #ffffff">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="xinlv"
+ />
+ <span class="text-group_3">异常指标</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ color: #333333;
+ color: #ca7070;
+ overflow-y: auto;
+ "
+ >
+ <el-row style="font-size: 20px">
+ <el-col
+ v-for="(row, index) in deviceData.异常检验指标"
+ :span="8"
+ style="font-weight: 700"
+ :key="index"
+ >
+ {{ getItemName(row?.项目名称) }}
+ <b
+ v-if="row?.结果标记 === 'g'"
+ style="font-weight: bold"
+ >⬆</b
+ >
+ <b v-else style="font-weight: bold">⬇</b>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ <div class="item" style="background-color: #ffffff">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">处方脱水量</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 25px;
+ color: #8079cb;
+ "
+ class="grid-container"
+ >
+ <span v-if="deviceData.处方脱水量">
+ {{ deviceData.处方脱水量 }} L</span
+ >
+ </div>
+ </div>
+ </div>
+ <!-- 透析中状态 -->
+ <div class="container" v-else style="height: 50%">
+ <div class="item" style="background-color: #ffffff">
+ <div style="height: 10%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="sjjd"
+ />
+ <span class="text-group_3">时间进度</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 90%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 38px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ <div>
+ <span style="color: #303133">{{
+ jgTime4(deviceData.iot_透析时间)
+ }}</span
+ >/<span
+ >{{ deviceData.透析处方的时长_小时 }}:{{
+ deviceData.透析处方的时长_分钟
+ }}</span
+ >
+ </div>
+ <div>
+ <el-progress
+ :text-inside="true"
+ :stroke-width="15"
+ :show-text="false"
+ color="#70A3DD"
+ :percentage="
+ (Number(deviceData.iot_透析时间) /
+ (Number(deviceData.透析处方的时长) * 60)) *
+ 100
+ "
+ status="success"
+ />
+ </div>
+ </div>
+ </div>
+ <div class="item" style="background-color: #ffffff">
+ <div style="height: 10%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="cljd"
+ />
+ <span class="text-group_3">超滤进度</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 90%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 38px;
+ color: #8079cb;
+ "
+ class="grid-container"
+ >
+ <div>
+ <span style="color: #303133">{{
+ Number(deviceData.iot_当前脱水量).toFixed(1)
+ }}</span
+ >/<span>{{
+ Number(deviceData.iot_脱水目标量).toFixed(1)
+ }}</span
+ ><span style="font-size: 80%"
+ >({{ deviceData.iot_脱水速率 }})</span
+ >
+ </div>
+ <div>
+ <el-progress
+ :text-inside="true"
+ :stroke-width="15"
+ :show-text="false"
+ color="#70CAAE"
+ :percentage="
+ (Number(deviceData.iot_当前脱水量) /
+ Number(deviceData.处方脱水量)) *
+ 100
+ "
+ />
+ </div>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ </template>
+ </el-row>
+ </div>
+ <!-- 治疗中 -->
+ <div
+ class="mowei"
+ style="height: 39%"
+ v-show="Number(deviceData.透析状态) > 0"
+ >
+ <el-row style="height: 100%; padding: 0px 20px 10px 20px">
+ <!-- 未签到 -->
+ <div
+ v-show="Number(deviceData.透析状态) < 1"
+ style="height: 70%; width: 100%"
+ >
+ <div class="container">
+ <div class="item">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tizhong"
+ />
+ <span class="text-group_3">干体重</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ {{ Number(deviceData.干体重).toFixed(1) }}
+ </div>
+ </div>
+ <div class="item">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tizhong"
+ />
+ <span class="text-group_3">透前称重</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ {{ Number(deviceData.透前称重).toFixed(1) }}
+ </div>
+ </div>
+ <div class="item">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tizhong"
+ />
+ <span class="text-group_3">上次透后体重</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ {{ Number(deviceData.上次透后称重).toFixed(1) }}
+ </div>
+ </div>
+ <div class="item">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tizhong"
+ />
+ <span class="text-group_3">体重增长</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ <template
+ v-if="
+ deviceData.透前称重 &&
+ deviceData.干体重 &&
+ Number(deviceData.透前称重) > 0
+ "
+ >
+ +{{
+ Number(deviceData.透前称重 - deviceData.干体重).toFixed(1)
+ }}
+ </template>
+ </div>
+ </div>
+ <div class="item">
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tizhong"
+ />
+ <span class="text-group_3">增长率</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ font-size: 50px;
+ color: #333333;
+ "
+ class="grid-container"
+ >
+ <template v-if="deviceData.透前称重 && deviceData.干体重">
+ {{ deviceData.体重增长率 }}%
+ </template>
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- 已签到 -->
+ <div v-show="Number(deviceData.透析状态) >= 1" style="height: 80%; width: 100%; padding-right: 0px">
+ <div style="height: 100%">
+ <el-row
+ style="height: 30%; padding: 0px 0px 10px 0px"
+ :gutter="20"
+ >
+ <el-col :span="12">
<div
class="container-cord"
- style="height: 100%; padding-left: 20px"
+ style="
+ height: 100%;
+ padding-left: 20px;
+ background-color: #ffffff;
+ border-radius: 8px;
+ "
>
<img
style="width: 25px"
referrerpolicy="no-referrer"
- src="https://lanhu-oss.lanhuapp.com/SketchPng7d7c4e66d2f3fb56cb7c93cf3b359782ee05a12117f39e9b1836bff686aca428"
+ :src="tsl"
/>
-
+ <span class="text-group_3">平均脱水量:</span>
<span
- class="text-group_3"
- v-if="isinitXy && Number(deviceData.透析状态) >= 1"
+ style="color: #333333; font-weight: 600; font-size: 25px"
+ >{{ deviceData.最近平均脱水量 }}L</span
>
- 最近一次, 高压:{{ 床旁血压计.sbp }},低压:
- {{ 床旁血压计.dbp }}, 心率: {{ 床旁血压计.pulseRate }}
- </span>
- <span class="text-group_3" v-else>暂无通知消息哦</span>
+ <span style="color: #777777; font-size: 25px"> </span>
+ </div>
+ </el-col>
+ <el-col :span="12">
+ <div
+ class="container-cord"
+ style="
+ height: 100%;
+ padding-left: 20px;
+ background-color: #ffffff;
+ border-radius: 8px;
+ "
+ >
+ <img
+ style="width: 25px; margin-right: 10px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">最大脱水量: </span>
+ <span
+ style="color: #333333; font-weight: 600; font-size: 25px"
+ >{{ deviceData.最近最大脱水量 }}L</span
+ >
+ <span style="color: #777777; font-size: 25px"
+ >({{ deviceData.最近最大脱水量日期 }})</span
+ >
+ </div>
+ </el-col>
+ </el-row>
+ <el-row
+ style="height: 70%; padding: 0px 0px 10px 0px"
+ :gutter="20"
+ >
+ <el-col :span="6" style="height: 100%">
+ <div
+ class="item"
+ style="
+ height: 100%;
+ padding-bottom: 10px;
+ gap: 10px; /* 设置所有方向的间距为10px */
+ "
+ >
+ <div style="height: 25%">
+ <div class="container-cord" style="height: 100%">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="xinlv"
+ />
+ <span class="text-group_3">异常指标</span>
+ </div>
+ </div>
+ <div
+ style="
+ height: 75%;
+ text-align: center;
+ font-weight: 600;
+ 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;"
+ :key="index"
+ >
+ {{ getItemName(row?.项目名称) }}
+ <b
+ v-if="row?.结果标记 === 'g'"
+ style="font-weight: bold"
+ >⬆</b
+ >
+ <b v-else style="font-weight: bold">⬇</b>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="18" style="height: 100%; width: 100%">
+ <div
+ class="item"
+ style="
+ height: 100%;
+ padding-bottom: 10px; /* 设置所有方向的间距为10px */
+ "
+ >
+ <div v-show="Number(deviceData.透析状态) > 1" class="zcc_test" style="height: 100%">
+ <div
+ :ref="'echartsDiv' + deviceData.设备编号"
+ :class="'echartsDiv-' + deviceData.设备编号"
+ style="height: 97%"
+ ></div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
+ <!-- 消息提示一直显示最新的消息 -->
+ <div
+ style="
+ height: 20%;
+ width: 100%;
+ background: #fef0e1;
+ border-radius: 8px;
+ font-size: 30px;
+ "
+ >
+ <div style="height: 100%">
+ <div
+ class="container-cord"
+ style="height: 100%; padding-left: 20px"
+ >
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ src="https://lanhu-oss.lanhuapp.com/SketchPng7d7c4e66d2f3fb56cb7c93cf3b359782ee05a12117f39e9b1836bff686aca428"
+ />
+
+ <span
+ class="text-group_3"
+ v-if="isinitXy && Number(deviceData.透析状态) >= 1"
+ >
+ 最近一次, 高压:{{ 床旁血压计.sbp }},低压:
+ {{ 床旁血压计.dbp }}, 心率: {{ 床旁血压计.pulseRate }}
+ </span>
+ <span class="text-group_3" v-else>暂无通知消息哦</span>
+ </div>
+ </div>
+ </div>
+ </el-row>
+ </div>
+ <!-- 未签到 -->
+ <div
+ class="mowei"
+ style="height: 39%"
+ v-show="Number(deviceData.透析状态) === 0"
+ >
+ <el-row gutter="20" style="height: 100%; padding: 10px 20px 20px 20px">
+ <el-col :span="12" style="height: 100%">
+ <div class="container-weiqiandao" style="height: 100%">
+ <div
+ class="item-weiqiandao"
+ style="background: #ffedd2; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">抗凝剂</span>
+ </div>
+ <div
+ class="grid-container"
+ style="height: calc(100% - 30px); width: 100%"
+ >
+ <div
+ class="grid-container-text"
+ style="color: #a78718"
+ v-for="(item, index) in deviceData.抗凝剂列表"
+ :style="{
+ fontSize:
+ deviceData.抗凝剂列表.length > 1 ? '22px' : '28px',
+ }"
+ :key="index"
+ >
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">{{ item.数量 }}{{ item.单位 }}</div>
</div>
</div>
</div>
- </el-row>
- </div>
- <!-- 未签到 -->
- <div
- class="mowei"
- style="height: 39%"
- v-if="Number(deviceData.透析状态) === 0"
- >
- <el-row gutter="20" style="height: 100%; padding: 10px 20px 20px 20px">
- <el-col :span="12" style="height: 100%">
- <div class="container-weiqiandao" style="height: 100%">
+ <div
+ class="item-weiqiandao"
+ style="background: #ffedd2; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">穿刺针</span>
+ </div>
+ <div
+ class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 25px;
+ "
+ >
<div
- class="item-weiqiandao"
- style="background: #ffedd2; border-radius: 8px"
+ class="grid-container-text"
+ style="color: #a78718"
+ v-for="(item, index) in deviceData.穿刺针列表"
+ :style="{
+ fontSize:
+ deviceData.穿刺针列表.length > 1 ? '22px' : '28px',
+ }"
+ :key="index"
>
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">抗凝剂</span>
- </div>
- <div
- class="grid-container"
- style="height: calc(100% - 30px); width: 100%"
- >
- <div
- class="grid-container-text"
- style="color: #a78718"
- v-for="(item, index) in deviceData.抗凝剂列表"
- :style="{
- fontSize:
- deviceData.抗凝剂列表.length > 1 ? '22px' : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">{{ item.数量 }}{{ item.单位 }}</div>
- </div>
- </div>
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">{{ item.数量 }}支</div>
</div>
+ </div>
+ </div>
+ </div>
+ </el-col>
+ <el-col :span="12">
+ <div class="container-weiqiandao" style="height: 100%">
+ <div
+ class="item-weiqiandao"
+ style="background: #e5eeff; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">一次性使用透析护理包</span>
+ </div>
+ <div
+ class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 28px;
+ "
+ >
<div
- class="item-weiqiandao"
- style="background: #ffedd2; border-radius: 8px"
+ class="grid-container-text"
+ style="color: #1d77bd"
+ v-for="(item, index) in deviceData.护理包列表"
+ :style="{
+ fontSize:
+ deviceData.护理包列表.length > 1 ? '22px' : '28px',
+ }"
+ :key="index"
>
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">穿刺针</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 25px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #a78718"
- v-for="(item, index) in deviceData.穿刺针列表"
- :style="{
- fontSize:
- deviceData.穿刺针列表.length > 1 ? '22px' : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">{{ item.数量 }}支</div>
- </div>
+ <div class="left-div">{{ item.name }}</div>
+ <div class="right-div">{{ item.数量 }}{{ item.单位 }}</div>
+ </div>
+ </div>
+ </div>
+ <div
+ class="item-weiqiandao"
+ style="background: #e5eeff; border-radius: 8px"
+ >
+ <div class="container-cord" style="height: 30px">
+ <img
+ style="width: 25px"
+ referrerpolicy="no-referrer"
+ :src="tsl"
+ />
+ <span class="text-group_3">血管通路</span>
+ </div>
+ <div
+ class="grid-container"
+ style="
+ height: calc(100% - 30px);
+ width: 100%;
+ font-size: 28px;
+ "
+ >
+ <div
+ class="grid-container-text"
+ style="color: #1d77bd"
+ v-for="(item, index) in deviceData.血管通路列表"
+ :style="{
+ fontSize:
+ deviceData.血管通路列表.length > 1 ? '22px' : '28px',
+ }"
+ :key="index"
+ >
+ <div class="left-div">{{ item.类型 }}</div>
+ <div class="right-div" style="width: 200px">
+ {{ item.位置 }}
</div>
</div>
</div>
- </el-col>
- <el-col :span="12">
- <div class="container-weiqiandao" style="height: 100%">
- <div
- class="item-weiqiandao"
- style="background: #e5eeff; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">一次性使用透析护理包</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 28px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #1d77bd"
- v-for="(item, index) in deviceData.护理包列表"
- :style="{
- fontSize:
- deviceData.护理包列表.length > 1 ? '22px' : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.name }}</div>
- <div class="right-div">{{ item.数量 }}{{ item.单位 }}</div>
- </div>
- </div>
- </div>
- <div
- class="item-weiqiandao"
- style="background: #e5eeff; border-radius: 8px"
- >
- <div class="container-cord" style="height: 30px">
- <img
- style="width: 25px"
- referrerpolicy="no-referrer"
- :src="tsl"
- />
- <span class="text-group_3">血管通路</span>
- </div>
- <div
- class="grid-container"
- style="
- height: calc(100% - 30px);
- width: 100%;
- font-size: 28px;
- "
- >
- <div
- class="grid-container-text"
- style="color: #1d77bd"
- v-for="(item, index) in deviceData.血管通路列表"
- :style="{
- fontSize:
- deviceData.血管通路列表.length > 1 ? '22px' : '28px',
- }"
- :key="index"
- >
- <div class="left-div">{{ item.类型 }}</div>
- <div class="right-div" style="width: 200px">
- {{ item.位置 }}
- </div>
- </div>
- </div>
- </div>
- </div>
- </el-col>
- </el-row>
- </div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
+ </div>
</el-carousel-item>
- <el-carousel-item :style="{ height: (contentHeight - 10) + 'px' }">
- <DoctorAdvice :height="(contentHeight - 10)" :list="deviceData.透析单医嘱列表" />
+ <el-carousel-item :style="{ height: pageHeight + 'px'}">
+ <div class="toubu" style="height: 11%">
+ <el-row
+ v-show="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>
- <div v-else style="height: 100%">
+
+ <div v-show="!deviceData.患者姓名" style="height: 100%">
<div class="toubu" style="height: 11%">
<el-row
style="
@@ -1115,7 +1216,7 @@
v-if="deviceData.设备名称 !== null"
>{{ deviceData.设备名称 }}
</span>
-
+
<div
style="
position: absolute;
@@ -1152,7 +1253,7 @@
"
>{{ 倒计时显示 }}</span
>
-
+
<span style="display: inline-block; margin-right: 15px">
<img @click="dingshiShow" :src="dingshi" alt="Image 1" />
</span>
@@ -1302,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"
@@ -1538,8 +1639,8 @@
<template #footer>
<div class="dialog-footer">
<el-button @click="centerDialogVisible = false">取消</el-button>
- <el-button @click="test">测试播报</el-button>
- <el-button @click="toggleAlarm">测试报警</el-button>
+ <!-- <el-button @click="test">测试播报</el-button> -->
+ <!-- <el-button @click="toggleAlarm">测试报警</el-button> -->
<el-button type="primary" @click="saveSet"> 确认 </el-button>
<el-button type="success" @click="shuaxin"> 刷新 </el-button>
</div>
@@ -1586,7 +1687,7 @@
<span class="text-gray-500">分钟 </span>
</el-col>
</el-form-item>
-
+
<el-form-item label="提醒内容:">
<el-input
v-if="!formInline.selectOpen"
@@ -1606,6 +1707,9 @@
<el-option label="测血压" value="测血压" />
<el-option label="开超滤" value="开超滤" />
<el-option label="给药" value="给药" />
+ <el-option label="调电导度" value="调电导度" />
+ <el-option label="调血流量" value="调血流量" />
+ <el-option label="冲管" value="冲管" />
</el-select>
</el-form-item>
<el-form-item label="定型文:">
@@ -1672,8 +1776,14 @@
import cljd from "../img/cljd.png";
import tizhong from "../img/tizhong.png";
import { EventSourcePolyfill } from "event-source-polyfill";
-import alertbaojin from '../assets/alert.wav'
-
+import alertbaojin from "../assets/alert.wav";
+import cxybaojing from "../assets/cxy.mp3";
+import gybaojing from "../assets/gy.mp3";
+import kclbaojing from "../assets/kcl.mp3";
+import tdddbaojing from "../assets/tzddd.mp3";
+import tzxllbaojing from "../assets/tzxll.mp3";
+import cgbaojing from "../assets/cg.mp3";
+
import {
computed,
getCurrentInstance,
@@ -1683,7 +1793,7 @@
watch,
onUnmounted,
onBeforeUnmount,
- nextTick
+ nextTick,
} from "vue";
import { Local } from "../utils/storage";
import * as echarts from "echarts";
@@ -1691,25 +1801,83 @@
import { setTimeoutAlert } from "../utils/httpApi";
import DoctorAdvice from '../components/doctorAdvice/index.vue';
// 创建 Audio 对象,指向 public 目录下的音频文件
-const alarmSound = new Audio(alertbaojin)
-
+const alarmSound = new Audio(alertbaojin); //一般报警声音
+const alarmSoundCXY = new Audio(cxybaojing); //测血压报警
+alarmSoundCXY.loop = true; // 循环播放
+const alarmSoundGY = new Audio(gybaojing); //给药报警
+alarmSoundGY.loop = true; // 循环播放
+const alarmSoundKCL = new Audio(kclbaojing); //开超滤报警
+alarmSoundKCL.loop = true; // 循环播放
+const alarmSoundTZDDD = new Audio(tdddbaojing); //调整电导度
+alarmSoundTZDDD.loop = true; // 循环播放
+const alarmSoundTZxll = new Audio(tzxllbaojing); //调整电导度
+alarmSoundTZxll.loop = true; // 循环播放
+const alarmSoundCG = new Audio(cgbaojing); //冲管
+alarmSoundCG.loop = true; // 循环播放
+
// 控制播放状态的变量
-const isPlaying = ref(false)
+const isPlaying = ref(false);
// 切换播放/暂停的方法
const toggleAlarm = () => {
+ console.log('-------------')
+ console.log('看看是打开还是暂停')
if (isPlaying.value) {
- alarmSound.pause()
+ if (倒计时告警文本.value === "测血压") {
+
+ alarmSoundCXY.pause();
+ } else if (倒计时告警文本.value === "冲管") {
+ alarmSoundCG.pause();
+ } else if (倒计时告警文本.value === "开超滤") {
+ alarmSoundKCL.pause();
+ } else if (倒计时告警文本.value === "给药") {
+ alarmSoundGY.pause();
+ } else if (倒计时告警文本.value === "调电导度") {
+ alarmSoundTZDDD.pause();
+ } else if (倒计时告警文本.value === "调血流量") {
+ alarmSoundTZxll.pause();
+ } else {
+ alarmSound.pause();
+ }
} else {
- alarmSound.currentTime = 0 // 从头开始播放
- alarmSound.play().catch((err) => {
- console.error('播放失败:', err)
- })
+ if (倒计时告警文本.value === "测血压") {
+ alarmSoundCXY.currentTime = 0; // 从头开始
+ alarmSoundCXY.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else if (倒计时告警文本.value === "冲管") {
+ alarmSoundCG.currentTime = 0; // 从头开始
+ alarmSoundCG.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else if (倒计时告警文本.value === "开超滤") {
+ alarmSoundKCL.currentTime = 0; // 从头开始
+ alarmSoundKCL.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else if (倒计时告警文本.value === "给药") {
+ alarmSoundGY.currentTime = 0; // 从头开始
+ alarmSoundGY.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else if (倒计时告警文本.value === "调电导度") {
+ alarmSoundTZDDD.currentTime = 0; // 从头开始
+ alarmSoundTZDDD.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else if (倒计时告警文本.value === "调血流量") {
+ alarmSoundTZxll.currentTime = 0; // 从头开始
+ alarmSoundTZxll.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ } else {
+ alarmSound.currentTime = 0; // 从头开始播放
+ alarmSound.play().catch((err) => {
+ console.error("播放失败:", err);
+ });
+ }
}
- isPlaying.value = !isPlaying.value
-}
-// 语音播报
-import Speech from "speak-tts";
-const speech = ref(null);
+ isPlaying.value = !isPlaying.value;
+};
const { proxy } = getCurrentInstance() as any;
// 在需要使用的组件中引入
import { ChatDotSquare } from "@element-plus/icons-vue";
@@ -1722,6 +1890,10 @@
// sse状态
const readyState = ref({ key: 0, value: "正在链接中" });
+// 血压的echart实例
+let bloodPressureEchart: echarts.ECharts | null = null
+let observer;
+
const deviceCode = ref("");
const shishiTime = ref(new Date());
//有没有推送过血压如果有 就一直会显示血压数据
@@ -1740,9 +1912,12 @@
selectType: "",
selectOpen: false,
});
-
+
const 当前客户耗材集合 = ref({});
const deviceData = ref({
+ 患者来源: null,
+ 患者门诊住院号: '',
+ 签到号: '',
透析单医嘱列表: [],
iot_传输时间: "2025-01-10 19:15:24",
iot_当前脱水量: 2.04,
@@ -1918,7 +2093,7 @@
const wd = ref("");
const ls = ref("");
const ddd = ref("");
-const contentHeight = ref(0); // 中间内容的高度
+const pageHeight = ref(0);
const isShowXY = computed(() => {
if (床旁血压计.value.zuihouTime > shishiTime.value) {
return true;
@@ -1926,16 +2101,27 @@
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,
() => {
if (床旁血压计.value.zuihouTime > shishiTime.value) {
} else {
- nextTick(() => {
- setTimeout(() => {
- initTupiao();
- }, 500);
- });
+ setTimeout(() => {
+ console.log("初始化血压图表222222");
+ initTupiao();
+ }, 500);
}
}
);
@@ -1959,7 +2145,6 @@
};
// 保存定时任务
const setDingshi = () => {
-
console.log("--------------------");
console.log(formInline.value);
console.log(deviceCode.value);
@@ -1970,7 +2155,7 @@
} else {
alertText = formInline.value.alertText;
}
- if (alertText==='') {
+ if (alertText === "") {
ElMessage.warning("设置报警消息不能为空");
return true;
}
@@ -1983,14 +2168,14 @@
if (res.data === "OK") {
倒计时.value = minutes * 60;
centerDialogVisible2.value = false;
- 倒计时告警文本.value = alertText
+ 倒计时告警文本.value = alertText;
} else {
ElMessage.warning(res.message);
}
});
// centerDialogVisible2.value=false
};
-
+
// 状态颜色
const zhuangtaiColor = computed(() => {
const list = deviceData.value.设备状态列表;
@@ -2049,7 +2234,7 @@
}
});
}
-
+
return zhuantaiStr;
});
const isbaioji = computed(() => {
@@ -2090,7 +2275,7 @@
backgroundSize: "cover", // 根据需要调整
backgroundPosition: "center", // 根据需要调整
};
-
+
watch(
() => txzt.value,
() => {
@@ -2137,36 +2322,67 @@
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("");
// 定时器回调函数
const updateTime = () => {
+ 倒计时.value--;
if (倒计时.value > 0) {
倒计时显示.value = formatSecondsToTime(倒计时.value);
- 倒计时.value--;
- } else if(倒计时.value!==-100) {
+ } else if (倒计时.value > -5) {
倒计时显示.value = "";
// 只有没触发的时候才触发他
- if(centerDialogVisible3.value===false){
- centerDialogVisible3.value = true;
- 关闭弹框警告();
- // 播报警告文本(倒计时告警文本.value);
- toggleAlarm()
- }
-
- }else{
+ if (centerDialogVisible3.value === false) {
+ centerDialogVisible3.value = true;
+ 关闭弹框警告();
+ // toggleAlarm();
+ }
+ } else {
倒计时显示.value = "";
}
};
let intervalId = null;
+watch(()=>centerDialogVisible3.value,()=>{
+ if(centerDialogVisible3.value===false){
+ alarmSound.pause();
+ alarmSoundCXY.pause();
+ alarmSoundKCL.pause();
+ alarmSoundGY.pause();
+ alarmSoundTZDDD.pause();
+ alarmSoundTZxll.pause();
+ alarmSoundCG.pause();
+ }else{
+ if (倒计时告警文本.value === "测血压") {
+ alarmSoundCXY.play();
+ }
+ else if (倒计时告警文本.value === "冲管") {
+ alarmSoundCG.play();
+ }
+ else if (倒计时告警文本.value === "开超滤") {
+ alarmSoundKCL.play();
+ }
+ else if (倒计时告警文本.value === "给药") {
+ alarmSoundGY.play();
+ }
+ else if (倒计时告警文本.value === "调电导度") {
+ alarmSoundTZDDD.play();
+ }
+ else if (倒计时告警文本.value === "调血流量") {
+ alarmSoundTZxll.play();
+ }
+ else {
+ alarmSound.play();
+ }
+ }
+})
onMounted(() => {
let devcieCode = Local.get("devcieCode");
if (devcieCode) {
@@ -2176,12 +2392,9 @@
centerDialogVisible.value = true;
}
intervalId = setInterval(updateTime, 1000);
- speech.value = new Speech();
- speech.value?.setLanguage("zh-CN");
- speech.value?.init().then(() => {
- console.log("语音初 始化成功");
- // test()
- });
+ const height = window.innerHeight;
+ pageHeight.value = height;
+
});
// 在组件卸载前清除定时器,防止内存泄漏
onBeforeUnmount(() => {
@@ -2189,7 +2402,7 @@
clearInterval(intervalId);
}
});
-
+
const saveSet = () => {
if (deviceCode.value) {
centerDialogVisible.value = false;
@@ -2200,7 +2413,7 @@
ElMessage.warning("请先输入设备编号");
}
};
-
+
/**
* 刷新页面
*/
@@ -2210,10 +2423,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 {
@@ -2241,7 +2454,7 @@
}
}
};
-
+
reader.readAsDataURL(file);
};
const shaoma = () => {};
@@ -2251,33 +2464,19 @@
console.log(deviceData.value.设备名称, "子组件变量");
setTimeout(() => {
if (!xiaoduzhuangti.value) {
+ console.log("初始化血压图表111111");
initTupiao();
}
- }, 1000);
- }
-);
-
-watch(() => deviceData.value.患者姓名, (newVal: string) => {
- console.log("患者姓名变化:", newVal);
- if (newVal) {
- contentHeight.value = 0; // 重置高度
- setTimeout(() => {
- const windowHeight = window.innerHeight
- const toubu = document.getElementById('toubu')
- const toubuHeight = toubu ? toubu.offsetHeight : 0
- contentHeight.value = windowHeight - toubuHeight
- console.log("contentHeight.value: ", contentHeight.value)
}, 500);
}
-})
-
+);
const 数据初始化 = ref(false);
//创建链接对象
const creatSource = () => {
// 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_SSE_BASE_URL;
const stateArr = [
{ key: 0, value: "正在链接中" },
{ key: 1, value: "已经链接并且可以通讯" },
@@ -2314,12 +2513,15 @@
if (dataBody.倒计时?.提醒文本) {
倒计时.value = dataBody.倒计时?.设定提醒倒计时;
console.log("设置了倒计时值", 倒计时.value);
- if (倒计时.value <= 0 && 倒计时.value >= -60&& centerDialogVisible3.value===false) {
+ if (
+ 倒计时.value <= 0 &&
+ 倒计时.value >= -60 &&
+ centerDialogVisible3.value === false
+ ) {
centerDialogVisible3.value = true;
倒计时告警文本.value = dataBody.倒计时?.提醒文本;
关闭弹框警告();
- 播报警告文本(倒计时告警文本.value);
- toggleAlarm()
+ // toggleAlarm();
} else if (倒计时.value <= -60) {
centerDialogVisible3.value = false;
}
@@ -2335,19 +2537,31 @@
dbp: dataBody?.床旁血压结果?.dbp,
zuihouTime: date,
};
-
- nextTick(() => {
- setTimeout(() => {
- initTupiao();
- }, 500);
- });
-
+ setTimeout(() => {
+ console.log("初始化血压图表444444");
+ initTupiao();
+ }, 500);
} else if (dataBody.推送类型 === "中央监控大屏信息") {
数据初始化.value = false;
// loading.close()
console.log(Date.now() + "DEV");
if (dataBody?.透析状态) {
deviceData.value = dataBody?.透析状态;
+ if ('透析单医嘱列表' in dataBody.透析状态 && 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.患者姓名 = "";
@@ -2355,15 +2569,12 @@
当前客户耗材集合.value = dataBody?.使用耗材字典;
}
}
-
+
deviceData.value.设备变化 = Date.now() + "DEV";
-
+
deviceData.value.属性历史列表 = dataBody?.IOT信息?.属性历史列表;
console.log(deviceData.value.设备变化);
deviceData.value.设备状态列表 = dataBody.IOT信息.状态列表;
- if ('透析单医嘱列表' in dataBody.透析状态) {
- deviceData.value.透析单医嘱列表 = dataBody.透析状态.透析单医嘱列表;
- }
}
}
}
@@ -2384,6 +2595,8 @@
};
isinitXy.value = true;
setTimeout(() => {
+ console.log("初始化血压图表333333");
+
initTupiao();
}, 500);
};
@@ -2391,56 +2604,9 @@
setTimeout(function () {
console.log("30秒已过,关闭报警设置弹框。");
centerDialogVisible3.value = false;
- toggleAlarm()
- 倒计时.value=-100
+ 倒计时.value = -100;
}, 30000); // 30000 毫秒 = 30 秒
};
-const 播报警告文本 = (tex) => {
- if (centerDialogVisible3.value) {
- console.log(centerDialogVisible3.value,'播报')
- speech.value
- .speak({
- text: tex,
- listeners: {
- //开始播放
- onstart: () => {
- console.log("开始播报");
- },
- //判断播放是否完毕
- onend: () => {
- console.log("播报完成");
- },
- //恢复播放
- onresume: () => {
- console.log("Resume utterance");
- },
- },
- })
- .then(() => {
- 播报警告文本(tex);
- });
- }
-};
-const test=()=>{
- speech.value
- .speak({
- text: '你好,我现在在测试播报内容',
- listeners: {
- //开始播放
- onstart: () => {
- console.log("开始播报");
- },
- //判断播放是否完毕
- onend: () => {
- console.log("播报完成");
- },
- //恢复播放
- onresume: () => {
- console.log("Resume utterance");
- },
- },
- })
-}
//初始化
const sourceInit = () => {
console.log("初始化see");
@@ -2457,6 +2623,20 @@
onBeforeMount(() => {
closeSource();
});
+
+
+const renderEcharts = (options: any) => {
+ const boxes = document.querySelectorAll(`.echartsDiv-${deviceData.value.设备编号}`);
+ boxes.forEach(box => {
+ if ((box as HTMLElement).dataset.initialized === 'true') return;
+ const chart = echarts.init(box as HTMLElement);
+ chart.setOption(options);
+ (box as HTMLElement).dataset.initialized = 'true';
+ });
+}
+
+
+
const initTupiao = () => {
if (deviceData.value.患者姓名 !== "") {
const seriesData = [
@@ -2487,7 +2667,7 @@
],
},
},
-
+
{
name: "",
type: "line",
@@ -2601,7 +2781,7 @@
label: { fontSize: 20, color: "#409EFF" },
});
seriesData[2].markPoint.data.push({
- name: "上机血压",
+ name: "上机压",
value: e.脉搏,
xAxis: index,
yAxis: e.脉搏,
@@ -2615,13 +2795,13 @@
xAxisData.push(1);
}
try {
- let myChart = null;
-
- if (proxy.$refs["echartsDiv" + deviceData.value.设备编号]) {
- myChart = echarts.init(
- proxy.$refs["echartsDiv" + deviceData.value.设备编号]
- );
- }
+ // console.log('proxy.$refs["echartsDiv" + deviceData.value.设备编号]: ', proxy.$refs["echartsDiv" + deviceData.value.设备编号])
+ // if (!bloodPressureEchart) {
+ // bloodPressureEchart = echarts.init(
+ // proxy.$refs["echartsDiv" + deviceData.value.设备编号]
+ // );
+ // }
+ // console.log('bloodPressureEchart: ', bloodPressureEchart)
const option = {
// backgroundColor: 床旁血压计.value.zuihouTime>shishiTime.value?'#ffffff':textcolor.value,
@@ -2659,23 +2839,44 @@
},
series: seriesData,
};
- if (myChart) {
- myChart.setOption(option);
- }
+ // console.log("渲染设备", deviceData.value.设备编号, option);
+ // console.log('deviceData.透析状态1: ', Number(deviceData.value.透析状态));
+ // nextTick(() => {
+ // bloodPressureEchart.setOption(option);
+ // bloodPressureEchart.resize();
+ // setTimeout(() => {
+ // // 方法1:检查容器内是否有canvas元素
+ // const canvas = bloodPressureEchart.getDom().querySelector('canvas');
+ // console.log('canvas: ', canvas);
+ // if (!canvas) {
+ // console.error('图表渲染失败:未生成canvas元素');
+ // return;
+ // }
+ // // 方法2:检查canvas的宽高
+ // if (canvas.width === 0 || canvas.height === 0) {
+ // console.error('图表渲染失败:canvas宽高为0');
+ // return;
+ // }
+ // // 方法3:检查图表实例的宽高
+ // if (bloodPressureEchart.getWidth() === 0 || bloodPressureEchart.getHeight() === 0) {
+ // console.error('图表渲染失败:图表实例宽高为0');
+ // return;
+ // }}, 1000);
+ // });
+ renderEcharts(option);
} catch (e) {
- console.log("图标渲染异常异常");
+ console.log("图标渲染异常异常:", e);
}
} else {
try {
- let myChart = null;
+ // if (!bloodPressureEchart) {
+ // // @ts-ignore
+ // bloodPressureEchart = echarts.init(
+ // proxy.$refs["echartsDiv" + deviceData.value.设备编号]
+ // );
+ // }
- if (proxy.$refs["echartsDiv" + deviceData.value.设备编号]) {
- myChart = echarts.init(
- proxy.$refs["echartsDiv" + deviceData.value.设备编号]
- );
- }
-
-
+
const option = {
backgroundColor:
床旁血压计.value.zuihouTime > shishiTime.value
@@ -2709,18 +2910,23 @@
},
series: [],
};
- if (myChart) {
- myChart.setOption(option);
- }
+ // console.log('deviceData.透析状态2: ', Number(deviceData.value.透析状态));
+ // // bloodPressureEchart.setOption(option);
+ // nextTick(() => {
+ // // bloodPressureEchart.setOption(option);
+ // bloodPressureEchart.setOption(option);
+ // });
+ renderEcharts(option);
} catch (e) {
- console.log("图表渲染异常异常: ", e);
console.log(
"异常",
- proxy.$refs["echartsDiv" + deviceData.value.设备编号]
+ proxy.$refs["echartsDiv" + deviceData.value.设备编号],
+ e
);
}
}
} else if (deviceData.value.患者姓名 === "") {
+ console.log("2222");
const tbdata1 = [];
const tbdata2 = [];
const tbdata3 = [];
@@ -2734,7 +2940,7 @@
tbdata1.push(Number(wdMode?.finalText));
wd.value = Number(wdMode?.finalText);
}
-
+
// 血液流速
const xymode = e.属性列表.find((l) => {
return l.identifierText === "血液流速";
@@ -2743,7 +2949,7 @@
tbdata2.push(Number(xymode?.finalText));
ls.value = Number(xymode?.finalText);
}
-
+
// 电导度
const dddMode = e.属性列表.find((l) => {
return l.identifierText === "透析液电导度";
@@ -2756,28 +2962,15 @@
}
try {
console.log("渲染设备");
- let myChart1 = null;
- let myChart2 = null;
- let myChart3 = null;
-
- if (proxy.$refs["echartsDivwd" + deviceData.value.设备编号]) {
- myChart1 = echarts.init(
- proxy.$refs["echartsDivwd" + deviceData.value.设备编号]
- );
- }
-
- if (proxy.$refs["echartsDivls" + deviceData.value.设备编号]) {
- myChart2 = echarts.init(
- proxy.$refs["echartsDivls" + deviceData.value.设备编号]
- );
- }
-
- if (proxy.$refs["echartsDivddd" + deviceData.value.设备编号]) {
- myChart3 = echarts.init(
- proxy.$refs["echartsDivddd" + deviceData.value.设备编号]
- );
- }
-
+ const myChart1 = echarts.init(
+ proxy.$refs["echartsDivwd" + deviceData.value.设备编号]
+ );
+ const myChart2 = echarts.init(
+ proxy.$refs["echartsDivls" + deviceData.value.设备编号]
+ );
+ const myChart3 = echarts.init(
+ proxy.$refs["echartsDivddd" + deviceData.value.设备编号]
+ );
const option1 = {
// backgroundColor: textcolor.value,
tooltip: {
@@ -2900,38 +3093,36 @@
},
],
};
- if (myChart1) {
- myChart1.setOption(option1);
- }
- if (myChart2) {
- myChart2.setOption(option2);
- }
- if (myChart3) {
- myChart3.setOption(option3);
- }
+ myChart1.setOption(option1);
+ myChart2.setOption(option2);
+ myChart3.setOption(option3);
} catch (e) {
console.log("图标渲染异常异常");
}
-
+
console.log(deviceData.value);
}
};
+
+
const getItemName = (name: string) => {
if (name) {
- if (name === "血红蛋白测定") {
- return "Hgb ";
+ if (name === "血红蛋白") {
+ return "HGB ";
} else if (name === "铁蛋白") {
- return "Fer ";
+ return "FER ";
} else if (name === "白蛋白") {
- return "Alb ";
- } else if (name === "血清铁蛋白") {
- return "SF ";
- } else if (name === "钙") {
- return "Ga ";
+ return "ALB ";
+ }
+ // else if (name === "血清铁蛋白") {
+ // return "SF ";
+ // }
+ else if (name === "钙") {
+ return "Ca ";
} else if (name === "钾") {
return "K ";
} else if (name === "无机磷") {
- return "pi ";
+ return "P ";
} else if (name === "甲状旁腺激素") {
return "PTH ";
} else {
@@ -2951,6 +3142,7 @@
width: 100%;
height: 100%;
border: 1px solid coral;
+ user-select: none;
.toubu {
// padding-left: 20px;
width: 100%;
@@ -3005,17 +3197,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%;
@@ -3042,7 +3234,7 @@
align-items: center; /* 垂直居中 */
height: 100vh; /* 根据需要调整高度 */
}
-
+
.centered-text {
font-weight: 600;
/* 其他样式 */
@@ -3068,7 +3260,7 @@
height: 100%;
gap: 10px; /* 调整这个值来设置间隔 */
}
-
+
.item-weiqiandao {
flex: 1; /* 确保每个子 div 占据相同的高度 */
background-color: lightblue; /* 可以根据需要调整背景颜色 */
@@ -3103,7 +3295,7 @@
width: 100%; /* 设置一个具体的宽度或确保有继承宽度 */
font-weight: 600;
}
-
+
.right-div {
width: 50px; /* 固定宽度 */
font-size: 16px;
@@ -3116,27 +3308,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;
@@ -3155,7 +3347,7 @@
.custom-dialog {
border-radius: 10px;
}
-
+
.my-header {
background-color: #ff6b6b; /* 标题背景颜色 */
color: white; /* 标题文字颜色 */
@@ -3170,4 +3362,4 @@
padding: 0;
padding-bottom: 10px;
}
-</style>
+</style>
\ No newline at end of file
--
Gitblit v1.8.0