|
@@ -7,6 +7,7 @@ import info1 from './img/info1.png';
|
|
|
import info2 from './img/info2.png';
|
|
|
import info3 from './img/info3.png';
|
|
|
import packUp from './img/packUp.png';
|
|
|
+import HasInfoItem from '@common/components/HasInfoItem'
|
|
|
|
|
|
class TreatDesc extends Component {
|
|
|
constructor(props){
|
|
@@ -21,6 +22,7 @@ class TreatDesc extends Component {
|
|
|
this.handleMouseLeaveDrug = this.handleMouseLeaveDrug.bind(this)
|
|
|
this.handleMouseEnterImg = this.handleMouseEnterImg.bind(this)
|
|
|
this.handleMouseLeaveImg = this.handleMouseLeaveImg.bind(this)
|
|
|
+ this.getPosition = this.getPosition.bind(this)
|
|
|
|
|
|
}
|
|
|
|
|
@@ -51,21 +53,33 @@ class TreatDesc extends Component {
|
|
|
hasEnterImg: false
|
|
|
})
|
|
|
}
|
|
|
- handleSelect(index,ii) {
|
|
|
+ handleSelect(position) {
|
|
|
+
|
|
|
const { selectDrug } = this.props;
|
|
|
- selectDrug && selectDrug(index,ii);
|
|
|
+ selectDrug && selectDrug(position);
|
|
|
}
|
|
|
hideTreatDesc() {
|
|
|
$('#treatDescBox').css({'display': 'none'});
|
|
|
$('#treatDescBox').animate({'display': 'none'}, 500);
|
|
|
$('#dragModalWrap').animate({'margin-left': '-340px','left':'50%'}, 500);
|
|
|
}
|
|
|
+ getPosition(index) {
|
|
|
+ const {position} =this.props.treatDesc
|
|
|
+ const newPos = position.slice()
|
|
|
+ newPos.push(index)
|
|
|
+ return newPos
|
|
|
+ }
|
|
|
|
|
|
render(){
|
|
|
const { treatment, treatDesc, setDrugInfo} = this.props
|
|
|
- const { title, basic, otherDrugIndex, drugDesc} = treatDesc
|
|
|
+ const { title, basic, position, drugDesc} = treatDesc
|
|
|
const { currentIndex, hasEnterImg } = this.state
|
|
|
+ let treatmentItem
|
|
|
+ if(position) {
|
|
|
+ treatmentItem = treatment[position[0]].meditionDetails[position[1]].treatment[position[2]]
|
|
|
+ }
|
|
|
return (treatment && treatment.length >0 && <div className={style['treat-desc-box']+" "+"clearfix" }>
|
|
|
+
|
|
|
{title && title === '药品推荐' ? <div className={style['similar-drug-box']} id='treatDescBox'>
|
|
|
{/* { basic && basic.length > 0 && <div> //推荐依据不需要展示
|
|
|
<h3 className={style['recommend-title']}>推荐依据</h3>
|
|
@@ -74,41 +88,18 @@ class TreatDesc extends Component {
|
|
|
</div>)
|
|
|
})}
|
|
|
</div> } */}
|
|
|
- { otherDrugIndex > -1 && <div className={style['similar-drug-wrapper'] +" "+"clearfix" }>
|
|
|
- <h3 className={style['drug-desc-title']}><span className={style['drug-desc-class-title']} title={'同类药物(' + treatment[otherDrugIndex].bigdrugsName + ')'}>同类药物({treatment[otherDrugIndex].bigdrugsName})</span> <img src={packUp} onClick={this.hideTreatDesc} className={style['close-drug-desc']} /></h3>
|
|
|
+ {position&&<div className={style['similar-drug-wrapper'] +" "+"clearfix" }>
|
|
|
+ <h3 className={style['drug-desc-title']}><span className={style['drug-desc-class-title']} title={'同类药物(' + treatmentItem.bigdrugsName + ')'}>同类药物({treatmentItem.bigdrugsName})</span> <img src={packUp} onClick={this.hideTreatDesc} className={style['close-drug-desc']} /></h3>
|
|
|
<div className={style['similar-drug'] +" "+"clearfix" }>
|
|
|
- {treatment[otherDrugIndex].medicitionsList.map((item, index) =>{
|
|
|
- return (<span className={style['drug-name-box']}
|
|
|
- onMouseEnter={this.handleMouseEnterDrug.bind(this, index, item )}
|
|
|
- onMouseLeave = {this.handleMouseLeaveDrug}
|
|
|
- id={item.medicitionName}
|
|
|
- >
|
|
|
- <span className={style['drug-name']}
|
|
|
- // onDoubleClick={() =>{setDrugInfo(item);showDrugInfo();}}
|
|
|
- onClick={()=>{item.forbidden === '2' ? '' : this.handleSelect(otherDrugIndex,index)}}
|
|
|
- style={item.forbidden === '2' ? {opacity: '0.3', filter:'alpha(opacity=30)',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=30)'} : item.selected ? {color: '#3B9ED0'}:''}
|
|
|
- >
|
|
|
- {item.medicitionName}
|
|
|
- </span>
|
|
|
- {<img className={style['info-img']}
|
|
|
- title='点击i图标可查看详细说明'
|
|
|
- style ={currentIndex === index ? {display: "inline-block"} : {display: "none"}}
|
|
|
- src={currentIndex === index ? (hasEnterImg ? info3 : info2) : info2}
|
|
|
- onMouseEnter={this.handleMouseEnterImg.bind(this, index)}
|
|
|
- onMouseLeave = {this.handleMouseLeaveImg}
|
|
|
- onClick={() =>{setDrugInfo({name: item.medicitionName, type: 8, position: 5})}}
|
|
|
- />}
|
|
|
+ {treatmentItem.medicitionsList.map((item, index) =>{
|
|
|
+ return <HasInfoItem
|
|
|
+ item = {item}
|
|
|
+ setDrugInfo = {this.setDrugInfo}
|
|
|
+ position = {this.getPosition(index)}
|
|
|
+ handleSelect = {this.handleSelect}
|
|
|
+ >
|
|
|
|
|
|
- {/* {<img className={style['info-img']}
|
|
|
- title='点击i图标可查看详细说明'
|
|
|
- src={currentIndex === index ? info1 : info}
|
|
|
- onMouseEnter={this.handleMouseEnterImg.bind(this, index)}
|
|
|
- onMouseLeave = {this.handleMouseLeaveImg}
|
|
|
- onClick={() =>{setDrugInfo(item,8,5);showDrugInfo();}}/>} */}
|
|
|
- {item.forbidden === '1' ? <span className={style['info-flag']} style={{border: '1px solid #F4C051', background: '#F4C051',marginLeft: '5px'}}>慎用</span>: item.forbidden === '2' ? <span className={style['info-flag']} style={{opacity: '0.3', filter:'alpha(opacity=30)',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=30)',border: '1px solid #000',marginLeft: '5px'}}>禁用</span> : ''}
|
|
|
- {/*<span style={item.forbidden === '2' ? {opacity: '0.3', filter:'alpha(opacity=30)',filter:'progid:DXImageTransform.Microsoft.Alpha(opacity=30)'} : ''}> 使用率{item.rate}</span>*/}
|
|
|
-
|
|
|
- </span>)
|
|
|
+ </HasInfoItem>
|
|
|
})}
|
|
|
</div>
|
|
|
</div>}
|