index.jsx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. import React, { Component } from "react";
  2. import RotateImg from "../RotateImg";
  3. import style from "../index.less";
  4. import mimi from '@common/images/mimi.png';
  5. import down from "@common/images/show.png";
  6. import up from "@common/images/close.png";
  7. import {imgDragMove} from '@utils/drag';
  8. class SlideTgl extends Component {
  9. constructor(props){
  10. super(props);
  11. this.state={
  12. height:"",
  13. slide:false,//展开收起显示隐藏
  14. slideToggle:false,
  15. text:'展开',
  16. tgl:true,//展开收起文本设置
  17. imgList:[],
  18. idx:'',
  19. imgShow:false
  20. }
  21. this.slideDown = this.slideDown.bind(this)
  22. this.prePrecImg = this.prePrecImg .bind(this)
  23. this.handleClose = this.handleClose .bind(this)
  24. }
  25. componentDidMount() {
  26. setTimeout(() => {
  27. let height = this.refs.current.getDOMNode().offsetHeight;
  28. this.setState({
  29. height:height,
  30. slide:height>24?true:false,
  31. slideToggle:height>24?true:false
  32. })
  33. }, 0);
  34. }
  35. slideDown(flg){
  36. this.setState({
  37. tgl:flg,
  38. slide:flg
  39. })
  40. }
  41. prePrecImg(imgs,idx,imgShow){
  42. let imgLis = imgs&&imgs||[];
  43. for(let i = 0;i < imgLis.length;i++){
  44. let size = imgLis[i].originalImage.split('?')[1].split('&');
  45. let width = size[0].split('=')[1];
  46. let height = size[1].split('=')[1];
  47. imgLis[i].width = width;
  48. imgLis[i].height = height;
  49. }
  50. this.setState({
  51. imgList:imgLis,
  52. idx,
  53. imgShow
  54. })
  55. }
  56. handleClose(){
  57. imgDragMove('del')
  58. this.props.setMove(false)
  59. this.setState({
  60. imgShow:false
  61. })
  62. }
  63. render() {
  64. const { item,showPre,isMove,setMove,windowHeight } = this.props;
  65. return <li>
  66. <div className={style.current} ref="current" style={{height:this.state.slide?'18px':'auto'}}>
  67. <p className={style.curStyle}><span>现病史:</span>{item.detail.xbs}</p>
  68. {item.detail.qts?<div className={style.slideTgl}><span>其他史:</span>{item.detail.qts}</div>:null}
  69. {item.detail.supplement?<div className={style.slideTgl}><span>补充内容:</span>{item.detail.supplement}</div>:null}
  70. {item.detail.imageList?<p className={style.last}>最近一次报告:</p>:null}
  71. {item.detail.imageList?<div className={`${style.preImg} clearfix`}>
  72. {
  73. item.detail&&item.detail.imageList.map((part,idx)=>{
  74. return <div className={style.img}>
  75. <img className={style.report} src={part.originalImage} alt=""/>
  76. <img className={style.mimi} onClick={()=>this.prePrecImg(item.detail.imageList,idx,true)} src={mimi} alt=""/>
  77. </div>
  78. })
  79. }
  80. </div>:null}
  81. {this.state.slideToggle&&!this.state.slide?<p className={style.slidesx} onClick={()=>this.slideDown(true)}>
  82. 收起
  83. <img src={up} alt="收起"/>
  84. </p>:null}
  85. </div>
  86. {this.state.slideToggle&&this.state.slide?<p className={style.slidesx} onClick={()=>{this.slideDown(false)}}>
  87. 展开
  88. <img src={down} alt="展开"/>
  89. </p>:null}
  90. <div className={style.pushPre} onClick={()=>showPre(item)}>引用</div>
  91. {this.state.imgShow?<RotateImg
  92. imgShow={this.state.imgShow}
  93. imgLis={this.state.imgList}
  94. isMove = {isMove}
  95. windowHeight = {windowHeight}
  96. setMove = {setMove}
  97. handleClose={this.handleClose}
  98. idx={this.state.idx}></RotateImg>:null}
  99. </li>
  100. }
  101. }
  102. export default SlideTgl;