Forráskód Böngészése

计算公式同步,其他史无数据容错

zhouna 6 éve
szülő
commit
97dbf539f9

+ 8 - 4
src/components/AssessResult/ScaleItem/index.jsx

@@ -85,7 +85,9 @@ class ScaleItem extends Component {
   showFormula(id,it){
     const {formulaData} = this.state;
     const obj = JSON.parse(JSON.stringify(formulaData)||{});
-    obj[id] = it;
+    if(!obj[id]){
+      obj[id] = it;
+    }
     this.setState({
       formulaId:id,
       formulaData:obj
@@ -102,10 +104,12 @@ class ScaleItem extends Component {
       formulaId:null
     })
   }
-  calcuFormula(j, v, i) { //计算公式计算
+  calcuFormula(j, v, ii) { //计算公式计算
     const { calcuFormula,chronicPushItems } = this.props;
     const {formulaId,formulaData} = this.state;
     const it =formulaData&&formulaData[formulaId];
+    let pushObj = deepClone(chronicPushItems);
+    pushObj[ii].details[j]=it;
     let allHasInfo = true
     for (let i = 0; i < it.content.details.length; i++) {
       if(it.content.details[i].controlType == 2) {  //输入框类型的有没有填值
@@ -132,9 +136,9 @@ class ScaleItem extends Component {
         data: it,
         disId: v.id,
         pIndex: j,
-        ppIndex: i,
+        ppIndex: ii,
       }
-      calcuFormula({param,chronicPushItems,isPop:true})
+      calcuFormula({param,chronicPushItems:pushObj})
     } else {  //不是所有值都填过了
       Notify.info('请填写计算公式内容')
     }

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

@@ -328,7 +328,7 @@ class ChronicInfo extends React.Component{
                           return <div className={style["marTop"]}>
                             <span className={style["limit"]}>
                               计算公式结果:
-                              <i className={style["blue"]} onClick={this.showFormula.bind(this,v.id)}>{isFormulaConfirm&&result?result:'请选择'}</i>
+                              <i className={style["blue"]} onClick={this.showFormula.bind(this,v.id)}>{result?result:'请选择'}</i>
                               <img src={level1} />
                             </span>
                             {indexs[i]&&indexs[i].includes(j)?<span className={style["addResult"]}>

+ 1 - 1
src/containers/AssessResult.js

@@ -35,7 +35,7 @@ function mapStateToProps(state) {
     scaleUpdate:pushMessage.scaleUpdate,
     chronicPushItems: pushMessage.chronicPushItems, //慢病右侧推送
     formulaResult:pushMessage.formulaResult,       //量表计算结果
-    calcuResult:assessResult.calcuResult,      //评估弹窗可能结果计算结果
+    calcuResult:pushMessage.calcuResult,      //评估弹窗可能结果计算结果
   }
 }
 

+ 5 - 3
src/containers/ChronicInfo.js

@@ -78,16 +78,18 @@ function mapDispatchToProps(dispatch){
           const data = chronicPushItems;
           const result = res.data.data.result;
           data[param.ppIndex].details[param.pIndex].content.result =  result;
-          if(item.isPop){
+          /*if(item.isPop){
             dispatch({
               type:SET_CHRONIC_CALCU_RESULT,
               data:deepClone(result),
               id:item.param.disId
             });
-          }
+          }*/
           dispatch({
             type: SET_CHRONIC_PUSHS,
-            data: deepClone(data)
+            data: deepClone(data),
+            result:deepClone(result),
+            id:item.param.disId
           })
         }else{
           Notify.error(res.data.msg||'计算没有结果返回');

+ 5 - 1
src/store/reducers/pushMessage.js

@@ -27,7 +27,8 @@ const initState = {
   tableList:[],
   formulaResult:{},
   scaleInfo:{},
-  showHide:{}
+  showHide:{},
+  calcuResult:{}
 };
 export default function(state = initState, action) {
   let res = Object.assign({},state);
@@ -76,6 +77,9 @@ export default function(state = initState, action) {
       return res;
     case SET_CHRONIC_PUSHS:
       res.chronicPushItems = action.data;
+      if(action.id){
+        res.calcuResult[action.id] = action.result;
+      }
       return res;
     case SET_SCALE_INFO://量表内容-量表id
       res.scaleInfo = Object.assign({},res.scaleInfo,{[action.id]:action.data});

+ 2 - 2
src/utils/tools.js

@@ -208,8 +208,8 @@ const getAllDataStringList =(baseList) =>{           //获取所有模块文本
     }else{
         presentData = baseList.currentIll.saveText
     }
-
-    if(baseList.otherHistory.saveText.length == 1 && baseList.otherHistory.saveText[0].trim() == ''){
+    const oText = baseList.otherHistory.saveText;
+    if(oText.length == 1 && oText[0] && oText[0].trim() == ''){
         otherData = []
     }else{
         otherData = baseList.otherHistory.saveText