123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- import React, { Component } from 'react';
- import Routes from './routes';
- import DocumentTitle from 'react-document-title';
- import SiderCustom from './components/SiderCustom';
- import HeaderCustom from './components/HeaderCustom';
- import { Layout, notification, Icon } from 'antd';
- import { ThemePicker } from './components/widget';
- import { connectAlita } from 'redux-alita';
- import './data/index'
- const { Content, Footer } = Layout;
- class App extends Component {
- state = {
- collapsed: false,
- title: '',
- };
- componentWillMount() {
- const { setAlitaState } = this.props;
- const user = JSON.parse(localStorage.getItem('user'));
- // user && receiveData(user, 'auth');
- user && setAlitaState({ stateName: 'auth', data: user });
- // receiveData({a: 213}, 'auth');
- // fetchData({funcName: 'admin', stateName: 'auth'});
- this.getClientWidth();
- window.onresize = () => {
- console.log('屏幕变化了');
- this.getClientWidth();
- };
- }
- componentDidMount() {
- const openNotification = () => {
- notification.open({
- message: '博主-yezihaohao',
- description: (
- <div>
- <p>
- GitHub地址:{' '}
- <a
- href="https://github.com/yezihaohao"
- target="_blank"
- rel="noopener noreferrer"
- >
- https://github.com/yezihaohao
- </a>
- </p>
- <p>
- 博客地址:{' '}
- <a
- href="https://yezihaohao.github.io/"
- target="_blank"
- rel="noopener noreferrer"
- >
- https://yezihaohao.github.io/
- </a>
- </p>
- </div>
- ),
- icon: <Icon type="smile-circle" style={{ color: 'red' }} />,
- duration: 0,
- });
- localStorage.setItem('isFirst', JSON.stringify(true));
- };
- const isFirst = JSON.parse(localStorage.getItem('isFirst'));
- !isFirst && openNotification();
- }
- getClientWidth = () => {
- // 获取当前浏览器宽度并设置responsive管理响应式
- const { setAlitaState } = this.props;
- const clientWidth = window.innerWidth;
- console.log(clientWidth);
- setAlitaState({ stateName: 'responsive', data: { isMobile: clientWidth <= 992 } });
- // receiveData({isMobile: clientWidth <= 992}, 'responsive');
- };
- toggle = () => {
- this.setState({
- collapsed: !this.state.collapsed,
- });
- };
- render() {
- const { title } = this.state;
- const { auth = { data: {} }, responsive = { data: {} } } = this.props;
- console.log(auth);
- return (
- <DocumentTitle title={title}>
- <Layout>
- {!responsive.data.isMobile && <SiderCustom collapsed={this.state.collapsed} />}
- <ThemePicker />
- <Layout style={{ flexDirection: 'column' }}>
- <HeaderCustom
- toggle={this.toggle}
- collapsed={this.state.collapsed}
- user={auth.data || {}}
- />
- <Content style={{ margin: '0 16px', overflow: 'initial', flex: '1 1 0' }}>
- <Routes auth={auth} />
- </Content>
- <Footer style={{ textAlign: 'center' }}>
- React-Admin ©{new Date().getFullYear()} Created by 976056042@qq.com
- </Footer>
- </Layout>
- </Layout>
- </DocumentTitle>
- );
- }
- }
- export default connectAlita(['auth', 'responsive'])(App);
|