|
@@ -8,7 +8,12 @@ import chooseType from '@containers/eleType.js';
|
|
|
import config from "@config/index";
|
|
|
import {isIE,getPageCoordinate,windowEventHandler,filterDataArr} from "@utils/tools.js"
|
|
|
import $ from 'jquery';
|
|
|
-
|
|
|
+let clearText = (dom)=>{
|
|
|
+ // console.log(555,dom);
|
|
|
+ if(dom){
|
|
|
+ dom.current.innerText = '';
|
|
|
+ }
|
|
|
+}
|
|
|
class MainSuit extends Component{
|
|
|
constructor(props){
|
|
|
super(props);
|
|
@@ -29,6 +34,9 @@ class MainSuit extends Component{
|
|
|
overFlag:false,
|
|
|
tmpScroll:0,
|
|
|
tmpTop:0,
|
|
|
+ searchData:props.searchData||[],
|
|
|
+ clearFlag:false,
|
|
|
+ n:0
|
|
|
};
|
|
|
this.toggleEditable = this.toggleEditable.bind(this);
|
|
|
this.handleFocus = this.handleFocus.bind(this);
|
|
@@ -40,6 +48,12 @@ class MainSuit extends Component{
|
|
|
}
|
|
|
componentWillReceiveProps(nextProps){
|
|
|
this.setState({boxLeft:nextProps.boxLeft})
|
|
|
+ const {datas,saveText} = this.props;
|
|
|
+ // if(datas.length==0&&nextProps.saveText[0]!=this.props.saveText[0]){
|
|
|
+ if(datas.length==0&&nextProps.saveText[0]){
|
|
|
+ // 引用模板赋值
|
|
|
+ this.$div.current.innerText = nextProps.saveText[0];
|
|
|
+ }
|
|
|
}
|
|
|
toggleEditable(){
|
|
|
this.setState({
|
|
@@ -67,6 +81,7 @@ class MainSuit extends Component{
|
|
|
e.stopPropagation();
|
|
|
const {getCommonSymptoms,datas,clearDiagnose} = this.props;
|
|
|
let innerText = e.target.innerText || e.target.innerHTML;//兼容火狐43
|
|
|
+ console.log(789,innerText);
|
|
|
clearDiagnose&&clearDiagnose();//清除复诊数据
|
|
|
if(!isIE()){//IE会触发onfocus和onblur事件
|
|
|
if(!innerText.trim()){//有内容就走搜索接口
|
|
@@ -132,6 +147,7 @@ class MainSuit extends Component{
|
|
|
return
|
|
|
}
|
|
|
// clearTimeout(this.state.timer);
|
|
|
+ this.$div.current.innerText = '';
|
|
|
if(datas.length==0){//没有使用模板时点击搜索结构要展开模板
|
|
|
insertSearch &&insertSearch({item,span});
|
|
|
this.setState({
|
|
@@ -234,18 +250,21 @@ class MainSuit extends Component{
|
|
|
const {freeText,saveText,datas,clearSearch,getSymptomFeature,currentData} = this.props;
|
|
|
const that = this;
|
|
|
const ev = e || window.event;
|
|
|
- let data = this.state.inpText;
|
|
|
+ // let data = this.state.inpText;
|
|
|
+ let data = ev.target.innerText;
|
|
|
if(!isIE()){
|
|
|
if(currentData&¤tData.length==0){//现病史没有模板的时候才去获取
|
|
|
getSymptomFeature && getSymptomFeature(ev.target.innerText);
|
|
|
}
|
|
|
- ev.target.innerText?(ev.target.innerText=""):(ev.target.innerHTML="")
|
|
|
- freeText && freeText(data.trim());
|
|
|
+ // ev.target.innerText?(ev.target.innerText=""):(ev.target.innerHTML="")
|
|
|
+ // this.$div.current.innerText = data;
|
|
|
+ // freeText && freeText(data.trim());
|
|
|
+ freeText && freeText({data:data.trim(),div:this.$div});
|
|
|
}else{
|
|
|
if(datas.length==0){
|
|
|
const data = ev.target.innerText;
|
|
|
// freeText && freeText(data.trim());
|
|
|
- freeText && freeText(data);
|
|
|
+ freeText && freeText({data});
|
|
|
}
|
|
|
}
|
|
|
// 延时关闭常见症状下拉、清空搜索结果,不延时会影响选中
|
|
@@ -260,10 +279,30 @@ class MainSuit extends Component{
|
|
|
clearTimer
|
|
|
});*/
|
|
|
}
|
|
|
+ /*componentDidMount(){
|
|
|
+ const {datas,saveText} = this.props;
|
|
|
+ let text = this.$div.current?this.$div.current.innerText:'';
|
|
|
+ // if(datas.length==0&&saveText[0]&& !text){
|
|
|
+ console.log("回读赋值",saveText[0]) ;//数据未更新完成
|
|
|
+ if(datas.length==0&&saveText[0]){
|
|
|
+ this.$div.current.innerText = saveText[0];
|
|
|
+ }
|
|
|
+ }*/
|
|
|
|
|
|
+ componentDidUpdate(){
|
|
|
+ const {datas,saveText,clearAction,refresh} = this.props;
|
|
|
+ if(clearAction){//清除
|
|
|
+ if(clearText){
|
|
|
+ clearText(this.$div);
|
|
|
+ // 更新页面
|
|
|
+ // refresh&&refresh()
|
|
|
+ }
|
|
|
+ clearText = null;
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
render(){
|
|
|
- const {type,CommonSymptoms,searchData,fetchPushInfos,isRead,totalHide,handleInput,fuzhen,saveText,editClear,datas,commSymHide,boxLeft,boxTop} = this.props;
|
|
|
+ const {type,CommonSymptoms,fetchPushInfos,searchData,isRead,totalHide,handleInput,fuzhen,saveText,editClear,datas,commSymHide,boxLeft,boxTop} = this.props;
|
|
|
const {showModule,show,symptom,search} = this.state;
|
|
|
const symptomFlag = CommonSymptoms.length>0 ? true : false;
|
|
|
const searchFlag = searchData.length>0 ? true : false;
|
|
@@ -272,6 +311,7 @@ class MainSuit extends Component{
|
|
|
}
|
|
|
return <div className={`${'mainsuit-box'} ${style['main-suit']}`} id="mainsuitBox">
|
|
|
<ItemBox
|
|
|
+ setRef={(el) =>{this.$div = el}}
|
|
|
fuzhen={fuzhen}
|
|
|
title='主诉'
|
|
|
editable={editClear||datas.length==0?true:false}
|
|
@@ -282,7 +322,7 @@ class MainSuit extends Component{
|
|
|
handleBlur={this.handleBlur}
|
|
|
data={datas}
|
|
|
boxId="mainSuit">
|
|
|
- {datas.length>0?<div style={{display:'inline-block'}}>{this.getInlineTag()}</div>:(saveText[0]?saveText[0]:'')}
|
|
|
+ {datas.length>0?<div style={{display:'inline-block'}}>{this.getInlineTag()}</div>:''}
|
|
|
</ItemBox>
|
|
|
{/*没有推送结果就不显示*/}
|
|
|
{symptomFlag && !searchFlag ? <CommonSymptom data={CommonSymptoms} show={!totalHide&&symptom} onSelect={this.handleSelect} /> : ( searchFlag ? <SearchDrop data={searchData} show={!commSymHide} onSelect={this.handleSearchSelect} left={boxLeft} top={boxTop} />:"")}
|