Bladeren bron

评估中计算结果显示

zhouna 6 jaren geleden
bovenliggende
commit
8d36be890c

+ 7 - 6
src/components/AssessResult/ScaleItem/index.jsx

@@ -134,7 +134,7 @@ class ScaleItem extends Component {
         pIndex: j,
         ppIndex: i,
       }
-      calcuFormula({param,chronicPushItems})
+      calcuFormula({param,chronicPushItems,isPop:true})
     } else {  //不是所有值都填过了
       Notify.info('请填写计算公式内容')
     }
@@ -152,7 +152,7 @@ class ScaleItem extends Component {
   }
   getDetailItems(item,i){
     let arr = [],temp='';
-    const {indexs,result,formulaResult} = this.props;
+    const {indexs,result,formulaResult,calcuResult} = this.props;
     const {optionId,formulaId,radioVal,formulaData,isFormulaConfirm} = this.state;
     const possible=result&&result.possible;
 
@@ -162,15 +162,16 @@ class ScaleItem extends Component {
         if(its.type==1){     //量表
           it=deepClone(its);
           let scaleRes=formulaResult&&formulaResult[it.content.id]&&formulaResult[it.content.id].calcalculate;
-          console.log(scaleRes);
+
           temp =<span className={style['scale']}
                       onClick={()=>this.handleShowScale(it.content,item.id)}>
                         {scaleRes&&scaleRes.result?('结果:'+scaleRes.result.value+" "+scaleRes.result.text+' 【'+it.content.name+'】'):'【'+it.content.name+'】'}
                         </span>;
         }else if(its.type==2){      //计算公式
           it=formulaData[formulaId]||deepClone(its);
-          const cresult = it.content.result&&it.content.result[1]&&it.content.result[1].text;
-          temp = <div className={style['results']}>
+          const showRes = calcuResult[item.id]||it.content.result;
+          const cresult = showRes&&showRes[1]&&showRes[1].text;
+                    temp = <div className={style['results']}>
                     <span>计算公式:</span>
                     <span className={style["blue"]} onClick={this.showFormula.bind(this,item.id,it)}>{cresult?cresult:'请选择'}</span>
                     <img src={level1} />
@@ -217,7 +218,7 @@ class ScaleItem extends Component {
                       </table>
                       <div className={style["forMulBtn"]} onClick={this.calcuFormula.bind(this,j, item, i)}>计算</div>
                       <table>
-                        {it.content.result && Array.isArray(it.content.result) &&it.content.result.map((itemResult, resultIndex) => {
+                        {showRes && Array.isArray(showRes) &&showRes.map((itemResult, resultIndex) => {
                           return <tr>
                             <td>
                               <span>{itemResult.name+':'}</span>

+ 3 - 1
src/components/AssessResult/index.jsx

@@ -79,7 +79,8 @@ class AssessResult extends Component {
     isAssessConfirm&&handleSave(this.state,readyKeepHistory());
   }
   handoutTypes(item,i){
-    const {getIndexData,indexData,timeTypes,wholeAssessData,closeAssess,showScaleFn,calcuFormula,isRecommend,chronicPushItems,formulaResult,possible,radioVal} =this.props;
+    const {getIndexData,indexData,timeTypes,wholeAssessData,closeAssess,showScaleFn,calcuFormula,isRecommend,chronicPushItems,
+      formulaResult,calcuResult} =this.props;
     const {chooseSelecteds,wholeAssessItems,wholeAssessText,chartTimeTypes,wholeResults} = this.state;
     const chartData = indexData;
     const name = item.regionName+":";
@@ -96,6 +97,7 @@ class AssessResult extends Component {
                           result={wholeResults}
                           showScaleFn={showScaleFn}
                           calcuFormula={calcuFormula}
+                          calcuResult={calcuResult}
                           formulaResult={formulaResult}
                           isRecommend={isRecommend}
                           chronicPushItems={chronicPushItems}

+ 2 - 1
src/components/ChronicInfo/index.jsx

@@ -448,7 +448,7 @@ class ChronicInfo extends React.Component{
     return list;
   }
 
-  render(){
+  render(){console.log('chronic更新')
     const footer = <div className={style['footer']}>
       <span className={style['print']} onClick={this.onPrint}><img src={printIcon} alt=""/>打印</span>
       <span className={style['okBtn']} onClick={()=>this.handleSaveAssess()}>确定</span>
@@ -536,6 +536,7 @@ class ChronicInfo extends React.Component{
                                         bottom={20}
                                         width={820}>
                 <AssessResult handleSave={saveAssessInfos}
+                              handleSaveCalcu={this.handleSaveCalcu}
                               closeAssess={this.showRecommendFn}
                               isRecommend={true}
                               showScaleFn={this.showTable.bind(this)}

+ 6 - 7
src/containers/AssessResult.js

@@ -19,12 +19,10 @@ import {SET_SCALE_INFO} from "../store/types/pushMessage";
  * ***/
 
 function mapStateToProps(state) {
-  const {assessResult} = state;
+  const {assessResult,pushMessage} = state;
   return {
     data:assessResult.data,
     indexData:assessResult.indexData,
-    saveIndexData:assessResult.saveIndexData,
-    saveData:assessResult.saveData,
     update:assessResult.update,     //评估数据更新
     update1:assessResult.update1,       //加入记录更新
     timeTypes:assessResult.indexTimeTypes,    //图表切换的维度
@@ -33,10 +31,11 @@ function mapStateToProps(state) {
     wholeResults:assessResult.wholeResults,     //整体评估可能结果
     chooseSelecteds:assessResult.chooseSelecteds,    //已选中的选项
     wholeAssessText:assessResult.wholeAssessText,     //整体评估补充说明
-    scaleInfo: state.pushMessage.scaleInfo,//量表内容
-    scaleUpdate:state.pushMessage.scaleUpdate,
-    chronicPushItems: state.pushMessage.chronicPushItems, //慢病右侧推送
-    formulaResult:state.pushMessage.formulaResult,
+    scaleInfo: pushMessage.scaleInfo,//量表内容
+    scaleUpdate:pushMessage.scaleUpdate,
+    chronicPushItems: pushMessage.chronicPushItems, //慢病右侧推送
+    formulaResult:pushMessage.formulaResult,       //量表计算结果
+    calcuResult:assessResult.calcuResult,      //评估弹窗可能结果计算结果
   }
 }
 

+ 14 - 4
src/containers/ChronicInfo.js

@@ -2,10 +2,12 @@ import {connect} from 'react-redux';
 import ChronicInfo from '../components/ChronicInfo';
 import {SHOW_TABLE_LIST,HIDE_TABLE_LIST, SET_CHRONIC_PUSHS} from '@store/types/pushMessage';
 import {getTableList,getScaleInfo,getTips} from '../store/async-actions/pushMessage';
-import {ADD_ASSESS_ITEMS,SET_SAVE_ASSESS_DATA} from "@types/assessResult";
+import {ADD_ASSESS_ITEMS,SET_SAVE_ASSESS_DATA,SET_CHRONIC_CALCU_RESULT} from "@types/assessResult";
 import {saveMessage} from "../store/async-actions/print";
 import {saveClickNum} from '@store/async-actions/homePage';
 import { getFormulaResult } from '@store/async-actions/fetchModules'
+import {deepClone} from '@utils/tools';
+import Notify from '@commonComp/Notify';
 
 function mapStateToProps(state){
   const {pushMessage,assessResult} = state;
@@ -72,13 +74,21 @@ function mapDispatchToProps(dispatch){
       getFormulaResult(param).then((res)=>{
         if(+res.data.code==0){
           const data = chronicPushItems;
-          data[param.ppIndex].details[param.pIndex].content.result =  res.data.data.result;
+          const result = res.data.data.result;
+          data[param.ppIndex].details[param.pIndex].content.result =  result;
+          if(item.isPop){
+            dispatch({
+              type:SET_CHRONIC_CALCU_RESULT,
+              data:deepClone(result),
+              id:item.param.disId
+            });
+          }
           dispatch({
             type: SET_CHRONIC_PUSHS,
-            data: JSON.parse(JSON.stringify(data))
+            data: deepClone(data)
           })
         }else{
-          console.log(res);
+          Notify.error(res.data.msg||'计算没有结果返回');
         }
       })
 

+ 6 - 1
src/store/reducers/assessResult.js

@@ -1,4 +1,5 @@
-import {SET_ASSESS_DATA,SET_INDEX_DATA,SET_SAVE_ASSESS_DATA,SET_INDEX_SUB_TYPE,ADD_ASSESS_ITEMS,REMOVE_ASSESS_ITEMS,CLEAR_INDEX_DATA} from '@types/assessResult';
+import {SET_ASSESS_DATA,SET_INDEX_DATA,SET_SAVE_ASSESS_DATA,SET_INDEX_SUB_TYPE,ADD_ASSESS_ITEMS,
+  REMOVE_ASSESS_ITEMS,CLEAR_INDEX_DATA,SET_CHRONIC_CALCU_RESULT} from '@types/assessResult';
 import config from "@config";
 
 const init = {
@@ -13,6 +14,7 @@ const init = {
     possible:{},
     radioVal:{}
   },    //可能结果
+  calcuResult:{}
 };
 export default (state=init,action)=>{
   const res = Object.assign({},state);
@@ -65,6 +67,9 @@ export default (state=init,action)=>{
       res.wholeIndexs[pIndex].splice(temp.findIndex((i)=>i==index),1);
       //res.wholeAssess[pIndex].details[index].add=false;
       return res;
+    case SET_CHRONIC_CALCU_RESULT:
+      res.calcuResult[action.id] = action.data;
+      return res;
     default:
       return res;
   }

+ 2 - 1
src/store/types/assessResult.js

@@ -4,4 +4,5 @@ export const SET_SAVE_ASSESS_DATA = 'SET_SAVE_ASSESS_DATA';  //保存的评估
 export const SET_INDEX_SUB_TYPE = 'SET_INDEX_SUB_TYPE';   //保存单个图表时间维度
 export const ADD_ASSESS_ITEMS = 'ADD_ASSESS_ITEMS';     //加入评估
 export const REMOVE_ASSESS_ITEMS = 'REMOVE_ASSESS_ITEMS';  //整体评估删除
-export const CLEAR_INDEX_DATA = 'CLEAR_INDEX_DATA';     //删除图表数据
+export const CLEAR_INDEX_DATA = 'CLEAR_INDEX_DATA';     //删除图表数据
+export const SET_CHRONIC_CALCU_RESULT = 'SET_CHRONIC_CALCU_RESULT';   //保存评估中计算结果