From 77dfccc6c22a1a3eb82b55df7ff237bfcb67cc3a Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期四, 24 四月 2025 17:25:04 +0800
Subject: [PATCH] 更新平均脱水量
---
src/views/deviceWindoes2.vue | 189 ++++++++++++++++++++++++++++++++--------------
1 files changed, 131 insertions(+), 58 deletions(-)
diff --git a/src/views/deviceWindoes2.vue b/src/views/deviceWindoes2.vue
index e7ba648..5d30d2b 100644
--- a/src/views/deviceWindoes2.vue
+++ b/src/views/deviceWindoes2.vue
@@ -55,15 +55,15 @@
</el-row>
</div>
<div class="chongjian" style="height: 50%;">
- <el-row :gutter="20" style="height: 100%; padding: 20px;">
- <el-col :span="6" style="height: 100%;">
- <div style="height: 100%">
+ <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%;
+ /* margin-bottom: 1%; */
height: 100%;
width: 100%;
"
@@ -123,7 +123,7 @@
<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;">
+ <div class="container-body-text" style="color: #3A75B8;font-size: 30px;" >
<span style="font-size: 30px;" v-if="deviceData.透析方案 ==='HDF'"> {{deviceData?.置换方式==='前置换'?'前':'后'}}</span> {{ deviceData.透析方案 }}
</div>
@@ -135,8 +135,8 @@
/>
<span class="text-group_3">人工肾</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.透析器列表" :key="index">
+ <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>
@@ -148,8 +148,8 @@
/>
<span class="text-group_3">一次性循环管路</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #3AB859;" v-for="(item,index) in deviceData.管路列表" :key="index">
+ <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>
@@ -167,7 +167,7 @@
<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: 60px;">
+ <div class="container-body-text" style="color: #333333; font-size: 50px;">
{{txztText}}
</div>
</div>
@@ -178,8 +178,8 @@
/>
<span class="text-group_3">透析液</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #3AB859;" v-for="(item,index) in deviceData.透析液列表" :key="index">
+ <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>
@@ -351,6 +351,7 @@
<!-- 治疗中 -->
<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">
@@ -425,44 +426,69 @@
</div>
</div>
- <div v-else style="height: 70%;width: 100%; padding-right: 0px;padding-bottom: 10px;">
- <el-row style="height:100%" :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"
+ <!-- 已签到 -->
+ <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>
- </div>
-
+ <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>
- <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="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 style="height: 100%;">
- <div
- v-if="Number(deviceData.透析状态) > 1"
- :ref="'echartsDiv' + deviceData.设备编号"
- style="height: 97%"
- >
+ </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;" >
+ <el-row style="font-size: 30px;">
+ <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>
- </div>
- </el-col>
- </el-row>
+ </el-col>
+ <el-col :span="18" style="height: 100%;width: 100%;">
+ <div class="item" style="height: 100%;padding-bottom: 10px; /* 设置所有方向的间距为10px */">
+ <div style="height: 100%;">
+ <div
+ v-if="Number(deviceData.透析状态) > 1"
+ :ref="'echartsDiv' + deviceData.设备编号"
+ style="height: 97%"
+ >
+ </div>
+ </div>
+ </div>
+ </el-col>
+ </el-row>
+ </div>
</div>
<!-- 消息提示一直显示最新的消息 -->
- <div style="height: 30%;width: 100%;background: #FEF0E1;;border-radius: 8px; font-size: 30px;">
+ <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;"
@@ -491,8 +517,8 @@
/>
<span class="text-group_3">抗凝剂</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.抗凝剂列表" :key="index">
+ <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>
@@ -504,8 +530,8 @@
/>
<span class="text-group_3">穿刺针</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.穿刺针列表" :key="index">
+ <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>
@@ -522,8 +548,8 @@
/>
<span class="text-group_3">一次性使用透析护理包</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.护理包列表" :key="index">
+ <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>
@@ -535,8 +561,8 @@
/>
<span class="text-group_3">血管通路</span>
</div>
- <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 40px;">
- <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.血管通路列表" :key="index">
+ <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>
@@ -632,7 +658,7 @@
<span class="text-group_3">一次性血液透析体外循环管路</span>
</div>
<div class="grid-container" style="height: calc(100% - 30px);width: 100%;">
- <div class="scrollable-container" style="height: 100%;color: #3AB859;">
+ <div class="scrollable-container" style="height: 100%;color: #3AB859;">
<ul>
<li v-for="(item,index) in 当前客户耗材集合.管路" :key="index">
{{item}}
@@ -760,12 +786,16 @@
<el-space fill>
<el-alert type="warning" show-icon :closable="false">
<p>"请输入设备编号后才能使用不然无法定位到数据来源:</p>
+ <p>也可以选择二维码图片文件识别</p>
</el-alert>
<el-form-item label="设备编号">
<el-input v-model="deviceCode" />
</el-form-item>
</el-space>
</el-form>
+ <div>
+ <input type="file" pattern="选取二维码" accept="image/*" @change="onFileChange" />
+ </div>
</span>
<template #footer>
<div class="dialog-footer">
@@ -782,6 +812,7 @@
</template>
<script lang="ts" setup>
+ import { BrowserMultiFormatReader, NotFoundException, ChecksumException, FormatException } from '@zxing/library';
import TQS88 from "../img/TQS88.png";
import shezhi from '../img/shezhi.png'
import xinlv from '../img/xinlv.png'
@@ -983,8 +1014,10 @@
],
});
// 告警提示
- const textbaojing = ref("");
- const iscomfig = ref(false);
+ // 识别窗口
+ const video = ref<HTMLVideoElement | null>(null);
+ // 识别数据流
+ let stream: MediaStream | null = null;
const centerDialogVisible = ref(false);
const background = ref("");
const txztText = ref("");
@@ -1175,6 +1208,39 @@
}else{
ElMessage.warning('请先输入设备编号')
}
+ }
+ 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 {
+ const codeReader = new BrowserMultiFormatReader();
+ const result = await codeReader.decodeFromImage(undefined, e.target.result);
+ deviceCode.value = result.text;
+ ElMessage.success('识别成功')
+ } catch (err) {
+ if (err instanceof NotFoundException) {
+ ElMessage.error("未找到二维码");
+ } else if (err instanceof ChecksumException) {
+ ElMessage.error("校验错误");
+ } else if (err instanceof FormatException) {
+ ElMessage.error("格式错误");
+ } else {
+ ElMessage.error("识别错误请重新识别");
+ console.error(err);
+ }
+ }
+ }
+ };
+
+ reader.readAsDataURL(file);
+ }
+ const shaoma=()=>{
}
watch(
() => deviceData.value.设备变化,
@@ -1868,7 +1934,7 @@
margin-left:10px;
font-family: PingFangSC, PingFang SC;
font-weight: 600;
- font-size: 20px;
+ font-size: 16px;
}
}
.container-weiqiandao {
@@ -1904,12 +1970,19 @@
}
.left-div {
flex-grow: 1; /* 自适应宽度,占满剩余空间 */
+ white-space: nowrap; /* 防止文字自动换行 */
+ overflow: hidden; /* 隐藏超出容器宽度的内容 */
+ text-overflow: ellipsis; /* 当文本溢出时显示省略号 */
+ width: 100%; /* 设置一个具体的宽度或确保有继承宽度 */
font-weight: 600;
}
.right-div {
- width: 120px; /* 固定宽度 */
- text-align: center; /* 可选:文本居中 */
+ width: 50px; /* 固定宽度 */
+ font-size: 16px;
+ display: flex;
+ justify-content: center; /* 水平居中 */
+ align-items: center; /* 垂直居中 */
}
--
Gitblit v1.8.0