Browse Source

量表显示bug修改,1657

zhouna 6 years ago
parent
commit
7e503dbc8a

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

@@ -310,12 +310,12 @@ class ScaleItem extends Component {
       return '';
     };
     for( let i in scaleItems){
-      it = this.getScaleContent(scaleItems[i]);
+      it = this.getScaleContent(scaleItems[i].data);
       if(!it) continue;
       let scaleRes=formulaResult&&formulaResult[it.conceptId]&&formulaResult[it.conceptId].calcalculate;
       //这里onClick不能用箭头函数,用箭头函数会一直绑定for的最后一个it
       temp =<span className={style['scale']} onClick={this.handleShowScale.bind(this,it)}>
-                        {scaleRes&&scaleRes.result?(' 【'+it.name+'】 结果:'+scaleRes.result.value+" "+(scaleRes.result.text||'')):'【'+it.name+'】'}
+                        {scaleRes&&scaleRes.result?(' 【'+scaleItems[i].name+'】 结果:'+scaleRes.result.value+" "+(scaleRes.result.text||'')):'【'+scaleItems[i].name+'】'}
                         </span>;
       li = disabled?<li>
         <span>相关量表:</span>

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

@@ -120,7 +120,7 @@ class ChronicInfo extends React.Component{
     const {scaleInfo} = this.props;
     // 密西根糖尿病周围神经病评分(MDNS), id:40744
     const item = {
-      id:it.conceptId,
+      conceptId:it.conceptId,
       name:it.name
     };
     // 判断:store里已经有该量表就无需重新调接口
@@ -211,7 +211,7 @@ class ChronicInfo extends React.Component{
   handleAddAssessItem(v,pIndex,i){
     const {addAssessItem,showHide,addScaleItems,scaleInfo} = this.props;
     if(!v){
-      addScaleItems(scaleInfo[showHide.id],showHide.id);
+      addScaleItems(scaleInfo[showHide.conceptId],showHide.conceptId);
       return ;
     }
     addAssessItem(v,pIndex,i);
@@ -525,7 +525,7 @@ class ChronicInfo extends React.Component{
                                                     bottom={20}
                                                     width={820}>
           <ScaleTable title={showHide.name}
-                      tableId={showHide.id}
+                      tableId={showHide.conceptId}
                       comfirnFlag={comfirnFlag}
                       flag={flag}
                       flagT={ff}
@@ -546,7 +546,7 @@ class ChronicInfo extends React.Component{
                            bottom={20}
                            width={820}>
         <ScaleTable title={showHide.name}
-                    tableId={showHide.id}
+                    tableId={showHide.conceptId}
                     comfirnFlag={comfirnFlag}
                     flag={flag}
                     flagT={ff}

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

@@ -28,7 +28,7 @@ class ScaleSearch extends Component {
   }
   showScale(item){
     const {scaleInfo,getScale,showScaleFn} = this.props;
-    if(scaleInfo&&scaleInfo[item.id]){
+    if(scaleInfo&&scaleInfo[item.conceptId]){
       showScaleFn&&showScaleFn(item);
     }else{
       getScale(item);
@@ -37,7 +37,7 @@ class ScaleSearch extends Component {
   getSearchList() {
     const { searchResult } = this.props;
     return searchResult && searchResult.map((item) => {
-      return <li key={item.conceptId} onClick={this.showScale.bind(this,{id:item.conceptId,name:item.name})}>
+      return <li key={item.conceptId} onClick={this.showScale.bind(this,{conceptId:item.conceptId,name:item.name})}>
         <span className={style['scale-name']}>{item.name}{this.getResult(item.conceptId)}</span>
         <button>查看</button>
       </li>;

+ 9 - 10
src/components/ScaleTable/index.jsx

@@ -226,12 +226,11 @@ class ScaleTable extends React.Component{
     return ''
   }
   componentWillReceiveProps(nextProps){
-    const {tableId,saveScaleData,getResult,closeTable,scaleInfo,unscroeClose} = this.props;
+    const {tableId,closeTable,unscroeClose} = this.props;
     const {valueData} = this.state;
     const data = nextProps.scaleInfo;
-    // if(JSON.stringify(data) !== '{}' && data[tableId]){
     if(JSON.stringify(data) !== '{}' && data[tableId] && JSON.stringify(valueData) == '{}'){
-      let scale = this.filterScale(data[tableId]);
+      let scale = this.filterScale(data[tableId].data);
       this.setState({
         valueData:scale.content?JSON.parse(scale.content):{}
       })
@@ -260,7 +259,7 @@ class ScaleTable extends React.Component{
     const {tableId,scaleInfo,resetFlag} = this.props;
     resetFlag&&resetFlag();//重置确定标识
     if(scaleInfo&&scaleInfo[tableId]){
-      let scale = this.filterScale(scaleInfo[tableId]);
+      let scale = this.filterScale(scaleInfo[tableId].data);
       // 回读非计算量表结果result
       let data = scale.content?JSON.parse(scale.content):{};
       let result = {};
@@ -287,12 +286,12 @@ class ScaleTable extends React.Component{
   }
   componentWillUnmount(){
     // 储存计算结果和选择后的data
-    const {tableId,getResult,scaleInfo,saveScaleData,formulaResult,comfirnFlag,flagT} = this.props;
+    const {title,tableId,getResult,scaleInfo,saveScaleData,formulaResult,comfirnFlag,flagT} = this.props;
     const {valueData,scaleResult1,start} = this.state;
     // 替换表格内容--1)没有点计算且没有计算结果;2)点了计算
     const scaleResult = scaleResult1 || formulaResult&&formulaResult[tableId]; //量表计算结果
     if(start || !scaleResult && valueData.scaleType==1){//仅计分量表储存
-      let allDatas = scaleInfo[tableId]?JSON.parse(JSON.stringify(scaleInfo[tableId])):'' ;
+      let allDatas = scaleInfo[tableId]&&scaleInfo[tableId].data?[...scaleInfo[tableId].data]:'' ;
       if(allDatas){
         for(let i=0; i<allDatas.length; i++){
           if(allDatas[i].type==1){
@@ -300,7 +299,7 @@ class ScaleTable extends React.Component{
           }
         }
         // 需求:未点计算,直接点确定、关闭也保存选中数据 4-30
-        saveScaleData&&saveScaleData({id:tableId,data:allDatas});
+        saveScaleData&&saveScaleData({id:tableId,data:allDatas,name:title});
       }
     }
      if(scaleResult1){
@@ -328,14 +327,14 @@ class ScaleTable extends React.Component{
       }
       getResult&&getResult(params);
       // 存数据源
-      let allDatas = scaleInfo[tableId]?JSON.parse(JSON.stringify(scaleInfo[tableId])):'' ;
+      let allDatas = scaleInfo[tableId]&&scaleInfo[tableId].data?[...scaleInfo[tableId].data]:'' ;
       if(allDatas){
         for(let i=0; i<allDatas.length; i++){
           if(allDatas[i].type==1){
             allDatas[i].content = JSON.stringify(valueData);
           }
         }
-        saveScaleData&&saveScaleData({id:tableId,data:allDatas});
+        saveScaleData&&saveScaleData({id:tableId,data:allDatas,name:title});
       }
     }
   }
@@ -425,7 +424,7 @@ class ScaleTable extends React.Component{
 
   render(){
     const {scaleInfo,tableId,formulaResult,resRef} = this.props;
-    const data = scaleInfo[tableId];
+    const data = scaleInfo[tableId].data;
     let {selecteds,scaleResult1} = this.state;
     const scale = data && this.filterScale(data);
     const datas = scale && scale.content && JSON.parse(scale.content);

+ 2 - 2
src/containers/ScaleSearchContainer.js

@@ -20,8 +20,8 @@ function mapDispatchToProps(dispatch) {
         handleChangeValue(val){
             dispatch(getSearchList(val))
         },
-        getScale(name) {
-            dispatch(getScaleInfo(name))
+        getScale(item) {
+            dispatch(getScaleInfo(item))
         },
         showScaleFn(item,isPop){
           dispatch({

+ 2 - 1
src/containers/ScaleTable.js

@@ -24,7 +24,8 @@ function mapDispatchToProps (dispatch){
       dispatch({
         type:SET_SCALE_INFO,
         data:obj.data,
-        id:obj.id //量表id
+        id:obj.id, //量表id
+        name:obj.name
       })
     }
   }

+ 3 - 3
src/store/async-actions/pushMessage.js

@@ -245,7 +245,7 @@ export const getScaleInfo = (it)=>{
             featureType: "21",
             diag: emrData.dis,
             lis: emrData.lis,
-            scaleId:it.id,
+            scaleId:it.conceptId,
             scaleName:it.name,
             other: emrData.other,
             pacs: emrData.pacs,
@@ -261,9 +261,9 @@ export const getScaleInfo = (it)=>{
             if(result.code==0 && result.data.length>0){
                 dispatch({
                     type: SET_SCALE_INFO,
-                    // data: result.data.scale,
+                    name: it.name,
                     data: result.data,
-                    id:it.id
+                    id:it.conceptId
                 })
                 dispatch({
                     type:SHOW_TABLE_LIST,

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

@@ -73,7 +73,7 @@ export default function(state = initState, action) {
       res.chronicPushItems = action.data;
       return res;
     case SET_SCALE_INFO://量表内容-量表id
-      res.scaleInfo = Object.assign({},res.scaleInfo,{[action.id]:action.data});
+      res.scaleInfo = Object.assign({},res.scaleInfo,{[action.id]:{data:action.data,name:action.name}});
       return res;
     case SAVE_TABLE_RESULT://量表计算结果-量表id
       res.formulaResult = Object.assign({},res.formulaResult,{[action.id]:action.data});