Index.jsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import React from 'react';
  2. import logo from '@assets/images/logo.png';
  3. import Scroll from '@components/Scroll.jsx';
  4. import { Grid } from 'antd-mobile';
  5. import { initDate } from '@utils/index.js';
  6. import ScrollTop from '@components/ScrollTop.jsx';
  7. /**
  8. * @刘丹: 大屏叫号
  9. */
  10. class BigScreen extends React.Component {
  11. constructor() {
  12. super();
  13. this.state = {
  14. dateStr: {},
  15. patList: [],
  16. };
  17. }
  18. componentDidMount() {
  19. this.initDate();
  20. }
  21. componentDidUpdate(prev) {
  22. if (prev.patListArea != this.props.patListArea) {
  23. this.setState({
  24. patList: this.props.patListArea,
  25. });
  26. }
  27. }
  28. initDate = () => {
  29. this.setState({
  30. dateStr: initDate(),
  31. });
  32. setTimeout(() => {
  33. this.initDate();
  34. }, 3000);
  35. };
  36. render() {
  37. const { dateStr } = this.state;
  38. const { userData } = this.props;
  39. return (
  40. <div className='page-body big'>
  41. <div className='header'>
  42. <img
  43. src={this.props.hosLogo || logo}
  44. alt='Logo'
  45. className={this.props.hosLogo ? 'logo' : 'logodefault'}
  46. onError={(e) => {
  47. e.target.src = `${logo}`;
  48. }}
  49. />
  50. <span className='room-name'>{ userData.areaDesc || userData.locDesc}</span>
  51. <span className='heaer-btn'>
  52. <span className='date'>{ dateStr.dateNow}</span>
  53. <br /> {dateStr.weekNow} { dateStr.timeNow}
  54. </span>
  55. </div>
  56. <div className='table section mt scroll-wrap'>
  57. <Grid columns={24} gap={6}>
  58. <Grid.Item span={5}>
  59. {/* <div className='table-header'>{userData.locDesc === '验光配镜分诊区' ? '验光室' : '诊室'}</div> */}
  60. <div className='table-header'>{ userData.locDesc === '验光配镜分诊区' ? '验光师':'医生' }</div>
  61. </Grid.Item >
  62. <Grid.Item span={3}>
  63. <div className='table-header'>正在就诊</div>
  64. </Grid.Item >
  65. <Grid.Item span={11}>
  66. <div className='table-header'>准备就诊</div>
  67. </Grid.Item >
  68. <Grid.Item span={5}>
  69. <div className='table-header'>看报告</div>
  70. </Grid.Item >
  71. </Grid>
  72. <div className='scroll-content'>
  73. <ScrollTop text={this.state.patList}>
  74. {this.state.patList.map((item,index) => {
  75. return (<Grid columns={24} gap={6} key={index} className='mt'>
  76. <Grid.Item span={5}>
  77. <div className='table-content docname'>{item.roomDesc}-{item.docName || '-'}</div>
  78. </Grid.Item >
  79. <Grid.Item span={3}>
  80. <div className='table-content patname'>
  81. {item?.callMsg?.callPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
  82. </div>
  83. </Grid.Item >
  84. <Grid.Item span={11}>
  85. <div className='table-content'>
  86. <Scroll
  87. text={item?.callMsg?.waitPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
  88. />
  89. </div>
  90. </Grid.Item >
  91. <Grid.Item span={5}>
  92. <div className='table-content'>
  93. <Scroll
  94. text={item?.callMsg?.reWaitPat?.map(v => v.patName + '' + v.patCallNo).join(('、'))}
  95. isFast={true}
  96. />
  97. </div>
  98. </Grid.Item >
  99. </Grid>);
  100. })}
  101. </ScrollTop>
  102. </div>
  103. </div>
  104. <div className='footer big'>
  105. 过号患者:
  106. <div className='scroll-big'>
  107. <Scroll text={this.props.delayPat}/>
  108. </div>
  109. </div>
  110. </div>
  111. );
  112. }
  113. }
  114. export default BigScreen;