|
@@ -0,0 +1,572 @@
|
|
|
|
+<template>
|
|
|
|
+
|
|
|
|
+ <Layout v-if="hasRegister">
|
|
|
|
+ <Header class="layout-header text-l" style="padding: 0 10px">
|
|
|
|
+ <Row>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div class="title text-shadow text-white text-left ">{{ serverTitle }}</div>
|
|
|
|
+ </Col>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div class="content_title text-center" data-aos="zoom-in-up">输液监控</div>
|
|
|
|
+ </Col>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div v-if="showDate" class="time text-right">{{ currentTime }}</div>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+
|
|
|
|
+ </Header>
|
|
|
|
+ <Content :style="{'height':mainAreaHeight+'px'}" style="overflow: hidden">
|
|
|
|
+ <Grid :col="8" padding="4px" :border="false">
|
|
|
|
+ <GridItem v-for="(item,index1) in bedInfoArray[screen]" :key="index1">
|
|
|
|
+ <Card :padding="8" :class="item.alarm_status?'arrow_box':''">
|
|
|
|
+ <Row>
|
|
|
|
+ <Col :span="14">
|
|
|
|
+ <div class=" bed-num text-s" :class="item.id!==null?'line-black':'line-gray'"><span
|
|
|
|
+ class="iconfont padding-right-xxs"></span>{{ item.frame_bed_full_name }}
|
|
|
|
+ </div>
|
|
|
|
+ </Col>
|
|
|
|
+ <Col :span="10">
|
|
|
|
+ <template v-for="(op,idx) in item.list" :key="idx">
|
|
|
|
+ <div v-if="op.bool_basic" class="line-white nurse_option_item text-xs text-center"
|
|
|
|
+ :style="{ backgroundColor:'#'+op.nurse_color_rbg }">
|
|
|
|
+ {{ op.nurse_option_name }}
|
|
|
|
+ </div>
|
|
|
|
+ </template>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+
|
|
|
|
+ <div class="patient-info">
|
|
|
|
+ <Row class="text-s margin-top-xs name-line">
|
|
|
|
+ <Col :span="12" :class="item.sex===1?'line-blue':'line-pink'">
|
|
|
|
+ {{ item.named }}
|
|
|
|
+ </Col>
|
|
|
|
+ <Col :span="6" :class="item.sex===1?'line-blue':'line-pink'">
|
|
|
|
+ {{ item.age }}{{ ageUnitFilter(item.age_unit)}}
|
|
|
|
+ </Col>
|
|
|
|
+ <Col :span="6" :style="{textIndent:item.id==null?'2000px':'0px'}"
|
|
|
|
+ class="line-grey text-right">
|
|
|
|
+ {{ item.sex===1?'男':'女' }}
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row class=" line-grey ">
|
|
|
|
+ <Col :span="24" class="text-left"><span>住院号:</span>{{ item.card_no }}</Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row class=" line-grey">
|
|
|
|
+ <Col :span="24" class="text-left"><span>入院日期:</span>{{ unixToDate(item.in_date) }}</Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <!-- <Row class="margin-top-xs line-grey">-->
|
|
|
|
+ <!-- <Col :span="10">医生:</Col>-->
|
|
|
|
+ <!-- <Col :span="14">{{ item.doctor_name }}</Col>-->
|
|
|
|
+ <!-- </Row>-->
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ <Divider plain style="margin: 0;"></Divider>
|
|
|
|
+ <Row>
|
|
|
|
+ <Col :span="15">
|
|
|
|
+ <Row class=" line-grey">
|
|
|
|
+ <Col :span="24"><span>状态:</span><span :class="'infusion-state'+item.infusion_status">{{infusionStatusFormat(item.infusion_status)}}</span>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row class=" line-grey">
|
|
|
|
+ <Col :span="24"><span>响铃:</span><span :class="item.ring_state?'ring-on':'ring-off'">{{item.ring_state===undefined?'':item.ring_state?'打开':'静音'}}</span>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row class=" line-grey">
|
|
|
|
+ <Col :span="24"><span>阈锁:</span><span :class="item.lock_status?'lock-off':'lock-on'">{{item.lock_status===undefined?'':item.lock_status?'关闭':'打开'}}</span>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ <Row class=" line-grey">
|
|
|
|
+ <Col :span="24" class="flex"><span>电量:</span>
|
|
|
|
+ <div class="battery " :class="'battery'+item.battery"></div>
|
|
|
|
+ </Col>
|
|
|
|
+
|
|
|
|
+ </Row>
|
|
|
|
+ </Col>
|
|
|
|
+ <Col :span="9">
|
|
|
|
+ <div class="infustion "
|
|
|
|
+ :class="item.alarm_status===undefined?'':item.alarm_status?'infustion-alarm':item.infusion_status===1?'infustion-pause':'infustion-normal'">
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row>
|
|
|
|
+ </Card>
|
|
|
|
+
|
|
|
|
+ </GridItem>
|
|
|
|
+ </Grid>
|
|
|
|
+ </Content>
|
|
|
|
+
|
|
|
|
+ <Footer class="layout-footer text-sm"> <Row>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div class=" "><span class="margin-right-lg">科室床位使用:{{ partInfoSummary.part_bed_used }}/{{ partInfoSummary.part_bed_sum }}(总计)</span>
|
|
|
|
+
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </Col>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div class="text-center">
|
|
|
|
+ <span>输液监控床位:{{beds.length}}/{{ partInfoSummary.part_bed_used }}(入住)</span>
|
|
|
|
+ </div>
|
|
|
|
+
|
|
|
|
+ </Col>
|
|
|
|
+ <Col span="8">
|
|
|
|
+ <div class=" text-right">当前显示:第{{screen*24+1}}-{{screen*24+ (bedInfoArray[screen]!==undefined?bedInfoArray[screen].length:0 )}}/{{beds.length}}床</div>
|
|
|
|
+ </Col>
|
|
|
|
+ </Row></Footer>
|
|
|
|
+ </Layout>
|
|
|
|
+ <Layout v-else style="height: 100vh">
|
|
|
|
+ <Content style="height: 100%">
|
|
|
|
+ <div class="bullshit text-center ">
|
|
|
|
+ <div class="bullshit__oops text-lg text-cyan margin-top-lg">这是一台新的输液看板设备,请在呼叫中心管理后台设置该设备的所属科室。</div>
|
|
|
|
+ <div class="bullshit__info text-lg text-cyan margin-top-lg">
|
|
|
|
+ 该设备MAC地址为:<span class="text-red">{{ deviceMAC }}</span> ,ID号为:<span
|
|
|
|
+ class="text-red">{{ deviceId }}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="bullshit__headline"/>
|
|
|
|
+ <div class="bullshit__info text-lg text-cyan margin-top-lg">如有疑问,请联系管理员,谢谢!</div>
|
|
|
|
+ </div>
|
|
|
|
+ </Content>
|
|
|
|
+ </Layout>
|
|
|
|
+</template>
|
|
|
|
+
|
|
|
|
+<script>
|
|
|
|
+ import {reactive,watch} from 'vue'
|
|
|
|
+ import moment from 'moment'
|
|
|
|
+ import * as API_Board from '@/api/board'
|
|
|
|
+
|
|
|
|
+ const deviceUrl = domain.deviceUrl
|
|
|
|
+ const showDate = domain.showDate
|
|
|
|
+ export default {
|
|
|
|
+ name: "Index",
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ serverTitle: '',
|
|
|
|
+ currentTime: '',
|
|
|
|
+ showDate: true,
|
|
|
|
+ beds: reactive([]),
|
|
|
|
+ bedInfoArray: reactive([]),
|
|
|
|
+ baseNurseConfig: [],
|
|
|
|
+ partSetting: {},
|
|
|
|
+ partInfoSummary:{},
|
|
|
|
+ screen:0,
|
|
|
|
+ countTimes:0,
|
|
|
|
+ staySeconds:5,
|
|
|
|
+ websock: null,
|
|
|
|
+ boardData: {},
|
|
|
|
+ deviceMAC: this.$route.query.mac,
|
|
|
|
+ hasRegister: false,
|
|
|
|
+ deviceId: '',
|
|
|
|
+ itemCountPerScreen: 20
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ computed: {
|
|
|
|
+ mainAreaHeight() {
|
|
|
|
+ return window.devicePixelRatio > 1 ? Number(document.documentElement.clientHeight)-114 : Number(document.documentElement.clientHeight) - 114
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ async beforeMount() {
|
|
|
|
+ if (this.$route.query.mac !== undefined && this.$route.query.mac !== '') {
|
|
|
|
+ // 保存mac地址
|
|
|
|
+ this.$store.dispatch('user/setDeviceMAC', this.$route.query.mac)
|
|
|
|
+ // 初始化websocket
|
|
|
|
+ await this.initWebSocket()
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted() {
|
|
|
|
+ this.$Notice.config({
|
|
|
|
+ top: 64,
|
|
|
|
+ duration: 0
|
|
|
|
+ })
|
|
|
|
+ moment.locale()
|
|
|
|
+ this.currentTime = moment().format('YYYY-MM-DD HH:mm:ss dddd')
|
|
|
|
+ const _this = this
|
|
|
|
+ // 每分钟检查一次websocket状态,如果掉线,则重连
|
|
|
|
+ setInterval(function () {
|
|
|
|
+ if (_this.websock === null || _this.websock.readyState !== 1) {
|
|
|
|
+ _this.initWebSocket()
|
|
|
|
+ }
|
|
|
|
+ }, 60000)
|
|
|
|
+
|
|
|
|
+ setInterval(function () {
|
|
|
|
+ _this.currentTime = moment().format('YYYY-MM-DD HH:mm:ss dddd')
|
|
|
|
+ _this.swiperChange()
|
|
|
|
+ }, 1000)
|
|
|
|
+ console.log('widown', window.devicePixelRatio)
|
|
|
|
+ watch(()=>[...this.beds],(n,o)=>{
|
|
|
|
+ // if(n.length!==o.length){
|
|
|
|
+ const screens = Math.ceil(n.length / this.itemCountPerScreen)
|
|
|
|
+ this.bedInfoArray = []
|
|
|
|
+ for (var i = 1; i <= screens; i++) {
|
|
|
|
+ this.bedInfoArray.push(n.slice((i - 1) * this.itemCountPerScreen, i * this.itemCountPerScreen >= n.length
|
|
|
|
+ ? n.length : i * this.itemCountPerScreen))
|
|
|
|
+ }
|
|
|
|
+ // }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ methods: {
|
|
|
|
+ getBedInfo() {
|
|
|
|
+ API_Board.getBedInfo(this.$store.getters.partid).then(res => {
|
|
|
|
+ console.log('res', res)
|
|
|
|
+ // this.beds = [...res.items].slice(0, 24)
|
|
|
|
+ this.beds = [...res['items']]
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.serverTitle = res.part_name
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ swiperChange() {
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ if (this.countTimes > this.staySeconds) {
|
|
|
|
+ // console.log('bbb', this.bedInfoArray.length)
|
|
|
|
+ this.countTimes = 0
|
|
|
|
+ this.screen++
|
|
|
|
+ if(this.screen===this.bedInfoArray.length||this.bedInfoArray===0){
|
|
|
|
+ this.screen=0
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // console.log('aaa',this.screen)
|
|
|
|
+ this.countTimes = this.countTimes + 1
|
|
|
|
+ // console.log('count',this.countTimes)
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ getPartInfoSummary() {
|
|
|
|
+ API_Board.getpartinfosummary(this.$store.getters.partid).then(res => {
|
|
|
|
+ this.partInfoSummary = { ...res }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ ageUnitFilter(val) {
|
|
|
|
+
|
|
|
|
+ if (val === 'Y' || val === '岁') {
|
|
|
|
+ return '岁'
|
|
|
|
+ } else if (val === 'M') {
|
|
|
|
+ return '月'
|
|
|
|
+ } else if (val === 'D') {
|
|
|
|
+ return '天'
|
|
|
|
+ } else {
|
|
|
|
+ return val
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ unixToDate(unix) {
|
|
|
|
+ // console.log('unix', unix)
|
|
|
|
+ if (!unix) return unix
|
|
|
|
+ let _format = 'yy-MM-dd'
|
|
|
|
+ const d = new Date(unix * 1000)
|
|
|
|
+ const o = {
|
|
|
|
+ 'M+': d.getMonth() + 1,
|
|
|
|
+ 'd+': d.getDate(),
|
|
|
|
+ 'h+': d.getHours(),
|
|
|
|
+ 'm+': d.getMinutes(),
|
|
|
|
+ 's+': d.getSeconds(),
|
|
|
|
+ 'q+': Math.floor((d.getMonth() + 3) / 3),
|
|
|
|
+ S: d.getMilliseconds()
|
|
|
|
+ }
|
|
|
|
+ if (/(y+)/.test(_format)) _format = _format.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length))
|
|
|
|
+ for (const k in o) if (new RegExp('(' + k + ')').test(_format)) _format = _format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
|
|
|
|
+ return _format
|
|
|
|
+ },
|
|
|
|
+ // 获取基础护理分类
|
|
|
|
+ getBasicNursecfg() {
|
|
|
|
+ API_Board.getBasicNursecfg(this.$store.getters.partid).then(res => {//
|
|
|
|
+ this.baseNurseConfig = [...res]
|
|
|
|
+ console.log('数据加载完成1!')
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ // 获取科室设置
|
|
|
|
+ getPartSetting() {
|
|
|
|
+ API_Board.getPartSetting(this.$store.getters.partid).then(res => {
|
|
|
|
+ this.partSetting = {...res}
|
|
|
|
+
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ initWebSocket: function () {
|
|
|
|
+ var stockbase = deviceUrl.replace('http', 'ws')
|
|
|
|
+ // console.log('store', this.$store)
|
|
|
|
+ this.websock = new WebSocket(stockbase + '/boardinfo/1/' + this.$store.getters.token)
|
|
|
|
+ this.websock.onopen = this.websocketonopen
|
|
|
|
+ this.websock.onerror = this.websocketonerror
|
|
|
|
+ this.websock.onmessage = this.websocketonmessage
|
|
|
|
+ this.websock.onclose = this.websocketclose
|
|
|
|
+ },
|
|
|
|
+ websocketonopen: function () {
|
|
|
|
+ console.log('WebSocket连接成功')
|
|
|
|
+ },
|
|
|
|
+ websocketonerror: function (e) {
|
|
|
|
+ console.log('WebSocket连接发生错误')
|
|
|
|
+ },
|
|
|
|
+ websocketonmessage: function (e) {
|
|
|
|
+ const boardObj = JSON.parse(e.data)
|
|
|
|
+ if (boardObj.partId !== undefined && boardObj.partId > 0) { // 返回了partid,说明设备已注册
|
|
|
|
+ if (boardObj.code !== undefined) {
|
|
|
|
+ // 把科室Id设置到store
|
|
|
|
+ this.hasRegister = true
|
|
|
|
+ this.$store.dispatch('user/setPartId', boardObj.partId)
|
|
|
|
+ this.deviceId = boardObj.id
|
|
|
|
+ this.getPartSetting()
|
|
|
|
+ this.getBedInfo()
|
|
|
|
+ this.getPartInfoSummary()
|
|
|
|
+ if (boardObj.config !== null && boardObj.config !== '') {
|
|
|
|
+ const boardconfig = JSON.parse(boardObj.config)
|
|
|
|
+ this.staySeconds = boardconfig.staySeconds[0] // 轮换时间间隔
|
|
|
|
+ if ('itemCountPerScreen' in boardconfig) {
|
|
|
|
+ this.itemCountPerScreen = boardconfig.itemCountPerScreen
|
|
|
|
+ }
|
|
|
|
+ // 是否固定屏幕
|
|
|
|
+ // this.fixedScreen = boardconfig.stayIndex !== 0
|
|
|
|
+ // if (this.fixedScreen) {
|
|
|
|
+ // this.stayIndex = boardconfig.stayIndex
|
|
|
|
+ // } else {
|
|
|
|
+ // // 不是固定屏幕定时任务中计算 stayIndex 的值,这里判断 this.stayIndex === 0 说明还没有初始化。把this.stayIndex 设置为第一屏
|
|
|
|
+ // if (this.stayIndex === 0) {
|
|
|
|
+ // this.stayIndex = 1
|
|
|
|
+ // }
|
|
|
|
+ // }
|
|
|
|
+ if (Object.keys(this.boardData).length === 0) {
|
|
|
|
+ const _this = this
|
|
|
|
+ setTimeout(function () {
|
|
|
|
+ _this.$forceUpdate()
|
|
|
|
+ }, 2000)
|
|
|
|
+ }
|
|
|
|
+ // console.log('stayIndex', this.stayIndex)
|
|
|
|
+ } else {
|
|
|
|
+ this.autoplay = true
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } else if ('hidden_call' in boardObj) {
|
|
|
|
+ this.showCalling = false
|
|
|
|
+ } else if ('action' in boardObj) {
|
|
|
|
+
|
|
|
|
+ const {alarm_status, battery, device_mac, duration, infusion_status, lock_status, ring_state} = boardObj
|
|
|
|
+ if (boardObj.action === 'refresh') { //刷新报警器状态
|
|
|
|
+ this.beds.forEach((item, index) => {
|
|
|
|
+ if (item.device_mac === device_mac) {
|
|
|
|
+ item = {...item, alarm_status, battery, duration, infusion_status, lock_status, ring_state}
|
|
|
|
+ this.beds[index] = item
|
|
|
|
+
|
|
|
|
+ if (alarm_status) { //报警提示
|
|
|
|
+ this.$Notice.close(device_mac)
|
|
|
|
+ this.$Notice.warning({
|
|
|
|
+ title:'告警提示',
|
|
|
|
+ name: device_mac,
|
|
|
|
+ desc: item.frame_bed_full_name + '输液完成',
|
|
|
|
+ render:h=>{
|
|
|
|
+ return h('span',{class:'warming'},(item.frame_bed_full_name?item.frame_bed_full_name:device_mac) + '输液完成')
|
|
|
|
+ },
|
|
|
|
+ duration: 0
|
|
|
|
+ })
|
|
|
|
+ } else if(infusion_status===1){ //输液暂停
|
|
|
|
+ this.$Notice.close(device_mac)
|
|
|
|
+ this.$Notice.warning({
|
|
|
|
+ title:'告警提示',
|
|
|
|
+ name: device_mac,
|
|
|
|
+ desc: item.frame_bed_full_name + '暂停输液',
|
|
|
|
+ render:h=>{
|
|
|
|
+ return h('span',{class:'warming'},(item.frame_bed_full_name?item.frame_bed_full_name:device_mac) + '暂停输液')
|
|
|
|
+ },
|
|
|
|
+ duration: 0
|
|
|
|
+ })
|
|
|
|
+ } else{
|
|
|
|
+ this.$Notice.close(device_mac)
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ } else if(boardObj.action === 'up') { //上屏
|
|
|
|
+
|
|
|
|
+ console.log('up',boardObj)
|
|
|
|
+ this.beds=[...this.beds,boardObj]
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ } else if (boardObj.action === 'down') { //下屏
|
|
|
|
+ this.beds.forEach((item, index) => {
|
|
|
|
+ if (item.device_mac === device_mac) {
|
|
|
|
+ this.beds.splice(index,1)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // console.log('beds', this.beds)
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ this.deviceId = boardObj.id
|
|
|
|
+ this.hasRegister = false
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ websocketclose: function (e) {
|
|
|
|
+ console.log('connection closed (' + e.code + ')')
|
|
|
|
+ },
|
|
|
|
+ infusionStatusFormat(state) {
|
|
|
|
+ if (state === undefined) {
|
|
|
|
+ return ''
|
|
|
|
+ } else if (state === 0) {
|
|
|
|
+ return '监测'
|
|
|
|
+ } else if (state === 1) {
|
|
|
|
+ return '暂停'
|
|
|
|
+ } else if (state === 2) {
|
|
|
|
+ return '完成'
|
|
|
|
+ } else if (state === 3) {
|
|
|
|
+ return '结束'
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+</script>
|
|
|
|
+
|
|
|
|
+<style scoped>
|
|
|
|
+ .layout-header,
|
|
|
|
+ .layout-footer {
|
|
|
|
+ background: #7CBCE9;
|
|
|
|
+ color: white;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery {
|
|
|
|
+ width: 45%;
|
|
|
|
+ display: inline-block;
|
|
|
|
+ height: 20px;
|
|
|
|
+ background-position: left center;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: 40px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .vertical-center-modal {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .vertical-center-modal .ivu-modal {
|
|
|
|
+ top: 0;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery1, .battery0 {
|
|
|
|
+ background-image: url(~@/assets/battery1.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery2 {
|
|
|
|
+ background-image: url(~@/assets/battery2.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery3 {
|
|
|
|
+ background-image: url(~@/assets/battery3.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery4 {
|
|
|
|
+ background-image: url(~@/assets/battery4.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .battery5, .battery6 {
|
|
|
|
+ background-image: url(~@/assets/battery5.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infustion {
|
|
|
|
+ width: 100%;
|
|
|
|
+ height: 100%;
|
|
|
|
+ background-position: right center;
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
+ background-size: 60px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infustion-normal {
|
|
|
|
+ background-image: url(~@/assets/infusion_normal.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infustion-alarm {
|
|
|
|
+ background-image: url(~@/assets/infusion_alarm.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infustion-pause {
|
|
|
|
+ background-image: url(~@/assets/infusion_pause.png);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infusion-state0, .ring-on, .lock-on {
|
|
|
|
+ color: green;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infusion-state1 {
|
|
|
|
+ color: #e98c1e;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .infusion-state2, .infusion-state3, .ring-off, .lock-off {
|
|
|
|
+ color: red;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .nurse_option_item, .bed-num {
|
|
|
|
+ height: 20px;
|
|
|
|
+ overflow: hidden;
|
|
|
|
+ white-space: nowrap;
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .arrow_box {
|
|
|
|
+ animation: glow 1000ms ease-out infinite alternate;
|
|
|
|
+ }
|
|
|
|
+ .ivu-divider{
|
|
|
|
+ background-color: #bbb;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .ivu-card-bordered{
|
|
|
|
+ border-color: #bbb;
|
|
|
|
+ }
|
|
|
|
+ @keyframes glow {
|
|
|
|
+ 0% {
|
|
|
|
+ border-color: #e8eaec;
|
|
|
|
+ /*/box-shadow: 0 0 5px rgba(0,255,0,.2), inset 0 0 5px rgba(0,255,0,.1), 0 1px 0 #393;*/
|
|
|
|
+ }
|
|
|
|
+ 50% {
|
|
|
|
+ border-color: #ed1c24;
|
|
|
|
+ /*/box-shadow: 0 0 5px rgba(0,255,0,.2), inset 0 0 5px rgba(0,255,0,.1), 0 1px 0 #393;*/
|
|
|
|
+ }
|
|
|
|
+ 100% {
|
|
|
|
+ border-color: #f00;
|
|
|
|
+ /*/box-shadow: 0 0 20px rgba(0,255,0,.6), inset 0 0 10px rgba(0,255,0,.4), 0 1px 0 #6f6;*/
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .ivu-layout-footer{
|
|
|
|
+ padding: 0 10px;
|
|
|
|
+ height: 50px;
|
|
|
|
+ line-height: 50px;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /*@media only screen and (-webkit-min-device-pixel-ratio: 1.2) {*/
|
|
|
|
+ /* .ivu-layout-header {*/
|
|
|
|
+ /* height: 32px;*/
|
|
|
|
+ /* line-height: 32px;*/
|
|
|
|
+ /* }*/
|
|
|
|
+ /* .ivu-card{*/
|
|
|
|
+ /* font-size: 11px;*/
|
|
|
|
+ /* }*/
|
|
|
|
+ /* .infustion {*/
|
|
|
|
+ /* background-size: 45px;*/
|
|
|
|
+ /* }*/
|
|
|
|
+ /* .battery {*/
|
|
|
|
+ /* height: 15px;*/
|
|
|
|
+ /* background-size: 20px;*/
|
|
|
|
+ /* }*/
|
|
|
|
+ /* .nurse_option_item{*/
|
|
|
|
+ /* height: 15px;*/
|
|
|
|
+ /* line-height: 15px;*/
|
|
|
|
+ /* }*/
|
|
|
|
+ /*}*/
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+</style>
|
|
|
|
+<style lang="less">
|
|
|
|
+ .vertical-center-modal {
|
|
|
|
+ display: flex;
|
|
|
|
+ align-items: center;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ .vertical-center-modal .ivu-modal {
|
|
|
|
+ top: 0;
|
|
|
|
+ }
|
|
|
|
+ .warming{
|
|
|
|
+ font-size: 16px;
|
|
|
|
+ color: #ed1c24;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+</style>
|