AssessResultHis.js 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. import React from 'react';
  2. import {connect} from 'react-redux';
  3. import AssessResultHis from '@components/AssessResult/AssessHis';
  4. import {ISREAD} from '@store/types/homePage.js';
  5. import {getAssessHis,getIndexData} from '@store/async-actions/fetchModules';
  6. import {SET_ASSESS_DATA,SET_INDEX_DATA} from '@types/assessResult';
  7. import {SET_ASSESS_HISTORY_DATA,SET_ASSESS_HISTORY_LOADING} from '@types/assessResultHis';
  8. import {parseChartData} from '@utils/tools';
  9. /***
  10. * 管理评估逻辑:
  11. * 根据推送弹窗显示“智能推荐”,首次无选中项
  12. * 评估内容项接口返回,其中整体评估为右侧操作加入
  13. * 点确定等同于页面病例保存按钮(同时保存页面数据和评估结果)
  14. * 点确定后再次打开,保留上次操作结果(页面清空,引用除外),
  15. * 但推荐选项按最新推送显示
  16. *
  17. * ***/
  18. function mapStateToProps(state) {
  19. const {assessResultHis,assessResult} = state;
  20. return {
  21. list:assessResultHis, //已获取到的历史评估列表
  22. indexData:assessResult.indexData,
  23. indexNames:assessResult.indexNames,
  24. loading:assessResultHis.loading,
  25. timeTypes:assessResult.indexTimeTypes, //图表切换的维度
  26. }
  27. }
  28. function mapDispatchToProps(dispatch) {
  29. return {
  30. getAssessHis(id){
  31. dispatch({
  32. type:SET_ASSESS_HISTORY_LOADING,
  33. flag:true
  34. });
  35. dispatch(getAssessHis(id)).then((res)=>{
  36. if(res.data.code=='0'){
  37. const data = res.data.data[0]&&res.data.data[0].htmlContent;
  38. dispatch({
  39. type:SET_ASSESS_HISTORY_DATA,
  40. id:id,
  41. data:JSON.parse(data||null)
  42. });
  43. }
  44. dispatch({
  45. type:SET_ASSESS_HISTORY_LOADING,
  46. flag:false
  47. });
  48. }).catch(error=>{
  49. dispatch({
  50. type:SET_ASSESS_HISTORY_LOADING,
  51. flag:false
  52. });
  53. console.log(error);
  54. });
  55. },
  56. getIndexData(param){ //获取评估图表数据
  57. const {range,rangeType,index,pindex,getNew,disName} = param;
  58. dispatch(getIndexData(range,disName)).then((res)=>{
  59. if(res.data.code=='0'){
  60. dispatch({
  61. type:SET_INDEX_DATA,
  62. data:parseChartData(res.data.data),
  63. range,
  64. index,
  65. rangeType,
  66. pindex,
  67. getNew
  68. });
  69. }
  70. }).catch(error=>{
  71. console.log(error);
  72. });
  73. },
  74. }
  75. }
  76. const AssessResultHisContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResultHis);
  77. export default AssessResultHisContainer;