From 680c0c3dee0067506fdf2db8f7c8c7a226dbbb1f Mon Sep 17 00:00:00 2001 From: jim Date: Wed, 2 May 2018 15:55:46 +0800 Subject: [PATCH] Optimization parameter logic --- src/components/Charts/WaterWave/index.js | 12 +-- src/components/Sidebar/LayoutSetting.js | 29 +------ src/components/Sidebar/index.js | 103 ++++++++--------------- src/components/Sidebar/index.less | 14 +++ src/layouts/BasicLayout.js | 10 +-- src/layouts/Header.js | 8 +- src/layouts/LoadingPage.js | 21 +---- src/models/setting.js | 43 +++++++--- 8 files changed, 98 insertions(+), 142 deletions(-) diff --git a/src/components/Charts/WaterWave/index.js b/src/components/Charts/WaterWave/index.js index f5ea26a0..2da301a0 100644 --- a/src/components/Charts/WaterWave/index.js +++ b/src/components/Charts/WaterWave/index.js @@ -30,11 +30,13 @@ export default class WaterWave extends PureComponent { resize = () => { requestAnimationFrame(() => { - const { height } = this.props; - const { offsetWidth } = this.root.parentNode; - this.setState({ - radio: offsetWidth < height ? offsetWidth / height : 1, - }); + if (this.root) { + const { height } = this.props; + const { offsetWidth } = this.root.parentNode; + this.setState({ + radio: offsetWidth < height ? offsetWidth / height : 1, + }); + } }); }; diff --git a/src/components/Sidebar/LayoutSetting.js b/src/components/Sidebar/LayoutSetting.js index f4947402..b98b9601 100644 --- a/src/components/Sidebar/LayoutSetting.js +++ b/src/components/Sidebar/LayoutSetting.js @@ -1,39 +1,18 @@ import { Tooltip } from 'antd'; import React from 'react'; import NavSate from './navState'; +import style from './index.less'; const LayoutSetting = ({ value, onChange }) => { return ( -
+
{['sidemenu', 'topmenu'].map(layout => ( -
onChange && onChange(layout)} - key={layout} - style={{ - width: 70, - height: 44, - textAlign: 'center', - margin: 8, - }} - > +
onChange && onChange(layout)} key={layout}>
))} -
+
diff --git a/src/components/Sidebar/index.js b/src/components/Sidebar/index.js index 1a538168..a68b0b30 100644 --- a/src/components/Sidebar/index.js +++ b/src/components/Sidebar/index.js @@ -1,6 +1,7 @@ import React, { PureComponent, Fragment } from 'react'; import { Select, message, List, Switch, Divider, Radio } from 'antd'; import DrawerMenu from 'rc-drawer-menu'; +import { connect } from 'dva'; import styles from './index.less'; import ThemeColor from './ThemeColor'; import LayoutSeting from './LayoutSetting'; @@ -30,45 +31,23 @@ const Body = ({ children, title, style }) => ( {children}
); - +@connect(({ setting }) => ({ setting })) class Sidebar extends PureComponent { - static getDerivedStateFromProps(nextProps, prevState) { - const nextState = {}; - Object.keys(nextProps).forEach(key => { - if (nextProps[key] && prevState[key] !== undefined) { - nextState[key] = nextProps[key]; - } - }); - return nextState; - } - constructor(props) { - super(props); - this.defaultstate = { - collapse: false, - silderTheme: 'dark', - themeColor: '#1890FF', - layout: 'sidemenu', - grid: 'Fluid', - fixedHeader: false, - autoHideHeader: false, - fixSiderbar: false, - colorWeak: 'close', - }; - const propsState = this.propsToState(props); - this.state = { ...this.defaultstate, ...propsState }; - } componentDidMount() { - this.colorChange(this.state.themeColor); + const { themeColor } = this.props.setting; + if (themeColor !== '#1890FF') { + this.colorChange(themeColor); + } } getLayOutSetting = () => { - const { layout } = this.state; + const { grid, fixedHeader, autoHideHeader, fixSiderbar, layout } = this.props.setting; return [ { title: '栅格模式', isShow: true, action: [