| | |
| | | <script lang="ts"> |
| | | import { userInfoStore } from '@/stores/userInfo' |
| | | import { sockteStore } from '@/stores/sockteInfo' |
| | | import { ipcRenderer } from 'electron' |
| | | import { patientInfoStore } from '@/stores/patient' |
| | | import os from "os" |
| | | import { reactive, computed, toRefs, onMounted, ref, watch } from "vue" |
| | |
| | | import state2 from '@/assets/state2.png' |
| | | import state3 from '@/assets/state3.png' |
| | | import logo from '@/assets/LOGO.png' |
| | | import step6 from '@/assets/mp3/step6.mp3' |
| | | import step5 from '@/assets/mp3/step5.mp3' |
| | | import step4 from '@/assets/mp3/step4.mp3' |
| | | import step3 from '@/assets/mp3/step3.mp3' |
| | | import step2 from '@/assets/mp3/step2.mp3' |
| | | import step1 from '@/assets/mp3/step1.mp3' |
| | | |
| | | export default { |
| | | setup() { |
| | |
| | | const AudioRef = ref() |
| | | const AudioRef2 = ref() |
| | | const AudioRef3 = ref() |
| | | const AudioRef4=ref() |
| | | const AudioRef5=ref() |
| | | const isLink = computed(() => { |
| | | return !sockte.isLink |
| | | }) |
| | |
| | | }) |
| | | const xyjInfo = computed(() => { |
| | | return sockte.xyjSockte |
| | | }) |
| | | const dkqInfo = computed(() => { |
| | | return sockte.dkqSockte |
| | | }) |
| | | const patientInfo = computed(() => { |
| | | return patientInfoStore().patientInfo |
| | |
| | | } |
| | | else { |
| | | clearInterval(timer) |
| | | const datetimeCON=patientInfoStore().patientInfo.datetime |
| | | patientInfoStore().setpatientInfo({ |
| | | id: 0, |
| | | code: '', |
| | |
| | | patientAvatarIcon: '', |
| | | deviceCode: '', |
| | | hemoCode: '', |
| | | pureWeight: '' |
| | | pureWeight: '', |
| | | datetime:datetimeCON |
| | | }) |
| | | state.clockNum = patientInfoStore().viewNumber |
| | | sockteStore().setweightSockte({ |
| | |
| | | console.log(timer) |
| | | } |
| | | const state = reactive({ |
| | | caozuo:0,// 点击10下才能关闭 |
| | | logo:logo, |
| | | step5:step5, |
| | | step4:step4, |
| | | step3:step3, |
| | | step2:step2, |
| | | step1:step1, |
| | | step6:step6, |
| | | state1:state1, |
| | | state2:state2, |
| | | state3:state3, |
| | |
| | | aimTSL: '',// 目标脱水量, |
| | | gao_ya: "",//高压 |
| | | di_ya: "",//低压 |
| | | mai_bu: ""//脉搏 |
| | | mai_bu: "",//脉搏, |
| | | haodu:"0px", |
| | | }) |
| | | watch( |
| | | () => patientInfo.value.id, |
| | | () => patientInfo.value.datetime, |
| | | () => { |
| | | console.log('患者变化了', patientInfo) |
| | | console.log('患者信息变化',patientInfo.value) |
| | | if (patientInfo.value.id !== 0) { |
| | | AudioRef.value.play(); |
| | | sockteStore().setweightSockte({ |
| | |
| | | settime() |
| | | |
| | | } |
| | | else if(patientInfo.value.name===''){ |
| | | AudioRef4.value.play(); |
| | | return |
| | | } |
| | | else if(patientInfo.value.isScheduled===0){ |
| | | AudioRef5.value.play(); |
| | | return |
| | | } |
| | | } |
| | | ) |
| | | ); |
| | | watch( |
| | | () => weightInfo.value.resultTime, |
| | | () => { |
| | | settime() |
| | | console.log("体重变化了") |
| | | console.log("体重变化了",weightInfo.value) |
| | | // AudioRef2.value.play() |
| | | if (patientInfo.value.id === 0) { |
| | | AudioRef0.value.play() |
| | | inputRef.value.focus(); |
| | | |
| | | } |
| | | else { |
| | | AudioRef2.value.play() |
| | |
| | | } |
| | | } |
| | | } |
| | | ) |
| | | ); |
| | | watch( |
| | | () => xyjInfo.value.resultTime, |
| | | () => { |
| | |
| | | } |
| | | if (patientInfo.value.id === 0) { |
| | | AudioRef0.value.play() |
| | | inputRef.value.focus(); |
| | | settime() |
| | | } else { |
| | | AudioRef3.value.play() |
| | |
| | | state.mai_bu = "" |
| | | } |
| | | } |
| | | ) |
| | | ); |
| | | watch( |
| | | () => dkqInfo.value.resultTime, |
| | | () => { |
| | | console.log(dkqInfo.value,'读卡器') |
| | | if (dkqInfo.value.result !== ''&&dkqInfo.value.result !== undefined) { |
| | | const code=dkqInfo.value.result.split(",")[0] |
| | | console.log('获取读卡器的code',code) |
| | | sendPationCode(code) |
| | | } |
| | | } |
| | | ); |
| | | watch(() => viewNumber, |
| | | () => { |
| | | state.clockNum = viewNumber.value |
| | | } |
| | | ) |
| | | ); |
| | | const inputChabge = () => { |
| | | sendPationCode(state.inputCode) |
| | | setTimeout(function () { |
| | | state.inputCode = '' |
| | | }, 1000) |
| | | } |
| | | const guyanbi=()=>{ |
| | | state.caozuo++ |
| | | if(state.caozuo>10){ |
| | | ipcRenderer.send('winClose') |
| | | } |
| | | console.log(state.caozuo) |
| | | } |
| | | onMounted(() => { |
| | | console.log('页面初始化', os.hostname()) |
| | | state.haodu=(document.documentElement.clientHeight-180)/2+'px' |
| | | |
| | | 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") |
| | | inputRef.value.focus(); |
| | | }, 1000) |
| | | |
| | | }) |
| | | return { |
| | | ...toRefs(state), isLink, netLink, weightInfo, patientInfo, xyjInfo, inputRef, AudioRef0, AudioRef, AudioRef2, AudioRef3, inputChabge |
| | | ...toRefs(state), guyanbi,isLink, netLink, weightInfo, patientInfo, xyjInfo, inputRef, AudioRef0, AudioRef, AudioRef4,AudioRef5, AudioRef2, AudioRef3, inputChabge |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <template> |
| | | <div class="page flex-col"> |
| | | <div class="pagehome"> |
| | | <!-- 提醒刷卡 --> |
| | | <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step1.mp3" ref="AudioRef0" id="eventAudio"></audio> |
| | | <audio :src="step1" ref="AudioRef0" id="eventAudio1"></audio> |
| | | <!-- 患者信息读取成功 --> |
| | | <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step2.mp3" ref="AudioRef" id="eventAudio"></audio> |
| | | <audio :src="step2" ref="AudioRef" id="eventAudio2"></audio> |
| | | <!-- 体重结果回传成功 --> |
| | | <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step3.mp3" ref="AudioRef2" id="eventAudio"></audio> |
| | | <audio :src="step3" ref="AudioRef2" id="eventAudio3"></audio> |
| | | <!-- 血压结果回传成功 --> |
| | | <audio src="https://dhcdn.leon056.com/hemo/autoselfsign/step4.mp3" ref="AudioRef3" id="eventAudio"></audio> |
| | | <el-dialog title="提示" v-model="netLink" width="30%"> |
| | | <audio :src="step4" ref="AudioRef3" id="eventAudio4"></audio> |
| | | <!-- 没有找到患者 --> |
| | | <audio :src="step5" ref="AudioRef4" id="eventAudio5"></audio> |
| | | <!-- 没有找到排班 --> |
| | | <audio :src="step6" ref="AudioRef5" id="eventAudio6"></audio> |
| | | <!-- <el-dialog title="提示" v-model="netLink" width="30%"> |
| | | <span>无法链接到网络!</span> |
| | | </el-dialog> |
| | | <el-dialog title="提示" v-model="isLink" width="30%"> |
| | | </el-dialog> --> |
| | | <!-- <el-dialog title="提示" v-model="isLink" width="30%"> |
| | | <span>sockte连接失败正在重连。。。。。。</span> |
| | | </el-dialog> |
| | | <div class="box_7 flex-col justify-between"> |
| | | <div class="header flex-col"> |
| | | <div class="box_8 flex-row"> |
| | | <img |
| | | </el-dialog> --> |
| | | <el-row class="header"> |
| | | <el-col :span="8"> |
| | | <img |
| | | class="image_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="logo" |
| | | /> |
| | | <span class="text_1">自助签到</span> <span class="text_2">{{clockNum}}</span> |
| | | <div class="inpu" > |
| | | <el-input |
| | | v-model="inputCode" |
| | | ref="inputRef" |
| | | id="inputCode" |
| | | class="inputCode" |
| | | @change="inputChabge" |
| | | placeholder="请输入患者卡号或扫描条码" |
| | | /> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="8" class="titleText"> |
| | | <span class="text_1" @click="guyanbi">自助签到</span> <span class="text_2"></span> |
| | | </el-col> |
| | | <el-col :span="8" class="inputcla"> |
| | | |
| | | {{clockNum}} |
| | | </el-col> |
| | | |
| | | |
| | | |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <div class="divcol" :style="{height:haodu}"> |
| | | <el-row style="width: 100%; height: 100%"> |
| | | <el-col :span="8" class="imgclass"> |
| | | <el-image style="width: 100%; height: 85%" :src="patientInfo.patientAvatarIcon" fit="cover" /> |
| | | </el-col> |
| | | <el-col :span="15" class="userinfo"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <div class="lableclass" > |
| | | 姓名: |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="textclass"> |
| | | {{patientInfo.name}} |
| | | </div> |
| | | </el-col> |
| | | |
| | | </el-row> |
| | | <el-row style="margin-top: 10%;"> |
| | | <el-col :span="12"> |
| | | <div class="lableclass"> |
| | | 透析号: |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="textclass"> |
| | | {{patientInfo.hemoCode}} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | <div class="grid_3 flex-row"> |
| | | <div class="section_1 flex-col"> |
| | | <div class="block_2 flex-row justify-between"> |
| | | <div class="image-wrapper_1 flex-col"> |
| | | <img |
| | | class="image_2" |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="divcol" :style="{height:haodu}"> |
| | | <el-row class="titleHand"> |
| | | <el-col :span="12"> |
| | | <div class="tilaft"> |
| | | 血压(mmHg): |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="tiregth"> |
| | | <img |
| | | class="image_3" |
| | | v-if="xyjInfo.state === 2" |
| | | referrerpolicy="no-referrer" |
| | | :src="patientInfo.patientAvatarIcon" |
| | | :src="state1" |
| | | /> |
| | | </div> |
| | | <div class="group_6 flex-col"> |
| | | <div class="text-wrapper_13 flex-row justify-between"> |
| | | <span class="text_3">姓名:</span> |
| | | <span class="text_4">{{patientInfo.name}}</span> |
| | | <img |
| | | class="image_3" |
| | | v-if="xyjInfo.state === 1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state2" |
| | | /> |
| | | <img |
| | | class="image_3" |
| | | v-if="xyjInfo.state === 0" |
| | | referrerpolicy="no-referrer" |
| | | :src="state3" |
| | | /> |
| | | </div> |
| | | <div class="block_1 flex-col"></div> |
| | | <div class="text-wrapper_14 flex-row justify-between"> |
| | | <span class="text_5">透析号:</span> |
| | | <span class="text_6">{{patientInfo.hemoCode}}</span> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="divbody"> |
| | | <div class="bodeText"> |
| | | {{ gao_ya }}/{{ di_ya }} |
| | | </div> |
| | | </el-row> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row style="margin-top: 20px;" :gutter="20"> |
| | | <el-col :span="12"> |
| | | <div class="divcol" :style="{height:haodu}"> |
| | | <el-row class="rowdiv"> |
| | | <el-col :span="12"> |
| | | <div class="lableclass"> |
| | | 机号: |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="textclass"> |
| | | {{patientInfo.deviceCode}} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="rowdiv"> |
| | | <el-col :span="12"> |
| | | <div class="lableclass"> |
| | | 干体重(kg): |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="textclass"> |
| | | {{ patientInfo.pureWeight }} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="rowdiv"> |
| | | <el-col :span="12"> |
| | | <div class="lableclass"> |
| | | 目标脱水量(L): |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="textclass"> |
| | | {{aimTSL}} |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | <div class="section_4 flex-col"> |
| | | <div class="group_7 flex-row justify-between"> |
| | | <span class="text_7">血压(mmHg):</span> |
| | | <img |
| | | v-if="xyjInfo.state === 2" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state1" |
| | | /> |
| | | <img |
| | | v-if="xyjInfo.state === 1" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state2" |
| | | /> |
| | | <img |
| | | v-if="xyjInfo.state === 0" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state3" |
| | | /> |
| | | </div> |
| | | <div class="text-wrapper_15 flex-row"> |
| | | <span class="text_8">120/88</span> |
| | | </div> |
| | | </div> |
| | | <div class="section_5 flex-col"> |
| | | <div class="box_9 flex-col"> |
| | | <div class="text-wrapper_16 flex-row justify-between"> |
| | | <span class="text_9">机号:</span> |
| | | <span class="text_10">{{patientInfo.deviceCode}}</span> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="divcol" :style="{height:haodu}"> |
| | | <el-row class="titleHand"> |
| | | <el-col :span="12"> |
| | | <div class="tilaft"> |
| | | 透前体重(kg): |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="tiregth"> |
| | | <img |
| | | v-if="weightInfo.state === 2" |
| | | class="image_4" |
| | | referrerpolicy="no-referrer" |
| | | :src="state1" |
| | | /> |
| | | <img |
| | | v-if="weightInfo.state === 1" |
| | | class="image_4" |
| | | referrerpolicy="no-referrer" |
| | | :src="state2" |
| | | /> |
| | | <img |
| | | v-if="weightInfo.state === 0" |
| | | class="image_4" |
| | | referrerpolicy="no-referrer" |
| | | :src="state3" |
| | | /> |
| | | </div> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="divbody"> |
| | | <div class="bodeText"> |
| | | {{ weightInfo.result }} |
| | | </div> |
| | | <div class="box_3 flex-col"></div> |
| | | <div class="text-wrapper_17 flex-row justify-between"> |
| | | <span class="text_11">干体重(kg):</span> |
| | | <span class="text_12">{{ patientInfo.pureWeight }}</span> |
| | | </div> |
| | | <div class="box_4 flex-col"></div> |
| | | <div class="text-wrapper_18 flex-row justify-between"> |
| | | <span class="text_13">目标脱水量(L):</span> |
| | | <span class="text_14">{{aimTSL}}</span> |
| | | </div> |
| | | </div> |
| | | </el-row> |
| | | </div> |
| | | <div class="section_6 flex-col"> |
| | | <div class="section_12 flex-row justify-between"> |
| | | <span class="text_15">透前体重(kg):</span> |
| | | <img |
| | | v-if="weightInfo.state === 2" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state1" |
| | | /> |
| | | <img |
| | | v-if="weightInfo.state === 1" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state2" |
| | | /> |
| | | <img |
| | | v-if="weightInfo.state === 0" |
| | | class="group_1" |
| | | referrerpolicy="no-referrer" |
| | | :src="state3" |
| | | /> |
| | | </div> |
| | | <div class="section_13 flex-row justify-between"> |
| | | <span class="text_16">{{ weightInfo.result }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-input id="inputCode" style="width:50px" @change="inputChabge" v-model="inputCode" ref="inputRef" placeholder="" /> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | </template> |
| | | <style> |
| | | @import './css/common.css'; |
| | | @import './css/index.css'; |
| | | <style scoped> |
| | | body{ |
| | | background: #F3F6FE; |
| | | padding: 0; |
| | | |
| | | } |
| | | .inpu{ |
| | | margin-top: 20px; |
| | | } |
| | | .header{ |
| | | height: 40px; |
| | | background: #FFFFFF; |
| | | box-shadow: 1px 3px 5px 0px #E9E9E9; |
| | | margin-bottom: 10px; |
| | | } |
| | | .inputcla{ |
| | | padding-top: 5px; |
| | | text-align: right; |
| | | font-size: 27px; |
| | | font-family: PingFangSC-Medium, PingFang SC; |
| | | font-weight: 500; |
| | | color: #FF7472; |
| | | |
| | | } |
| | | .titleText{ |
| | | text-align: center; |
| | | color: red; |
| | | font-size: 2rem; |
| | | height: 40px; |
| | | line-height: 40px; |
| | | |
| | | } |
| | | |
| | | .divcol{ |
| | | box-shadow: 1px 2px 4px 0px rgba(201, 223, 246, 0.5); |
| | | background-color: rgba(255, 255, 255, 1); |
| | | border-radius: 20px; |
| | | height: 426px; |
| | | padding-left: 1.5rem; |
| | | padding-top: 5%; |
| | | padding-right: 0.5rem; |
| | | background: #FFFFFF; |
| | | } |
| | | .rowdiv{ |
| | | /* background: #769AFF; */ |
| | | font-size: 300%; |
| | | height: 15%; |
| | | margin-top: 5%; |
| | | } |
| | | .titleHand{ |
| | | /* background: #769AFF; */ |
| | | height: 15%; |
| | | } |
| | | .tilaft{ |
| | | text-align: left; |
| | | font-size: 300%; |
| | | font-family: AlibabaPuHuiTi-Regular, AlibabaPuHuiTi; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | line-height: 42px; |
| | | letter-spacing: 1px; |
| | | } |
| | | .tiregth{ |
| | | text-align: right; |
| | | padding-left: 5px; |
| | | } |
| | | .divbody{ |
| | | height: 70%; |
| | | width: 100%; |
| | | display:table; |
| | | } |
| | | .bodeText{ |
| | | display:table-cell; |
| | | vertical-align:middle; |
| | | width: 100%; |
| | | text-align: center; |
| | | font-size: 800%; |
| | | font-family: DINAlternate-Bold, DINAlternate; |
| | | font-weight: bold; |
| | | color: #769AFF; |
| | | /* line-height: 100%; */ |
| | | } |
| | | .imgclass{ |
| | | /* background: red; */ |
| | | height: 100%; |
| | | /* padding-top: 5%; */ |
| | | /* padding-top: ; */ |
| | | } |
| | | .userinfo{ |
| | | padding-top: 6%; |
| | | /* background: #769AFF; */ |
| | | font-size: 300%; |
| | | text-align: right; |
| | | } |
| | | .lableclass{ |
| | | text-align: right; |
| | | font-weight: 400; |
| | | color: #777777; |
| | | /* background: #769AFF; */ |
| | | |
| | | } |
| | | .textclass{ |
| | | text-align: left; |
| | | font-family: AlibabaPuHuiTi-Medium, AlibabaPuHuiTi; |
| | | font-weight: 500; |
| | | color: #769AFF; |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | | </style> |