import React from 'react' import { Input, Icon, Button, Popconfirm, Switch } from 'antd' import { connect } from 'dva' import './header.less' import SettingBox from './settingBox'; class Header extends React.Component { constructor(props) { super(props); this.state = { visibleConfirm: false, visibleSettingBox: false } } handleVisibleChange = (visible) => { this.setState({ visibleConfirm: visible }); } isOwner = () => { const { dashboardDesigner, main } = this.props; const { creatorCode } = dashboardDesigner; const { currentUser } = main; return currentUser.code === creatorCode; } render() { const { dashboardDesigner, dispatch } = this.props; const { editMode } = dashboardDesigner; return (
{this.isOwner() && { this.setState({ visibleConfirm: false }); try { await dispatch({ type: 'dashboardDesigner/saveWithThumbnail' }); }catch(e){ return e } dispatch({ type: 'main/redirect', path: '/dashboard' }); }} onCancel={() => { this.setState({ visibleConfirm: false }); dispatch({ type: 'main/redirect', path: '/dashboard' }); }} okText="保存" cancelText="不保存" > } {!this.isOwner() && } {this.isOwner() && }
{ const input = e.currentTarget.parentElement.parentElement.getElementsByTagName('input')[0]; input && input.focus() }} /> : null} onChange={(e) => { dispatch({ type: 'dashboardDesigner/setField', name: 'name', value: e.target.value }); }} />
{this.isOwner() && { dispatch({ type: 'dashboardDesigner/setEditMode', checked }); // 主动触发一次window的resize事件 window.setTimeout(() => { var e = document.createEvent("Event"); e.initEvent("resize", true, true); window.dispatchEvent(e); }, 300); }} />}
); } } export default connect(({ present: { main, dashboardDesigner } }) => ({ main, dashboardDesigner }))(Header);