import React, { Component } from "react";
import axios from '@utils/ajax';
import PatInfoContainer from '@containers/PatInfoContainer.js';
import style from "./index.less";
import { connect } from 'react-redux';
import AnalysisResult from '@components/AnalysisResult';
import historyCase from '@common/images/history.png';
import sysResult from '@common/images/result.png';
import store from '@store';
import { getEMRParams,getUrlArgObject } from '@utils/tools';
import { showHistory } from '@store/actions/historyTemplates';
import { initItemList, setInitHistory, getHospitalInfo } from '@store/async-actions/historyTemplates';
import HistoryCases from '@containers/HistoryCases';
import {Notify,Loading} from '@commonComp';
import {SHOW_LOADING} from '@store/types/copyRight.js';
class InfoTitle extends Component {
    constructor(props){
        super(props);
        this.state = {
		  resShow:false,
          analysisRes:{},       //解析结果数据
        };
        this.showHistoryBox = this.showHistoryBox.bind(this)
        this.showSysBox = this.showSysBox.bind(this);
    }
    showSysBox(flg){
      this.setState({resShow:flg});
	  const param = getEMRParams();   // 获取推送参数
	  param.dept = [{name:param.deptName,uniqueName:param.hospitalId==-1?param.deptName:''}]
	  param.deptName = undefined;
	  param.ruleType="1,2,3,4";
	  axios.json('/sys/push/indicationPush',param).then((res)=>{
		const data =res.data;
		if(data.code == 0){
		    this.setState({analysisRes:data.data.debug["数据"]})
		  //this.structAnalysisData(data.data.debug["数据"])
		}else{
		  Notify.error(data.msg);
		}
	  })
    }
    showHistoryBox(){
        const {showLoading,hideLoading}=this.props;
        showLoading();
        initItemList().then(res=>{           
            const result = res.data
            if (result.code === '0' && result.data.records.length !== 0) {
                hideLoading();
                store.dispatch(setInitHistory(result.data));
                store.dispatch(showHistory(true));
                document.body.style.overflow = 'hidden';
            }else{
                hideLoading();
                Notify.info("暂无历史病历");
            }
        })
    }
    componentWillReceiveProps(next){
        /*const that = this;
        if(next.winWidth <= 1024){
          $(window).scroll(function(){
            let scrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
            let left = -(scrollLeft - 10) +'px';
            that.setState({
              le:left
            })
          })
        }*/
    }
    render() {
        const {loading,loadingText,loadingType} = this.props;
        const {resShow,analysisRes}=this.state;
        const showSysBtn = getUrlArgObject("sysBtn")==='1';
        return <div className={style['title-wrapper']}  style={{paddingRight:'198px'}}>
            <PatInfoContainer />
             {
                <div className={style['activeWrap']}>
                    <div className={style["operations"]}>
                        <span onClick={this.showHistoryBox}><img src={historyCase} />&nbsp;历史病历</span>
                      {showSysBtn?<span onClick={()=>this.showSysBox(true)}><img src={sysResult} />&nbsp;解析结果</span>:""}
                    </div>
                </div>
             }
            <HistoryCases></HistoryCases>
            <AnalysisResult show={resShow} data={analysisRes} onClose={this.showSysBox}></AnalysisResult>
            <Loading show={loading} text={loadingText} type={loadingType}/>
        </div>;
    }
}
function mapStateToProps(state) {
  return {
    disVisible: state.copyRight.disVisible,
    copyVisible:state.copyRight.copyVisible,
    winWidth:state.homePage.windowWidth,
    loading:state.copyRight.loading,
    loadingText:state.copyRight.loadingText,
    loadingType:state.copyRight.loadingType
  }
}

function mapDispatchToProps(dispatch){
    return{
        showLoading(){
            // dispatch({type:MODI_LOADING,flag:true});
            dispatch({type:SHOW_LOADING,flag:true});
        },
        hideLoading(){
            // dispatch({type:MODI_LOADING,flag:false});
            dispatch({type:SHOW_LOADING,flag:false});
        }
    }
}

const InfoTitleCont = connect(
  mapStateToProps,
  mapDispatchToProps
)(InfoTitle);



export default InfoTitleCont;
