Browse Source

Merge remote-tracking branch 'origin/ChronicMag' into dev/new1

# Conflicts:
#	src/store/async-actions/print.js
zhouna 6 years ago
parent
commit
1a5552a4f6

+ 4 - 3
src/common/components/NumberUnitPan/index.jsx

@@ -92,7 +92,7 @@ class NumberUnitPan extends Component{
           <td><span onClick={this.handleSelect}>5</span></td>
           <td><span onClick={this.handleSelect}>6</span></td>
           <td><span onClick={this.handleSelect}>小时</span></td>
-          <td><span onClick={this.handleSelect}></span></td>
+          <td><span onClick={this.handleSelect}></span></td>
           <td><span onClick={this.handleSelect}>次</span></td> 
         </tr>
         <tr>
@@ -100,7 +100,7 @@ class NumberUnitPan extends Component{
           <td><span onClick={this.handleSelect}>8</span></td>
           <td><span onClick={this.handleSelect}>9</span></td>
           <td><span onClick={this.handleSelect}>天</span></td>
-          <td><span onClick={this.handleSelect}></span></td>
+          <td><span onClick={this.handleSelect}></span></td>
           <td><span onClick={this.handleSelect}>岁</span></td> 
         </tr>
         <tr>
@@ -108,7 +108,8 @@ class NumberUnitPan extends Component{
           <td><span onClick={this.handleSelect}>0</span></td>
           <td><span onClick={this.handleSelect}>~</span></td>
           <td><span onClick={this.handleSelect}>/</span></td>
-          <td colspan="2" className={style['imgN']}><img src={backspace} onClick={this.handleBack.bind(this)} /></td>
+          <td><span onClick={this.handleSelect}>日</span></td>
+          <td className={style['imgN']}><img src={backspace} onClick={this.handleBack.bind(this)} /></td>
         </tr>
         <tr>
           <td colspan="3"><span onClick={this.handleClear.bind(this)} className={style['clearN']}>清空</span></td>

+ 4 - 2
src/components/AssessResult/AssessHis/index.jsx

@@ -35,8 +35,8 @@ class AssessResultHis extends Component {
     this.props.getAssessHis(this.props.inquiryId);
   }
   handoutTypes(obj,item,i){
-    const {wholeAssess,wholeIndexs,chooseSelecteds} =obj;
-    const {getIndexData,inquiryDate,indexData,inquiryId,timeTypes} = this.props;
+    const {wholeAssess,wholeIndexs,chooseSelecteds,scaleResult,wholeResults} =obj;
+    const {getIndexData,inquiryDate,indexData,timeTypes} = this.props;
     const {chartTimeTypes} = this.state;
     const name = item.regionName+":";
     const list = item.data&&item.data.rows;
@@ -46,6 +46,8 @@ class AssessResultHis extends Component {
                           data={wholeAssess}
                           showScaleFn={this.showScaleFn}
                           indexs={wholeIndexs}
+                          formulaResult={scaleResult}
+                          result={wholeResults}
                           disabled={true}
                           isRecommend={item.isRecommend}></ScaleItem>;
       case 1:     //数据来源于大数据

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

@@ -48,10 +48,10 @@ class ScaleItem extends Component {
   }
   confirmOption(){
     const {handleRes} = this.props;
-    const {radioVal,possible} = this.state;
+    const {radioVal} = this.state;
     handleRes&&handleRes({
-      possible:Object.assign({},possible,radioVal),
-      radioVal:Object.assign({},possible,radioVal),//不设置radioVal只有最近一次选中的值
+      possible:Object.assign({},radioVal),
+      radioVal:Object.assign({},radioVal),//不设置radioVal只有最近一次选中的值
     });
     this.closeOption();
   }
@@ -166,7 +166,6 @@ class ScaleItem extends Component {
         if(its.type==1){     //量表
           it=deepClone(its);
           let scaleRes=formulaResult&&formulaResult[it.content.id]&&formulaResult[it.content.id].calcalculate;
-
           temp =<span className={style['scale']}
                       onClick={()=>this.handleShowScale(it.content,item.id,i)}>
                         {scaleRes&&scaleRes.result?(' 【'+it.content.name+'】 结果:'+scaleRes.result.value+" "+scaleRes.result.text):'【'+it.content.name+'】'}

+ 2 - 2
src/components/AssessResult/index.jsx

@@ -21,8 +21,8 @@ class AssessResult extends Component {
       wholeAssessItems:wholeIndexs,     //整体评估模块
       wholeAssessText:props.wholeAssessText||'',     //整体评估补充说明
       wholeResults:{
-        possible:Object.assign({},props.possible),
-        radioVal:Object.assign({},props.radioVal)
+        possible:props.possible,
+        radioVal:props.radioVal
       },
     };
     this.handleChooseChange = this.handleChooseChange.bind(this);

+ 11 - 9
src/components/ChronicInfo/index.jsx

@@ -208,18 +208,18 @@ class ChronicInfo extends React.Component{
     });
   }
   handleInputformula(v,i, j,idd,  e) {
-    const { data, setChronicPush } = this.props
-    const text = e.target.value
+    const { data, setChronicPush } = this.props;
+    const text = e.target.value;
     if (data[i].details) {
       data[i].details[j].content.details[idd].value = text
     } 
     
-    const data1 = JSON.parse(JSON.stringify(data))
+    const data1 = JSON.parse(JSON.stringify(data));
     
     setChronicPush(data1)
   }
   handleForRadio(ii,v,i, j,idd, ind){//计算公式
-    const { data, setChronicPush } = this.props
+    const { data, setChronicPush } = this.props;
     if (data[i].details) {
       for(let z = 0; z <  data[i].details[j].content.details[idd].details.length; z++) {
         data[i].details[j].content.details[idd].details[z].state = 0
@@ -227,7 +227,7 @@ class ChronicInfo extends React.Component{
       data[i].details[j].content.details[idd].details[ind].state = 1
     } 
     
-    const data1 = JSON.parse(JSON.stringify(data))
+    const data1 = JSON.parse(JSON.stringify(data));
     setChronicPush(data1)
   }
   confirmFormula(){//计算公式确定
@@ -244,11 +244,13 @@ class ChronicInfo extends React.Component{
   }
   confirmOption(parent,pIndex){//可能结果确定
     const {radioVal,possible} = this.state;
+    const {savePossibleResult} = this.props;
     this.setState({
       possible:Object.assign({},possible,radioVal),
       radioVal:Object.assign({},possible,radioVal),//不设置radioVal只有最近一次选中的值
-      optionId:null
-    })
+      optionId:null,
+    });
+    savePossibleResult&&savePossibleResult({possible:Object.assign({},possible,radioVal),radioVal:Object.assign({},possible,radioVal)})
   }
   handleSaveCalcu(obj){
     this.setState({
@@ -257,8 +259,8 @@ class ChronicInfo extends React.Component{
     })
   }
   calcuFormula(it,j, v, i) { //计算公式计算
-    const { calcuFormula, data ,chronicPushItems} = this.props
-    let allHasInfo = true
+    const { calcuFormula, data ,chronicPushItems} = this.props;
+    let allHasInfo = true;
     for (let i = 0; i < it.content.details.length; i++) {
       if(it.content.details[i].controlType == 2) {  //输入框类型的有没有填值
         if(!it.content.details[i].value) {

+ 3 - 12
src/components/CurrentIll/index.jsx

@@ -46,18 +46,18 @@ class CurrentIll extends Component{
     // 判断主诉是否为空
     const {mainData,mainText,setData,moduleNum,mainIds,data,changeEditIll,editClear,symptomFeature,isChronic} = this.props;
     const that = this;
+    const ev = e || window.event;
+    const text = ev.target.innerText||ev.target.innerHTML;
     let {setDataTimer} = this.state; 
     let mainFinallyText = filterDataArr(mainText);
-    // if(mainData.length == 0 && !mainText[0]){
     if(!mainFinallyText){
       //弹窗提醒
       Notify.error("无法操作,请先输入主诉");
       this.setState({
         forbidInput:true
       })
-    }else {
+    }else if(!text) {//现病史框里没有内容时才设置模板
       let num = moduleNum.num;//主诉使用了几个模板
-        // isChronic为一个对象
       if(data.length==0 && !isChronic || !isChronic.name ){
         clearTimeout(setDataTimer);
         setDataTimer = setTimeout(function(){//延时,等待主诉失焦数据返回
@@ -74,15 +74,6 @@ class CurrentIll extends Component{
           setDataTimer
       })
       changeEditIll(false)
-      /*const showTimer = setTimeout(function(){
-        that.setState({
-          showMoudle:true,
-          forbidInput:false,
-          boxEditable:false,
-        })
-        changeEditIll(false)
-      },150)
-      clearTimeout(showTimer);*/
     }
 
   }

+ 2 - 2
src/components/DiagnosticItem/index.jsx

@@ -50,7 +50,7 @@ class DiagnosticItem extends Component{
        
     }
     addDiagodal(diagType){
-        const {item, isChronicMag} = this.props;
+        const {item, isChronicMag,mode} = this.props;
         item.type = diagType;
         // setTimeout(()=>{
         //     this.setState({
@@ -63,7 +63,7 @@ class DiagnosticItem extends Component{
                 //         return
                 //     }
                 // }
-                if(item.type == 2) {
+                if(item.type == 2&&mode==0) {
                     isChronicMag(item);
                 }
                 // 从缓存取慢病列表

+ 21 - 8
src/components/ScaleTable/index.jsx

@@ -24,7 +24,7 @@ class ScaleTable extends React.Component{
     this.handleFormula = this.handleFormula.bind(this);
   }
   
-  handleRadio(groupName,name,item){
+  handleRadio(groupName,name,item,indexId){
     const {selecteds,valueData} = this.state;
     const value = item.detailName;
     this.setState({
@@ -43,13 +43,27 @@ class ScaleTable extends React.Component{
     if(rows){
       for(let j=0; j<rows.length; j++){
         let row = rows[j].row;
-        for(let k=0;k < row.length; k++){
-          if(row[k].name==name){
-            details = row[k].details;
+        let required = rows[j].required;
+        let rowsId = rows[j].indexId;
+        // 必填项处理
+        if(required==1&&rowsId==indexId){
+          for(let k=0;k < row.length; k++){
             row[k].isSelect = true;
-            break;
+            if(row[k].name==name){
+              details = row[k].details;
+              // break;
+            }
+          }
+        }else{
+          for(let k=0;k < row.length; k++){
+            if(row[k].name==name){
+              details = row[k].details;
+              row[k].isSelect = true;
+              break;
+            }
           }
         }
+        
       }
     }
     if(details){
@@ -221,8 +235,7 @@ class ScaleTable extends React.Component{
     let {selecteds,valueData,start,scaleResult1} = this.state;
     const {tableId,formulaResult} = this.props;
     const scaleResult = scaleResult1 || formulaResult&&formulaResult[tableId]; //量表计算结果
-    // const datas = valueData&&valueData.group?valueData:mocks.newData;
-    const datas = valueData&&valueData.group?valueData:'';
+    const datas = valueData&&valueData.group?valueData:'';//console.log(666,datas);
     let content =  datas&&datas.group&&datas.group.map((v,i)=>{
                 return <div className={style['group']}>
                   <p className={style['groupName']}>{v.groupName}</p>
@@ -236,7 +249,7 @@ class ScaleTable extends React.Component{
                                 return <div className={style['item']}>
                                         <Radio label={vv.detailName+'('+vv.score+')'}
                                            isSelect={vv.select==1||selecteds[item.name]==vv.detailName}
-                                           handleClick={this.handleRadio.bind(this,v.groupName,item.name,vv)}>
+                                           handleClick={this.handleRadio.bind(this,v.groupName,item.name,vv,it.indexId)}>
                                         </Radio>
                                         {vv.state==1?<span className={style['recomand']}>(智能推荐)</span>:''}
                                     </div>

+ 0 - 7
src/containers/AssessResultHis.js

@@ -6,7 +6,6 @@ import {billing} from '@store/async-actions/pushMessage';
 import {getAssessHis,getIndexData} from '@store/async-actions/fetchModules';
 import {SET_ASSESS_DATA,SET_INDEX_DATA} from '@types/assessResult';
 import {SET_ASSESS_HISTORY_DATA,SET_ASSESS_HISTORY_LOADING} from '@types/assessResultHis';
-import store from '@store';
 
 /***
  * 管理评估逻辑:
@@ -25,12 +24,6 @@ function mapStateToProps(state) {
     indexData:assessResult.indexData,
     loading:assessResultHis.loading,
     timeTypes:assessResult.indexTimeTypes,    //图表切换的维度
-    /*data:assessResultHis.data,
-    timeTypes:assessResultHis.indexTimeTypes,    //图表切换的维度
-    wholeAssessData:assessResultHis.wholeAssess,   //评估内容
-    wholeIndexs:assessResultHis.wholeIndexs,      //已加入评估记录的推送项
-    chooseSelecteds:assessResultHis.chooseSelecteds,    //已选中的选项
-    wholeAssessText:assessResultHis.wholeAssessText,     //整体评估补充说明*/
   }
 }
 

+ 6 - 0
src/containers/ChronicInfo.js

@@ -62,6 +62,12 @@ function mapDispatchToProps(dispatch){
         }
       }
     },
+    savePossibleResult(data){
+      dispatch({
+        type: 'SAVE_POSSIBLE_RESULT',
+        wholeResults: data
+      })
+    },
     //设置量表推送内容
     setChronicPush(data) {
       dispatch({

+ 2 - 1
src/containers/DiagnosticItem.js

@@ -11,7 +11,8 @@ import {billing, getTips} from '../store/async-actions/pushMessage';
 
 function mapStateToProps(state) {
     return {
-        diagnosticList: state.diagnosticList.diagnosticList
+        diagnosticList: state.diagnosticList.diagnosticList,
+        mode:state.typeConfig.typeConfig
     }
 }
 

+ 2 - 1
src/store/async-actions/print.js

@@ -143,7 +143,8 @@ function getEvaluations(base,pushMessage){
       wholeAssessText:base.wholeAssessText,
       wholeIndexs:base.wholeIndexs,
       scaleInfo:pushMessage.scaleInfo,
-      scaleResult:pushMessage.formulaResult
+      scaleResult:pushMessage.formulaResult,
+      wholeResults:base.wholeResults
     };
 }
 

+ 3 - 0
src/store/reducers/assessResult.js

@@ -47,6 +47,9 @@ export default (state=init,action)=>{
       res.indexTimeTypes[index] = rangeType;
       res.update = Math.random();   //对象更新
       return res;
+    case 'SAVE_POSSIBLE_RESULT':
+      res.wholeResults = action.wholeResults||{};
+      return res;
     case SET_SAVE_ASSESS_DATA:
       res.wholeIndexs = action.wholeAssessItems||{};
       res.wholeResults = action.wholeResults||{};