index.jsx 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. import React, { Component } from "react";
  2. import { connect } from "react-redux";
  3. import style from "./index.less";
  4. import logo from "../../common/images/logoa.png";
  5. import setup from "../../common/images/setup.png";
  6. import close from '../../common/images/icon_close.png';
  7. import ok from '../../common/images/confirm.png'
  8. import emergIcon from '../../common/images/emergency.png'
  9. import {Notify} from '@commonComp';
  10. // import Emergency from '@components/Emergency';
  11. import Emergency from '@containers/Emergency';
  12. import {getAllHis} from '@store/async-actions/fetchModules.js';
  13. import {timestampToTime} from '@utils/tools.js';
  14. import {dragBox} from '@utils/drag';
  15. class Banner extends Component {
  16. constructor(props){
  17. super(props)
  18. this.state = {
  19. mode: props.typeConfig,
  20. zIndex:204,
  21. emergency:true,
  22. emergencyBox:false
  23. };
  24. this.showConfigModal = this.showConfigModal.bind(this);
  25. this.closeConfigModal = this.closeConfigModal.bind(this);
  26. this.changeType = this.changeType.bind(this);
  27. this.confirmType = this.confirmType.bind(this);
  28. this.showHisModal = this.showHisModal.bind(this);
  29. this.handleHisClose = this.handleHisClose.bind(this);
  30. }
  31. showConfigModal(){
  32. this.setState({
  33. mode:this.props.typeConfig,
  34. zIndex:206
  35. });
  36. this.props.showConfigModal()
  37. }
  38. closeConfigModal(){
  39. this.props.closeConfigModal();
  40. this.setState({
  41. zIndex:204
  42. })
  43. }
  44. changeType(typeConfig){
  45. this.setState({
  46. mode:typeConfig
  47. });
  48. }
  49. confirmType(){
  50. const {typeConfig,confirmType} = this.props;
  51. const mode = this.state.mode;
  52. if(mode==typeConfig){
  53. this.closeConfigModal()
  54. return;
  55. }
  56. confirmType&&confirmType(mode);
  57. this.closeConfigModal()
  58. this.setState({
  59. zIndex:204
  60. })
  61. }
  62. /*componentDidUpdate(){
  63. const {failed} = this.props;
  64. if(failed){
  65. //弹窗提醒
  66. Notify.error("模式切换失败,请稍后再试");
  67. }
  68. }*/
  69. showHisModal(){
  70. const {getAllRecord} = this.props;
  71. const item = {
  72. current:1
  73. }
  74. getAllRecord&&getAllRecord(item);
  75. this.setState({
  76. emergencyBox:true,
  77. zIndex:206
  78. })
  79. }
  80. handleHisClose(){
  81. this.setState({
  82. emergencyBox:false,
  83. zIndex:204
  84. })
  85. dragBox('previewWrapper','previewStatic','del')
  86. }
  87. render() {
  88. const {visible,disVisible,copyVisible} = this.props;
  89. const {mode,zIndex,emergency,emergencyBox} = this.state;
  90. const {showConfigModal, closeConfigModal, changeType, confirmType} = this;
  91. return (
  92. <div className={style["logo"]} style={{zIndex:disVisible||copyVisible?40:zIndex}}>
  93. <img src={logo} />
  94. <span className={style["logo-name"]}>|&nbsp;&nbsp;智能辅助临床决策系统</span>
  95. <div className={style["buon"]}>
  96. {emergency?<div className={style["buon1"]} onClick={this.showHisModal}>
  97. <img className={`${style["st"]} ${style["his"]}`} src={emergIcon} />
  98. 本科室近期全部病历
  99. </div>:''}
  100. <div className={style["buon1"]} onClick={showConfigModal}>
  101. <img className={style["st"]} src={setup} />
  102. 设置
  103. </div>
  104. </div>
  105. {visible?<div className={style['modal']}>
  106. <div className={style['shade']} onClick={closeConfigModal}></div>
  107. <div className={style['content']}>
  108. <div className={style['close']}>设置<img src={close} onClick={closeConfigModal} /></div>
  109. <p className={style['title']}>模式切换<i>(模式说明:切换模式会清空当前所有的数据)</i></p>
  110. <ul>
  111. <li className={+mode===0?style['selected']:''} onClick={() => changeType(0)}><img src={ok} />智能推送模式</li>
  112. <li className={+mode===1?style['selected']:''} onClick={() => changeType(1)}><img src={ok} />纯文本模式</li>
  113. </ul>
  114. <div className={style['btn']} onClick={confirmType}>确认</div>
  115. </div>
  116. </div>:''}
  117. {emergencyBox?<div className={style['modal']}>
  118. <div className={style['shade']} onClick={this.handleHisClose}></div>
  119. <Emergency show={emergencyBox} close={this.handleHisClose}/>
  120. </div>:''}
  121. </div>
  122. );
  123. }
  124. }
  125. const mapStateToProps = function(state){
  126. return {
  127. }
  128. }
  129. const mapDispatchToProps = function(dispatch){
  130. return {
  131. getAllRecord(item){
  132. dispatch(getAllHis(item));
  133. }
  134. }
  135. }
  136. // export default Banner;
  137. export default connect(mapStateToProps,mapDispatchToProps)(Banner);