index.jsx 4.8 KB

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