فهرست منبع

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

# Conflicts:
#	src/common/components/SearchOption/index.jsx
#	src/common/js/func.js
#	src/common/less/variables.less
#	src/components/Operation/index.jsx
#	src/components/PreviewBody/index.jsx
#	src/components/PushContainer/index.jsx
#	src/components/SpreadDrop/index.jsx
#	src/containers/CurrentIll.js
#	src/store/async-actions/patInfo.js
#	src/store/reducers/assistCheck.js
zhouna 6 سال پیش
والد
کامیت
6c245fb090

+ 12 - 24
src/common/components/EditableSpan/index.jsx

@@ -113,23 +113,17 @@ class EditableSpan extends Component{
   }
   }
 
 
   moveEnd(obj) {
   moveEnd(obj) {
-    obj.focus();
-    if($.support.msie)
-    {
-        var range = document.selection.createRange();
-        this.last = range;
-        range.moveToElementText(obj);
-        range.select();
-        document.selection.empty(); //取消选中
+    if(window.getSelection){//ie11 10 9 ff safari
+      obj.focus(); //解决ff不获取焦点无法定位问题
+      var range = window.getSelection();//创建range
+      range.selectAllChildren(obj);//range 选择obj下所有子内容
+      range.collapseToEnd();//光标移至最后
     }
     }
-    else
-    {
-        var range = document.createRange();
-        range.selectNodeContents(obj);
-        range.collapse(false);
-        var sel = window.getSelection();
-        sel.removeAllRanges();
-        sel.addRange(range);
+    else if (document.selection) {//ie10 9 8 7 6 5
+      var range = document.selection.createRange();//创建选择对象
+      range.moveToElementText(obj);//range定位到obj
+      range.collapse(false);//光标移至最后
+      range.select();
     }
     }
   }
   }
 
 
@@ -159,16 +153,10 @@ class EditableSpan extends Component{
     let innerVal = target.innerText;
     let innerVal = target.innerText;
     if(ev.keyCode==8){
     if(ev.keyCode==8){
       // 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
       // 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
-      let pattern1 = new RegExp(/^\,|^\,|^\.|^\。|^\、|^\;|^\;|^\:|^\:/);
-      if(pattern1.test(preVal)){//以标点开头的情况-现病史
-        if(preVal.trim().length==2){
+      if(preVal.trim().length==1){
           removeId && removeId({boxMark,i:index,text:""});
           removeId && removeId({boxMark,i:index,text:""});
+          // this.moveEnd(obj[0]);
         }
         }
-      }else{
-        if(preVal.trim().length==1){
-          removeId && removeId({boxMark,i:index,text:""});
-        }
-      }
       
       
       if(innerVal !==preVal){return false}
       if(innerVal !==preVal){return false}
       let data = innerVal.trim();
       let data = innerVal.trim();

+ 1 - 1
src/common/components/ItemBox/index.jsx

@@ -33,7 +33,7 @@ class ItemBox extends Component {
   }
   }
   handleInput(e){
   handleInput(e){
     const {onchange,data} = this.props;
     const {onchange,data} = this.props;
-    if((data&&data.length==0)||!data){//避免结构化下触发onchange,导致下拉要点两下
+    if(!data || (data.length==0)){//避免结构化下触发onchange,导致下拉要点两下
       onchange&&onchange(e)
       onchange&&onchange(e)
     }
     }
   }
   }

+ 2 - 1
src/components/CurrentIll/index.jsx

@@ -72,7 +72,8 @@ class CurrentIll extends Component{
   }
   }
 
 
   onchange(e){//监听输入事件,主诉无数据不能输入
   onchange(e){//监听输入事件,主诉无数据不能输入
-    e.target.innerText = "";
+    const ev = e || window.event;
+    ev.target.innerText = "";
   }
   }
 
 
   handleClick(e){//让搜索框跟随鼠标点击移动
   handleClick(e){//让搜索框跟随鼠标点击移动

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

@@ -143,20 +143,21 @@ class MainSuit extends Component{
   }
   }
 
 
   handleChange(e){
   handleChange(e){
-    const data = e.target.innerText;
+    const ev = e || window.event;
+    const data = ev.target.innerText;
     const {getSearchData,searchData,datas,pushMessage,reTotalHide} = this.props;
     const {getSearchData,searchData,datas,pushMessage,reTotalHide} = this.props;
     const {overFlag,inpText} = this.state;
     const {overFlag,inpText} = this.state;
     reTotalHide && reTotalHide();//重置homePage中的控制项
     reTotalHide && reTotalHide();//重置homePage中的控制项
     const that = this;
     const that = this;
-    if(data.length > config.limited){
+    if(data&&data.length > config.limited){
       Notify.info(config.limitText);
       Notify.info(config.limitText);
       if(overFlag){
       if(overFlag){
-        e.target.innerText = inpText;
-        e.target.blur();
+        ev.target.innerText = inpText;
+        ev.target.blur();
         return
         return
       }
       }
-      e.target.innerText = data.substr(0,config.limited);  //输入法内输入多个字再按enter的情况
-      e.target.blur();
+      ev.target.innerText = data.substr(0,config.limited);  //输入法内输入多个字再按enter的情况
+      ev.target.blur();
       this.setState({
       this.setState({
         inpText:data.substr(0,config.limited),
         inpText:data.substr(0,config.limited),
         overFlag:true
         overFlag:true
@@ -167,11 +168,11 @@ class MainSuit extends Component{
       inpText:data,
       inpText:data,
       overFlag:false
       overFlag:false
     })
     })
-    if(datas.length > 0){//使用模板
+    if(datas && datas.length > 0){//使用模板
       return false;
       return false;
     }
     }
     // 有输入内容或搜索结果时关闭,否则显示
     // 有输入内容或搜索结果时关闭,否则显示
-    if(data.trim()||searchData.length>0){
+    if(data && data.trim()||searchData.length>0){
       this.setState({
       this.setState({
         symptom:false
         symptom:false
       })
       })
@@ -180,9 +181,9 @@ class MainSuit extends Component{
         symptom:true
         symptom:true
       })
       })
     }
     }
-
     clearTimeout(this.state.timer);
     clearTimeout(this.state.timer);
     const timer = setTimeout(function(){
     const timer = setTimeout(function(){
+      pushMessage && pushMessage(data);
       //调搜索接口 使用模板走EditableSpan里的搜索方法
       //调搜索接口 使用模板走EditableSpan里的搜索方法
       getSearchData && getSearchData({inpStr:data,boxMark:1});
       getSearchData && getSearchData({inpStr:data,boxMark:1});
     },config.delayTime);
     },config.delayTime);
@@ -211,7 +212,10 @@ class MainSuit extends Component{
       });
       });
     }else{
     }else{
       if(datas.length==0){
       if(datas.length==0){
-        freeText && freeText(data.trim());
+        const ev = e || window.event;
+        const data = ev.target.innerText;
+        // freeText && freeText(data.trim());
+        freeText && freeText(data);
       }
       }
     }
     }
     
     

+ 2 - 1
src/components/RadioDrop/index.jsx

@@ -102,7 +102,8 @@ class RadioDrop extends Component{
       editable:false
       editable:false
     });  
     });  
    // 更改标签的value值
    // 更改标签的value值
-    let changeVal = e.target.innerText;
+    const ev = e || window.event;
+    let changeVal = ev.target.innerText;
     handleLabelEdit && handleLabelEdit({ikey,changeVal,type:boxMark});
     handleLabelEdit && handleLabelEdit({ikey,changeVal,type:boxMark});
   }
   }
   handledbClick(e){
   handledbClick(e){

+ 6 - 3
src/components/SpreadDrop/index.jsx

@@ -122,10 +122,13 @@ class SpreadDrop extends Component{
     e.stopPropagation();
     e.stopPropagation();
     const {ikey,type,handleLabelChange} = this.props;
     const {ikey,type,handleLabelChange} = this.props;
     const {editable} = this.state;
     const {editable} = this.state;
+    const ev = e || window.event;
     if(editable){
     if(editable){
       // 更改标签的value值
       // 更改标签的value值
-      let changeVal = e.target.innerText;
-      e.target.innerText = '';      //避免出现重复输入值
+      let changeVal = ev.target.innerText;
+      if(!isIE()){
+        e.target.innerText = '';      //避免出现重复输入值
+      }
       handleLabelChange && handleLabelChange({ikey,changeVal,type});
       handleLabelChange && handleLabelChange({ikey,changeVal,type});
     }
     }
     this.setState({
     this.setState({
@@ -175,7 +178,7 @@ class SpreadDrop extends Component{
     const {handleConfirm,ikey,type,tagType,order,mainSaveText,copyType} = this.props;
     const {handleConfirm,ikey,type,tagType,order,mainSaveText,copyType} = this.props;
     const params = Object.assign({},this.state,{ikey,type,tagType,order,mainSaveText,copyType});
     const params = Object.assign({},this.state,{ikey,type,tagType,order,mainSaveText,copyType});
     handleConfirm&&handleConfirm(params);
     handleConfirm&&handleConfirm(params);
-	  this.btnClickFlag = true;
+	this.btnClickFlag = true;
     //点确定后隐藏弹窗
     //点确定后隐藏弹窗
     this.props.handleHide();
     this.props.handleHide();
   }
   }

+ 1 - 1
src/containers/AssistCheck.js

@@ -36,7 +36,7 @@ function mapDispatchToProps(dispatch, store) {
         //右侧推送
         //右侧推送
         fetchPushInfos(){
         fetchPushInfos(){
           //调右侧推送
           //调右侧推送
-          dispatch(billing);
+          dispatch(billing());
         }
         }
     }
     }
 }
 }

+ 1 - 1
src/containers/CheckBody.js

@@ -51,7 +51,7 @@ function mapDispatchToProps(dispatch,state){
     //右侧推送
     //右侧推送
     fetchPushInfos(){
     fetchPushInfos(){
       //调右侧推送
       //调右侧推送
-      dispatch(billing);
+      dispatch(billing());
     },
     },
   }
   }
 }
 }

+ 2 - 2
src/containers/CurrentIll.js

@@ -78,7 +78,7 @@ function mapDispatchToProps(dispatch) {
          //右侧推送
          //右侧推送
          setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
          setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
            if(didPushParamChange()){     //操作后内容有变化才推送
            if(didPushParamChange()){     //操作后内容有变化才推送
-             dispatch(billing);
+             dispatch(billing());
            }
            }
          },500);
          },500);
        },
        },
@@ -91,7 +91,7 @@ function mapDispatchToProps(dispatch) {
         //文本模式下推送
         //文本模式下推送
         fetchPushInfos(){
         fetchPushInfos(){
           //调右侧推送
           //调右侧推送
-          dispatch(billing);
+          dispatch(billing());
         },
         },
       handleInput(obj){    //文本模式值保存
       handleInput(obj){    //文本模式值保存
         dispatch({
         dispatch({

+ 1 - 1
src/containers/DiagnosticList.js

@@ -64,7 +64,7 @@ function mapDispatchToProps(dispatch) {
             dispatch(getTips(diagItem))
             dispatch(getTips(diagItem))
         },
         },
         getBilling: () => {
         getBilling: () => {
-            dispatch(billing)
+            dispatch(billing())
         }
         }
     }
     }
 }
 }

+ 1 - 1
src/containers/EditableSpan.js

@@ -172,7 +172,7 @@ function mapDispatchToProps(dispatch,state) {
       clearTimeout(timer);
       clearTimeout(timer);
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
           clearTimeout(timer);
           clearTimeout(timer);
         }
         }
       },config.delayPushTime);
       },config.delayPushTime);

+ 1 - 1
src/containers/Inspect.js

@@ -48,7 +48,7 @@ function mapDispatchToProps(dispatch, store) {
         //右侧推送
         //右侧推送
         fetchPushInfos(){
         fetchPushInfos(){
           //调右侧推送
           //调右侧推送
-          dispatch(billing);
+          dispatch(billing());
         }
         }
     }
     }
 }
 }

+ 6 - 6
src/containers/MainSuit.js

@@ -79,7 +79,7 @@ function mapDispatchToProps(dispatch) {
           //右侧推送
           //右侧推送
           setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
           setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
             if(didPushParamChange()){     //操作后内容有变化才推送
             if(didPushParamChange()){     //操作后内容有变化才推送
-              dispatch(billing);
+              dispatch(billing());
             }
             }
           },500);
           },500);
         },
         },
@@ -91,9 +91,9 @@ function mapDispatchToProps(dispatch) {
       setMainSuit: (value) => {
       setMainSuit: (value) => {
         dispatch({type: SET_MAIN_SUIT, value})
         dispatch({type: SET_MAIN_SUIT, value})
       },
       },
-      pushMessage() {//结构模式右侧推送
-        console.log("右侧推送接口");
-        dispatch(billing);
+      pushMessage(data) {//结构模式右侧推送
+        // console.log("右侧推送接口");
+        dispatch(billing(data));
       },
       },
       getSearchData:(item)=>{
       getSearchData:(item)=>{
         getSearch(item).then((res)=>{
         getSearch(item).then((res)=>{
@@ -132,14 +132,14 @@ function mapDispatchToProps(dispatch) {
         //右侧推送
         //右侧推送
           setTimeout(function(){ 
           setTimeout(function(){ 
             if(didPushParamChange()){
             if(didPushParamChange()){
-              dispatch(billing);
+              dispatch(billing());
             }
             }
           },500);
           },500);
       },
       },
       fetchPushInfos(){//文本模式下推送
       fetchPushInfos(){//文本模式下推送
         //调右侧推送
         //调右侧推送
         console.log('右侧推送内容');
         console.log('右侧推送内容');
-        dispatch(billing);
+        dispatch(billing());
       },
       },
       handleInput(obj){   //文本模式值保存
       handleInput(obj){   //文本模式值保存
           dispatch({
           dispatch({

+ 1 - 1
src/containers/NumberDrop.js

@@ -125,7 +125,7 @@ function mapDispatchToProps(dispatch,store){
       clearTimeout(timer);
       clearTimeout(timer);
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
           clearTimeout(timer);
           clearTimeout(timer);
         }
         }
       },config.delayPushTime);
       },config.delayPushTime);

+ 1 - 1
src/containers/NumberUnitDrop.js

@@ -120,7 +120,7 @@ function mapDispatchToProps(dispatch,store){
       clearTimeout(timer);
       clearTimeout(timer);
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       let timer = setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
           clearTimeout(timer);
           clearTimeout(timer);
         }
         }
       },config.delayPushTime);
       },config.delayPushTime);

+ 2 - 2
src/containers/OtherHistory.js

@@ -53,7 +53,7 @@ function mapDispatchToProps(dispatch,store){
       //右侧推送
       //右侧推送
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
         }
         }
       },500);
       },500);
     },
     },
@@ -79,7 +79,7 @@ function mapDispatchToProps(dispatch,store){
     //右侧推送
     //右侧推送
     fetchPushInfos(){
     fetchPushInfos(){
       //调右侧推送
       //调右侧推送
-      dispatch(billing);
+      dispatch(billing());
     },
     },
     handleInput(obj){    //文本模式值保存
     handleInput(obj){    //文本模式值保存
       dispatch({
       dispatch({

+ 1 - 1
src/containers/PushItemsContainer.js

@@ -30,7 +30,7 @@ function mapDispatchToProps(dispatch) {
                 type: GET_DIAGNOSTIC_STR
                 type: GET_DIAGNOSTIC_STR
             });
             });
             dispatch(isAddMainSuit())
             dispatch(isAddMainSuit())
-            dispatch(billing);
+            dispatch(billing());
         },
         },
         billing: (checkedAssay, checkedCheck) => {
         billing: (checkedAssay, checkedCheck) => {
             // dispatch(billing)
             // dispatch(billing)

+ 2 - 2
src/containers/RadioDrop.js

@@ -107,7 +107,7 @@ function mapDispatchToProps(dispatch,store){
       //右侧推送
       //右侧推送
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
         }
         }
       },500);
       },500);
     },
     },
@@ -127,7 +127,7 @@ function mapDispatchToProps(dispatch,store){
         type:dbEditActions[+type],
         type:dbEditActions[+type],
         data:{changeVal:params.changeVal,ikey:ikey}
         data:{changeVal:params.changeVal,ikey:ikey}
       });
       });
-      dispatch(billing);
+      dispatch(billing());
       dispatch({
       dispatch({
         type:ISREAD
         type:ISREAD
       })
       })

+ 2 - 2
src/containers/SpreadDrop.js

@@ -332,7 +332,7 @@ function handleLabel(dispatch,params){
       break;
       break;
     default:
     default:
   }
   }
-  dispatch(billing);
+  dispatch(billing());
   dispatch({
   dispatch({
     type:ISREAD
     type:ISREAD
   })
   })
@@ -349,7 +349,7 @@ function mapDispatchToProps(dispatch,store){
       //右侧推送
       //右侧推送
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
       setTimeout(function(){      //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
         if(didPushParamChange()){     //操作后内容有变化才推送
         if(didPushParamChange()){     //操作后内容有变化才推送
-          dispatch(billing);
+          dispatch(billing());
         }
         }
       },500);
       },500);
     },
     },

+ 25 - 4
src/store/actions/currentIll.js

@@ -59,10 +59,13 @@ function addPos(data,num){
 export const setData = (state,action) =>{
 export const setData = (state,action) =>{
   let res = Object.assign({},state);
   let res = Object.assign({},state);
   res.editClear = false;
   res.editClear = false;
-  res.symptomIds = JSON.parse(JSON.stringify(action.info.mainIds));
-  const useEmpty = action.info.useEmpty;
+  const mainIds = action.info.mainIds;
+  res.symptomIds = JSON.parse(JSON.stringify(mainIds));
   const num = action.info.num;//点击了几次添加病情变化
   const num = action.info.num;//点击了几次添加病情变化
-  let mainData = JSON.parse(JSON.stringify(action.info.mainData));//主诉模板数据
+  // const useEmpty = action.info.useEmpty;
+  let useEmpty,mainData;
+  // let mainData = JSON.parse(JSON.stringify(action.info.mainData));//主诉模板数据
+  let mainModleData = JSON.parse(JSON.stringify(action.info.mainData));//主诉模板数据
   let moduleData = JSON.parse(JSON.stringify(res.moduleData));//现病史模板
   let moduleData = JSON.parse(JSON.stringify(res.moduleData));//现病史模板
   let addModule = JSON.parse(JSON.stringify(res.addModule));//拷贝的模板
   let addModule = JSON.parse(JSON.stringify(res.addModule));//拷贝的模板
   let current = JSON.parse(JSON.stringify(moduleData));
   let current = JSON.parse(JSON.stringify(moduleData));
@@ -81,6 +84,24 @@ export const setData = (state,action) =>{
   /*let mainLabelModuleArr = objToArr.filter((item)=>{
   /*let mainLabelModuleArr = objToArr.filter((item)=>{
     return item.questionMapping.length>0;
     return item.questionMapping.length>0;
   })*/
   })*/
+
+  // 是否使用空模板:num=0时判断mainIds,num>=1,截取第一病程遍历是否有症状exist
+  if(num==0){
+    useEmpty = mainIds.length>0?false:true;
+    mainData = mainModleData;
+  }else{
+    let sliceIdx;
+    for(let j=0; j<mainModleData.length; j++){
+      if(mainModleData[j].id==config.tongYId && mainModleData[j].pos==1){
+        sliceIdx = j;
+      }
+    }
+    mainData = mainModleData.slice(0,sliceIdx);
+    let existData = mainData.filter((item)=>{
+      return item.exist;
+    })
+    useEmpty = existData&&existData.length>0?false:true;
+  }
   
   
   if (useEmpty) {
   if (useEmpty) {
     res.data = res.emptyData;
     res.data = res.emptyData;
@@ -211,7 +232,7 @@ function getLabel(lid,lname){
 // 多选展开确定事件--主、伴、无
 // 多选展开确定事件--主、伴、无
 export const confirm = (state,action) =>{
 export const confirm = (state,action) =>{
   let res = Object.assign({},state);
   let res = Object.assign({},state);
-  let length1 = res.data.length;console.log(123,action);
+  let length1 = res.data.length;
   let arr = JSON.parse(JSON.stringify(res.data));
   let arr = JSON.parse(JSON.stringify(res.data));
   const {nones,exists,withs,ikey,exclusion,excluName,ban,noneIds} = action.data;
   const {nones,exists,withs,ikey,exclusion,excluName,ban,noneIds} = action.data;
   let existsId = exists && exists.length>0?getIds(exists):[];
   let existsId = exists && exists.length>0?getIds(exists):[];

+ 81 - 10
src/store/actions/mainSuit.js

@@ -128,10 +128,7 @@ export const confirm = (state,action) =>{
   let arr = res.data;
   let arr = res.data;
   let saveText = JSON.parse(JSON.stringify(res.saveText));
   let saveText = JSON.parse(JSON.stringify(res.saveText));
   const {exists,withs,ikey,withsName,existsName,ban} = action.data;
   const {exists,withs,ikey,withsName,existsName,ban} = action.data;
-  // let existsId = getIds(exists);
-  // let withsId = getIds(withs);
   let banText = JSON.stringify(ban) == "{}" ? '':{id:ban.id,name:ban.name,value:ban.name,tagType:config.tagType};
   let banText = JSON.stringify(ban) == "{}" ? '':{id:ban.id,name:ban.name,value:ban.name,tagType:config.tagType};
-  // res.mainIds = res.mainIds?res.mainIds.concat(existsId,withsId):[];
   let length = exists.length;
   let length = exists.length;
   let labelIndx = parseInt(ikey);//当前点击标签的index
   let labelIndx = parseInt(ikey);//当前点击标签的index
   // 取第一个添加症状的主症状和伴随
   // 取第一个添加症状的主症状和伴随
@@ -142,8 +139,18 @@ export const confirm = (state,action) =>{
     res.mainSymptIds = res.mainSymptIds.concat(existsId,withsId);
     res.mainSymptIds = res.mainSymptIds.concat(existsId,withsId);
   }
   }
 
 
-  let text = saveText.slice(0,labelIndx);
-  let index = text.indexOf('伴');
+  // 第二病程-伴位置处理
+  let forwardId;
+  let text;
+  for(let n=labelIndx-1; n>0; n--){
+    if(arr[n].id==8){
+      forwardId = n;
+      continue;
+    }
+  }
+  if(forwardId){
+    text = saveText.slice(forwardId,labelIndx);
+    let index = text.indexOf('伴');
     if(index==-1){//没有伴,直接插入ikey前
     if(index==-1){//没有伴,直接插入ikey前
       if(exists.length > 0){
       if(exists.length > 0){
         for(let i=0; i<exists.length; i++){
         for(let i=0; i<exists.length; i++){
@@ -181,6 +188,48 @@ export const confirm = (state,action) =>{
         }
         }
       }
       }
     }
     }
+  }else{
+    let text = saveText.slice(0,labelIndx);
+    let index = text.indexOf('伴');
+    if(index==-1){//没有伴,直接插入ikey前
+      if(exists.length > 0){
+        for(let i=0; i<exists.length; i++){
+          let pos = labelIndx + i;
+          arr.splice(pos,0,getTextLabel(exists[i].id,exists[i].name,1));
+          res.saveText[pos] = exists[i].name;
+        }
+      }
+      if(withs.length > 0){
+        let newWiths = JSON.parse(JSON.stringify(withs));
+        if(banText){
+         newWiths.unshift(banText);
+       }
+       for(let j=0; j<newWiths.length; j++){
+        let withsPos = labelIndx +length + j;
+        arr.splice(withsPos,0,getTextLabel(newWiths[j].id,newWiths[j].name,2));
+        res.saveText[withsPos] = newWiths[j].name;
+      }
+    }
+    }else{//有伴
+      if(exists.length > 0){
+        for(let i=0; i<exists.length; i++){
+          let pos = index + i;
+          arr.splice(pos,0,getTextLabel(exists[i].id,exists[i].name,1));
+          res.saveText[pos] = exists[i].name;
+        }
+      }
+      
+      if(withs.length>0){//有伴插到ikey前既可     
+        for(let j=0; j<withs.length; j++){
+          // let withsPos = labelIndx + j;
+          let withsPos = labelIndx +length + j;
+          arr.splice(withsPos,0,getTextLabel(withs[j].id,withs[j].name,2));
+          res.saveText[withsPos] = withs[j].name;
+        }
+      }
+    }
+  }
+
     
     
     res.data = arr;
     res.data = arr;
     res.saveText = fullfillText(arr).saveText;
     res.saveText = fullfillText(arr).saveText;
@@ -273,18 +322,39 @@ export const insertSearch = (state,action)=>{
     res.data[focusIndex].value = value;
     res.data[focusIndex].value = value;
     res.saveText[focusIndex] = value;*/
     res.saveText[focusIndex] = value;*/
 
 
+    /*******************第一病程搜索结果也移植到现病史修改(2-18)********************/
+    // 位置判断-第一病程-主症状还是伴随 前一个标签存在 并且没有pos;
+    // 判断在伴的前面还是后面:前exist=1(主),后exist=2(伴)
+    let nText = {};
+    if(focusIndex==0){
+      nText = Object.assign({},text,{exist:1});
+    }else{
+      if(!data[focusIndex-1].pos){//第一病程
+        const preText = res.saveText.slice(0,focusIndex);
+        const ind = preText.indexOf("伴");
+        if(ind != -1){
+          nText = Object.assign({},text,{exist:2});
+        }else{
+          nText = Object.assign({},text,{exist:1});
+        }
+      }else{//第二及以上病程
+        nText = Object.assign({},text);
+      }
+    }
+    
+
     // 从新插入一个span标签
     // 从新插入一个span标签
     const searchStr = res.searchStr;
     const searchStr = res.searchStr;
     let innerText = span.current.innerText;
     let innerText = span.current.innerText;
     const value = innerText.replace(searchStr,"");
     const value = innerText.replace(searchStr,"");
     let index = innerText.indexOf(searchStr);
     let index = innerText.indexOf(searchStr);
     if(index < 1){//前
     if(index < 1){//前
-      res.data.splice(focusIndex,0,text);
+      res.data.splice(focusIndex,0,nText);
       res.saveText.splice(focusIndex,0,searchData);
       res.saveText.splice(focusIndex,0,searchData);
       res.data[focusIndex+1].value = value;
       res.data[focusIndex+1].value = value;
       res.saveText[focusIndex+1] = value;
       res.saveText[focusIndex+1] = value;
     }else{
     }else{
-      res.data.splice(focusIndex+1,0,text);
+      res.data.splice(focusIndex+1,0,nText);
       res.saveText.splice(focusIndex+1,0,searchData);
       res.saveText.splice(focusIndex+1,0,searchData);
       res.data[focusIndex].value = value;
       res.data[focusIndex].value = value;
     }
     }
@@ -382,11 +452,11 @@ export function setRadioValue(state,action){
 //双击标签输入改变值
 //双击标签输入改变值
 export const changeLabelVal = (state,action)=>{
 export const changeLabelVal = (state,action)=>{
   const res = Object.assign({},state);
   const res = Object.assign({},state);
-  const index = action.data.ikey;
+  const index = parseInt(action.data.ikey);
   const newVal = action.data.changeVal;
   const newVal = action.data.changeVal;
   let data = res.data;
   let data = res.data;
   let item = data[index];
   let item = data[index];
-  if(newVal.trim()){
+  if(newVal&&newVal.trim()){
     if(item){
     if(item){
       item.value = newVal;
       item.value = newVal;
       res.saveText[index] = newVal;
       res.saveText[index] = newVal;
@@ -394,9 +464,10 @@ export const changeLabelVal = (state,action)=>{
   }else{//删除完标签内容则删除该标签
   }else{//删除完标签内容则删除该标签
     
     
     data.splice(index,1);
     data.splice(index,1);
+    // data[index].value = "";
     // res.data.splice(index,1);
     // res.data.splice(index,1);
-    // res.saveText = fullfillText(res.data).saveText;
     res.saveText.splice(index,1);
     res.saveText.splice(index,1);
+    // res.saveText[index] = "";
   } 
   } 
   res.update = Math.random();
   res.update = Math.random();
   return res;
   return res;

+ 5 - 2
src/store/async-actions/pushMessage.js

@@ -9,7 +9,8 @@ const api={
 }
 }
 
 
 //获取右侧推送信息
 //获取右侧推送信息
-export const billing = (dispatch, getState) => {
+export const billing = (mdata) => {
+ return (dispatch, getState) =>{
   const state = getState();
   const state = getState();
   let url = api.push;
   let url = api.push;
   if(+state.typeConfig.typeConfig===1){
   if(+state.typeConfig.typeConfig===1){
@@ -25,7 +26,7 @@ export const billing = (dispatch, getState) => {
     pacs: emrData.pacs,
     pacs: emrData.pacs,
     sex: emrData.sex,
     sex: emrData.sex,
     vital:emrData.vital,
     vital:emrData.vital,
-    symptom: emrData.current + emrData.main
+    symptom: mdata?(emrData.current + mdata):(emrData.current + emrData.main)
   };
   };
   storageLocal.set('emrParam',params);      //推送数据存储,用作推送前对比是否有变,有变才推送
   storageLocal.set('emrParam',params);      //推送数据存储,用作推送前对比是否有变,有变才推送
     json(url, params).then((data) => {
     json(url, params).then((data) => {
@@ -63,8 +64,10 @@ export const billing = (dispatch, getState) => {
   }).catch((e) =>{
   }).catch((e) =>{
       console.log(e)
       console.log(e)
   }) 
   }) 
+ }
 };
 };
 
 
+
 export const getTips = (diagItem) =>{
 export const getTips = (diagItem) =>{
     return (dispatch, getState) =>{
     return (dispatch, getState) =>{
         dispatch({
         dispatch({