MainSuit.js 5.7 KB

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