123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- import React from 'react';
- import {connect} from 'react-redux';
- import RadioDrop from "@components/RadioDrop";
- import {SETRADIO,CLEARSELECTED,CONFIRMSELECTED,CHANGEOTHERTEXTLABEL} from '@types/otherHistory';
- import {SETSELECTED4,CHANGECHECKTEXTLABEL} from '@types/checkBody';
- import {SETDROPSHOW,HIDE,RESET,HIDEDROP,CLICKCOUNT,ISREAD} from '@types/homePage.js';
- import {RADIO_SELECT,CHANGE_LABELVAL} from '@store/types/mainSuit.js';
- import {CURRENT_RADIO,CURRENT_TEXT_LABEL} from '@store/types/currentIll.js';
- import {Notify} from '@commonComp';
- import {filterArr,didPushParamChange,filterDataArr,getLabelIndex,fullfillText} from '@utils/tools.js';
- import {billing} from '@store/async-actions/pushMessage';
- import config from '@config/index.js';
- function mapStateToProps(state){
- return {
- mainSaveText:state.mainSuit.saveText,
- }
- }
- // 主诉选中事件
- function mainSelect(dispatch,params){
- const {id,ikey,text} = params;
- dispatch({
- type:RADIO_SELECT,
- id,
- ikey,
- text:text||''
- });
- }
- // 现病史选中事件
- function currentSelect(dispatch,params){
- const {id,ikey,text} = params;
- dispatch({
- type:CURRENT_RADIO,
- id,
- ikey,
- text:text||''
- });
- }
- //其他史选中事件
- function otherSelect(dispatch,params){
- const {id,ikey,text} = params;
- dispatch({
- type:SETRADIO,
- id,
- ikey,
- text:text||''
- });
- }
- //查体单选下拉选中事件
- function checkSelect(dispatch,params){
- const {id,ikey,text} = params;
- dispatch({
- type:SETSELECTED4,
- id,
- ikey,
- text:text||''
- });
- }
- //在不同模块(主诉、现病史等)下拉选中调用不同事件
- function handleModuleDiff(dispatch,store,params){
- const {mainSaveText,value,text} = params;
- const type = params.ikey.substr(0,1); //当前所在的项目
- switch (+type){
- case 1:
- if(text){//有选值才需要判断,清空不需要处理
- let mainText = filterDataArr(mainSaveText);
- let lengths = value?mainText.length - value.length + text.length:mainText.length + text.length;
- 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:
- }
- }
- /**************标签双击输入action types**************/
- const dbEditActions = {
- 1:CHANGE_LABELVAL,
- 2:CURRENT_TEXT_LABEL,
- 3:CHANGEOTHERTEXTLABEL,
- 4:CHANGECHECKTEXTLABEL
- };
- function mapDispatchToProps(dispatch,store){
- return {
- handleSelect(params) {
- handleModuleDiff(dispatch, store, params);
- //单选选中隐藏弹窗
- dispatch({
- type: HIDEDROP
- });
- //右侧推送
- setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
- if(didPushParamChange()){ //操作后内容有变化才推送
- dispatch(billing('',params.ikey.substr(0,1)));
- }
- },500);
- },
- handleDbclick(obj){//双击统计
- dispatch({
- type:CLICKCOUNT,
- data:obj,
- clickType:'双击',
- num:1
- });
- },
- handleLabelEdit(params){
- const {type} = params;
- const index = params.ikey;
- let ikey = getLabelIndex(index);
- dispatch({
- type:dbEditActions[+type],
- data:{changeVal:params.changeVal,ikey:ikey}
- });
- dispatch(billing());
- dispatch({
- type:ISREAD
- })
- },
- handleShow(obj) {
- dispatch({
- type:CLICKCOUNT,
- data:obj,
- clickType:'单击',
- num:1
- });
- dispatch({
- type:SETDROPSHOW,
- data:obj
- });
- dispatch({
- type: RESET
- });
- }
- }
- }
- const RadioDropCont = connect(mapStateToProps,mapDispatchToProps)(RadioDrop);
- export default RadioDropCont;
|