123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221 |
- import React from 'react';
- import {connect} from 'react-redux';
- import NumberUnitDrop from "@components/NumberUnitDrop";
- import {SETNUMBER,CHANGEOTHERTEXTLABEL} from '@types/otherHistory';
- import {SETNUMBER4,CHANGECHECKTEXTLABEL} from '@types/checkBody.js';
- import {SETDROPSHOW,CLICKCOUNT,HIDE,RESET,HIDEDROP,ISREAD,SET_SELECTED_AREA,SET_CURRENT_MODULE} from '@types/homePage.js';
- import {NUMBER_SELECT,CHANGE_LABELVAL} from '@store/types/mainSuit.js';
- import {CURRENT_NUMBER,CURRENT_TEXT_LABEL} from '@store/types/currentIll.js';
- import {Notify} from '@commonComp';
- import {didPushParamChange,filterDataArr,getLabelIndex} from '@utils/tools.js';
- import {billing,getMRAnalyse} from '@store/async-actions/pushMessage';
- import config from '@config/index.js';
- import storeGlobal from '@store';
- function mapStateToProps(state){
- return {
- mainSaveText:state.mainSuit.saveText,
- mainData:state.mainSuit.data,
- select_start:state.homePage.select_start,
- }
- }
- //查体数字键盘选中
- function checkSelect(dispatch,params){
- dispatch({
- type:SETNUMBER4,
- params
- });
- }
- //其他史数字键盘选中
- function otherSelect(dispatch,params){
- dispatch({
- type:SETNUMBER,
- params
- });
- }
- //主诉
- function mainSelect(dispatch,params){
- dispatch({
- type:NUMBER_SELECT,
- params
- });
- }
- //现病史
- function currentSelect(dispatch,params){
- dispatch({
- type:CURRENT_NUMBER,
- params
- });
- }
- function handleModuleDiff(dispatch,params){
- const {mainSaveText,mark,mainData} = params;
- const type = params.ikey.substr(0,1); //当前所在的项目
- let ikey = getLabelIndex(params.ikey);
- switch (+type){
- case 1:
- if(mark){//选中才限制,清空和回退无需验证
- let text = filterDataArr(mainSaveText);
- const item = mainData[+ikey];
- const nextItem = mainData[+ikey+1];
- let lengths = text.length;
- if(nextItem&&nextItem.tagType==8 && nextItem.tagName==',' && item.value){
- lengths = text.length + 1;
- }
-
- if(lengths >= config.limited){
- Notify.info(config.limitText);
- return
- }
- }
- mainSelect(dispatch,params);
- break;
- case 2:
- currentSelect(dispatch,params);
- break;
- case 3:
- otherSelect(dispatch,params);
- break;
- case 4:
- checkSelect(dispatch,params);
- break;
- default:
- }
- }
- /**************************双击标签输入*********************************/
- // 主诉
- function mainSuitLabel(dispatch,params){
- const index = params.ikey;
- let ikey = getLabelIndex(index);
- const {changeVal,totalVal} = params;
- dispatch({
- type:CHANGE_LABELVAL,
- // data:{changeVal:changeVal,ikey:ikey,totalVal}
- data:Object.assign({},params,{ikey})
- })
- }
- // 现病史
- function currentLabel(dispatch,params){
- const index = params.ikey;
- let ikey = getLabelIndex(index);
- dispatch({
- type:CURRENT_TEXT_LABEL,
- // data:{changeVal:params.changeVal,ikey:ikey}
- data:Object.assign({},params,{ikey})
- })
- }
- //其他史
- function otherHisLabelEdit(dispatch,params){
- const index = params.ikey;
- const {changeVal,totalVal} = params;
- let ikey = getLabelIndex(index);
- dispatch({
- type:CHANGEOTHERTEXTLABEL,
- // data:{changeVal:changeVal,ikey:ikey,totalVal}
- data:Object.assign({},params,{ikey})
- })
- }
- //查体
- function checkBodyLabelEdit(dispatch,params){
- const index = params.ikey;
- let ikey = getLabelIndex(index);
- const {changeVal,totalVal} = params;
- dispatch({
- type:CHANGECHECKTEXTLABEL,
- // data:{changeVal:changeVal,ikey:ikey,totalVal}
- data:Object.assign({},params,{ikey})
- })
- }
- function mapDispatchToProps(dispatch,store){
- return {
- handleSelect(params){
- handleModuleDiff(dispatch,params);
- //右侧推送
- clearTimeout(timer);
- let timer = setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
- if(didPushParamChange()){ //操作后内容有变化才推送
- dispatch(billing('',params.ikey.substr(0,1)));
- clearTimeout(timer);
- }
- },config.delayPushTime);
- if(!params.text.trim()){
- dispatch({
- type:ISREAD
- })
- }
- dispatch({
- type: ISREAD
- });
- },
- handleDbclick(obj){
- dispatch({
- type:CLICKCOUNT,
- data:obj,
- clickType:'双击',
- num:1
- });
- },
- handleHide(){
- dispatch({
- type:HIDEDROP
- })
- },
- handleShow(params) {
- const storeState = storeGlobal.getState()
- const {moduleName, moduleObj} = storeState.homePage
- dispatch({
- type:CLICKCOUNT,
- data:params,
- clickType:'单击',
- num:1
- });
- dispatch({
- type:SETDROPSHOW,
- data:params
- });
- if(moduleName != moduleObj[params.ikey[0]]) {
- dispatch({
- type: SET_CURRENT_MODULE,
- moduleName: moduleObj[params.ikey[0]]
- });
- dispatch(getMRAnalyse());
- }
- /*dispatch({
- type: RESET
- });*/
- },
- handleLabelChange(params){
- const {type} = params;
- switch (+type){
- case 1:
- mainSuitLabel(dispatch,params);
- break;
- case 2:
- currentLabel(dispatch,params);
- break;
- case 3:
- otherHisLabelEdit(dispatch,params);
- break;
- case 4:
- checkBodyLabelEdit(dispatch,params);
- break;
- default:
- }
- dispatch({
- type: ISREAD
- });
- },
- setSelectArea(data){
- dispatch({
- type:SET_SELECTED_AREA,
- data
- })
- }
- }
- }
- const NumberUnitDropCont = connect(mapStateToProps,mapDispatchToProps)(NumberUnitDrop);
- export default NumberUnitDropCont;
|