فهرست منبع

Merge remote-tracking branch 'origin/IE_test' into dev/new1

# Conflicts:
#	src/components/AddInspect/SlideExcel/index.jsx
#	src/components/AddInspect/SlideExcel/index.less
#	src/components/AddInspect/SlideSelect/index.jsx
#	src/components/AddInspect/SlideSelect/index.less
#	src/components/MainSuit/index.jsx
zhouna 6 سال پیش
والد
کامیت
ffb5aeb36c

+ 2 - 6
src/common/components/ItemBox/index.jsx

@@ -38,13 +38,9 @@ class ItemBox extends Component {
     }
   }
 
-  /*componentWillReceiveProps(next){
-    if(this.props.value && next.value!=this.props.value){
-      this.$div.current.innerText?(this.$div.current.innerText = next.value||''):(this.$div.current.innerHTML = next.value||'');
-    }
-  }*/
-
   componentDidMount(){
+    const {setRef} = this.props;
+    setRef&&setRef(this.$div);
     if(isIE()){
       $(this.$div.current).onIe8Input(function(e){
         this.handleInput(e)

+ 9 - 10
src/components/MainSuit/index.jsx

@@ -233,32 +233,29 @@ class MainSuit extends Component{
   handleBlur(e){//隐藏常见症状下拉、存自由输入的值
     const {freeText,saveText,datas,clearSearch,getSymptomFeature,currentData} = this.props;
     const that = this;
-    const ev = e || window.event;
     let data = this.state.inpText;
     if(!isIE()){
       if(currentData&&currentData.length==0){//现病史没有模板的时候才去获取
-        getSymptomFeature && getSymptomFeature(ev.target.innerText);
+        getSymptomFeature && getSymptomFeature(e.target.innerText);
       } 
-      ev.target.innerText?(ev.target.innerText=""):(ev.target.innerHTML="")
+      e.target.innerText?(e.target.innerText=""):(e.target.innerHTML="")
       freeText && freeText(data.trim());
     }else{
       if(datas.length==0){
+        const ev = e || window.event;
         const data = ev.target.innerText;
         // freeText && freeText(data.trim());
         freeText && freeText(data);
       }
     }
     // 延时关闭常见症状下拉、清空搜索结果,不延时会影响选中
-      // clearTimeout(this.state.clearTimer);
       const clearTimer = setTimeout(function(){
         clearSearch && clearSearch();
+        clearTimeout(clearTimer);
         // that.setState({
         //   symptom:false
         // })
-      },config.delayTime-200);
-      // this.setState({
-      //   clearTimer
-      // });  
+      },config.delayTime-200); 
   }
 
 
@@ -267,11 +264,13 @@ class MainSuit extends Component{
     const {showModule,show,symptom,search} = this.state;
     const symptomFlag = CommonSymptoms.length>0 ? true : false;
     const searchFlag = searchData.length>0 ? true : false;
+    const boxTop1 = datas.length>0?boxTop:45;
+    const boxLeft1 = datas.length>0?boxLeft:85;
     if(+type===1){      //文本模式
       return <Textarea title='主诉' boxMark='1' isRead={isRead} value={saveText[0]} handlePush={fetchPushInfos} handleInput={handleInput} />;
     }
     return  <div className={`${'mainsuit-box'} ${style['main-suit']}`} id="mainsuitBox">
-      <ItemBox 
+      <ItemBox
       fuzhen={fuzhen} 
       title='主诉' 
       editable={editClear||datas.length==0?true:false} 
@@ -285,7 +284,7 @@ class MainSuit extends Component{
         {datas.length>0?<div style={{display:'inline-block'}}>{this.getInlineTag()}</div>:(saveText[0]?saveText[0]:'')}
       </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} />:"")}
+      {symptomFlag && !searchFlag ? <CommonSymptom data={CommonSymptoms} show={!totalHide&&symptom} onSelect={this.handleSelect} /> : ( searchFlag ? <SearchDrop data={searchData} show={!commSymHide} onSelect={this.handleSearchSelect} left={boxLeft1} top={boxTop1} mainEmpty={datas.length==0?true:false}/>:"")}
     </div>
   }
 }

+ 28 - 11
src/components/SearchDrop/index.jsx

@@ -21,6 +21,9 @@ class SearchDrop extends Component{
   constructor(props){
     super(props);
     this.handleSelect = this.handleSelect.bind(this);
+    this.state={
+      data:props.data||[]
+    }
   }
   getClass(){
     let name = style['text-list'];
@@ -54,18 +57,32 @@ class SearchDrop extends Component{
     // onShow&&onShow(e,false);
   }
   render(){
+    const {mainEmpty} = this.props;
     let litext = '';
-    const domNode = document.getElementById('root');
-    return ReactDom.createPortal(
-      <div className={this.getClass()} contenteditable="false" id="searchBox" style={this.getStyle()}>
-        <ul>
-          {this.props.data&&this.props.data.map((it)=>{
-            litext = it.showType==1?it.name:it.name+'('+it.retrievalName+')';
-            return <li onClick={(e)=>this.handleSelect(e,it)} title={litext}>{litext}</li>
-          })}
-        </ul>
-      </div>
-    ,domNode)
+    if(mainEmpty){
+      return <div className={this.getClass()} contenteditable="false" id="searchBox" style={this.getStyle()}>
+          <ul>
+            {this.props.data&&this.props.data.map((it)=>{
+              litext = it.showType==1?it.name:it.name+'('+it.retrievalName+')';
+              return <li onClick={(e)=>this.handleSelect(e,it)} title={litext}>{litext}</li>
+            })}
+          </ul>
+        </div>
+    }else{
+      
+      const domNode = document.getElementById('root');
+      return ReactDom.createPortal(
+        <div className={this.getClass()} contenteditable="false" id="searchBox" style={this.getStyle()}>
+          <ul>
+            {this.props.data&&this.props.data.map((it)=>{
+              litext = it.showType==1?it.name:it.name+'('+it.retrievalName+')';
+              return <li onClick={(e)=>this.handleSelect(e,it)} title={litext}>{litext}</li>
+            })}
+          </ul>
+        </div>
+      ,domNode)
+    }
+    
   }
 }
 

+ 1 - 0
src/containers/MainSuit.js

@@ -30,6 +30,7 @@ function mapStateToProps(state) {//console.log(11,state);
     span:state.mainSuit.span,
     addModuleName:state.mainSuit.addModuleName,//添加病情变化模板名称
     editClear:state.mainSuit.editClear,
+    clearAction:state.mainSuit.clearAction,//清除
     mainIds:state.mainSuit.mainIds,//选中症状的id,搜索去重用
     isRead:state.homePage.isRead,
     commSymHide:state.homePage.commSymHide,

+ 1 - 1
src/store/actions/checkBody.js

@@ -232,7 +232,7 @@ export function insertLabelData(state,action){
   let res = Object.assign({},state);
   const text = Object.assign({},JSON.parse(config.textLabel));
   const searchStr = res.searchStr;
-  const {index,data,isReplace,span,searchInEnd}=action;
+  const {index,data,isReplace,span,searchInEnd}=action;console.log("查体",data);
   const showText = res.saveText[index];
   const spreadLabels = data.tagType==4?fullfillText(data.questionMapping).newArr:[data];
   let reg = searchInEnd?new RegExp(searchStr+"$"):new RegExp("^"+searchStr);

+ 5 - 7
src/store/actions/mainSuit.js

@@ -98,7 +98,7 @@ export const insertMain = (state,action) => {
   if(items.length>1){
     for(let i=1; i<items.length; i++){
       items[i].name = '、'+items[i].name;
-      items[i].value = items[i].value?'、'+items[i].value:items[i].name;
+      items[i].value = '、'+items[i].value;
     } 
   }
   let obj = [];
@@ -111,14 +111,13 @@ export const insertMain = (state,action) => {
         inserIndx = i;
       }
     })
-  // data.splice(inserIndx-1,1,...obj);
-  // 防止没有flag的情况下报错,找不到flag就插到最后
-  inserIndx?data.splice(inserIndx-1,1,...obj):data.splice(-1,0,...obj);
+  data.splice(inserIndx-1,1,...obj);
   // data[inserIndx-1] = text;//替换空标签
   res.data = data;
   res.saveText = [];//将手动输入的值清掉
   // res.saveText[inserIndx] = text.name;
   res.saveText = fullfillText(res.data).saveText;
+  // res.mainIds.push(id);
   res.mainIds = res.mainIds.concat(id);
   res.editClear = false;//主诉框编辑状态
   res.update=Math.random();
@@ -310,7 +309,7 @@ export const insertSearch = (state,action)=>{
       }
     })
     // flag=1前是文本标签就替换,否则插入
-    const iftext = inserIndx?moduleData[inserIndx-1].tagType:null;
+    const iftext = moduleData[inserIndx-1].tagType;
     if(iftext==config.tagType){
        moduleData.splice(inserIndx-1,1,{id:id,name:searchData,value:searchData,tagType:config.tagType,exist:1});
      }else{
@@ -586,8 +585,7 @@ export const saveFreeVal = (state,action)=>{
   }else{
     res.saveText = [];
   }*/
-  // res.update = Math.random();
-  // console.log(666,action,res);
+  res.update = Math.random();
   return res;
 }
 

+ 1 - 1
src/utils/tools.js

@@ -239,7 +239,7 @@ const getAllDataStringList =(baseList) =>{           //获取所有模块文本
 const pushAllDataList =(whichSign,action,reData,type) =>{           //回读清空所有的数据
     if(action == 'clear'){     //清空
       const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
-      store.dispatch({type: CLEAR_MAIN_SUIT,data:[],saveText:[],selecteds:[],editClear:true,mainIds:[]});
+      store.dispatch({type: CLEAR_MAIN_SUIT,data:[],saveText:[],selecteds:[],editClear:true,mainIds:[],clearAction:true});
         store.dispatch({type: CLEAR_CURRENT_ILL,data:[],saveText:[],selecteds:[],editClear:true,symptomIds:[]});
         store.dispatch({type: CLEAROTHERHISTORY,data:[block],isEmpty:true,saveText:[],selecteds:[],editClear:true,yjs_1:'',yjs_2:'',yjs_3:'',yjs_4:''});
         store.dispatch({type: CLEARCHECKBODY,data:[block],isEmpty:true,saveText:[],selecteds:[]});