AssessResult.js 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  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} 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. wholeResults:assessResult.wholeResults, //整体评估可能结果
  34. chooseSelecteds:assessResult.chooseSelecteds, //已选中的选项
  35. wholeAssessText:assessResult.wholeAssessText, //整体评估补充说明
  36. scaleInfo: pushMessage.scaleInfo,//量表内容
  37. chronicPushItems: pushMessage.chronicPushItems, //慢病右侧推送
  38. formulaResult:pushMessage.formulaResult, //量表计算结果
  39. calcuResult:assessResult.calcuResult, //评估弹窗可能结果计算结果
  40. calcuValues:assessResult.calcuValues, //计算公式填的值
  41. wholeScaleItems:assessResult.wholeScaleItems, //全部量表中已加入病例的量表
  42. }
  43. }
  44. function mapDispatchToProps(dispatch) {
  45. return {
  46. getAssess(isRecommend){ //获取评估内容数据
  47. if(isRecommend){
  48. const data = {
  49. regionName: "整体评估",
  50. regionType: "0",
  51. isRecommend:true
  52. };
  53. dispatch({
  54. type:SET_ASSESS_DATA,
  55. data:[data]
  56. });
  57. return;
  58. }
  59. dispatch(getAssessData()).then((res)=>{
  60. if(res.data.code=='0'){
  61. dispatch({
  62. type:SET_ASSESS_DATA,
  63. data:res.data.data
  64. })
  65. }
  66. }).catch(error=>{
  67. console.log(error);
  68. });
  69. },
  70. getIndexData(param){ //获取评估图表数据
  71. const {range,rangeType,index,pindex,getNew} = param;
  72. dispatch(getIndexData(range)).then((res)=>{
  73. if(res.data.code=='0'){
  74. dispatch({
  75. type:SET_INDEX_DATA,
  76. data:parseChartData(res.data.data),
  77. range,
  78. index,
  79. rangeType,
  80. pindex,
  81. getNew
  82. });
  83. }
  84. }).catch(error=>{
  85. console.log(error);
  86. });
  87. },
  88. clearChartData(){ //清除评估图表数据
  89. dispatch({
  90. type:CLEAR_INDEX_DATA
  91. })
  92. },
  93. saveCalcuResult(data){
  94. dispatch({
  95. type: SET_CHRONIC_CALCU_RESULT,
  96. data:deepClone(data)
  97. })
  98. },
  99. showScaleFn(item){
  100. dispatch({
  101. type:SHOW_TABLE_LIST,
  102. name:'showTable',
  103. value:true,
  104. item:Object.assign({},item)
  105. });
  106. },
  107. //保存管理评估
  108. saveAssessInfos(obj,flg,noSave){ //noSave未true则不调页面保存接口
  109. dispatch(Object.assign({},obj,{type:SET_SAVE_ASSESS_DATA}));
  110. if(!noSave){
  111. dispatch(saveClickNum);
  112. if(flg != 1 && flg != 2){
  113. dispatch(() => saveMessage())
  114. }
  115. }
  116. },
  117. }
  118. }
  119. const AssessResultContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResult);
  120. export default AssessResultContainer;