MainSuit.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. import React from 'react';
  2. import { connect } from 'react-redux';
  3. import MainSuit from '@components/MainSuit';
  4. import {CLEAR_COMSYMPTOMS,SHOW_TAIL,INSERT_MAIN,CLEAR_SEARCH,SET_SEARCH,SAVE_FREE,SET_DATA,INSERT_SEARCH,SETTEXTMODEVALUE} from '@store/types/mainSuit';
  5. import {RESET,CLICKCOUNT,ISREAD} from '@store/types/homePage.js';
  6. import {getCommSymptoms,getCommSymptomPush} from '@store/async-actions/mainSuit.js'
  7. import {SET_MAIN_SUIT} from '@store/types/fillInfo';
  8. import {getSearch} from '@store/async-actions/fetchModules';
  9. import {billing} from '@store/async-actions/pushMessage';
  10. import {filterArr,didPushParamChange,filterDataArr} from '@utils/tools.js';
  11. import config from '@config/index.js';
  12. import {Notify} from '@commonComp';
  13. function mapStateToProps(state) {
  14. return {
  15. showDrop:state.mainSuit.showDrop,//用于更新
  16. update:state.mainSuit.update,
  17. CommonSymptoms:state.mainSuit.CommonSymptoms,//常见症状
  18. datas:state.mainSuit.data,//数据源
  19. selecteds:state.mainSuit.selecteds,//数据源
  20. saveText:state.mainSuit.saveText,
  21. searchData:state.mainSuit.searchDatas,//搜索结果
  22. type: state.typeConfig.typeConfig,
  23. fillInfo: state.fillInfo,
  24. showArr:state.homePage.showDrop,
  25. totalHide:state.homePage.totalHide,
  26. focusIndex:state.mainSuit.focusIndex,
  27. fuzhen:state.diagnosticList.mainSuitStr,//诊断第一个复诊值
  28. span:state.mainSuit.span,
  29. addModuleName:state.mainSuit.addModuleName,//添加病情变化模板名称
  30. editClear:state.mainSuit.editClear,
  31. mainIds:state.mainSuit.mainIds,//选中症状的id,搜索去重用
  32. isRead:state.homePage.isRead,
  33. commSymHide:state.homePage.commSymHide,
  34. }
  35. }
  36. function mapDispatchToProps(dispatch) {
  37. return {
  38. reTotalHide:()=>{//重置隐藏
  39. dispatch({
  40. type:RESET
  41. })
  42. },
  43. getCommonSymptoms:()=>{//获取常见症状
  44. dispatch(getCommSymptoms());
  45. },
  46. clearCommS:()=>{
  47. dispatch({
  48. type: CLEAR_COMSYMPTOMS
  49. })
  50. },
  51. handleTailClick:(obj,saveText)=>{//点击带尾巴的标签,如添加病程变化
  52. let text = filterDataArr(saveText);
  53. if(text.length >= config.limited){
  54. Notify.info(config.limitText);
  55. return
  56. }
  57. // 埋点dispatch
  58. dispatch({
  59. type:CLICKCOUNT,
  60. data:{id:obj.id},
  61. clickType:'单击',
  62. num:1
  63. });
  64. dispatch({
  65. type: SHOW_TAIL,
  66. info:obj.questionMapping
  67. })
  68. dispatch({
  69. type:ISREAD
  70. })
  71. },
  72. insertMain:(item)=>{//将选中的常见症状插入
  73. dispatch({
  74. type: INSERT_MAIN,
  75. item
  76. });
  77. //右侧推送
  78. setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
  79. if(didPushParamChange()){ //操作后内容有变化才推送
  80. dispatch(billing());
  81. }
  82. },500);
  83. },
  84. getData(){//主诉使用模板
  85. dispatch({
  86. type: SET_DATA
  87. })
  88. },
  89. setMainSuit: (value) => {
  90. dispatch({type: SET_MAIN_SUIT, value})
  91. },
  92. pushMessage(data) {//结构模式右侧推送
  93. // console.log("右侧推送接口");
  94. dispatch(billing(data));
  95. },
  96. getSearchData:(item)=>{
  97. getSearch(item).then((res)=>{
  98. let result = res.data;
  99. if(+result.code == 0){
  100. let data = result.data;
  101. dispatch({
  102. type:SET_SEARCH,
  103. data:data
  104. })
  105. }else{
  106. console.log(result.msg);
  107. }
  108. });
  109. },
  110. insertSearch(obj){
  111. dispatch({
  112. type: INSERT_SEARCH,
  113. info:obj.item,
  114. span:obj.span
  115. })
  116. dispatch({
  117. type:ISREAD
  118. })
  119. },
  120. clearSearch:()=>{
  121. dispatch({
  122. type: CLEAR_SEARCH
  123. })
  124. },
  125. freeText(item){//自由输入
  126. dispatch({
  127. type: SAVE_FREE,
  128. data:item
  129. })
  130. //右侧推送
  131. setTimeout(function(){
  132. if(didPushParamChange()){
  133. dispatch(billing());
  134. }
  135. },500);
  136. },
  137. fetchPushInfos(){//文本模式下推送
  138. //调右侧推送
  139. console.log('右侧推送内容');
  140. dispatch(billing());
  141. },
  142. handleInput(obj){ //文本模式值保存
  143. dispatch({
  144. type:SETTEXTMODEVALUE,
  145. text:obj.text
  146. })
  147. },
  148. }
  149. }
  150. const MainSuitContainer = connect(
  151. mapStateToProps,
  152. mapDispatchToProps
  153. )(MainSuit);
  154. export default MainSuitContainer;