import {connect} from 'react-redux'; import {EditableSpan} from '@commonComp'; 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,MAIN_REMOVE_SPAN} 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'; import {billing,getMRAnalyse} from '@store/async-actions/pushMessage'; import {didPushParamChange,storageLocal} from '@utils/tools'; import {SETTEXTFOCUS,RESET,SETDROPSHOW,ISREAD,SET_SELECTED_AREA,SET_CURRENT_MODULE} from '@types/homePage'; import config from '@config/index'; import store from '@store'; function mapStateToProps(state){//console.log(state) return { mainSaveText:state.mainSuit.saveText, isRead:state.homePage.isRead, data:state.currentIll.data, select_end:state.homePage.select_end, select_start:state.homePage.select_start, } } function mainSuitSearch(obj){ return (dispatch)=>{ // const text = obj.text.replace(/\,/,''); const text = obj.text; getSearch({boxMark:1,inpStr:text,mainIds:obj.mainIds,itemType:0}).then((res)=>{ if(res.data.code=='0'){ dispatch({ type:SET_SEARCH, data:res.data.data, isEnd:obj.isEnd, //true为在末尾插入搜索结果否则在前面插入 inpStr:text //搜索输入的值 }) } }); } } function currentSearch(obj){ return (dispatch)=>{ // const text = obj.text.replace(/\,/,''); const text = obj.text; getSearch({boxMark:1,inpStr:text,mainIds:obj.mainIds}).then((res)=>{ if(res.data.code=='0'){ dispatch({ type:SET_CURRENT_SEARCH, data:res.data.data, isEnd:obj.isEnd, //true为在末尾插入搜索结果否则在前面插入 inpStr:text }) } }); } } function checkBodySearch(obj){ return (dispatch)=>{ // const text = obj.text.replace(/\,/,''); const text = obj.text; getSearch({boxMark:4,inpStr:text}).then((res)=>{ if(res.data.code=='0'){ dispatch({ type:SETSEARCHDATA, data:res.data.data, isEnd:obj.isEnd, //true为在末尾插入搜索结果否则在前面插入 inpStr:text }); } }); } } function otherHisSearch(obj) { return (dispatch)=>{ // const text = obj.text.replace(/\,/,''); const text = obj.text; getSearch({boxMark:3,inpStr:text}).then((res)=>{ if(res.data.code=='0'){ dispatch({ type:SETOTHERSEARCHDATA, data:res.data.data, isEnd:obj.isEnd, //true为在末尾插入搜索结果否则在前面插入 inpStr:text }); } }); } } function mapDispatchToProps(dispatch,state) { return { setFocusIndex(obj){//将选中值插入相应位置 const storeState = store.getState() const {moduleName, moduleObj} = storeState.homePage const {i,boxMark} = obj; switch (+obj.boxMark){ case 1: dispatch({ type:MAIN_FOCUS_INDEX, index:i, $span:obj.dom }); break; case 2: dispatch({ type:CURRENT_FOCUS_INDEX, index:i, $span:obj.dom }); break; case 3: dispatch({ type:OTHER_FOCUS_INDEX, index:i, $span:obj.dom }); break; case 4: dispatch({ type:CHECK_FOCUS_INDEX, index:i, $span:obj.dom }); break; default: dispatch({ type:SETTEXTFOCUS, index:i }); break; } //显示搜索框 dispatch({ type:SETDROPSHOW, data:{ikey:boxMark+i+'0'} }); dispatch({ type: RESET }); if(moduleName != moduleObj[boxMark]) { dispatch({ type: SET_CURRENT_MODULE, moduleName: moduleObj[boxMark] }); dispatch(getMRAnalyse()); } }, handleChange(obj){//存data值 switch (+obj.boxMark){ case 1: dispatch({ type:SETMAINTEXT, text:obj.text1, i:obj.i }); dispatch({ type: RESET }); break; case 2: dispatch({ type:SETCURRENTTEXT, text:obj.text1, i:obj.i }); break; case 3: dispatch({ type:SETOTHERTEXT, text:obj.text1, i:obj.i }); break; case 4: dispatch({ type:SETCHECKTEXT, text:obj.text1, i:obj.i }); break; default: break; } //右侧推送 clearTimeout(storageLocal.get('delayTimer')); let timer = setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的 if(didPushParamChange()){ //操作后内容有变化才推送 dispatch(billing('',obj.boxMark)); clearTimeout(storageLocal.get('delayTimer')); } },config.delayPushTime); storageLocal.set('delayTimer',timer); }, handleSearch(obj){ switch (+obj.boxMark){ case 1: dispatch(mainSuitSearch(obj)); break; case 2: dispatch(currentSearch(obj)); break; case 3: dispatch(otherHisSearch(obj)); break; case 4: dispatch(checkBodySearch(obj)); break; default: break; } }, handleClear(obj){//清空搜索结果 switch (+obj.boxMark){ case 1: dispatch({type:CLEAR_SEARCH}); break; case 2: dispatch({type:CURRENT_CLEAR}); break; case 3: dispatch({type:OTHERHIS_CLEAR}); break; case 4: dispatch({type:CHECKBODY_CLEAR}); break; default: break; } }, handleKeydown(obj){//backspace删除 + delete if(obj.i==null){return} switch (+obj.boxMark){ case 1: dispatch({type:DEL_MAIN,delIndex:obj.i,text:obj.text,flag:obj.flag}); break; case 2: dispatch({type:DEL_CURRENT,delIndex:obj.i,text:obj.text,flag:obj.flag}); break; case 3: dispatch({type:DEL_OTHERHIS,delIndex:obj.i,flag:obj.flag,text:obj.text}); break; case 4: dispatch({type:DEL_CHECKBODY,delIndex:obj.i,flag:obj.flag,text:obj.text}); break; default: break; } // 更新文本标签 dispatch({ type:ISREAD }); //右侧推送 setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的 if(didPushParamChange()){ //操作后内容有变化才推送 dispatch(billing()); } },200); }, removeId(obj){//删除时移除id if(obj.i==null){return} switch (+obj.boxMark){ case 1: dispatch({type:REMOVE_MAIN_ID,index:obj.i,text:obj.text,flag:obj.flag}); break; case 2: dispatch({type:REMOVE_CURR_ID,index:obj.i,text:obj.text,flag:obj.flag}); break; case 3: dispatch({type:REMOVE_OTHER_ID,index:obj.i,flag:obj.flag});//移除多余空标签 break; default: break; } 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 }) }, removeSpan(){//主诉移除最后一个空span dispatch({ type:MAIN_REMOVE_SPAN }) }, setSelectArea(data){ dispatch({ type:SET_SELECTED_AREA, data }) } } } const EditableSpanCont = connect( mapStateToProps, mapDispatchToProps )(EditableSpan); export default EditableSpanCont;