index.jsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. import styles from './index.less'
  2. import small from '../img/small.png'
  3. import EmergencyPart from '../EmergencyPart'
  4. import pic from '../img/pic.png'
  5. import pic1 from '../img/pic1.png'
  6. import pic2 from '../img/pic2.png'
  7. import pic3 from '../img/pic3.png'
  8. import pic4 from '../img/pic4.png'
  9. import pic5 from '../img/pic5.png'
  10. import $ from 'jquery'
  11. import { dragBox } from '@utils/drag';
  12. import close from '@common/images/icon_close.png';
  13. class EmergencyModal extends React.Component{
  14. constructor(props){
  15. super(props)
  16. this.state={
  17. show:false,
  18. imgShow:false,
  19. diseaseName:[
  20. '','心包积液','气胸','肺栓塞','急性冠脉综合征','主动脉夹层'
  21. ]
  22. }
  23. this.handleImgShow=this.handleImgShow.bind(this)
  24. }
  25. componentDidMount() {
  26. $(document).click((event) => {
  27. let modalTopR = document.getElementById("modalTopR")
  28. let nameLis = document.getElementById("nameLis")
  29. if (nameLis) {
  30. if (modalTopR != event.target && !nameLis.contains(event.target)) {
  31. this.setState({ show: false });
  32. }
  33. }
  34. });
  35. }
  36. handleSlideShow(){
  37. let flg = this.state.show
  38. this.setState({show:!flg})
  39. }
  40. setDataIdx(num,flg){
  41. this.setState({show:flg})
  42. this.props.setDataIdx(num)
  43. }
  44. handleImgShow(flg){
  45. this.setState({imgShow:flg},()=>{
  46. if(flg){
  47. dragBox('dragModalWrap','dragModalTitle','add')
  48. }else{
  49. dragBox('dragModalWrap','dragModalTitle','del')
  50. }
  51. })
  52. }
  53. render(){
  54. const {data,handleShow,setDataIdx,idx,show} = this.props;
  55. return <div className={styles.emergencyProdure} style={{display:show?'block':'none'}}>
  56. <div className={`${styles.modalTop} clearfix`}>
  57. <div className={styles.modalTopL}>
  58. <img onClick={()=>handleShow(false)} src={small} alt=""/>
  59. <p className="ellipsOver">{data.emergencyname}</p>
  60. {
  61. idx == 0?null:<img src={pic} onClick={()=>{this.handleImgShow(true)}} alt=""/>
  62. }
  63. {
  64. this.state.imgShow?<React.Fragment>
  65. <div className={styles.imageModalWrap} onClick={()=>{this.handleImgShow(false)}}></div>
  66. <div className={styles.imageModal} id="dragModalWrap">
  67. <div id="dragModalTitle" className={`${styles.dragImgWrap} drag-title`}>
  68. {data.emergencyname}
  69. </div>
  70. <img className={styles.emergencyImg} src={idx==1?pic1:idx==2?pic2:idx==3?pic3:idx==4?pic4:idx==5?pic5:null}/>
  71. <img className={styles.img} src={close} onClick={()=>{this.handleImgShow(false)}} />
  72. </div>
  73. </React.Fragment>:null
  74. }
  75. </div>
  76. <div className={styles.modalTopR} onClick={()=>{this.handleSlideShow()}} id="modalTopR">其他危重症状</div>
  77. {
  78. this.state.show?<ul className={styles.nameLis} id="nameLis">
  79. <i></i>
  80. {
  81. this.state.diseaseName.map((item,index)=>{
  82. return <li className={idx == index?styles.selectColor:null} style={{display:item?'inline-block':'none'}} onClick={()=>{this.setDataIdx(index,false)}}>
  83. {item}
  84. </li>
  85. })
  86. }
  87. </ul>:null
  88. }
  89. </div>
  90. <div className={styles.modalMain}>
  91. <div className={styles.part}>
  92. <EmergencyPart idx={idx} setDataIdx={setDataIdx} data={data}></EmergencyPart>
  93. </div>
  94. </div>
  95. </div>
  96. }
  97. }
  98. export default EmergencyModal;