header.jsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. import React from 'react';
  2. import { Input, Select, Icon, Button } from 'antd';
  3. import emitter from '../../eventManger/ev';
  4. const Option = Select.Option;
  5. import './header.less';
  6. class Header extends React.Component {
  7. constructor(props) {
  8. super(props);
  9. this.state = {
  10. title: props.chartTitle || '未命名'
  11. };
  12. }
  13. componentDidMount() {
  14. // 在组件装载完成后发布事件
  15. this.eventEmitter = emitter.addListener('headersettitle', (title)=>{
  16. this.setState({
  17. title
  18. });
  19. });
  20. }
  21. componentWillUnmount() {
  22. emitter.removeAllListeners('headersettitle');
  23. }
  24. emit(eventName, params) {
  25. emitter.emit(eventName);
  26. }
  27. titleChange() {
  28. }
  29. render() {
  30. const { emptyTitle, title } = this.state;
  31. return <div className='header'>
  32. <div className='header-item toolbar-title'>
  33. <Input className='input-title'
  34. width={200}
  35. addonAfter={<Icon type="edit" />}
  36. value={title}
  37. onChange={this.titleChange}
  38. />
  39. </div>
  40. <div className='header-item toolbar-buttons'>
  41. <div className=''>
  42. <Button className='button-uodo' icon='undo' onClick={this.emit('undo')}>撤销</Button>
  43. <Button className='button-redo' onClick={this.emit('redo')}>重做</Button>
  44. <Button className='button-uodo' onClick={this.emit('Preview')}>预览</Button>
  45. <Button className='button-uodo' onClick={this.emit('save')}>保存</Button>
  46. </div>
  47. </div>
  48. </div>
  49. }
  50. }
  51. export default Header;