index.jsx 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import React,{Component} from 'react';
  2. import style from './index.less';
  3. import {ItemBox} from '@commonComp';
  4. import {setFontColorSize} from '@utils/tools';
  5. import Textarea from './Textarea';
  6. import FollowUp from '@components/Treat/FollowUp'
  7. class Advice extends Component{
  8. constructor(props){
  9. super(props);
  10. this.treatInput = React.createRef();
  11. this.assayRef = React.createRef();
  12. this.checkRef = React.createRef();
  13. this.adviceInputRef = React.createRef();
  14. this.handleTreatInput = this.handleTreatInput.bind(this);
  15. this.handleAssayInput = this.handleAssayInput.bind(this);
  16. this.handleCheckInput = this.handleCheckInput.bind(this);
  17. this.handleComTreatInput = this.handleComTreatInput.bind(this);
  18. this.handleAdviceInput = this.handleAdviceInput.bind(this);
  19. }
  20. componentWillReceiveProps(next){
  21. const isRead = this.props.isRead;
  22. // if(next.isRead != isRead||next.value!=this.props.value){ //value对比解决复诊不显示bug
  23. // this.adviceInputRef.current.innerText?(this.adviceInputRef.current.innerText = next.value||''):(this.adviceInputRef.current.innerHTML = next.value||'');
  24. // }
  25. }
  26. handleTreatInput(e, index, ii) {
  27. const {advice} = this.props.pushMessage;
  28. const changeInput = e.target.value //改变的同类药的值
  29. const { setChangeAdviceTreatment } = this.props;
  30. setChangeAdviceTreatment && setChangeAdviceTreatment(index, ii, changeInput)
  31. }
  32. handleAssayInput(e) {
  33. const changeInput = e.target.value
  34. const { setChangeAdviceAssay } = this.props;
  35. setChangeAdviceAssay && setChangeAdviceAssay(changeInput)
  36. }
  37. handleCheckInput(e) {
  38. const changeInput = e.target.value
  39. const { setChangeAdviceCheck } = this.props;
  40. setChangeAdviceCheck && setChangeAdviceCheck(changeInput)
  41. }
  42. handleComTreatInput(text) {
  43. const { comTreatChange } = this.props;
  44. comTreatChange && comTreatChange(text)
  45. }
  46. handleAdviceInput(text) {
  47. const { adviceInputChange } = this.props;
  48. adviceInputChange && adviceInputChange(text)
  49. }
  50. componentDidMount(){
  51. // this.$dom.current.nextSibling.innerText?(this.$dom.current.nextSibling.innerText = ''):(this.$dom.current.nextSibling.innerHTML = '')
  52. // const {advice} = this.props.pushMessage.advice
  53. }
  54. render(){
  55. const {advice} = this.props.pushMessage;
  56. const {isRead, isFirstMainDiag, followUp, hasFollowUp, saveFollowUp, typeConfig,hideAllDrop} = this.props
  57. let scheme = advice.scheme && advice.scheme.map((item0, index0) => {
  58. return <p>
  59. {item0.treatment.map((item1, index1) => {
  60. return item1.meditionDetails.map((item2, index2) => {
  61. return item2.treatment.map((item3, index3) => {
  62. return(item3.treatmentStr && item3.treatmentStr.length > 0 ?
  63. <div>
  64. { item3.treatmentStr }
  65. </div>: '')
  66. })
  67. })
  68. })}
  69. </p>
  70. })
  71. return <div id="adviceBox" className={`${'mainsuit-box'} ${style['main-suit']}`}>
  72. <ItemBox title='医嘱' editable={false} border={true} marginTop="10px" hideAllDrop={hideAllDrop}>
  73. <div className={`${style['billing']} ${setFontColorSize(2)}`}>
  74. {advice.assay && advice.assay.length > 0 || advice.check && advice.check.length > 0 ? <h1>开单项目</h1> : ''}
  75. {advice.assay && <span className={style['treat-input']}> {advice.assay}</span>}
  76. {advice.check && <span className={style['treat-input']}> {advice.check}</span>}
  77. </div>
  78. {advice.commontreatment && advice.commontreatment.length > 0 &&<div className={`${style['billing']} ${setFontColorSize(2)}`} >
  79. {advice.commontreatment && advice.commontreatment.length > 0 && <h1>一般治疗</h1>}
  80. {/* {advice.commontreatment && <div className={style['treat-input']} onInput={this.handleComTreatInput} contentEditable={true} style = {{outline: 'none'}}></div>} */}
  81. {<Textarea value={advice.commontreatment} isRead={isRead} handleChangeAssistValue={this.handleComTreatInput} ></Textarea>}
  82. </div>}
  83. {!isFirstMainDiag && hasFollowUp &&<FollowUp noHeader="true" textStyle={{padding: '0 10px'}} setFollowUp={saveFollowUp} followUp = {followUp} isRead={isRead}></FollowUp>}
  84. {advice.scheme && advice.scheme.length > 0 &&<div contentEditable='false' className={`${style['scheme']} ${setFontColorSize(2)}`}>
  85. {advice.scheme && advice.scheme.length > 0 && <h1>建议用药</h1>}
  86. {scheme}
  87. </div>}
  88. <div className={`${style['billing']} ${setFontColorSize(2)}`} >
  89. {/* {!advice.adviceInput && <Textarea value='' isRead={isRead} handleChangeAssistValue={this.handleAdviceInput} ></Textarea>}
  90. {advice.adviceInput && <Textarea value={advice.adviceInput} isRead={isRead} handleChangeAssistValue={this.handleAdviceInput} ></Textarea>} */}
  91. <Textarea value={advice.adviceInput} isRead={isRead} handleChangeAssistValue={this.handleAdviceInput} typeConfig={typeConfig}></Textarea>
  92. </div>
  93. </ItemBox>
  94. </div>
  95. }
  96. }
  97. export default Advice;