index.jsx 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. import React, { Component } from 'react';
  2. import { Button, ItemBox, ConfirmModal, Loading, Message, Add } from '@commonComp';
  3. import DiagnosticList from '@containers/DiagnosticList.js';
  4. import { getPageCoordinate,setPosition } from '@utils/tools';
  5. import DiagResultSearch from '@containers/DiagResultSearch';
  6. class Diagnosis extends Component {
  7. constructor(props) {
  8. super(props);
  9. this.state = {
  10. diagType: 0,
  11. //showSearch: props.show,
  12. pageTop: ''
  13. }
  14. this.showSearch = this.showSearch.bind(this);
  15. this.hideSearch = this.hideSearch.bind(this);
  16. this.handleshowSearch = this.handleshowSearch.bind(this);
  17. this.handleTcmShowSearch = this.handleTcmShowSearch.bind(this);
  18. this.handleSymShowSearch = this.handleSymShowSearch.bind(this);
  19. this.refreshScroller = this.refreshScroller.bind(this);
  20. this.showTcmSearch=this.showTcmSearch.bind(this);
  21. this.showSymSearch=this.showSymSearch.bind(this);
  22. this.hideTcmSearch=this.hideTcmSearch.bind(this);
  23. }
  24. /*componentWillReceiveProps() {
  25. this.setState({
  26. showSearch: this.props.show,
  27. showTcmSearch: this.props.showTcm
  28. })
  29. }*/
  30. showSearch() {
  31. const {showSearch} = this.props;
  32. showSearch && showSearch()
  33. }
  34. hideSearch() {
  35. const {hideSearch} = this.props;
  36. hideSearch && hideSearch()
  37. }
  38. showTcmSearch() {
  39. const {showTcmSearch} = this.props;
  40. showTcmSearch && showTcmSearch()
  41. }
  42. hideTcmSearch() {
  43. const {hideTcmSearch} = this.props;
  44. hideTcmSearch && hideTcmSearch()
  45. }
  46. showSymSearch(flag) {
  47. const {showSymSearch} = this.props;
  48. showSymSearch && showSymSearch(flag)
  49. }
  50. handleSymShowSearch(e) {
  51. this.showSymSearch(this.props.showSym ? false : true)
  52. this.setState({pageTop: getPageCoordinate(e).boxTop})
  53. if (this.props.showSym) {
  54. this.props.setHighter(48)
  55. } else {
  56. this.props.getBilling({mode: 10});
  57. setPosition(e, "#searchOption", this.props.setHighter)
  58. }
  59. }
  60. handleshowSearch(e) {
  61. this.props.show ? this.hideSearch() : this.showSearch()
  62. this.setState({pageTop: getPageCoordinate(e).boxTop})
  63. if (this.props.show) {
  64. this.props.setHighter(48)
  65. } else {
  66. this.props.getBilling({mode: 10});
  67. setPosition(e, "#searchOption", this.props.setHighter)
  68. }
  69. }
  70. handleTcmShowSearch(e) {
  71. this.props.showTcm ? this.hideTcmSearch() : this.showTcmSearch()
  72. this.setState({pageTop: getPageCoordinate(e).boxTop})
  73. if (this.props.showTcm) {
  74. this.props.setHighter(48)
  75. } else {
  76. this.props.getBilling({mode: 10});
  77. setPosition(e, "#searchOption", this.props.setHighter)
  78. }
  79. }
  80. refreshScroller() {
  81. //更新滚动条状态,解决容器变大滚动条不更新bug
  82. return this.context.scrollArea;
  83. }
  84. render() {
  85. const {isTcm,tcmList} = this.props;
  86. if (isTcm) { //添加中医诊断后才显示中医症候添加按钮
  87. const len = tcmList.length>0?tcmList.length-1:0;
  88. const showNext = tcmList.length===0||(tcmList.length>0&&tcmList[len].tcmDiag&&tcmList[len].tcmSyndrome);
  89. const showZh = tcmList.length>0&&tcmList[len].tcmDiag&&!tcmList[len].tcmSyndrome;
  90. return (<div id="diagnosisTcmResult">
  91. <ItemBox id="tcmDiagnosis" title="中医诊断" boxHeight='auto' hideAllDrop={this.props.hideAllDrop}
  92. titleTop='22px' marginTop='9px' backgroundColor='#EAF7FD'>
  93. <DiagnosticList isTcm={isTcm}
  94. refreshScroller={this.refreshScroller}
  95. setHighter={this.props.setHighter}
  96. hideChronic={this.props.hideChronic}></DiagnosticList>
  97. {showNext?<div style={{marginLeft: '10px', position: 'relative', color: '#000'}}>
  98. <Add showText="添加中医诊断结果" handleClick={this.handleTcmShowSearch} id="addTcmDiag"
  99. height="50px"/>
  100. <DiagResultSearch
  101. refreshScroller={this.refreshScroller}
  102. setHighter={this.props.setHighter}
  103. windowHeight={this.props.windowHeight}
  104. pageTop={this.state.pageTop}
  105. isTcm={isTcm}
  106. height={150}>
  107. </DiagResultSearch>
  108. </div>:''}
  109. </ItemBox>
  110. <Message></Message>
  111. </div>)
  112. }
  113. return (<div id="diagnosisResult">
  114. <ItemBox id="diagnosis" title='西医诊断' boxHeight='auto' hideAllDrop={this.props.hideAllDrop} titleTop='22px'
  115. marginTop='9px' backgroundColor='#EAF7FD'>
  116. <DiagnosticList refreshScroller={this.refreshScroller} hideChronic={this.props.hideChronic}></DiagnosticList>
  117. <div style={{marginLeft: '10px', position: 'relative', color: '#000'}}>
  118. <Add showText="添加西医诊断结果" handleClick={this.handleshowSearch} id="addDiag" height="50px"/>
  119. <DiagResultSearch
  120. refreshScroller={this.refreshScroller}
  121. setHighter={this.props.setHighter}
  122. windowHeight={this.props.windowHeight}
  123. pageTop={this.state.pageTop}
  124. height={150}>
  125. </DiagResultSearch>
  126. </div>
  127. </ItemBox>
  128. <Message></Message>
  129. </div>)
  130. }
  131. }
  132. Diagnosis.contextTypes = {
  133. scrollArea: React.PropTypes.object
  134. };
  135. export default Diagnosis;