Jelajahi Sumber

Squashed commit of the following:

commit b0d8e931c7d945c53c5454e30e4a0f59e278f48b
Author: liucf <liucf@zjlantone.com>
Date:   Thu Apr 25 20:19:19 2019 +0800

    慢病诊断入口

commit a5cb935038e2e63699d1f2f250322b759635eb82
Author: liucf <liucf@zjlantone.com>
Date:   Thu Apr 25 16:50:03 2019 +0800

    分组小计结果处理

# Conflicts:
#	src/components/ChronicInfo/index.jsx
#	src/store/async-actions/fetchModules.js
liucf 6 tahun lalu
induk
melakukan
16eafc4ab7

+ 3 - 5
src/components/ChronicInfo/index.jsx

@@ -122,11 +122,11 @@ class ChronicInfo extends React.Component{
     const item = {
       id:it.id,
       name:it.name
-    };console.log(it,parentId)
+    };
     // 判断:store里已经有该量表就无需重新调接口
     if(scaleInfo&&scaleInfo[it.id]){
       this.props.hideList({name:'showTable',value:true});
-    }else{console.log('调接口')
+    }else{
       this.props.getScaleInfo(item);
     }
 
@@ -320,8 +320,7 @@ class ChronicInfo extends React.Component{
                                             return <div className={style["chooseItem"]}>
                                                     <Radio label={ii.detailName}
                                                              isSelect={ii.state == 1}
-                                                             handleClick={this.handleForRadio.bind(this,ii,v,i, j,idd, ind)}> 
-                                                             >
+                                                             handleClick={this.handleForRadio.bind(this,ii,v,i, j,idd, ind)}>
                                                       </Radio>
                                                   </div>
                                           })}
@@ -466,7 +465,6 @@ class ChronicInfo extends React.Component{
                         })}
                       </ul>
               </ConfirmModal>
-      {console.log(showHide)}
               {showHide&&showHide.showTable?<ComplexModal onclose={this.closeTable} footer={scaleFooter}
                       title={tableName}
                       icon={tableIcon}

+ 0 - 1
src/components/DiagnosticList/index.jsx

@@ -101,7 +101,6 @@ class DiagnosticList extends Component {
     noReferRecord() {
         const { hideReferRecord } = this.props
         hideReferRecord && hideReferRecord()
-        inspectAndAssist()//化验辅检模板
     }
     referCase() {
         const { hideHistoryCaseModal, items } = this.props

+ 26 - 40
src/components/ScaleTable/index.jsx

@@ -18,17 +18,14 @@ class ScaleTable extends React.Component{
       selecteds:{},  //当前页面的选中标识,保存后使用select标识
       valueData:{},
       start:false,   //点击计算
-      score:{},  //选中的分数
-      totalScore:0  //前端计算结果
     }
   }
-  // handleRadio(groupName,name,value){
+  
   handleRadio(groupName,name,item){
-    const {selecteds,valueData,score} = this.state;
+    const {selecteds,valueData} = this.state;
     const value = item.detailName;
     this.setState({
-      selecteds:Object.assign({},selecteds,{[name]:value}),
-      score:Object.assign({},score,{[name]:item.score})
+      selecteds:Object.assign({},selecteds,{[name]:value})
     })
     const datas = JSON.parse(JSON.stringify(valueData));
     const group = datas.group;
@@ -64,7 +61,7 @@ class ScaleTable extends React.Component{
       valueData:datas
     })
   }
-  // handleCheckbox(name,value){
+  
   handleCheckbox(groupName,name,item){
     let {selecteds,valueData} = this.state;
     const value = item.detailName;
@@ -112,11 +109,14 @@ class ScaleTable extends React.Component{
         }
       }
     }
+    this.setState({
+      valueData:datas
+    })
   }
 
   handleFormula(data){//得分计算
     const {tableId,getResult,parentId,scaleInfo,parentIndex} = this.props; 
-    const {valueData,score} = this.state; 
+    const {valueData} = this.state; 
     this.setState({
       start:true
     })
@@ -136,27 +136,6 @@ class ScaleTable extends React.Component{
       Notify.info("请先将量表内容选择完整");
       return
     }
-    // 前端计算分数
-    let totalScore = 0;
-    for(let i in score){
-      totalScore += parseFloat(score[i])
-    }
-    this.setState({
-      totalScore:totalScore
-    })
-    const range = valueData&&valueData.calculate?valueData.calculate.range:'';
-    let resultText;
-    if(range){
-      for(let k=0; k<range.length; k++){
-        if(parseFloat(range[k].min) < totalScore && totalScore > parseFloat(range[k].max)){
-          resultText = range[k].text;
-        }
-      }
-    }
-    const result = {
-      score:totalScore,
-      text:resultText
-    }
 
     const params = {
       type:1,
@@ -170,14 +149,14 @@ class ScaleTable extends React.Component{
     let allDatas = JSON.parse(JSON.stringify(scaleInfo[tableId])) ;
      allDatas[1].content = JSON.stringify(valueData);
     // 计算接口
-    getResult&&getResult({params,allDatas,result});
+    getResult&&getResult({params,allDatas});
   }
   componentWillReceiveProps(nextProps){ 
     const {tableId} = this.props;
     if(JSON.stringify(nextProps.scaleInfo) !== '{}'){
       this.setState({
         // valueData:nextProps.scaleInfo[tableId].length?mocks.newData:JSON.parse(nextProps.scaleInfo[tableId].content),
-        valueData:JSON.parse(nextProps.scaleInfo[tableId][1].content),
+        valueData:nextProps.scaleInfo[tableId]?JSON.parse(nextProps.scaleInfo[tableId][1].content):{},
       })
     }
   }
@@ -193,6 +172,8 @@ class ScaleTable extends React.Component{
   }
   getContent(){ 
     let {selecteds,valueData,start} = this.state;
+    const {tableId,formulaResult} = this.props;
+    const scaleResult = formulaResult&&formulaResult[tableId]; //量表计算结果
     // const datas = valueData&&valueData.group?valueData:mocks.newData;
     const datas = valueData&&valueData.group?valueData:'';
     let content =  datas&&datas.group&&datas.group.map((v,i)=>{
@@ -235,8 +216,13 @@ class ScaleTable extends React.Component{
                     </div>
                   })}
                   {v.groupCalculate.isShow==1?<p className={style['subTotal']}>
-                    <span>计分</span>
-                    <span>{v.groupCalculate.result.value}</span>
+                    <span>计分:</span>
+                    {/*<span>{v.groupCalculate.result.value}</span>*/}
+                    <span>{scaleResult&&scaleResult.group.map((m,ii)=>{
+                      if(m.groupName==v.groupName){
+                        return m.groupCalculate.result.value;
+                      }
+                    })}</span>
                   </p>:''}  
                 </div>
               })
@@ -244,9 +230,9 @@ class ScaleTable extends React.Component{
   }
 
   render(){
-    const {title,scaleInfo,tableId,formulaResult} = this.props;console.log('量表渲染:',scaleInfo,tableId)
+    const {title,scaleInfo,tableId,formulaResult} = this.props;
     const data = scaleInfo[tableId];
-    let {selecteds,totalScore} = this.state;
+    let {selecteds} = this.state;
     const content = data && data[1].content;//表格内容
     const preContent = data && data[0].content;//表前文字
     const footContent = data && data[2].content; //表后文字
@@ -260,11 +246,11 @@ class ScaleTable extends React.Component{
             <div dangerouslySetInnerHTML={{__html:preContent}} className={style['textlh']}></div>
             <div className={style['textContent']}>
               {this.getContent()}
-              <div className={style['total']}>
-                <span>总分:</span>
-                <span>{scaleResult&&scaleResult.calcalculate.result&&scaleResult.calcalculate.result.value||totalScore||''}</span>
-                <span className={style['totalBtn']} onClick={this.handleFormula.bind(this)}>得分</span>
-              </div>
+              {datas&&datas.noCalc==0?<div className={style['total']}>
+                    <span>总分:</span>
+                    <span>{scaleResult&&scaleResult.calcalculate.result&&scaleResult.calcalculate.result.value||''}</span>
+                    <span className={style['totalBtn']} onClick={this.handleFormula.bind(this)}>得分</span>
+                  </div>:''}
             </div>
             <div dangerouslySetInnerHTML={{__html:footContent}} className={style['textlh']}></div>
           </div>

+ 4 - 2
src/containers/DiagnosticList.js

@@ -7,8 +7,8 @@ import { SHOW_TREAT, DEL_REACT, DEL_FOLLOW_UP } from '@store/types/treat.js';
 import {billing, getTips} from '../store/async-actions/pushMessage';
 import {keepPushData} from '@store/actions/tabTemplate';
 import { showHistory,sortHistory,activeHistory,visibleHistory } from '@store/actions/historyTemplates'
-
-
+import {CURRENT_CHRONIC} from '@store/types/currentIll';
+import {autoFillModules} from '@store/async-actions/fetchModules';
 
 
 function mapStateToProps(state) {
@@ -86,6 +86,7 @@ function mapDispatchToProps(dispatch) {
             dispatch({
                 type: HIDE_REFER_RECORD
             })
+            dispatch(autoFillModules())//自动分发模板
         },
         showHistoryCaseModal: ()=> {
             dispatch({
@@ -96,6 +97,7 @@ function mapDispatchToProps(dispatch) {
             dispatch({
                 type: HIDE_HISTORY_CASE
             })
+            dispatch(autoFillModules())//自动分发模板
         },
         handleQuoteClick(data){
             

+ 2 - 15
src/containers/MainSuit.js

@@ -6,7 +6,7 @@ import {RESET,CLICKCOUNT,ISREAD,SEARCH_DROP_LOCATION,MODI_LOADING} from '@store/
 import {getCommSymptoms,getCommSymptomPush} from '@store/async-actions/mainSuit.js'
 import {SET_MAIN_SUIT} from '@store/types/fillInfo';
 import {CLEAR_DIAGNOSE} from '@store/types/diagnosticList';
-import {getSearch,getFeature,setOtherHisModule} from '@store/async-actions/fetchModules';
+import {getSearch,getFeature,setOtherHisModule,autoFillModules} from '@store/async-actions/fetchModules';
 import {billing} from '@store/async-actions/pushMessage';
 import {didPushParamChange,filterDataArr,inspectAndAssist} from '@utils/tools.js';
 import config from '@config/index.js';
@@ -220,20 +220,7 @@ function mapDispatchToProps(dispatch) {
         dispatch(billing())
       },
       autoFillMoudles() {//自动填充模板
-        dispatch({type: CURRENT_CHRONIC})//现病史
-        //其他史模板填充-先去历史,无历史用模板
-        inspectAndAssist()//化验辅检
-        dispatch(setOtherHisModule());
-        //查体模板填充
-        dispatch((dispatch, getStore) => {
-          const state = getStore();
-          const initData = state.homePage.initData;
-          dispatch({
-            type: SET,
-            data: [...initData.checkbody],
-            isEmpty:false
-          });
-        });
+        dispatch(autoFillModules())
       }
     }
 }

+ 1 - 9
src/containers/ScaleTable.js

@@ -13,21 +13,13 @@ function mapStateToProps (state){//console.log(state);
 function mapDispatchToProps (dispatch){
   return {
     getResult(obj){//计算结果
-      const {params,allDatas,result} = obj;
+      const {params,allDatas} = obj;
       dispatch(getFormulaResult(params));
       dispatch({
         type:SET_SCALE_INFO,
         data:allDatas,
         id:params.id //量表id
       })
-      // 前端计算的值
-      /*if(result&&result.text){
-        dispatch({
-          type:SAVE_TABLE_RESULT,
-          id:params.scaleId,  
-          data:result
-        })
-      }*/
     }
   }
 }

+ 18 - 9
src/store/async-actions/diagnosticList.js

@@ -3,7 +3,7 @@ import {getAllDataList,getAllDataStringList,isAllClear,filterDataArr} from '@uti
 import {getChronic,getInitModules} from '@store/async-actions/homePage.js';
 import {storageLocal} from '@utils/tools'
 import { SAVE_FREE } from '@store/types/mainSuit';
-import {ISREAD} from "../types/homePage";
+import {ISREAD,MODI_LOADING} from "../types/homePage";
 export const isAddMainSuit = () =>{
     return (dispatch, getState) => {
         const state = getState();
@@ -51,11 +51,15 @@ export const isChronicMag = (item) => {
                                 type: SET_CHRONIC_MAG_ITEM,
                                 chronicMagItem: item
                             })
+                            // loading
+                            dispatch({type:MODI_LOADING,flag:true});
                             // 获取慢病模板
-                            dispatch(getInitModules);
-                            dispatch({
-                                type: SHOW_REFER_RECORD
-                            })
+                            dispatch(getInitModules).then(()=>{
+                                dispatch({type:MODI_LOADING,flag:false});
+                                dispatch({
+                                    type: SHOW_REFER_RECORD
+                                })
+                            });
                         }
                     }
                  });
@@ -68,11 +72,16 @@ export const isChronicMag = (item) => {
                             type: SET_CHRONIC_MAG_ITEM,
                             chronicMagItem: item
                         })
+                        // loading
+                        dispatch({type:MODI_LOADING,flag:true});
                         // 获取慢病模板
-                        dispatch(getInitModules);
-                        dispatch({
-                            type: SHOW_REFER_RECORD
-                        })
+                        dispatch(getInitModules).then(()=>{
+                            dispatch({type:MODI_LOADING,flag:false});
+                            dispatch({
+                                type: SHOW_REFER_RECORD
+                            })
+                        });
+                        
                     }
                 }
              }

+ 20 - 1
src/store/async-actions/fetchModules.js

@@ -3,12 +3,13 @@ import {SET} from '@types/checkBody.js';
 import {fullfillText,_fullfillText} from '@common/js/func';
 import {SETDATA} from '@store/types/otherHistory';
 import store from '@store';
-import {getEMRParams,didPushParamChange} from '@utils/tools.js';
+import {getEMRParams,didPushParamChange,inspectAndAssist} from '@utils/tools.js';
 import {Notify} from '@commonComp';
 import {billing} from '@store/async-actions/pushMessage';
 import {SETOTHERHISTORY,ISREAD} from "../types/homePage";
 import {SAVE_TABLE_RESULT,SET_CHRONIC_PUSHS} from "../types/pushMessage";
 import config from "@config/index";
+import {CURRENT_CHRONIC} from '@store/types/currentIll';
 
 const api={
   getSpreadModule:'/questionInfo/getByIds',
@@ -298,4 +299,22 @@ export const getFormulaResult = (item)=>{
       }
     })
   }
+}
+
+// 自动分发模板
+export function autoFillModules (){
+  return (dispatch,getStore)=>{
+    const state = getStore();
+    const initData = state.homePage.initData;
+    dispatch({type: CURRENT_CHRONIC})//现病史
+    //其他史模板填充-先去历史,无历史用模板
+    inspectAndAssist()//化验辅检
+    dispatch(setOtherHisModule());
+    //查体模板填充
+    dispatch({
+      type: SET,
+      data: [...initData.checkbody],
+      isEmpty:false
+    });
+  }
 }