From 5bbbb588c955a565af087e789da39b9c1d365b3f Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期二, 27 五月 2025 21:44:35 +0800
Subject: [PATCH] gx
---
src/views/deviceWindoes2.vue | 264 ++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 221 insertions(+), 43 deletions(-)
diff --git a/src/views/deviceWindoes2.vue b/src/views/deviceWindoes2.vue
index da1e367..702072e 100644
--- a/src/views/deviceWindoes2.vue
+++ b/src/views/deviceWindoes2.vue
@@ -38,21 +38,19 @@
style="margin-left: 5%; font-size: 300%; height: 100%"
>{{ deviceData.性别 }}</span
>
- <div style="
- position: absolute;
- top: 0;
- right: 0;
- display: grid;
- padding: 5px;
- font-size: 300%;
- height: 100%
- ">
- <span class="grid-container"
- style="height: 100%;color: #303133;padding-right: 20px;"
- >
- <el-image @click="centerDialogVisible=true" :src="shezhi"></el-image>
- </span>
- </div>
+
+
+
+ <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;">
+ <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>
<div class="chongjian" style="height: 50%;">
@@ -237,7 +235,7 @@
<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" >
+ <div style="height: 85%; font-weight: 600;font-size: 50px;color: #8079CB;" class="scrollable-text" >
{{deviceData.透析器}}
</div>
</div>
@@ -613,8 +611,8 @@
</div>
<template v-if="!ispaiban">
<div class="chongjian" style="height: 50%;">
- <el-row :gutter="20" style="height: 100%; padding: 20px;">
- <el-col :span="7" style="height: 100%;">
+ <el-row :gutter="10" style="height: 100%; padding:10px 20px 0px 20px;">
+ <el-col :span="7" style="height: 100%;" ref="targetDiv">
<div class="container-weiqiandao" style="height: 100%">
<div class="item-weiqiandao" style="background: #FFEDD2;border-radius: 8px;height: 100%;">
<div class="container-cord" style="height: 30px;">
@@ -635,8 +633,59 @@
</div>
</div>
</el-col>
- <el-col :span="10">
- <div class="container-weiqiandao" >
+ <el-col :span="10" style="height: 100%;">
+ <div class="cont_parent">
+ <div class="cont_child" 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%;">
+ <div class="container-body-text" style="color: #3A75B8;">
+ <template v-for="(item,index) in 当前客户耗材集合.透析模式" :key="index">
+ <span> {{item}}</span><template v-if="当前客户耗材集合.透析模式.length>index+1">,</template>
+ </template>
+ </div>
+ </div>
+ </div>
+ <div class="cont_child" 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%;">
+ <div class="scrollable-container" style="height: 100%;color: #3AB859;">
+ <ul>
+ <li v-for="(item,index) in 当前客户耗材集合.管路" :key="index">
+ {{item}}
+ </li>
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <div class="cont_child" 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%;">
+ <div class="scrollable-container" style="height: 100%;color: #902D2D;">
+ <ul>
+ <li v-for="(item,index) in 当前客户耗材集合.护理包" :key="index">
+ {{item}}
+ </li>
+
+ </ul>
+ </div>
+ </div>
+ </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"
@@ -686,7 +735,7 @@
</div>
</div>
</div>
- </div>
+ </div> -->
</el-col>
<el-col :span="7" style="height: 100%;">
<div class="container-weiqiandao" style="height: 100%">
@@ -712,7 +761,7 @@
</el-row>
</div>
<div class="mowei" style="height: 39%;">
- <el-row :gutter="20" style="height: 100%;padding:10px 20px 20px 20px;">
+ <el-row :gutter="20" style="height: 100%;padding:10px 20px 10px 20px;">
<el-col :span="12" style="height: 100%">
<div class="container-weiqiandao" style="height: 100%">
<div class="item-weiqiandao" style="background: #F6F5FA;border-radius: 8px;height: 100%;">
@@ -785,7 +834,7 @@
<span>
<el-form label-position="left" label-width="auto" style="max-width: 600px">
<el-space fill>
- <el-alert type="warning" show-icon :closable="false">
+ <el-alert type="绑定设备" show-icon :closable="false">
<p>"请输入设备编号后才能使用不然无法定位到数据来源:</p>
<p>也可以选择二维码图片文件识别</p>
</el-alert>
@@ -804,9 +853,64 @@
<el-button type="primary" @click="saveSet">
确认
</el-button>
+ <el-button type="success" @click="shuaxin">
+ 刷新
+ </el-button>
</div>
</template>
- </el-dialog>
+ </el-dialog>
+ <el-dialog v-model="centerDialogVisible2" title="定时任务设置" width="600" center>
+ <span>
+ <div>
+ <el-form :model="formInline" label-width="100px">
+ <el-form-item label="时间设定:">
+ <el-col :span="10">
+ <el-input-number style="width: 100%;" v-model="formInline.xiaoshi" :min="1" :max="10" />
+ </el-col>
+ <el-col :span="2" class="text-center">
+ <span class="text-gray-500">小时 </span>
+ </el-col>
+ <el-col :span="10">
+ <el-input-number style="width: 100%;" v-model="formInline.fenzhong" :min="1" :max="59" />
+ </el-col>
+ <el-col :span="2" class="text-center">
+ <span class="text-gray-500">分钟 </span>
+ </el-col>
+ </el-form-item>
+
+ <el-form-item label="提醒内容:">
+ <el-input v-if="!formInline.selectOpen"
+ v-model="formInline.alertText"
+ style="max-width: 600px"
+ placeholder="请填写报警内容"
+ type="textarea"
+ class="input-with-select"
+ >
+ </el-input>
+ <el-select v-else v-model="formInline.selectType" style="width: 100%;" placeholder="选择内容" >
+ <el-option label="测血压" value="测血压" />
+ <el-option label="开超滤" value="开超滤" />
+ <el-option label="给药" value="给药" />
+ </el-select>
+
+ </el-form-item>
+ <el-form-item label="定型文:">
+ <el-switch v-model="formInline.selectOpen" />
+ </el-form-item>
+
+ </el-form>
+
+ </div>
+ </span>
+ <template #footer>
+ <div class="dialog-footer">
+ <el-button @click="centerDialogVisible2=false">取消</el-button>
+ <el-button type="primary" @click="setDingshi">
+ 确定
+ </el-button>
+ </div>
+ </template>
+ </el-dialog>
</div>
@@ -816,6 +920,7 @@
import { BrowserMultiFormatReader, NotFoundException, ChecksumException, FormatException } from '@zxing/library';
import TQS88 from "../img/TQS88.png";
import shezhi from '../img/shezhi.png'
+ import dingshi from '../img/dingshi.png'
import xinlv from '../img/xinlv.png'
import tsl from '../img/tsl.png'
import zlms from '../img/zlms.png'
@@ -825,10 +930,11 @@
import cljd from '../img/cljd.png'
import tizhong from '../img/tizhong.png'
import {EventSourcePolyfill} from 'event-source-polyfill';
- import { computed, getCurrentInstance, onBeforeMount, onMounted, ref, watch, watchEffect } from "vue";
+ import { computed, getCurrentInstance, onBeforeMount, onMounted, ref, watch, onUnmounted } from "vue";
import { Local } from '../utils/storage';
import * as echarts from "echarts";
import { jgTime4 } from "../utils/formatTime";
+ import {setTimeoutAlert} from '../utils/httpApi'
const { proxy } = getCurrentInstance() as any;
// 在需要使用的组件中引入
import { ChatDotSquare } from '@element-plus/icons-vue';
@@ -840,6 +946,8 @@
const sseData = ref({});
// sse状态
const readyState = ref({ key: 0, value: "正在链接中" });
+
+
const deviceCode=ref('')
const shishiTime=ref(new Date())
//有没有推送过血压如果有 就一直会显示血压数据
@@ -851,6 +959,14 @@
dbp:'111',
zuihouTime:new Date()
})
+ const formInline=ref({
+ xiaoshi:0,
+ fenzhong:5,
+ alertText:'',
+ selectType:'',
+ selectOpen:false
+ })
+
const 当前客户耗材集合=ref({})
const deviceData = ref({
iot_传输时间: "2025-01-10 19:15:24",
@@ -1019,6 +1135,7 @@
const video = ref<HTMLVideoElement | null>(null);
// 识别数据流
let stream: MediaStream | null = null;
+ const centerDialogVisible2=ref(false)
const centerDialogVisible = ref(false);
const background = ref("");
const txztText = ref("");
@@ -1053,6 +1170,34 @@
const xiaoduzhuangti = computed(() => {
return false;
});
+ // 打开定时任务设置
+ const dingshiShow=(()=>{
+ formInline.value={
+ xiaoshi:0,
+ fenzhong:5,
+ alertText:'',
+ selectType:'',
+ selectOpen:false
+ }
+ centerDialogVisible2.value=true
+ })
+ // 保存定时任务
+ const setDingshi=(()=>{
+ console.log('--------------------')
+ console.log(formInline.value)
+ console.log(deviceCode.value)
+ const minutes=formInline.value.xiaoshi*60+formInline.value.fenzhong
+ let alertText=''
+ if(formInline.value.selectOpen){
+ alertText=formInline.value.selectType
+ }else{
+ alertText=formInline.value.alertText
+ }
+ setTimeoutAlert({deviceCode:deviceCode.value,minutes:minutes,alertText:alertText}).then(res=>{
+ console.log(res.data)
+ })
+ // centerDialogVisible2.value=false
+ })
// 状态颜色
const zhuangtaiColor = computed(() => {
const list = deviceData.value.设备状态列表;
@@ -1199,7 +1344,10 @@
}else{
centerDialogVisible.value=true
}
+
});
+
+
const saveSet=()=>{
if(deviceCode.value){
centerDialogVisible.value=false
@@ -1209,6 +1357,13 @@
}else{
ElMessage.warning('请先输入设备编号')
}
+ }
+
+ /**
+ * 刷新页面
+ */
+ const shuaxin=()=>{
+ window.location.reload();
}
const onFileChange=async(event: Event)=> {
const inputElement = event.target as HTMLInputElement;
@@ -1262,20 +1417,20 @@
// http://testbs.ihemodialysis.com/sse/sseEvent
// const test='http://testbs.ihemodialysis.com/sse/sseEvent/'
数据初始化.value=true
- const loading = ElLoading.service({
- lock: true,
- text: '数据初始化中。。。',
- background: 'rgba(0, 0, 0, 0.7)',
- svg:`<path class="path" d="
- M 30 15
- L 28 17
- M 25.61 25.61
- A 15 15, 0, 0, 1, 15 30
- A 15 15, 0, 1, 1, 27.99 7.5
- L 15 15
- " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
- `
- })
+ // const loading = ElLoading.service({
+ // lock: true,
+ // text: '数据初始化中。。。',
+ // background: 'rgba(0, 0, 0, 0.7)',
+ // svg:`<path class="path" d="
+ // M 30 15
+ // L 28 17
+ // M 25.61 25.61
+ // A 15 15, 0, 0, 1, 15 30
+ // A 15 15, 0, 1, 1, 27.99 7.5
+ // L 15 15
+ // " style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
+ // `
+ // })
const test='https://backend.ihemodialysis.com/sse/sseEvent/'
const stateArr = [
{ key: 0, value: "正在链接中" },
@@ -1326,7 +1481,7 @@
},500)
}else if(dataBody.推送类型==='中央监控大屏信息'){
数据初始化.value=false
- loading.close()
+ // loading.close()
console.log(Date.now() + 'DEV')
if(dataBody?.透析状态){
deviceData.value=dataBody?.透析状态
@@ -1972,6 +2127,7 @@
flex: 1; /* 确保每个子 div 占据相同的高度 */
background-color: lightblue; /* 可以根据需要调整背景颜色 */
padding: 10px; /* 添加内边距以美化显示 */
+
}
.container-body{
display: flex;
@@ -2024,9 +2180,31 @@
}
.scrollable-container li {
- padding: 4px;
+ // padding: 4px;
font-weight: 600;
// border-bottom: 1px solid #ddd;
}
-
- </style>
\ No newline at end of file
+
+.cont_parent {
+ height: 100%;
+ display: grid;
+ grid-template-rows: repeat(3, 1fr); /* 将容器划分为3行,每行占1份 */
+ gap: 5px; /* 子元素之间的间隙(可选) */
+}
+
+.cont_child {
+ border: 1px solid #ccc;
+ padding: 10px;
+ overflow-y: auto; /* 当内容超出时显示垂直滚动条 */
+ box-sizing: border-box; /* 确保 padding 和 border 不增加实际高度 */
+}
+.scrollable-text{
+ white-space: nowrap;
+ overflow-x: auto;
+ width: 100%;
+ padding: 10px;
+ box-sizing: border-box;
+ // border: 1px solid #e4e4e4;
+ // font-size: 16px;
+}
+ </style>
--
Gitblit v1.8.0