123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 |
- import React from 'react';
- import {connect} from 'react-redux';
- import RadioInpDrop from "@components/RadioInpDrop";
- import {SETRADIO,CLEARSELECTED,CONFIRMSELECTED,SET_OT_RADIO_INPUT_VAL} from '@types/otherHistory';
- import {SETSELECTED4,SET_CK_RADIO_INPUT_VAL} from '@types/checkBody';
- import {SETDROPSHOW,HIDE,RESET,HIDEDROP,CLICKCOUNT,ISREAD,SET_SELECTED_AREA} from '@types/homePage.js';
- import {RADIO_SELECT,SET_MS_RADIO_INPUT_VAL} from '@store/types/mainSuit.js';
- import {CURRENT_RADIO,SET_RADIO_INPUT_VALUE} 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,
- select_start:state.homePage.select_start,
- }
- }
- // 主诉选中事件
- function mainSelect(dispatch,params){
- const {ikey,id,values} = params;
- //let index = getLabelIndex(ikey);
- dispatch({
- type:SET_MS_RADIO_INPUT_VAL,
- data:{
- ikey,
- id,
- values
- }
- });
- }
- // 现病史选中事件
- function currentSelect(dispatch,params){
- const {ikey,id,values} = params;
- //let index = getLabelIndex(ikey);
- dispatch({
- type:SET_RADIO_INPUT_VALUE,
- data:{
- ikey,
- id,
- values
- }
- });
- }
- //其他史选中事件
- function otherSelect(dispatch,params){
- const {ikey,id,values} = params;
- //let index = getLabelIndex(ikey);
- dispatch({
- type:SET_OT_RADIO_INPUT_VAL,
- data:{
- ikey,
- id,
- values
- }
- });
- }
- //查体单选下拉选中事件
- function checkSelect(dispatch,params){
- const {ikey,id,values} = params;
- dispatch({
- type:SET_CK_RADIO_INPUT_VAL,
- data:{
- ikey,
- id,
- values
- }
- });
- }
- //在不同模块(主诉、现病史等)下拉选中调用不同事件
- function handleModuleDiff(dispatch,store,params){
- const {mainSaveText,values,value} = params;
- const type = params.ikey.substr(0,1); //当前所在的项目
- switch (+type){
- case 1:
- if(values){//有选值才需要判断,清空不需要处理
- let str='',temp='';
- for(let i in values){
- temp = values[i];
- if(typeof temp=='object'){
- str+=temp.value;
- }else{
- str+=temp;
- }
- }
- let mainText = filterDataArr(mainSaveText);
- let lengths = value?mainText.length - value.length + str.length:mainText.length + str.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 InputActions = {
- 1:SET_MS_RADIO_INPUT_VAL,
- 2:SET_RADIO_INPUT_VALUE,
- 3:SET_OT_RADIO_INPUT_VAL,
- 4:SET_CK_RADIO_INPUT_VAL
- };
- 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);
- },
- handleSaveInp(params){
- const {boxMark} = params;
- dispatch({
- type:InputActions[+boxMark],
- data:{values:params.values,ikey:params.ikey}
- });
- if(didPushParamChange()) { //操作后内容有变化才推送
- dispatch(billing());
- }
- dispatch({
- type:ISREAD
- })
- },
- handleShow(obj) {
- dispatch({
- type:CLICKCOUNT,
- data:obj,
- clickType:'单击',
- num:1
- });
- dispatch({
- type:SETDROPSHOW,
- data:obj
- });
- dispatch({
- type: RESET
- });
- },
- setSelectArea(data){
- dispatch({
- type:SET_SELECTED_AREA,
- data
- })
- }
- }
- }
- const RadioInpDropCont = connect(mapStateToProps,mapDispatchToProps)(RadioInpDrop);
- export default RadioInpDropCont;
|