import React from 'react'; import { connect } from 'react-redux'; import MainSuit from '@components/MainSuit'; import {CLEAR_COMSYMPTOMS,SHOW_TAIL,INSERT_MAIN,CLEAR_SEARCH,SET_SEARCH,SAVE_FREE,SET_DATA,INSERT_SEARCH,SETTEXTMODEVALUE} from '@store/types/mainSuit'; import {RESET,CLICKCOUNT,ISREAD} from '@store/types/homePage.js'; import {getCommSymptoms,getCommSymptomPush} from '@store/async-actions/mainSuit.js' import {SET_MAIN_SUIT} from '@store/types/fillInfo'; import {getSearch} from '@store/async-actions/fetchModules'; import {billing} from '@store/async-actions/pushMessage'; import {filterArr,didPushParamChange,filterDataArr} from '@utils/tools.js'; import config from '@config/index.js'; import {Notify} from '@commonComp'; function mapStateToProps(state) { return { showDrop:state.mainSuit.showDrop,//用于更新 update:state.mainSuit.update, CommonSymptoms:state.mainSuit.CommonSymptoms,//常见症状 datas:state.mainSuit.data,//数据源 selecteds:state.mainSuit.selecteds,//数据源 saveText:state.mainSuit.saveText, searchData:state.mainSuit.searchDatas,//搜索结果 type: state.typeConfig.typeConfig, fillInfo: state.fillInfo, showArr:state.homePage.showDrop, totalHide:state.homePage.totalHide, focusIndex:state.mainSuit.focusIndex, fuzhen:state.diagnosticList.mainSuitStr,//诊断第一个复诊值 span:state.mainSuit.span, addModuleName:state.mainSuit.addModuleName,//添加病情变化模板名称 editClear:state.mainSuit.editClear, mainIds:state.mainSuit.mainIds,//选中症状的id,搜索去重用 isRead:state.homePage.isRead, commSymHide:state.homePage.commSymHide, } } function mapDispatchToProps(dispatch) { return { reTotalHide:()=>{//重置隐藏 dispatch({ type:RESET }) }, getCommonSymptoms:()=>{//获取常见症状 dispatch(getCommSymptoms()); }, clearCommS:()=>{ dispatch({ type: CLEAR_COMSYMPTOMS }) }, handleTailClick:(obj,saveText)=>{//点击带尾巴的标签,如添加病程变化 let text = filterDataArr(saveText); if(text.length >= config.limited){ Notify.info(config.limitText); return } // 埋点dispatch dispatch({ type:CLICKCOUNT, data:{id:obj.id}, clickType:'单击', num:1 }); dispatch({ type: SHOW_TAIL, info:obj.questionMapping }) dispatch({ type:ISREAD }) }, insertMain:(item)=>{//将选中的常见症状插入 dispatch({ type: INSERT_MAIN, item }); //右侧推送 setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的 if(didPushParamChange()){ //操作后内容有变化才推送 dispatch(billing()); } },500); }, getData(){//主诉使用模板 dispatch({ type: SET_DATA }) }, setMainSuit: (value) => { dispatch({type: SET_MAIN_SUIT, value}) }, pushMessage(data) {//结构模式右侧推送 // console.log("右侧推送接口"); dispatch(billing(data)); }, getSearchData:(item)=>{ getSearch(item).then((res)=>{ let result = res.data; if(+result.code == 0){ let data = result.data; dispatch({ type:SET_SEARCH, data:data }) }else{ console.log(result.msg); } }); }, insertSearch(obj){ dispatch({ type: INSERT_SEARCH, info:obj.item, span:obj.span }) dispatch({ type:ISREAD }) }, clearSearch:()=>{ dispatch({ type: CLEAR_SEARCH }) }, freeText(item){//自由输入 dispatch({ type: SAVE_FREE, data:item }) //右侧推送 setTimeout(function(){ if(didPushParamChange()){ dispatch(billing()); } },500); }, fetchPushInfos(){//文本模式下推送 //调右侧推送 console.log('右侧推送内容'); dispatch(billing()); }, handleInput(obj){ //文本模式值保存 dispatch({ type:SETTEXTMODEVALUE, text:obj.text }) }, } } const MainSuitContainer = connect( mapStateToProps, mapDispatchToProps )(MainSuit); export default MainSuitContainer;