import React, { Component } from "react";
import { connect } from "react-redux";
import BannerContainer from '@containers/TypeConfigContainer';
//  引入组件
import BodyContainer from "@components/BodyContainer";

import {HIDEDROP,SETMINSCREEN} from '@store/types/homePage.js';
import style from './index.less';
import {getInitModules,getChronic} from '@store/async-actions/homePage.js';
import { getUrlArgObject } from "@utils/tools";
import $ from 'jquery';
import loading from '@common/images/loading.gif';
class HomePage extends Component {
    constructor() {
        super();
        this.state={
            timer:null
        }
    }
    
    componentDidMount(){
        const {setWindow,getChronicList} = this.props;
        getChronicList&&getChronicList();//获取慢病列表
       /* clearTimeout(this.state.timer);
        const that = this;
        const timer = setTimeout(function(){//解决患者信息在获取模板之后的问题
            that.props.getInit();
        },200)
        this.setState({
            timer
        }) */ 
        // 获取并监听窗口宽度，用于有横向滚动条时患者信息和打印预览跟随滚动
        let width = $(window).width();
        let height = $(window).height();
        setWindow && setWindow({width,height});
        
        $(window).resize(function(){
            let reWidth = $(window).width(); 
            let reHeight = $(window).height();  
            setWindow && setWindow({width:reWidth,height:reHeight});
        })    
        //光标没落到元素上继续backspace防止页面回退
        $(window).on("keydown",(e)=>{   
            let ev = e || window.event;  
            if(ev.keyCode==8){
                const elem = ev.srcElement || ev.target;
                const nodeN = elem.nodeName;
                if(nodeN != "SPAN" && nodeN != "DIV" && nodeN != "INPUT" && nodeN != "TEXTAREA"){
                    return false;
                }
            } 
        })
    }

    render() {
        const {flag} = this.props;
        return <div className={style['home-page']} onClick={this.props.hideAllDrop}>
            <BannerContainer />
            {/* <InfoTitle /> */}
            <BodyContainer></BodyContainer>
            <div className={style['mask']} style={{display:flag?"block":"none"}}>
                <img src={loading} className={style['load']}/>
            </div>
        </div>;
    }
}

const mapStateToProps = function (state) {
  return {
    flag:state.homePage.loadingFlag
  }
};
const mapDispatchToProps = function (dispatch) {
    return {
        hideAllDrop(){
            dispatch({
              type:HIDEDROP
            });
        },
        /*getInit(){
            dispatch(getInitModules);
        }*/
        setWindow(obj){
            dispatch({
                type:SETMINSCREEN,
                obj:obj
            })
        },
        getChronicList(){
            dispatch(getChronic)
        }
    }
};

export default connect(mapStateToProps, mapDispatchToProps)(HomePage);