From dc7afd089a74edf6a9e50d0eb3e0607d09e72548 Mon Sep 17 00:00:00 2001
From: chenyc <501753378@qq.com>
Date: 星期五, 08 七月 2022 17:15:29 +0800
Subject: [PATCH] confingUpdete

---
 src/views/home/index.vue |  261 ++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 231 insertions(+), 30 deletions(-)

diff --git a/src/views/home/index.vue b/src/views/home/index.vue
index e5464c7..e1a76c2 100644
--- a/src/views/home/index.vue
+++ b/src/views/home/index.vue
@@ -1,46 +1,231 @@
 <script lang="ts">
 import { userInfoStore } from '@/stores/userInfo'
 import { sockteStore } from '@/stores/sockteInfo'
+import { patientInfoStore } from '@/stores/patient'
 import { ipcRenderer } from 'electron'
-import { reactive,computed, toRefs } from "vue"
+import os from "os"
+import { reactive,computed, toRefs,onMounted ,ref,watch} from "vue"
+import{sendPationCode,sendPationSet} from '../../samples/sockteStomp'
+import {formatDate} from '@/utils/formatTime'
  export default {
         setup() {
+            let  timer:any=0
             const user = userInfoStore()
             const sockte= sockteStore()
+            const inputRef=ref()
+            const AudioRef0=ref()
+            const AudioRef=ref()
+            const AudioRef2=ref()
+            const AudioRef3=ref()
             const isLink= computed(()=>{
-                return sockte.isLink
+                return !sockte.isLink
             }) 
             const netLink= computed(()=>{
-                return sockte.netLink
+                return !sockte.netLink
             })
-            const state=reactive({
+            const weightInfo= computed(()=>{
+                return sockte.weightSockte
             })
-            const ubtCilert=()=>{
-                console.log('ss')
-                // console.log(user.userInfo)
-                // console.log(sockteStore().isLink)
-                // ipcRenderer.send('main-process-message2', { 'param1': "hello" });
-                // console.log(window.myApi.fun('陈银城'))
+            const xyjInfo= computed(()=>{
+                return sockte.xyjSockte
+            })
+            const patientInfo=computed(()=>{
+                return patientInfoStore().patientInfo
+            })
+            const viewNumber=computed(()=>{
+                return patientInfoStore().viewNumber
+            })
+
+            const settime=()=>{
+                // 计数倒计时
+                state.clockNum=patientInfoStore().viewNumber
+                // 清除定时器
+                clearInterval(state.timerNum)
+                console.log('------------------')
+                timer= setInterval(() => {
+                    if (state.clockNum > 0) {
+                        state.clockNum--
+                    }
+                    else {
+                        clearInterval(timer)
+                        patientInfoStore().setpatientInfo({
+                            id:0,
+                            code:'',
+                            name:'',
+                            patientAvatarIcon:'',
+                            deviceCode:'',
+                            hemoCode:'',
+                            pureWeight:''
+                        })
+                        state.clockNum = patientInfoStore().viewNumber
+                    }
+                }, 1000)
+                // 记录定时器
+                state.timerNum=timer
+                console.log(timer)
             }
-            return{ ...toRefs(state), ubtCilert,isLink,netLink
+            const state=reactive({
+                dialogVisible:false,
+                isActive:false,
+                inputCode:"",
+                Newdate:"",
+                clockNum:60,
+                timerNum:0,//定时器数
+                aimTSL:0,// 目标脱水量,
+                gao_ya:"",//高压
+                di_ya:"",//低压
+                mai_bu:""//脉搏
+            })
+            watch(
+                ()=>patientInfo.value.id,
+                ()=>{
+                    console.log('患者变化了',patientInfo)
+                    if(patientInfo.value.id!==0)
+                    {
+                        AudioRef.value.play();
+                        sockteStore().setweightSockte({
+                            type:"体重秤",
+                            state:2,
+                            deviceName:"",
+                            result:"0",
+                            resultTime:""
+                        })
+                        sockteStore().setxyjSockte({
+                            type:"血压计",
+                            state:2,
+                            deviceName:"",
+                            result:"",
+                            resultTime:""
+                        })
+                        settime()
+                       
+                    }
+                }
+            )
+            watch(
+                ()=>weightInfo.value.resultTime,
+                ()=>{
+                    settime()
+                    console.log("体重变化了")
+                    // AudioRef2.value.play()
+                    if(patientInfo.value.id===0){
+                        AudioRef0.value.play()
+                    }
+                    else{
+                        AudioRef2.value.play()
+                        // 发送结果到sockte服务
+                        const mode={
+                            patientCode:patientInfo.value.code,
+                            weight:weightInfo.value.result,
+                            bloodPressure:''
+
+                        }
+                        console.log('发送患者结果',mode)
+                        sendPationSet(mode)
+                        // 计算目标脱水量
+                        if(Number(weightInfo.value.result)>0&&Number(patientInfo.value.pureWeight)!==0){
+                            state.aimTSL=Number(weightInfo.value.result)-Number(patientInfo.value.pureWeight)
+                        }
+                    }
+                }
+            )
+            watch(
+                ()=>xyjInfo.value.resultTime,
+                ()=>{
+                    if(xyjInfo.value.result!==''){
+                        const list=xyjInfo.value.result.split(',')
+                        if(list.length===3){ 
+                            state.gao_ya=list[0]
+                            state.di_ya=list[1]
+                            state.mai_bu=list[2]
+                        }
+                        if(patientInfo.value.id===0){
+                            AudioRef0.value.play()
+                            settime()
+                        }else{
+                            AudioRef3.value.play()
+                            settime()
+                            const mode={
+                                patientCode:patientInfo.value.code,
+                                weight:weightInfo.value.result,
+                                bloodPressure:xyjInfo.value.result
+
+                            }
+                            console.log('发送患者结果',mode)
+                            sendPationSet(mode)
+                        }    
+                    }else{
+                        state.gao_ya=""
+                        state.di_ya=""
+                        state.mai_bu=""
+                    }
+                }
+            )
+            watch(()=>viewNumber,
+                ()=>{
+                    state.clockNum=viewNumber.value
+                }
+            )
+            const inputChabge=()=>{
+                sendPationCode(state.inputCode)
+                setTimeout(function(){
+                    state.inputCode=''
+                },1000)
+            }
+            onMounted(() => {
+                console.log('页面初始化',os.hostname())
+                state.clockNum=patientInfoStore().viewNumber
+                setTimeout(function(){
+                    console.log('7秒后操作')
+                    inputRef.value.focus();
+                },7000)
+                setInterval(function(){
+                    state.Newdate=formatDate(new Date(),"YYYY-mm-dd HH:MM:SS")
+                },1000)
+            })
+            return{ ...toRefs(state),isLink,netLink,weightInfo,patientInfo,inputRef,AudioRef0,AudioRef,AudioRef2,AudioRef3,inputChabge
             }
         }
     }
 </script>
 <template>
     <div class="home">
-        <!-- <el-button @click="ubtCilert">
-            test
-        </el-button> -->
+        <!-- 提醒刷卡 -->
+        <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step1.mp3" ref="AudioRef0" id="eventAudio"></audio>
+        <!-- 患者信息读取成功 -->
+        <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step2.mp3" ref="AudioRef" id="eventAudio"></audio>
+        <!-- 体重结果回传成功 -->
+        <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step3.mp3" ref="AudioRef2" id="eventAudio"></audio>
+        <!-- 血压结果回传成功 -->
+        <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step4.mp3" ref="AudioRef3" id="eventAudio"></audio>
+        <el-dialog
+            title="提示"
+            v-model="netLink"
+            width="30%">
+            <span>无法链接到网络!</span>
+        </el-dialog>
+        <el-dialog
+            title="提示"
+            v-model="isLink"
+            width="30%">
+            <span>sockte连接失败正在重连。。。。。。</span>
+        </el-dialog>
         <el-row>
             <el-col :span="12">
                 <div class="tale">
                     <img class="imgss" alt="Vue logo" src="@/assets/logo.png" />
                 </div>
             </el-col>
-            <el-col :span="12">
-                <div> sockte连接状态{{isLink}}</div>
-                <div> 网络连接状态{{netLink}}</div>
+            <el-col :span="6">
+                <!-- <div> sockte连接状态{{isLink}}</div>
+                <div> 网络连接状态{{netLink}}</div> -->
+                <el-input id="inputCode" @change="inputChabge" v-model="inputCode" ref="inputRef" placeholder="" />
+
+            </el-col>
+            <el-col :span="6">
+                <div class="datess">
+                    {{clockNum}}
+                </div>
             </el-col>
         </el-row>
         <div class="grid-container">
@@ -49,41 +234,45 @@
                     shape="square"
                     :size="100"
                     fit="cover"
-                    src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg"
+                    :src="patientInfo.patientAvatarIcon"
                 />
-                <div class="zsf">张三丰</div>
+                <div class="zsf">{{patientInfo.name}}</div>
             </div>
             <div class="grid-item">
                 <div class="lableText">当前时间:</div>
-                <div class="conText">2022-06-21 14:10</div>
+                <div class="conText">{{Newdate}}</div>
             </div>
             <div class="grid-item">
-                <div class="lableText">当前时间:</div>
-                <div class="conText">2022-06-21 14:10</div>
+                <div class="lableText">透析号:</div>
+                <div class="conText">{{patientInfo.hemoCode}}</div>
             </div>
             <div class="grid-item">
                 <div class="lableText">机号:</div>
-                <div class="conText">001</div>
+                <div class="conText">{{patientInfo.deviceCode}}</div>
             </div>
             <div class="grid-item">
                 <div class="lableText">序号:</div>
-                <div class="conText">10</div>
+                <div class="conText">0</div>
             </div>
             <div class="grid-item">
                 <div class="lableText">干体重(kg):</div>
-                <div class="conText">88</div>
+                <div class="conText">{{patientInfo.pureWeight}}</div>
             </div>
-            <div class="grid-item">
-                <div class="lableText">透前称重(kg):</div>
-                <div class="conText">90</div>
+            <div class="grid-item" >
+                <div>
+                    <div class="lableText" v-if="weightInfo.state===2">透前称重(kg):</div>
+                    <div class="lableText" v-if="weightInfo.state===1" style="color:red">体重秤通讯服务正常运行但未联通设备</div>
+                    <div class="lableText" v-if="weightInfo.state===0" style="color:red">体重秤通讯服务不正常 </div>
+                    <div class="conText">{{weightInfo.result}}</div>
+                </div>
             </div>
             <div class="grid-item">
                 <div class="lableText">目标脱水量:</div>
-                <div class="conText">2</div>
+                <div class="conText">{{aimTSL}}</div>
             </div>
             <div class="grid-item">
                 <div class="lableText">血压:</div>
-                <div class="conText">140/90</div>
+                <div class="conText">{{gao_ya}}/{{di_ya}}</div>
             </div>
         </div>
     </div>
@@ -137,4 +326,16 @@
     margin-top: 15pt;
     color: #769aff;
 }
+.active{
+    background: #c1c2c6;
+    color: black;
+}
+.datess{
+    text-align: right;
+    padding-right: 20px;
+    height: 30px;
+    line-height: 30px;
+    color: red;
+    font-weight: 1000;
+}
 </style>
\ No newline at end of file

--
Gitblit v1.8.0