liucf před 5 roky
rodič
revize
cb5a992b36

+ 7 - 0
src/components/Emergency/HisList/index.jsx

@@ -154,6 +154,13 @@ class HisList extends Component {
     return style['export'];
   }
 
+  shouldComponentUpdate(next){
+    if(next.changeInd !==this.props.changeInd){
+      this.setState({index:0})
+    }
+    return true;
+  }
+
   getList(){
     const { data } = this.props;
     let list = data&&data.map((v,i)=>{

+ 21 - 4
src/components/Emergency/index.jsx

@@ -17,7 +17,9 @@ class EmergencyHis extends Component{
       index:0,
       timer:null,
       valChange:true,
-      chooseItem:''
+      chooseItem:'',
+      filtFlag:-1 , //筛选标识
+      changeInd:false
     }
     this.searInp = React.createRef();
     this.handleClose = this.handleClose.bind(this);
@@ -48,6 +50,9 @@ class EmergencyHis extends Component{
   handleFilter(obj){//筛选
     const {filterData} = this.props;
     filterData&&filterData(obj);
+    this.setState({
+      filtFlag:obj.flag
+    }) 
   }
 
   showDetail(index){//病历详情
@@ -96,7 +101,7 @@ class EmergencyHis extends Component{
   }
   // 确认添加
   handleAdd(){
-    const {chooseItem,index} = this.state;
+    const {chooseItem,index,filtFlag,changeInd} = this.state;
     const {addSecond,data} = this.props;
     if(chooseItem.trim()){
       // 添加接口
@@ -111,6 +116,16 @@ class EmergencyHis extends Component{
         chooseItem:''
       });
     }
+    // 在非默认筛选条件下添加二次诊断后重新调筛选接口
+    if(filtFlag !== -1){
+      this.handleFilter({flag:filtFlag});
+      if(filtFlag ==0){//无二次诊断添加后重置index
+        this.setState({
+          index:0,
+          changeInd:!changeInd //重置list中的index标识
+        })
+      }
+    }
   }
 
   componentWillUnmount(){
@@ -122,7 +137,8 @@ class EmergencyHis extends Component{
 
   render(){
     const {show,data,total,preInfo,searchData} = this.props;
-    const {index,valChange} = this.state;
+    // const {index,valChange,changeInd} = this.state;
+    const {index,valChange,changeInd} = this.state;
     // const searchData = [];
     let baseObj = data[index];
     let dataJson,dataStr;
@@ -153,7 +169,8 @@ class EmergencyHis extends Component{
                         getMore={this.getMore} 
                         handleFilter={this.handleFilter}
                         detail={this.showDetail}
-                        handleDownload={this.handleDownload}/>
+                        handleDownload={this.handleDownload}
+                        changeInd={changeInd}/>
               </div>
               <div className={style['emer-right']}>
                 {

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

@@ -336,23 +336,27 @@ export function getAllHis(item){
   return (dispatch,getStore)=>{
     const state = getStore();
     const {message} = state.patInfo;
-    const params = {
-      "current": item.current,
-      // "endDate": item.endDate,
-      "hospitalDeptId": message.hospitalDeptId,
-      "hospitalId": message.hospitalId,
-      "size": 6,
-      // "startDate": item.startDate,
+    const {params} = state.emergencyHis;
+    let param = {};
+    if(JSON.stringify(params) == '{}'){
+      param = {
+        "current": item.current,
+        "hospitalDeptId": message.hospitalDeptId,
+        "hospitalId": message.hospitalId,
+        "size": 6,
+      }
+    }else{
+      param = Object.assign({},params,{current:item.current})
     }
 
-    json(api.getAllHisURL,params).then((res)=>{
+    json(api.getAllHisURL,param).then((res)=>{
       const result = res.data;
       if(result.code == 0){
         dispatch({
           type:GET_ALL_HIS,
           data:result.data.inquiryList,
           total:result.data.total,
-          params:params,
+          params:param,
         })
       }
     })
@@ -366,13 +370,14 @@ export function getFilterHis(obj){
     const {params} = state.emergencyHis;
     let newParam = {};
     if(obj.flag == 999){//时间筛选
-      newParam = Object.assign(params,{startDate:obj.startDate,endDate:obj.endDate})
+      newParam = Object.assign(params,{startDate:obj.startDate,endDate:obj.endDate,current:1})
     }else{
-      if(obj.flag==-1){
+      /*if(obj.flag==-1){
         newParam = Object.assign(params,{current:1})
       }else{
-        newParam = Object.assign({},params,{isHasSecond:obj.flag})
-      }
+        newParam = Object.assign({},params,{isHasSecond:obj.flag,current:1})
+      }*/
+      newParam = Object.assign({},params,{isHasSecond:obj.flag,current:1})
     }
 
     json(api.getAllHisURL,newParam).then((res)=>{
@@ -382,7 +387,8 @@ export function getFilterHis(obj){
           type:FILTER_ALL_HIS,
           data:result.data.inquiryList,
           total:result.data.total,
-          params:Object.assign(params,{current:1}),
+          // params:Object.assign(params,{current:1}),
+          params:Object.assign(newParam,{current:1}),
         })
       }
     })