index.jsx 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. import React,{ Component } from 'react';
  2. import style from './index.less';
  3. import GeneralTreat from './GeneralTreat/index.jsx';
  4. import DrugTreat from './DrugTreat/index.jsx';
  5. import DrugHistory from './DrugHistory/index.jsx';
  6. import FollowUp from './FollowUp/index.jsx';
  7. import AdverseReactions from './AdverseReactions/index.jsx';
  8. import TreatDesc from '@components/TreatDesc'
  9. import DrugInfo from '@components/TreatDesc/DrugInfo';
  10. import Notify from '@commonComp/Notify'
  11. import close from './img/close.png';
  12. import generalIcon from './img/general.png';
  13. import surgicalIcon from './img/surgical.png';
  14. import followUpIcon from './img/followUp.png';
  15. import drugIcon from './img/drug.png';
  16. import adverseReactionIcon from './img/adverseReaction.png';
  17. import $ from "jquery";
  18. import {dragBox} from '@utils/drag';
  19. import ReactDom from "react-dom";
  20. import NewPortal from './NewPortal'
  21. class Treat extends Component {
  22. constructor(props){
  23. super(props);
  24. this.state = {
  25. zIndex:301,
  26. }
  27. this.hideTreat = this.hideTreat.bind(this);
  28. this.handlePrescription = this.handlePrescription.bind(this);
  29. this.handleDetermine = this.handleDetermine.bind(this);
  30. this.setTreatBox = this.setTreatBox.bind(this);
  31. }
  32. componentDidMount(){
  33. dragBox('dragModalWrap','dragModalTitle','add','treatDescBox')
  34. }
  35. hideTreat() {
  36. const { hideTreat,clearTreat, hideDrugInfo } = this.props;
  37. clearTreat && clearTreat();
  38. hideTreat && hideTreat();
  39. hideDrugInfo && hideDrugInfo();
  40. dragBox('dragModalWrap','dragModalTitle','del')
  41. }
  42. handlePrescription() {
  43. Notify.info('该功能即将上线,敬请期待。', 2000)
  44. }
  45. handleDetermine() {
  46. const { title, treatment, advice, treatItem, adversReactionList, saveAllAdverseReaction, setAllFollowUp } = this.props
  47. const { addScheme,refreshScroller } = this.props
  48. addScheme && addScheme(title, treatment);
  49. saveAllAdverseReaction && saveAllAdverseReaction(treatItem);
  50. setAllFollowUp && setAllFollowUp(treatItem)
  51. this.hideTreat();
  52. //滚动条滚到最底部,避免直接上滚滚动条消失bug
  53. setTimeout(function(){
  54. refreshScroller()&&refreshScroller().scrollBottom();
  55. },100);
  56. }
  57. showDrugInfo() {
  58. const { showDrugInfo } = this.props;
  59. showDrugInfo && showDrugInfo();
  60. }
  61. setTreatBox(){
  62. $('#dragModalWrap').css({'z-index': 120});
  63. $('#drugWrapper').css({'z-index': 110});
  64. }
  65. render(){
  66. const {setDrugInfoMore,treatIndex,treatIndexSet, generalTreat, treatment, treatItem, surgeryTreat, drugHistory,
  67. selectDrug, drugInfo, treatDesc, setOtherRecommend, setDrugInfo, showDrug, showDrugInfo,hideDrugInfo,
  68. title, drugInfoList, hideDrugInfoMore, adversReactionList, changeReact, followUp, setFollowUp, isRead, hasFollowUp} = this.props;
  69. const { zIndex,show } = this.state
  70. const domNode = document.getElementById('root');
  71. // return ReactDom.createPortal(
  72. return <NewPortal visible = 'true'>
  73. <div className={style['treat-wrapper']}>
  74. <div className={style['treat-mask']} onClick={this.hideTreat}>
  75. </div>
  76. <div id="dragModalWrap" className={style['treat-box']} onselectstart="return false">
  77. <img className={style.close} onClick={this.hideTreat} src={close}/>
  78. <div onMouseDown={this.setTreatBox} id="dragModalTitle" className={style['treat-title']}>治疗方案 ({treatItem.name})</div>
  79. <div className={style['treat-inner-box']}>
  80. <GeneralTreat icon={generalIcon} title='一般治疗' hasFold="true" generalTreat={generalTreat}></GeneralTreat>
  81. {hasFollowUp && <FollowUp icon={followUpIcon} title='回访时间' noTitle='true' setFollowUp={setFollowUp} followUp = {followUp} isRead={isRead}></FollowUp>}
  82. {/* 回访时间 */}
  83. {/* {followUp && <div>回访时间:
  84. <span className={style['follow-up-box']}
  85. contentEditable='true'
  86. onInput = {this.handleInputFollowUp}>
  87. {followUp}</span>后回访,不适随诊
  88. </div>} */}
  89. { drugHistory && (drugHistory['慢病用药内容'] && drugHistory['慢病用药内容'].length > 0 || drugHistory['普通病用药内容'] && drugHistory['普通病用药内容'].length > 0) &&<DrugHistory icon={drugIcon}
  90. titleStyle={{background:'#EAF7FA',opacity:'1', filter:'alpha(opacity=100);',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=100);'}}
  91. title='上次用药情况'
  92. drugHistory={drugHistory}
  93. showDrugInfo = {showDrugInfo}
  94. setDrugInfo={ setDrugInfo }>
  95. </DrugHistory>}
  96. {adversReactionList&&adversReactionList.length>0&&<AdverseReactions icon={adverseReactionIcon}
  97. titleStyle={{background:'#C72F2F',opacity:'0.1', filter:'alpha(opacity=10);',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=10);'}}
  98. title='不良反应'
  99. adversReactionList = {adversReactionList}
  100. changeReact = {changeReact}
  101. showDrugInfo = {showDrugInfo}
  102. setDrugInfo={ setDrugInfo }>
  103. </AdverseReactions>}
  104. <DrugTreat treatmentPlan={ treatment }
  105. selectDrug={selectDrug}
  106. setOtherRecommend={ setOtherRecommend }
  107. showDrugInfo = {showDrugInfo}
  108. setDrugInfo={ setDrugInfo }
  109. setDrugInfoMore = {setDrugInfoMore} //查询多条药品说明数据
  110. >
  111. </DrugTreat>
  112. <GeneralTreat icon={surgicalIcon} title='手术治疗' titleStyle={{background:'#FAEAEA',opacity:'1', filter:'alpha(opacity=100);',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=100);'}} titleBg='#FAEAEA' generalTreat={surgeryTreat}></GeneralTreat>
  113. </div>
  114. <div className={style['bottom']}>
  115. <span className={style['prescription-btn']} onClick={this.handlePrescription}>开处方</span> <span className={style['determine-btn']} onClick={this.handleDetermine}>确定</span>
  116. </div>
  117. {<TreatDesc
  118. treatment={treatment}
  119. treatDesc={treatDesc}
  120. selectDrug={selectDrug}
  121. setDrugInfo={ setDrugInfo }
  122. showDrugInfo = {showDrugInfo}
  123. showDrug = {showDrug}
  124. >
  125. </TreatDesc>}
  126. </div>
  127. {showDrug && drugInfo && <DrugInfo setTreatBox={this.setTreatBox} treatIndexSet={treatIndexSet} drugInfo = {drugInfo} hideDrugInfo = {hideDrugInfo}></DrugInfo>}
  128. {/* 查询多个药品说明书 (添加数据查看药品说明书用)*/}
  129. {/* {showDrug && <DrugInfo drugInfoList = {drugInfoList} hideDrugInfoMore = {hideDrugInfoMore}></DrugInfo>} */}
  130. </div>
  131. </NewPortal>
  132. // ,domNode
  133. // )
  134. }
  135. }
  136. export default Treat;