From 9b5f417222579cd7a6031fd08ca7e65947fe7775 Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期二, 01 七月 2025 21:11:29 +0800
Subject: [PATCH] ID1743-修改see

---
 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..0f508e4 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_SSE_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