AssessResult.js 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. import React from 'react';
  2. import {connect} from 'react-redux';
  3. import AssessResult from '@components/AssessResult';
  4. import {ISREAD} from '@store/types/homePage.js';
  5. import {billing} from '@store/async-actions/pushMessage';
  6. import {getAssessData,getIndexData} from '@store/async-actions/fetchModules';
  7. import {SET_ASSESS_DATA,SET_INDEX_DATA,SET_INDEX_SUB_TYPE,REMOVE_ASSESS_ITEMS,CLEAR_INDEX_DATA,SET_CHRONIC_CALCU_RESULT,SET_CALCU_VALUES} from '@types/assessResult';
  8. import {parseChartData,deepClone} from '@utils/tools';
  9. import {SHOW_TABLE_LIST,HIDE_TABLE_LIST} from '@store/types/pushMessage';
  10. import {saveMessage} from "../store/async-actions/print";
  11. import {SET_SAVE_ASSESS_DATA} from "@types/assessResult";
  12. import {saveClickNum} from '@store/async-actions/homePage';
  13. /***
  14. * 管理评估逻辑:
  15. * 根据推送弹窗显示“智能推荐”,首次无选中项
  16. * 评估内容项接口返回,其中整体评估为右侧操作加入
  17. * 点确定等同于页面病例保存按钮(同时保存页面数据和评估结果)
  18. * 点确定后再次打开,保留上次操作结果(页面清空,引用除外),
  19. * 但推荐选项按最新推送显示
  20. *
  21. * ***/
  22. function mapStateToProps(state) {
  23. const {assessResult,pushMessage} = state;
  24. return {
  25. data:assessResult.data,
  26. indexData:assessResult.indexData,
  27. indexNames:assessResult.indexNames,
  28. update:assessResult.update, //评估数据更新
  29. update1:assessResult.update1, //加入记录更新
  30. timeTypes:assessResult.indexTimeTypes, //图表切换的维度
  31. //wholeAssessData:assessResult.wholeAssess, //评估内容
  32. wholeIndexs:assessResult.wholeIndexs||{}, //已加入评估记录的推送项
  33. addedScaleIds:assessResult.addedScaleIds, //已进入量表的id
  34. wholeResults:assessResult.wholeResults, //整体评估可能结果
  35. chooseSelecteds:assessResult.chooseSelecteds, //已选中的选项
  36. wholeAssessText:assessResult.wholeAssessText, //整体评估补充说明
  37. scaleInfo: pushMessage.scaleInfo,//量表内容
  38. chronicPushItems: pushMessage.chronicPushItems, //慢病右侧推送
  39. formulaResult:pushMessage.formulaResult, //量表计算结果
  40. calcuResult:assessResult.calcuResult, //评估弹窗可能结果计算结果
  41. calcuValues:assessResult.calcuValues, //计算公式填的值
  42. wholeScaleItems:assessResult.wholeScaleItems, //全部量表中已加入病例的量表
  43. }
  44. }
  45. function mapDispatchToProps(dispatch) {
  46. return {
  47. getAssess(disId,disName){ //获取评估内容数据
  48. dispatch(getAssessData(disId,disName)).then((res)=>{
  49. if(res.data.code=='0'){
  50. dispatch({
  51. type:SET_ASSESS_DATA,
  52. data:res.data.data,
  53. name:disName
  54. })
  55. }else{
  56. dispatch({
  57. type:SET_ASSESS_DATA,
  58. data:[],
  59. name:disName
  60. })
  61. }
  62. }).catch(error=>{
  63. dispatch({
  64. type:SET_ASSESS_DATA,
  65. data:[],
  66. name:disName
  67. });
  68. console.log(error);
  69. });
  70. },
  71. getIndexData(param){ //获取评估图表数据
  72. const {range,rangeType,index,pindex,getNew,disName} = param;
  73. dispatch(getIndexData(range,disName)).then((res)=>{
  74. if(res.data.code=='0'){
  75. dispatch({
  76. type:SET_INDEX_DATA,
  77. data:parseChartData(res.data.data),
  78. range,
  79. index,
  80. rangeType,
  81. pindex,
  82. getNew
  83. });
  84. }
  85. }).catch(error=>{
  86. console.log(error);
  87. });
  88. },
  89. clearChartData(){ //清除评估图表数据
  90. dispatch({
  91. type:CLEAR_INDEX_DATA
  92. })
  93. },
  94. saveCalcuResult(data){
  95. dispatch({
  96. type: SET_CHRONIC_CALCU_RESULT,
  97. data:deepClone(data)
  98. })
  99. },
  100. showScaleFn(item,isPop){
  101. dispatch({
  102. type:SHOW_TABLE_LIST,
  103. name:'showTable',
  104. value:true,
  105. isPop,
  106. item:Object.assign({},item)
  107. });
  108. },
  109. //保存管理评估
  110. saveAssessInfos(obj,flg,noSave){ //noSave未true则不调页面保存接口
  111. dispatch(Object.assign({},obj,{type:SET_SAVE_ASSESS_DATA}));
  112. if(!noSave){
  113. dispatch(saveClickNum);
  114. if(flg != 1 && flg != 2){
  115. dispatch(() => saveMessage())
  116. }
  117. }
  118. },
  119. savePossibleRes(data) {
  120. dispatch({
  121. type: 'SAVE_POSSIBLE_RESULT',
  122. wholeResults: data
  123. })
  124. },
  125. saveCalcuValue(data){
  126. dispatch({
  127. type:SET_CALCU_VALUES,
  128. data
  129. })
  130. }
  131. }
  132. }
  133. const AssessResultContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResult);
  134. export default AssessResultContainer;