瀏覽代碼

主诉到其他史选中删除处理事件

zhouna 5 年之前
父節點
當前提交
f6b6d38fce

+ 5 - 0
src/components/SpreadDrop/index.jsx

@@ -371,6 +371,10 @@ class SpreadDrop extends Component{
       setSelectArea({i,boxMark,dir:'end'});
     }
   }
+  handleMouseDown(){
+    const {i,setSelectArea,boxMark}= this.props;
+    setSelectArea({i,boxMark,dir:'start'});
+  }
   componentDidMount(){
     if(isIE()){
       $(this.$div.current).onIe8Input(function(e){
@@ -400,6 +404,7 @@ class SpreadDrop extends Component{
         onInput={this.onChange}
         onkeydown={handleEnter}
         onMouseUp={this.handleMouseUp.bind(this)}
+        onMouseDown={this.handleMouseDown.bind(this)}
         >{showV||placeholder}</div>
           <ListItems parDiv={this.$list} defaulted={showDefaulted&&defaulted} pos={pos} data={data} order={order} left={left} boxMark={type} tagType={tagType}
              show={show} handleSelect={this.handleSelect} handleConfirm={this.handleConfirm} handleClear={this.handleClear} {...this.state}></ListItems>

+ 13 - 5
src/modules/HomePage/index.jsx

@@ -8,9 +8,9 @@ import store from '@store';
 
 import {HIDEDROP,SETMINSCREEN,SETSYSTEMCONFIG,SETPRE,SETREADDITEMS,RESET_SELECT_TAG} from '@store/types/homePage.js';
 import {billing} from '@store/async-actions/pushMessage';
-import {CLEAR_SEARCH} from '@types/mainSuit';
-import {CURRENT_CLEAR} from '@types/currentIll';
-import {OTHERHIS_CLEAR} from '@types/otherHistory';
+import {CLEAR_SEARCH,DELETE_MAIN_SELECTED_TAGS} from '@types/mainSuit';
+import {CURRENT_CLEAR,DELETE_CURRENT_SELECTED_TAGS} from '@types/currentIll';
+import {OTHERHIS_CLEAR,DELETE_OTHER_SELECTED_TAGS} from '@types/otherHistory';
 import {CHECKBODY_CLEAR,DELETE_CHECK_SELECTED_TAGS} from '@types/checkBody';
 import style from './index.less';
 import {getInitModules,getChronic,getSystemConfig} from '@store/async-actions/homePage.js';
@@ -18,6 +18,7 @@ import {getPreMsg} from '@store/async-actions/patInfo.js';
 import { getUrlArgObject,parseNameVal,pushAllDataList } from "@utils/tools";
 import $ from 'jquery';
 import loading from '@common/images/loading.gif';
+
 class HomePage extends Component {
     constructor() {
         super();
@@ -102,6 +103,12 @@ const mapStateToProps = function (state) {
     showPre:state.homePage.showPre
   }
 };
+const boxMap = {
+  '1':DELETE_MAIN_SELECTED_TAGS,
+  '2':DELETE_CURRENT_SELECTED_TAGS,
+  '3':DELETE_OTHER_SELECTED_TAGS,
+  '4':DELETE_CHECK_SELECTED_TAGS
+};
 const mapDispatchToProps = function (dispatch) {
   return {
     clearAddItems(){
@@ -161,9 +168,10 @@ const mapDispatchToProps = function (dispatch) {
         const end = homePage.select_end;
         const boxMark = homePage.select_boxMark;
         dispatch({
-          type:DELETE_CHECK_SELECTED_TAGS,
+          type:boxMap[boxMark],
           start,
-          end
+          end,
+          boxMark
         });
         //删除后清楚选中标记
         //setTimeout(()=>{

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

@@ -2,11 +2,11 @@
 import {RECOVER_TAG_CURRENT,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,REMOVE_CURR_ID,CURRENT_MUL,DEL_CURRENT_LABLE,SET_RADIO_INPUT_VALUE,CURRENT_CHRONIC,SAVE_CURR_FREE} from '../types/currentIll';
+  SETCURRENTINPUT,DEL_CURRENT,REMOVE_CURR_ID,CURRENT_MUL,DEL_CURRENT_LABLE,SET_RADIO_INPUT_VALUE,CURRENT_CHRONIC,SAVE_CURR_FREE,DELETE_CURRENT_SELECTED_TAGS} from '../types/currentIll';
 import {confirm,insertProcess,setData,setCheckBox,changeLabelVal,clearCurrentIll,
   setTextModeValue,setModule,bigDataSymptom,insertLabelData,clearCurrentEdit,
   backspaceText,removeId,multipleComfirn,delSingleLable,fillChronicModule} from '../actions/currentIll';
-import {recoveTag,setRadioInputValue,setRadioValue,setNumberValue,setCheckText,addLabelItem,setInputLabel} from '@utils/utils';
+import {recoveTag,setRadioInputValue,setRadioValue,setNumberValue,setCheckText,addLabelItem,setInputLabel,deleteSelectedLabels} from '@utils/utils';
 
 const initState = {
   moduleData:[],
@@ -86,6 +86,8 @@ export default function(state=initState,action){
       return res;
     case RECOVER_TAG_CURRENT:
       return recoveTag(state,action);
+    case DELETE_CURRENT_SELECTED_TAGS:
+      return deleteSelectedLabels(state,action);
     default:
       return state;
   }

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

@@ -2,12 +2,12 @@ import {RECOVER_TAG_MAIN,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,
-  REMOVE_MAIN_ID,MAINSUIT_MUL,DEL_MAIN_LABLE,SET_FEATURE,SET_MS_RADIO_INPUT_VAL,SAVE_CHRONIC,MAIN_REMOVE_SPAN,SET_ADD_SEARCH,CLEAR_ADD_SEARCH} from '../types/mainSuit'
+  REMOVE_MAIN_ID,MAINSUIT_MUL,DEL_MAIN_LABLE,SET_FEATURE,SET_MS_RADIO_INPUT_VAL,SAVE_CHRONIC,MAIN_REMOVE_SPAN,SET_ADD_SEARCH,CLEAR_ADD_SEARCH,DELETE_MAIN_SELECTED_TAGS} from '../types/mainSuit'
 import {getCommSymptoms,handleTailClick,insertMain,setSearch,getBigSymptom,setMainMoudle,confirm,
   commConfirm,changeLabelVal,saveFreeVal,clearMainSuit,insertSearch,setTextModeValue,
   backspaceText,removeId,multipleComfirn,delSingleLable,
   getSymptomFeature} from '../actions/mainSuit'
-import {recoveTag,setRadioInputValue,setNumberValue,setRadioValue,setCheckText,addLabelItem,setInputLabel} from '@utils/utils';
+import {recoveTag,setRadioInputValue,setNumberValue,setRadioValue,setCheckText,addLabelItem,setInputLabel,deleteSelectedLabels} from '@utils/utils';
 
 const initState = {
   showDrop:false,
@@ -125,6 +125,8 @@ export default function(state=initState,action){
         res.addSearchData = [];
       }
       return res;
+    case DELETE_MAIN_SELECTED_TAGS:
+      return deleteSelectedLabels(state,action);
     default:
       return state;
   }

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

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

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

@@ -29,4 +29,5 @@ export const CURRENT_CHRONIC = 'CURRENT_CHRONIC';//慢病填充模板
 export const SAVE_CURR_FREE = 'SAVE_CURR_FREE';//自由输入
 export const CHANGE_CURRENT_LABELVAL = 'CHANGE_CURRENT_LABELVAL';//双击标签输入改变值
 export const RECOVER_TAG_CURRENT = 'RECOVER_TAG_CURRENT';     //恢复已删除标签
+export const DELETE_CURRENT_SELECTED_TAGS='DELETE_CURRENT_SELECTED_TAGS';
 

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

@@ -32,3 +32,4 @@ export const RECOVER_TAG_MAIN = 'RECOVER_TAG_MAIN';   //恢复已删除标签
 export const MAIN_REMOVE_SPAN = 'MAIN_REMOVE_SPAN';   //删除最后一个空span
 export const SET_ADD_SEARCH = 'SET_ADD_SEARCH';   //添加症状-搜索
 export const CLEAR_ADD_SEARCH = 'CLEAR_ADD_SEARCH';   //添加症状-搜索
+export const DELETE_MAIN_SELECTED_TAGS='DELETE_MAIN_SELECTED_TAGS';

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

@@ -21,4 +21,5 @@ export const OTHERHIS_MUL = 'OTHERHIS_MUL';    //单列多选
 export const REMOVE_OTHER_ID = 'REMOVE_OTHER_ID';    
 export const DEL_OTHERHIS_LABLE = 'DEL_OTHERHIS_LABLE';
 export const SET_OT_RADIO_INPUT_VAL = 'SET_OT_RADIO_INPUT_VAL';
-export const RECOVER_TAG_OTHER = 'RECOVER_TAG_OTHER'; //恢复已删除标签
+export const RECOVER_TAG_OTHER = 'RECOVER_TAG_OTHER'; //恢复已删除标签
+export const DELETE_OTHER_SELECTED_TAGS='DELETE_OTHER_SELECTED_TAGS';

+ 10 - 5
src/utils/utils.js

@@ -239,19 +239,24 @@ export async function getBigPush(type,symData,save){
 //删除选中标签
 export function deleteSelectedLabels(state,action){
   let res = Object.assign({}, state);
-  const {start,end} = action;
-  let n = 0;
+  const {start,end,boxMark} = action;
+  let n = Math.abs(end-start)+1;
   const arr = res.data;
+  const startIsText = arr[start].tagType=='8';
+  const endIsText = arr[end].tagType=='8';
+  if(!startIsText&&!endIsText){
+    n=Math.abs(end-start)+2;
+  }
   if(start>end){      //从后往前选中
-    n = arr[end].tagType=='8'?start-end:start-end+1;
     arr.splice(end,n);
   }else if(start===end){
     return res;
   }else{
-    n = arr[end].tagType=='8'?end-start:end-start+1;
     arr.splice(start,n);
   }
-
+  const newObj = boxMark=='4'?checkFullfillText(arr):fullfillText(arr);
+  res.data = newObj.newArr;
+  res.saveText = newObj.saveText;
   res.update = Math.random();
   return res;
 }