import React, { Component } from 'react'; import style from './index.less'; import delIcon from '@common/images/del_nor.png'; import {windowEventHandler,getCurrentDate,getWindowInnerHeight} from '@utils/tools' import Filters from './Filters'; class MedicalInfo extends Component { constructor(props) { super(props); this.$inp = React.createRef(); this.$cont = React.createRef(); this.$ul = React.createRef(); this.state={ val:'', hasSearch: false, msg:'', typeChecks:['0'], }; this.search = this.search.bind(this); this.handleChange = this.handleChange.bind(this); this.clear = this.clear.bind(this); this.getSearchList = this.getSearchList.bind(this); this.handleEnter = this.handleEnter.bind(this); this.handleTypeCheck = this.handleTypeCheck.bind(this); this.showScale=this.showScale.bind(this); } showScale(item){ const {scaleInfo,getScale,showScaleFn} = this.props; if(scaleInfo&&scaleInfo[item.conceptId]){ showScaleFn&&showScaleFn(item); }else{ getScale(item); } } getSearchList() { const { getAllConceptDetail,searchResult } = this.props; const that = this; if(searchResult&&searchResult.length>0){ setTimeout(function(){ that.$ul.current.style.height = getWindowInnerHeight()-278+'px'; },100); } return searchResult && searchResult.map((item) => { return
  • +item.type===21?this.showScale(item):getAllConceptDetail({name: item.name, type: item.type, uname: item.uniqueName,position:0,showName:item.name})}> {item.name} ( {item.libTypeName} ) {item.retrievalName?

    • {item.retrievalName}

    :''} {/**/}
  • ; }); } search(){ if(this.state.hasSearch === false) { this.setState({ hasSearch: true, msg:'暂无搜索结果!' }) } const {handleChangeValue} = this.props; const val = this.$inp.current.value; handleChangeValue&&handleChangeValue(val,this.state.typeChecks); } handleChange(){ const value = this.$inp.current.value; const {clearResult} = this.props; this.setState({ val: value }); if (value === '') { this.setState({ val: '', hasSearch: false, msg: '', }); clearResult && clearResult(); } } handleEnter(e){ if(e.keyCode==13){ this.search(); } } clear(){ const {clearResult} = this.props; this.$inp.current.value = ''; this.setState({ val:'', hasSearch: false, msg:'' }); this.$inp.current.focus(); clearResult&&clearResult(); } handleTypeCheck(val){ let {typeChecks} = this.state; //const allChecked = typeChecks.includes('0'); const alli = typeChecks.findIndex((it)=>it==='0'); const allChecked = alli!==-1; if(val==='0'){ //全部与其他互斥 !allChecked?typeChecks=['0']:typeChecks.splice(alli,1); }else{ allChecked&&typeChecks.splice(alli,1); if(!typeChecks.includes(val)){ typeChecks.push(val); }else{ const i = typeChecks.findIndex((it)=>val===it); typeChecks.splice(i,1); } } this.setState({ typeChecks:typeChecks }); } componentDidMount(){ const height = getWindowInnerHeight()-148; this.$cont.current.style.height = height+"px"; this.props.getFilters(); windowEventHandler('resize', ()=>{ if(this.$cont.current){ const height = getWindowInnerHeight()-148; this.$cont.current.style.height = height+"px"; } if(this.$ul.current){ const height = getWindowInnerHeight()-278; this.$ul.current.style.height = height+"px"; } }); } componentWillReceiveProps(){ this.setState({ hasSearch: false }); } render() { const {searchResult,filterList} = this.props; const {val, hasSearch,msg,typeChecks} = this.state; return (

    {val?清空:''}

    {searchResult&&searchResult.length>0?

    搜索内容

    :

    {hasSearch?'搜索中...':msg}

    }
    ) } } export default MedicalInfo;