CurrentIll.js 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. import React from 'react';
  2. import { connect } from 'react-redux';
  3. import CurrentIll from '@components/CurrentIll';
  4. import {INSERT_PROCESS,SET_CURRENT_DATA,SETTEXTMODEVALUE,SET_LABEL_MODULE,SELECT_SEARCHDATA,CLEAR_CURRENT_EDIT,SAVE_CURR_FREE} from '@store/types/currentIll';
  5. import {SET_CURRENT_ILL} from '@store/types/fillInfo'
  6. import {pushMessage} from '../store/async-actions/pushContainer';
  7. import {getModules} from '../store/async-actions/fetchModules.js';
  8. import {SETDROPSHOW} from '@types/homePage.js';
  9. import {HIDE,RESET,CLICKCOUNT,ISREAD,SEARCH_DROP_LOCATION} from '@store/types/homePage.js';
  10. import {billing} from '@store/async-actions/pushMessage';
  11. import {getModule} from '@store/async-actions/fetchModules.js';
  12. import {didPushParamChange} from '@utils/tools.js';
  13. function mapStateToProps(state) { //console.log(111,state);
  14. const {homePage,currentIll,mainSuit,diagnosticList} = state;
  15. return {
  16. data:currentIll.data,//主诉模板
  17. emptyData:currentIll.emptyData,//空模板
  18. searchData:currentIll.searchDatas,//搜索结果
  19. focusIndex:currentIll.focusIndex,
  20. processModule:currentIll.processModule,//病程变化模板
  21. showArr:homePage.showDrop,
  22. span:currentIll.span,
  23. update:currentIll.update,//用于更新
  24. mainText:mainSuit.saveText,//主诉选中的数据
  25. mainData:mainSuit.data,//主诉使用的模板
  26. symptomFeature:mainSuit.symptomFeature,//主诉分词数据
  27. moduleNum:mainSuit.moduleNum,//主诉使用的模板
  28. type: state.typeConfig.typeConfig,
  29. mainIds:mainSuit.mainIds,//主诉症状选中的id(去重用)
  30. showArr:homePage.showDrop,
  31. totalHide: homePage.totalHide,
  32. saveText:currentIll.saveText,
  33. selecteds:currentIll.selecteds, //普通多选选中状态
  34. editClear:currentIll.editClear,
  35. symptomIds:currentIll.symptomIds,//症状id,去重用
  36. isRead:homePage.isRead,
  37. fuzhen:diagnosticList.mainSuitStr,//诊断第一个复诊值
  38. boxTop:homePage.boxTop,
  39. boxLeft:homePage.boxLeft,
  40. allModules:homePage.allModules,
  41. // isChronic:!!diagnosticList.chronicMagItem,
  42. isChronic:mainSuit.chronicDesease&&mainSuit.chronicDesease.name?mainSuit.chronicDesease:diagnosticList.chronicMagItem,
  43. }
  44. }
  45. function mapDispatchToProps(dispatch) {
  46. return {
  47. insertProcess(obj,allModules){//点击病程变化
  48. // 埋点dispatch
  49. dispatch({
  50. type:CLICKCOUNT,
  51. data:{id:obj.id},
  52. clickType:'单击',
  53. num:1
  54. });
  55. dispatch({
  56. type:INSERT_PROCESS,
  57. id:obj.relationModule,
  58. allModules:allModules
  59. });
  60. dispatch({
  61. type:ISREAD
  62. })
  63. },
  64. async setData(info){//设置现病史使用模板
  65. let idsArr = info.mainIds;
  66. let ids = idsArr.join(",");
  67. let labelModule = await getModules(ids);
  68. if(labelModule.data.code==0){//根据id获取标签模板
  69. dispatch({
  70. type:SET_LABEL_MODULE,
  71. data:labelModule.data.data
  72. })
  73. }
  74. dispatch({
  75. type:SET_CURRENT_DATA,
  76. info
  77. })
  78. //右侧推送
  79. setTimeout(function(){ //延迟待确定后的数据更新后推送,避免获取的参数还是旧的
  80. if(didPushParamChange()){ //操作后内容有变化才推送
  81. dispatch(billing());
  82. }
  83. },500);
  84. },
  85. setCurrentIll: value => {
  86. dispatch({type: SET_CURRENT_ILL, value})
  87. },
  88. pushMessage: (data) => {
  89. dispatch(() => pushMessage(data))
  90. },
  91. //文本模式下推送
  92. fetchPushInfos(){
  93. //调右侧推送
  94. dispatch(billing());
  95. },
  96. handleInput(obj){ //文本模式值保存
  97. dispatch({
  98. type:SETTEXTMODEVALUE,
  99. text:obj.text
  100. })
  101. },
  102. fetchModules(param){
  103. const {id,name,index,span} = param;
  104. getModule(id).then((res)=>{
  105. if(res.data.code=='0'){
  106. dispatch({
  107. type:SELECT_SEARCHDATA,
  108. index,
  109. name,
  110. data: res.data.data,
  111. span,
  112. isReplace:false
  113. })
  114. dispatch({
  115. type:ISREAD
  116. })
  117. }
  118. });
  119. //右侧推送
  120. setTimeout(function(){
  121. dispatch(billing());
  122. },200);
  123. },
  124. changeEditIll(bool){
  125. dispatch({
  126. type:CLEAR_CURRENT_EDIT,
  127. editClear:bool
  128. })
  129. },
  130. getSearchLocation(top,left){
  131. dispatch({
  132. type:SEARCH_DROP_LOCATION,
  133. top:top,
  134. left:left,
  135. dis:0
  136. })
  137. },
  138. freeText(item){//自由输入
  139. dispatch({
  140. type: SAVE_CURR_FREE,
  141. data:item
  142. })
  143. //右侧推送
  144. setTimeout(function(){
  145. if(didPushParamChange()){
  146. dispatch(billing());
  147. }
  148. },500);
  149. }
  150. }
  151. }
  152. const CurrentIllContainer = connect(
  153. mapStateToProps,
  154. mapDispatchToProps
  155. )(CurrentIll);
  156. export default CurrentIllContainer;