Просмотр исходного кода

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

# Conflicts:
#	src/components/MainSuit/index.jsx
#	src/components/PreviewBody/index.jsx
#	src/components/PrintPreview/index.jsx
#	src/components/TreatDesc/DrugInfo/index.jsx
#	src/store/actions/diagnosticList.js
#	src/store/actions/otherHistory.js
#	src/store/reducers/assistCheck.js
#	src/store/reducers/otherHistory.js
zhouna 6 лет назад
Родитель
Сommit
545d910e93

+ 15 - 4
src/common/components/EditableSpan/index.jsx

@@ -28,7 +28,7 @@ class EditableSpan extends Component{
       labelVal:'',  //存放标签原有的值--主诉字数限制用
       preVal:'',
       index:null,
-      searchPre:''
+      searchPre:'',
     };
     this.$span = React.createRef();
     this.handleFocus = this.handleFocus.bind(this);
@@ -156,7 +156,7 @@ class EditableSpan extends Component{
 
   }
   handleKeyup(e){
-    const {boxMark,handleKeydown,i,value,removeId,handleClear} = this.props;
+    const {boxMark,handleKeydown,i,value,removeId,handleClear,delSingleLable} = this.props;
     const {preVal,index} = this.state;
     const ev = e||window.event;
     const target = ev.target||ev.srcElement;
@@ -164,16 +164,27 @@ class EditableSpan extends Component{
     if(ev.keyCode==8){
       // 主诉现病史去重:删除最后一个字的时候移除该数据(将name、id和value替换成空)并移除id
       // 前面是标签,内容为空时再删一次才移除标签;前面是文本,则直接移除;
+      // console.log(77,innerVal,preVal);
       let preObj = $(this.$span.current).prev();
-      if(index!==0&&preVal.trim().length==1){
+      if(index!==0&&preVal.trim().length==1&& !innerVal){
           removeId && removeId({boxMark,i:index,text:""});
           handleClear && handleClear({boxMark});//删除最后一个字时清空搜索结果,避免现病史搜索框不立即消失的情况
           if(preObj[0].nodeName !=="DIV"){
             this.moveEnd(preObj[0]);
           }
         }
-      
+
       if(innerVal !==preVal){return false}
+      // 中英文数字和下划线--单独删除标签
+      /*const reg = new RegExp("([\u4E00-\uFA29]|[\uE7C7-\uE7F3]|[a-zA-Z0-9_])");
+      if(index!==0 && reg.test(innerVal)){
+        let obj = preObj[0].nodeName=="DIV"?preObj.prev():preObj;
+        delSingleLable && delSingleLable({boxMark,i:index});
+        this.moveEnd(obj[0]);  
+        this.setState({
+          index: null
+        })
+      }*/
       let data = innerVal.trim();
       //判断是否为空、中英文:, 。、;,且不是第一位
       let pattern = new RegExp(/^\,?$|^\,?$|^\.?$|^\。?$|^\、?$|^\;?$|^\;?$|^\:?$|^\:?$\s/);

+ 1 - 1
src/components/InfoTitle/index.jsx

@@ -38,7 +38,7 @@ class InfoTitle extends Component {
         const {disVisible,copyVisible,winWidth} = this.props;
         const {le} = this.state;
         return <div className={style['title-wrapper']} style={{zIndex:disVisible||copyVisible?40:204,left:le}}>
-            <PatInfoContainer sizeFlag={winWidth <= 1035?true:false}/>
+            <PatInfoContainer sizeFlag={winWidth <= 1065?true:false}/>
             <div className={style["operations"]} onClick={this.showHistoryBox}>
                 <span><img src={historyCase} />&nbsp;历史病历</span>
             </div>

+ 16 - 5
src/components/MainSuit/index.jsx

@@ -6,7 +6,7 @@ import SearchDrop from '@components/SearchDrop';
 import CommonSymptom from '@components/CommonSymptom';
 import chooseType from '@containers/eleType.js';
 import config from "@config/index";
-import {isIE,getPageCoordinate,windowEventHandler} from "@utils/tools.js"
+import {isIE,getPageCoordinate,windowEventHandler,filterDataArr} from "@utils/tools.js"
 import $ from 'jquery';
 
 class MainSuit extends Component{
@@ -54,6 +54,7 @@ class MainSuit extends Component{
       }else {
         return chooseType({item,boxMark,i,hideTag:false,showArr,selecteds,saveText,mainIds});
       }
+
     })
     return list;
   }
@@ -111,7 +112,15 @@ class MainSuit extends Component{
 
 
   handleSearchSelect(item){
-    const {clearSearch,insertSearch,datas,span} = this.props;
+    const {clearSearch,insertSearch,datas,span,saveText} = this.props;
+    let mainText = filterDataArr(saveText);//主诉字数
+    const itemL = item.name.length;
+    let lengths = mainText.length + itemL;
+    if(lengths>config.limited){
+      Notify.info(config.limitText);
+      clearSearch && clearSearch();
+      return
+    }
     clearTimeout(this.state.timer);
     if(datas.length==0){//没有使用模板时点击搜索结构要展开模板
       insertSearch &&insertSearch({item,span});
@@ -143,9 +152,10 @@ class MainSuit extends Component{
       const ele = document.activeElement;
       leftL = ele.offsetLeft+num
     }
+    const leftL = ele.offsetLeft;      //用焦点元素的左边距替换鼠标点击的左边距,高度还是鼠标点击的位置
     this.setState({
       // boxLeft:getPageCoordinate(e).boxLeft,
-      boxLeft:leftL,
+      boxLeft:leftL+90,
       boxTop:getPageCoordinate(e).boxTop,
       tmpScroll: $("#addScrollEvent")[0].scrollTop,
       tmpTop:getPageCoordinate(e).boxTop
@@ -210,7 +220,7 @@ class MainSuit extends Component{
   }
 
   handleBlur(e){//隐藏常见症状下拉、存自由输入的值
-    const {freeText,saveText,datas} = this.props;
+    const {freeText,saveText,datas,clearSearch} = this.props;
     const that = this;
     let data = this.state.inpText;
     if(!isIE()){
@@ -224,9 +234,10 @@ class MainSuit extends Component{
         freeText && freeText(data);
       }
     }
-    // 延时关闭常见症状下拉,不延时会影响选中
+    // 延时关闭常见症状下拉、清空搜索结果,不延时会影响选中
       clearTimeout(this.state.clearTimer);
       const clearTimer = setTimeout(function(){
+        clearSearch && clearSearch();
         that.setState({
           symptom:false
         })

+ 2 - 2
src/components/PatInfo/index.jsx

@@ -16,14 +16,14 @@ class PatInfo extends Component {
      return <table className={sizeFlag?`${style["table"]} ${style["newSize"]}`:style["table"]}>
       <tr>
         <td key='1' className={`${style.tdBorderB} ${style.tdBorderR}`}>卡号:{message.patientIdNo && message.patientIdNo}</td>
-        <td key='2' className={`${style.tdBorderB} ${style.tdBorderR}`}>姓名:{message.patientName && message.patientName}</td>
+        <td key='2' className={`${style.tdBorderB} ${style.tdBorderR}`} title={sizeFlag&&message.patientName&&message.patientName.length>3?message.patientName:''}>姓名:{sizeFlag&&message.patientName && message.patientName.length>3?message.patientName.slice(0,3)+'...':message.patientName}</td>
         <td key='3' className={`${style.tdBorderB} ${style.tdBorderR}`}>年龄:{message.patientAge && message.patientAge}</td>
         <td key='4' className={`${style.tdBorderB} ${style.tdBorderR}`}>性别:{message.patientSex && message.patientSex}</td>
       </tr>
       <tr>
         <td key='5' className={`${style.tdBorderR}`} style={{whiteSpace: 'nowrap'}}>就诊时间:{message.systemTime&&message.systemTime.substring(0, 10)}</td>
         <td key='6' className={`${style.tdBorderR}`}>科室:{message.hospitalDeptName && message.hospitalDeptName}</td>
-        <td key='7' className={`${style.tdBorderR}`}>医生:{message.doctorName && message.doctorName}</td>
+        <td key='7' className={`${style.tdBorderR}`} title={sizeFlag&&message.doctorName&&message.doctorName.length>3?message.doctorName:''}>医生:{sizeFlag&&message.doctorName && message.doctorName.length>3?message.doctorName.slice(0,3)+'...':message.doctorName}</td>
         <td key='8' className={`${style.tdBorderR}`}>门诊号:{message.recordId && message.recordId}</td>
       </tr>
     </table>;

+ 5 - 1
src/components/PatInfo/index.less

@@ -9,6 +9,7 @@
     line-height: 30px;
     padding-left: 10px;
     width: 200px;
+    white-space: nowrap;
   }
   .tdBorderB {
       border-bottom: 1px solid @person-table-color;
@@ -19,6 +20,9 @@
 }
 .newSize{
   td{
-  font-size: 13px;
+    overflow: hidden;
+    font-size: 13px;
+    white-space: nowrap;
+    text-overflow: ellipsis;
   }
 }

+ 14 - 1
src/components/PrintPreview/index.jsx

@@ -1,8 +1,9 @@
 import React, { Component } from "react";
-import { getAllDataList, getAllDataStringList } from '@utils/tools';
+import { getAllDataList, getAllDataStringList,filterDataArr } from '@utils/tools';
 import style from "./index.less";
 import PreviewBody from "../PreviewBody";
 import store from '@store';
+import Notify from '@commonComp/Notify';
 import close from '../../common/images/icon_close.png';
 
 
@@ -10,6 +11,18 @@ class PrintPreview extends Component {
     constructor(props) {
         super(props)
     }
+    surePrint(jsonStr){
+        if(filterDataArr(JSON.parse(jsonStr.chief)) == ''){
+          Notify.info('主诉不能为空');
+            return false;
+        }else if(!jsonStr.diag || jsonStr.diag.trim().length < 1){
+            Notify.info('诊断不能为空');
+            return false;
+        }else{
+            this.onPrint();
+            this.props.save(true)
+        }
+    }
     render() {
         const { onClose, visible, preInfo,save } = this.props;
         let baseList = store.getState();

+ 4 - 0
src/containers/CurrentIll.js

@@ -115,6 +115,10 @@ function mapDispatchToProps(dispatch) {
                   })
                 }
             });
+          //右侧推送
+          setTimeout(function(){ 
+            dispatch(billing());
+          },200);
         },
         changeEditIll(bool){
             dispatch({

+ 25 - 4
src/containers/EditableSpan.js

@@ -1,9 +1,9 @@
 import {connect} from 'react-redux';
 import {EditableSpan} from '@commonComp';
-import {SETCHECKTEXT,SETSEARCHDATA,CHECK_FOCUS_INDEX,CHECKBODY_CLEAR,DEL_CHECKBODY} from '@types/checkBody';
-import {SET_SEARCH,MAIN_FOCUS_INDEX,CLEAR_SEARCH,SETMAINTEXT,DEL_MAIN,REMOVE_MAIN_ID} from '@types/mainSuit';
-import {SETOTHERTEXT,SETOTHERSEARCHDATA,OTHER_FOCUS_INDEX,OTHERHIS_CLEAR,DEL_OTHERHIS,REMOVE_OTHER_ID} from '@types/otherHistory';
-import {SET_CURRENT_SEARCH,CURRENT_CLEAR,SETCURRENTTEXT,CURRENT_FOCUS_INDEX,DEL_CURRENT,REMOVE_CURR_ID} from '@types/currentIll';
+import {SETCHECKTEXT,SETSEARCHDATA,CHECK_FOCUS_INDEX,CHECKBODY_CLEAR,DEL_CHECKBODY,DEL_CHECKBODY_LABLE} from '@types/checkBody';
+import {SET_SEARCH,MAIN_FOCUS_INDEX,CLEAR_SEARCH,SETMAINTEXT,DEL_MAIN,REMOVE_MAIN_ID,DEL_MAIN_LABLE} from '@types/mainSuit';
+import {SETOTHERTEXT,SETOTHERSEARCHDATA,OTHER_FOCUS_INDEX,OTHERHIS_CLEAR,DEL_OTHERHIS,REMOVE_OTHER_ID,DEL_OTHERHIS_LABLE} from '@types/otherHistory';
+import {SET_CURRENT_SEARCH,CURRENT_CLEAR,SETCURRENTTEXT,CURRENT_FOCUS_INDEX,DEL_CURRENT,REMOVE_CURR_ID,DEL_CURRENT_LABLE} from '@types/currentIll';
 import {getSearch} from '@store/async-actions/fetchModules.js';
 import {billing} from '@store/async-actions/pushMessage';
 import {didPushParamChange} from '@utils/tools.js';
@@ -253,6 +253,27 @@ function mapDispatchToProps(dispatch,state) {
     dispatch({
       type:ISREAD
     })
+    },
+    delSingleLable(obj){//光标在第一位时 只删除标签
+      switch (+obj.boxMark){
+        case 1:
+          dispatch({type:DEL_MAIN_LABLE,index:obj.i,text:obj.text});
+          break;
+        case 2:
+          dispatch({type:DEL_CURRENT_LABLE,index:obj.i});
+          break;
+        case 3:
+          dispatch({type:DEL_OTHERHIS_LABLE,index:obj.i});
+          break;
+        case 4:
+          dispatch({type:DEL_CHECKBODY_LABLE,index:obj.i});
+          break;
+        default:
+          break;
+      }
+      dispatch({
+        type:ISREAD
+      })
     }
   }
 }

+ 4 - 0
src/containers/MainSuit.js

@@ -118,6 +118,10 @@ function mapDispatchToProps(dispatch) {
         dispatch({
           type:ISREAD
         })
+        //右侧推送
+        setTimeout(function(){ 
+          dispatch(billing());
+        },200);
       },
       clearSearch:()=>{
         dispatch({

+ 16 - 0
src/store/actions/checkBody.js

@@ -348,4 +348,20 @@ export function multipleComfirn(state,action){
   res.selecteds[ikey] = action.data;
   res.update = Math.random();
   return res;
+}
+
+export function delSingleLable(state,action){
+  let res = Object.assign({},state);
+  const {index} = action;
+  let data = res.data;
+  // 前一个不是文本标签 并且不是子模板,则删除
+  if(data[index-1].flag&&data[index-1].flag==3){
+
+  }
+  else if(data[index-1].tagType != 8){
+    data.splice(index-1,1);
+    res.saveText.splice(index-1,1);
+  }
+  res.update = Math.random();
+  return res;
 }

+ 42 - 8
src/store/actions/currentIll.js

@@ -135,16 +135,24 @@ export const setData = (state,action) =>{
       // 主症状添加tongYong标签选中文字
       let tongYText = tongYong?{name:tongYong,value:tongYong,tagType:config.tagType}:'';
       let mainCopy = JSON.parse(JSON.stringify(main));
-      if(tongYText){
-        /*for(let j=0; j<main.length; j++){
-          mainCopy.splice(j*2,0,tongYText);
-        }*/
+      /*if(tongYText){
         for(let j=0; j<mainCopy.length; j++){
-          mainCopy[j].name = tongYong + mainCopy[j].name;
-          mainCopy[j].value = tongYong + mainCopy[j].value;
+          mainCopy[j].name = tongYong + (mainCopy[j].name).replace('、',"");
+          mainCopy[j].value = tongYong + (mainCopy[j].value).replace('、',"");
         }
+      }*/
+      for(let j=0; j<mainCopy.length; j++){
+        if(tongYText){
+          mainCopy[j].name = tongYong + (mainCopy[j].name).replace('、',"");
+          mainCopy[j].value = tongYong + (mainCopy[j].value).replace('、',"");
+        }else{
+          mainCopy[j].name = (mainCopy[j].name).replace('、',"");
+          mainCopy[j].value = (mainCopy[j].value).replace('、',"");
+        }
+        
       }
 
+
        // 将ids接口获取到的模板匹配到对应主症状后面
       // 主症状
       let newMainCopy = JSON.parse(JSON.stringify(mainCopy));
@@ -173,11 +181,20 @@ export const setData = (state,action) =>{
         })
       }
       // 伴随
-      let newWiths = JSON.parse(JSON.stringify(withs));
+      // 去掉顿号
+     /* for(let b=0; b<withs.length; b++){
+        withs[b].name = withs[b].name.replace('、',"");
+      }*/
+      // let newWiths = JSON.parse(JSON.stringify(withs));console.log(123,withs,newWiths);
+      let newWiths = [];
       if(withs.length>0){
+        for(let b=0; b<withs.length; b++){
+          withs[b].name = withs[b].name.replace('、',"");
+          withs[b].value = withs[b].value.replace('、',"");
+        }
+        newWiths = JSON.parse(JSON.stringify(withs));
         let withInd = 0;
         let withInsertInd = 0;
-        // let withPreLength = 0;
         let withLengArr=[];
         for(let d=0; d <withs.length;d++){
           mainLabelModuleArr.map((v,i)=>{
@@ -697,4 +714,21 @@ export function multipleComfirn(state,action){
   res.selecteds[ikey] = action.data;
   res.update = Math.random();
   return res;
+}
+
+
+export function delSingleLable(state,action){
+  let res = Object.assign({},state);
+  const {index} = action;
+  let data = res.data;
+  // 前一个不是文本标签 并且不是子模板,则删除
+  if(data[index-1].flag&&data[index-1].flag==3){
+
+  }
+  else if(data[index-1].tagType != 8){
+    data.splice(index-1,1);
+    res.saveText.splice(index-1,1);
+  }
+  res.update = Math.random();
+  return res;
 }

+ 58 - 22
src/store/actions/mainSuit.js

@@ -121,6 +121,13 @@ function getTextLabel(id,name,flag){
   return {id:id,name:name,value:name,tagType:config.tagType,exist:flag};
 }
 
+function addPoint(data,num){//给伴随添加顿号
+  for(let i=num; i<data.length; i++){
+    data[i].name = '、'+ data[i].name;
+  }
+  return data;
+}
+
 //多选标签选中确定处理
 export const confirm = (state,action) =>{
   const res = Object.assign({},state);
@@ -151,14 +158,16 @@ export const confirm = (state,action) =>{
     let index = text.indexOf('伴');
     if(index==-1){//没有伴,直接插入ikey前
       if(exists.length > 0){
-        for(let i=0; i<exists.length; i++){
+        let withsAddP = addPoint(exists,1);
+        for(let i=0; i<withsAddP.length; i++){
           let pos = labelIndx + i;
-          arr.splice(pos,0,getTextLabel(exists[i].id,exists[i].name,1));
-          res.saveText[pos] = exists[i].name;
+          arr.splice(pos,0,getTextLabel(withsAddP[i].id,withsAddP[i].name,1));
+          res.saveText[pos] = withsAddP[i].name;
         }
       }
       if(withs.length > 0){
-        let newWiths = JSON.parse(JSON.stringify(withs));
+        let withsAddP = addPoint(withs,1);
+        let newWiths = JSON.parse(JSON.stringify(withsAddP));
         if(banText){
          newWiths.unshift(banText);
        }
@@ -172,17 +181,18 @@ export const confirm = (state,action) =>{
       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));
+          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++){
+      if(withs.length>0){//有伴插到ikey前既可
+        let withsAddP = addPoint(withs,0);     
+        for(let j=0; j<withsAddP.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;
+          arr.splice(withsPos,0,getTextLabel(withsAddP[j].id,withsAddP[j].name,2));
+          res.saveText[withsPos] = withsAddP[j].name;
         }
       }
     }
@@ -193,12 +203,16 @@ export const confirm = (state,action) =>{
       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));
+          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));
+        /*for(let k=1; k<withs.length; k++){
+          withs[k].name = '、'+ withs[k].name;
+        }*/
+        let withsAddP = addPoint(withs,1);
+        let newWiths = JSON.parse(JSON.stringify(withsAddP));
         if(banText){
          newWiths.unshift(banText);
        }
@@ -212,17 +226,18 @@ export const confirm = (state,action) =>{
       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));
+          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++){
+      if(withs.length>0){//有伴插到ikey前既可
+        let withsAddP = addPoint(withs,0);     
+        for(let j=0; j<withsAddP.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;
+          arr.splice(withsPos,0,getTextLabel(withsAddP[j].id,withsAddP[j].name,2));
+          res.saveText[withsPos] = withsAddP[j].name;
         }
       }
     }
@@ -231,7 +246,7 @@ export const confirm = (state,action) =>{
     
     res.data = arr;
     res.saveText = fullfillText(arr).saveText;
-    res.update=Math.random();
+    res.update=Math.random();console.log(789,res);
     return res;
   };
 
@@ -346,10 +361,15 @@ export const insertSearch = (state,action)=>{
     const value = innerText.replace(searchStr,"");
     let index = innerText.indexOf(searchStr);
     if(index < 1){//前
-      res.data.splice(focusIndex,0,nText);
-      res.saveText.splice(focusIndex,0,searchData);
-      res.data[focusIndex+1].value = value;
-      res.saveText[focusIndex+1] = value;
+      if(data[focusIndex].value==searchStr){//为空标签则替换
+        res.data.splice(focusIndex,1,nText);
+        res.saveText.splice(focusIndex,1,searchData);
+      }else{
+        res.data.splice(focusIndex,0,nText);
+        res.saveText.splice(focusIndex,0,searchData);
+        res.data[focusIndex+1].value = value;
+        res.saveText[focusIndex+1] = value;
+      }  
     }else{
       res.data.splice(focusIndex+1,0,nText);
       res.saveText.splice(focusIndex+1,0,searchData);
@@ -641,6 +661,22 @@ export function multipleComfirn(state,action){
   data[ikey].value = seleData;
   res.saveText[ikey] = seleData;
   res.selecteds[ikey] = action.data;
-  res.update = Math.random();console.log(123,action,res);
+  res.update = Math.random();
+  return res;
+}
+
+export function delSingleLable(state,action){
+  let res = Object.assign({},state);
+  const {index} = action;
+  let data = res.data;
+  // 前一个不是文本标签 并且不是子模板,则删除
+  if(data[index-1].flag&&data[index-1].flag==3){
+
+  }
+  else if(data[index-1].tagType != 8){
+    data.splice(index-1,1);
+    res.saveText.splice(index-1,1);
+  }
+  res.update = Math.random();
   return res;
 }

+ 18 - 2
src/store/actions/otherHistory.js

@@ -307,7 +307,7 @@ export function backspaceText(state,action){
   const {delIndex} = action;
   const data = res.data;
   if(data[delIndex-1].flag&&data[delIndex-1].flag==3){
-    // if(data[delIndex-1].tagType==8 ||data[delIndex-1].flag&&data[delIndex-1].flag==3){
+  // if(data[delIndex-1].tagType==8 ||data[delIndex-1].flag&&data[delIndex-1].flag==3){
     // 前一个是文本标签或者子模板 不做处理
   }else if(data[delIndex-1].tagType==8){
     data.splice(delIndex,1);
@@ -330,7 +330,7 @@ export function removeId(state,action){
   if(!data[index].value && data[index-1].tagType==8){
     data.splice(index,1);
     res.saveText.splice(index,1);
-  }
+  } 
   res.update = Math.random();
   return res;
 }
@@ -345,4 +345,20 @@ export function multipleComfirn(state,action){
   res.selecteds[ikey] = action.data;
   res.update = Math.random();
   return res;
+}
+
+export function delSingleLable(state,action){
+  let res = Object.assign({},state);
+  const {index} = action;
+  let data = res.data;
+  // 前一个不是文本标签 并且不是子模板,则删除
+  if(data[index-1].flag&&data[index-1].flag==3){
+
+  }
+  else if(data[index-1].tagType != 8){
+    data.splice(index-1,1);
+    res.saveText.splice(index-1,1);
+  }
+  res.update = Math.random();
+  return res;
 }

+ 4 - 2
src/store/reducers/checkBody.js

@@ -1,9 +1,9 @@
 import {SET,SETNUMBER4,SETSELECTED4,SETCHECKBOX,ADDLABELITEM,SETCHECKTEXT,SETSEARCHDATA,
   SELECTSEARCHDATA,CHANGECHECKTEXTLABEL,CLEARCHECKBODY,CHECK_FOCUS_INDEX,CHECKBODY_CLEAR,
-  SETCHECKINPUT,DEL_CHECKBODY,CHANGECHECKTEXTLABEL_NUMBER,CHECKCONFIRMSELECTED,CHECKBODY_MUL} from '../types/checkBody.js';
+  SETCHECKINPUT,DEL_CHECKBODY,CHANGECHECKTEXTLABEL_NUMBER,CHECKCONFIRMSELECTED,CHECKBODY_MUL,DEL_CHECKBODY_LABLE} from '../types/checkBody.js';
 import {set,setNumberValue,setRadioValue,setCheckBoxValue,addLabelItem,setCheckText,
   setSearchData,insertLabelData,changeLabelVal,clearCheckBody,setInputLabel,backspaceText,
-  changeNumLabelVal,confirm,multipleComfirn} from '../actions/checkBody.js';
+  changeNumLabelVal,confirm,multipleComfirn,delSingleLable} from '../actions/checkBody.js';
 import config from '@config/index.js';
 
 const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
@@ -55,6 +55,8 @@ export default function(state=initState,action){
       return backspaceText(state,action);
     case CHECKBODY_MUL:
       return multipleComfirn(state,action);
+    case DEL_CHECKBODY_LABLE:
+      return delSingleLable(state,action);
     default:
       return res;
   }

+ 4 - 2
src/store/reducers/currentIll.js

@@ -1,9 +1,9 @@
 // 现病史
 import {SET_CURRENT,CURRENT_CONFIRM,INSERT_PROCESS,SET_CURRENT_DATA,SET_LABEL_MODULE,SETMAINCHECKBOX,
   CURRENT_RADIO,CURRENT_NUMBER,CURRENT_TEXT_LABEL,CLEAR_CURRENT_ILL,SETTEXTMODEVALUE,CURRENT_GET_BIGDATAPUSH,CURRENT_CLEAR,
-  SET_CURRENT_SEARCH,SETCURRENTTEXT,CURRENT_FOCUS_INDEX,SELECT_SEARCHDATA,CLEAR_CURRENT_EDIT,CURRENTADDLABELITEM,SETCURRENTINPUT,DEL_CURRENT,CURRENT_TEXT_LABEL_NUMBER,REMOVE_CURR_ID,CURRENT_MUL} from '../types/currentIll';
+  SET_CURRENT_SEARCH,SETCURRENTTEXT,CURRENT_FOCUS_INDEX,SELECT_SEARCHDATA,CLEAR_CURRENT_EDIT,CURRENTADDLABELITEM,SETCURRENTINPUT,DEL_CURRENT,CURRENT_TEXT_LABEL_NUMBER,REMOVE_CURR_ID,CURRENT_MUL,DEL_CURRENT_LABLE} from '../types/currentIll';
 import {confirm,insertProcess,setData,setCheckBox,setRadioValue,setNumberValue,changeLabelVal,clearCurrentIll,
-  setTextModeValue,setModule,bigDataSymptom,setCheckText,insertLabelData,clearCurrentEdit,addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn} from '../actions/currentIll';
+  setTextModeValue,setModule,bigDataSymptom,setCheckText,insertLabelData,clearCurrentEdit,addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn,delSingleLable} from '../actions/currentIll';
 
 const initState = {
   moduleData:[],
@@ -73,6 +73,8 @@ export default function(state=initState,action){
       return removeId(state,action);
     case CURRENT_MUL://单列多选
       return multipleComfirn(state,action);
+    case DEL_CURRENT_LABLE:
+      return delSingleLable(state,action);
     default:
       return state;
   }

+ 4 - 2
src/store/reducers/mainSuit.js

@@ -1,9 +1,9 @@
 import {COMM_SYMPTOMS,CLEAR_COMSYMPTOMS,SHOW_TAIL,INSERT_MAIN,
   SET_SEARCH,CLEAR_SEARCH,GET_BIGDATAPUSH,SET_MAINSUIT,MIX_CONFIRM,NUMBER_SELECT,
   RADIO_SELECT,COMM_CONFIRM,CHANGE_LABELVAL,SAVE_FREE,CLEAR_MAIN_SUIT,SET_DATA,
-  INSERT_SEARCH,MAIN_FOCUS_INDEX,SETTEXTMODEVALUE,SETMAINTEXT,MAINADDLABELITEM,SETMAININPUT,DEL_MAIN,CHANGE_LABELVAL_NUMBER,REMOVE_MAIN_ID,MAINSUIT_MUL} from '../types/mainSuit'
+  INSERT_SEARCH,MAIN_FOCUS_INDEX,SETTEXTMODEVALUE,SETMAINTEXT,MAINADDLABELITEM,SETMAININPUT,DEL_MAIN,CHANGE_LABELVAL_NUMBER,REMOVE_MAIN_ID,MAINSUIT_MUL,DEL_MAIN_LABLE} from '../types/mainSuit'
 import {getCommSymptoms,handleTailClick,insertMain,setSearch,getBigSymptom,setMainMoudle,confirm,
-  setNumberValue,setRadioValue,commConfirm,changeLabelVal,saveFreeVal,clearMainSuit,insertSearch,setTextModeValue,setCheckText,changeEditClear,addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn} from '../actions/mainSuit'
+  setNumberValue,setRadioValue,commConfirm,changeLabelVal,saveFreeVal,clearMainSuit,insertSearch,setTextModeValue,setCheckText,changeEditClear,addLabelItem,setInputLabel,backspaceText,changeNumLabelVal,removeId,multipleComfirn,delSingleLable} from '../actions/mainSuit'
 
 
 const initState = {
@@ -86,6 +86,8 @@ export default function(state=initState,action){
       return removeId(state,action);
     case MAINSUIT_MUL://单列多选
       return multipleComfirn(state,action);
+    case DEL_MAIN_LABLE://单独删除标签
+      return delSingleLable(state,action);
     default:
       return state;
   }

+ 4 - 2
src/store/reducers/otherHistory.js

@@ -1,6 +1,6 @@
 import {SETDATA,CONFIRMSELECTED,SETRADIO,SETNUMBER,SETOTHERCHECKBOX,SETOTHERTEXT,SETOTHERSEARCHDATA,
-  SELECTOTHERSEARCHDATA,CLEAROTHERHISTORY,CHANGEOTHERTEXTLABEL,SETOTHERINPUT,SETTEXTMODEVALUE,OTHER_FOCUS_INDEX,OTHERHIS_CLEAR,OTHERADDLABELITEM,OTHEREDICLEAR,DEL_OTHERHIS,CHANGEOTHERTEXTLABEL_NUMBER,OTHERHIS_MUL,REMOVE_OTHER_ID} from '../types/otherHistory';
-import {confirm,setRadioValue,setNumberValue,setCheckBoxValue,setCheckText,setSearchData,insertLabelData,clearOtherHistory,changeTextLabel,setOtherInput,setTextModeValue,addLabelItem,otherEditClear,backspaceText,changeNumLabelVal,multipleComfirn,removeId} from '../actions/otherHistory';
+  SELECTOTHERSEARCHDATA,CLEAROTHERHISTORY,CHANGEOTHERTEXTLABEL,SETOTHERINPUT,SETTEXTMODEVALUE,OTHER_FOCUS_INDEX,OTHERHIS_CLEAR,OTHERADDLABELITEM,OTHEREDICLEAR,DEL_OTHERHIS,CHANGEOTHERTEXTLABEL_NUMBER,OTHERHIS_MUL,REMOVE_OTHER_ID,DEL_OTHERHIS_LABLE} from '../types/otherHistory';
+import {confirm,setRadioValue,setNumberValue,setCheckBoxValue,setCheckText,setSearchData,insertLabelData,clearOtherHistory,changeTextLabel,setOtherInput,setTextModeValue,addLabelItem,otherEditClear,backspaceText,changeNumLabelVal,multipleComfirn,removeId,delSingleLable} from '../actions/otherHistory';
 import config from '@config/index.js';
 
 const block = Object.assign(JSON.parse(config.textLabel),{full:true});//空白时保留一个自由文本标签
@@ -60,6 +60,8 @@ export default function(state=initState,action){//console.log(state)
         return multipleComfirn(state,action);
     case REMOVE_OTHER_ID:
         return removeId(state,action);
+    case DEL_OTHERHIS_LABLE:
+        return delSingleLable(state,action);
     default:
       return res;
   }

+ 2 - 1
src/store/types/checkBody.js

@@ -15,4 +15,5 @@ export const SETCHECKINPUT = 'set_check_body_input_label';
 export const DEL_CHECKBODY = 'DEL_CHECKBODY';//backspace
 export const CHANGECHECKTEXTLABEL_NUMBER = 'CHANGECHECKTEXTLABEL_NUMBER';//数字键盘
 export const CHECKCONFIRMSELECTED = 'spread_check_body_labels';
-export const CHECKBODY_MUL = 'CHECKBODY_MUL';//单列多选
+export const CHECKBODY_MUL = 'CHECKBODY_MUL';//单列多选
+export const DEL_CHECKBODY_LABLE = 'DEL_CHECKBODY_LABLE';

+ 1 - 0
src/store/types/currentIll.js

@@ -24,4 +24,5 @@ export const DEL_CURRENT = 'DEL_CURRENT';     //backspace删除
 export const CURRENT_TEXT_LABEL_NUMBER = 'CURRENT_TEXT_LABEL_NUMBER';     //数字键盘输入
 export const REMOVE_CURR_ID = 'REMOVE_CURR_ID';     //删除后移除id
 export const CURRENT_MUL = 'CURRENT_MUL';     //单列多选
+export const DEL_CURRENT_LABLE = 'DEL_CURRENT_LABLE';     //
 

+ 1 - 0
src/store/types/mainSuit.js

@@ -25,3 +25,4 @@ export const DEL_MAIN = 'DEL_MAIN';     //删除标签
 export const CHANGE_LABELVAL_NUMBER = 'CHANGE_LABELVAL_NUMBER';     //数字键盘输入存值
 export const REMOVE_MAIN_ID = 'REMOVE_MAIN_ID';     //移除id
 export const MAINSUIT_MUL = 'MAINSUIT_MUL';     //单列多选
+export const DEL_MAIN_LABLE = 'DEL_MAIN_LABLE';     

+ 2 - 1
src/store/types/otherHistory.js

@@ -19,4 +19,5 @@ export const OTHEREDICLEAR = 'OTHEREDICLEAR';    //文本框是否可以编辑
 export const DEL_OTHERHIS = 'DEL_OTHERHIS';    //backspace
 export const CHANGEOTHERTEXTLABEL_NUMBER = 'CHANGEOTHERTEXTLABEL_NUMBER';    //数字键盘
 export const OTHERHIS_MUL = 'OTHERHIS_MUL';    //单列多选
-export const REMOVE_OTHER_ID = 'REMOVE_OTHER_ID';    
+export const REMOVE_OTHER_ID = 'REMOVE_OTHER_ID';    
+export const DEL_OTHERHIS_LABLE = 'DEL_OTHERHIS_LABLE';