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

import {HIDEDROP,SETMINSCREEN,SETSYSTEMCONFIG} from '@store/types/homePage.js';
import style from './index.less';
import {getInitModules,getChronic,getSystemConfig} from '@store/async-actions/homePage.js';
import { getUrlArgObject,parseNameVal } from "@utils/tools";
import $ from 'jquery';
import data from '@components/EmergencyProcedure/emergency';
import loading from '@common/images/loading.gif';
class HomePage extends Component {
    constructor() {
        super();
        this.state={
            timer:null,
            idx:getUrlArgObject('emergency')+''
        }
        this.setDataIdx = this.setDataIdx.bind(this)
    }
    componentDidMount(){
        const {setWindow,getChronicList,getConfig} = this.props;
        getConfig();
        getChronicList&&getChronicList();//获取慢病列表

        // 获取并监听窗口宽度，用于有横向滚动条时患者信息和打印预览跟随滚动
        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;
                }
            } 
        })
    }
    setDataIdx(index){
      this.setState({
        idx:index+''
      })
    }
    render() {
        const {flag} = this.props;
        return <div className={style['home-page']} onClick={this.props.hideAllDrop}>
            <BannerContainer />
            {/* <InfoTitle /> */}
            <BodyContainer></BodyContainer>
            {
              this.state.idx&&data[this.state.idx]?<EmergencyProcedure data={data[this.state.idx]} idx={this.state.idx} setDataIdx={this.setDataIdx}></EmergencyProcedure>:null
            }
            <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)
        },
        getConfig(){
          getSystemConfig().then((res)=>{
            if(res.data.code=='0'){
                dispatch({
                  type:SETSYSTEMCONFIG,
                  data: parseNameVal(res.data.data)
                })
            }else{

            }
          });
        }
    }
};

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