import React,{Component} from 'react'; import style from './index.less'; import {Button,InlineTag,ItemBox,Notify,Textarea} from '@commonComp'; import TailInlineTag from '@commonComp/TailInlineTag'; import chooseType from '@containers/eleType.js'; import SearchDrop from '@components/SearchDrop'; import {filterDataArr} from '@utils/tools' class CurrentIll extends Component{ constructor(props){ super(props); this.state = { boxEditable:true, showMoudle:false, forbidInput:false, mainFlag:true, mainData:[], boxMark:"2", boxLeft:null, boxTop:null, show:true } this.toggleEditable = this.toggleEditable.bind(this); this.handleFocus = this.handleFocus.bind(this); this.onchange = this.onchange.bind(this); this.handleSearchSelect = this.handleSearchSelect.bind(this); this.handleClick = this.handleClick.bind(this); } toggleEditable(){ this.setState({ boxEditable:!this.state.boxEditable }) } handleFocus(e){ // 判断主诉是否为空 const {mainData,mainText,setData,moduleNum,mainIds,data,changeEditIll,editClear} = this.props; const that = this; let mainFinallyText = filterDataArr(mainText); // if(mainData.length == 0 && !mainText[0]){ if(!mainFinallyText){ //弹窗提醒 Notify.error("无法操作,请先输入主诉"); this.setState({ forbidInput:true }) }else { // let useEmpty = mainData.length>0?false:true; let num = moduleNum.num;//主诉使用了几个模板 // if(editClear && data.length==0){//第一次聚焦去设置现病史的data if(data.length==0){//第一次聚焦去设置现病史的data // setData && setData({useEmpty,num,mainData,mainIds});//是否使用空模板 及数据处理 setData && setData({num,mainData,mainIds});//是否使用空模板 及数据处理 } this.setState({ showMoudle:true, forbidInput:false, boxEditable:false, }) changeEditIll(false) /*const showTimer = setTimeout(function(){ that.setState({ showMoudle:true, forbidInput:false, boxEditable:false, }) changeEditIll(false) },150) clearTimeout(showTimer);*/ } } onchange(e){//监听输入事件,主诉无数据不能输入 const ev = e || window.event; ev.target.innerText = ""; } handleClick(e){//让搜索框跟随鼠标点击移动 // e.stopPropagation(); //冒泡到最顶层关闭其他下拉 //若使用e.target,因为是onClick事件中,值可能是itembox的而不是span因此会有bug const ele = document.activeElement; const height = ele.offsetHeight; let boxTop = (+(ele.offsetTop)+height)+'px'; let boxLeft = +ele.offsetLeft+90 + 'px'; this.setState({ boxLeft:boxLeft, boxTop:boxTop }) } handleSearchSelect(obj){ const {questionId,name} = obj; const {fetchModules,focusIndex,span} = this.props; fetchModules&&fetchModules({id:questionId,index:focusIndex,name,span}); } getInlineTag(){ const {data,showArr,selecteds,processModuleName,saveText,insertProcess,symptomIds} = this.props; const boxMark = '2'; let list = data&&data.map((item,i)=>{ if(item.relationModule && item.relationModule==3){ return {insertProcess(obj)}}> }else { return chooseType({item,boxMark,i,hideTag:false,showArr,selecteds,saveText,mainIds:symptomIds}); } }) return list; } render(){ const {fuzhen,type,fetchPushInfos,handleInput,isRead,saveText,searchData,totalHide,showArr,focusIndex,editClear,data} = this.props; const {showMoudle,forbidInput,boxMark,boxLeft,boxTop,show} = this.state; const searchFlag = searchData.length>0 ? true : false; if(+type===1){ //文本模式 return