123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- import React from 'react';
- import logo from '@assets/images/logo.png';
- import Scroll from '@components/Scroll.jsx';
- import { Grid } from 'antd-mobile';
- import { initDate } from '@utils/index.js';
- import ScrollTop from '@components/ScrollTop.jsx';
- /**
- * @刘丹: 大屏叫号
- */
- class BigScreen extends React.Component {
- constructor() {
- super();
- this.state = {
- dateStr: {},
- patList: [],
- };
- }
- componentDidMount() {
- this.initDate();
- }
- componentDidUpdate(prev) {
- if (prev.patListArea != this.props.patListArea) {
- this.setState({
- patList: this.props.patListArea,
- });
- }
- }
- initDate = () => {
- this.setState({
- dateStr: initDate(),
- });
- setTimeout(() => {
- this.initDate();
- }, 3000);
- };
- render() {
- const { dateStr } = this.state;
- const { userData } = this.props;
- return (
- <div className='page-body big'>
- <div className='header'>
- <img
- src={this.props.hosLogo || logo}
- alt='Logo'
- className={this.props.hosLogo ? 'logo' : 'logodefault'}
- onError={(e) => {
- e.target.src = `${logo}`;
- }}
- />
- <span className='room-name'>{ userData.areaDesc || userData.locDesc}</span>
- <span className='heaer-btn'>
- <span className='date'>{ dateStr.dateNow}</span>
- <br /> {dateStr.weekNow} { dateStr.timeNow}
- </span>
- </div>
- <div className='table section mt scroll-wrap'>
- <Grid columns={24} gap={6}>
- <Grid.Item span={5}>
- {/* <div className='table-header'>{userData.locDesc === '验光配镜分诊区' ? '验光室' : '诊室'}</div> */}
- <div className='table-header'>{ userData.locDesc === '验光配镜分诊区' ? '验光师':'医生' }</div>
- </Grid.Item >
- <Grid.Item span={3}>
- <div className='table-header'>正在就诊</div>
- </Grid.Item >
- <Grid.Item span={11}>
- <div className='table-header'>准备就诊</div>
- </Grid.Item >
- <Grid.Item span={5}>
- <div className='table-header'>看报告</div>
- </Grid.Item >
- </Grid>
- <div className='scroll-content'>
- <ScrollTop text={this.state.patList}>
- {this.state.patList.map((item,index) => {
- return (<Grid columns={24} gap={6} key={index} className='mt'>
- <Grid.Item span={5}>
- <div className='table-content docname'>{item.roomDesc}-{item.docName || '-'}</div>
- </Grid.Item >
- <Grid.Item span={3}>
- <div className='table-content patname'>
- {item?.callMsg?.callPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
- </div>
- </Grid.Item >
- <Grid.Item span={11}>
- <div className='table-content'>
- <Scroll
- text={item?.callMsg?.waitPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
- />
- </div>
- </Grid.Item >
- <Grid.Item span={5}>
- <div className='table-content'>
- <Scroll
- text={item?.callMsg?.reWaitPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
- isFast={true}
- />
- </div>
- </Grid.Item >
- </Grid>);
- })}
- </ScrollTop>
- </div>
- </div>
- <div className='footer big'>
- 过号患者:
- <div className='scroll-big'>
- <Scroll text={this.props.delayPat}/>
- </div>
- </div>
- </div>
- );
- }
- }
- export default BigScreen;
|