AssessResult.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  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} from '@types/assessResult';
  8. import store from '@store';
  9. /***
  10. * 管理评估逻辑:
  11. * 根据推送弹窗显示“智能推荐”,首次无选中项
  12. * 评估内容项接口返回,其中整体评估为右侧操作加入
  13. * 点确定等同于页面病例保存按钮(同时保存页面数据和评估结果)
  14. * 点确定后再次打开,保留上次操作结果(页面清空,引用除外),
  15. * 但推荐选项按最新推送显示
  16. *
  17. * ***/
  18. function mapStateToProps(state) {
  19. const {assessResult} = state;
  20. return {
  21. data:assessResult.data,
  22. indexData:assessResult.indexData,
  23. saveIndexData:assessResult.saveIndexData,
  24. saveData:assessResult.saveData,
  25. update:assessResult.update, //评估数据更新
  26. update1:assessResult.update1, //加入记录更新
  27. timeTypes:assessResult.indexTimeTypes, //图表切换的维度
  28. wholeAssessData:assessResult.wholeAssess, //评估内容
  29. wholeIndexs:assessResult.wholeIndexs, //已加入评估记录的推送项
  30. chooseSelecteds:assessResult.chooseSelecteds, //已选中的选项
  31. wholeAssessText:assessResult.wholeAssessText, //整体评估补充说明
  32. }
  33. }
  34. function mapDispatchToProps(dispatch) {
  35. return {
  36. getAssess(){
  37. dispatch(getAssessData()).then((res)=>{
  38. if(res.data.code=='0'){
  39. dispatch({
  40. type:SET_ASSESS_DATA,
  41. data:res.data.data
  42. })
  43. }
  44. }).catch(error=>{
  45. console.log(error);
  46. });
  47. },
  48. getIndexData(param){
  49. const {range,rangeType,index,pindex,getNew} = param;
  50. dispatch(getIndexData(range)).then((res)=>{
  51. if(res.data.code=='0'){
  52. dispatch({
  53. type:SET_INDEX_DATA,
  54. data:parseChartData(res.data.data),
  55. range,
  56. index,
  57. rangeType,
  58. pindex,
  59. getNew
  60. });
  61. }
  62. }).catch(error=>{
  63. console.log(error);
  64. });
  65. },
  66. clearChartData(){
  67. dispatch({
  68. type:CLEAR_INDEX_DATA
  69. })
  70. }
  71. /*removeAssessResult(pIndex,i){
  72. dispatch({
  73. type:REMOVE_ASSESS_ITEMS,
  74. pIndex,
  75. index:i
  76. });
  77. }*/
  78. }
  79. }
  80. function parseChartData(indexData){
  81. let arr=[],obj={},temp={};
  82. let nameArr=[],nameObj={}; //暂弃
  83. if(!indexData){
  84. return [];
  85. }
  86. indexData.itemIndexData.map((it)=>{
  87. temp=indexData.indexConfigData.find((i)=>{return it.itemName==i.indexUnique});
  88. arr=obj[temp.orderNo]||[];
  89. nameArr=nameObj[temp.orderNo]||[];
  90. obj[temp.orderNo]=[...arr,it];
  91. nameObj[temp.orderNo]=[...nameArr,it.itemName];
  92. });
  93. //nameObj,obj;
  94. return obj;
  95. }
  96. const AssessResultContainer = connect(mapStateToProps, mapDispatchToProps)(AssessResult);
  97. export default AssessResultContainer;