thumbnail.jsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import React from 'react';
  2. import { connect } from 'dva';
  3. import ReactEchartsCore from 'echarts-for-react/lib/core';
  4. import echarts from 'echarts/lib/echarts';
  5. import 'echarts/lib/chart/bar';
  6. import 'echarts/lib/chart/line';
  7. import 'echarts/lib/chart/pie';
  8. import 'echarts/lib/chart/scatter';
  9. import 'echarts/lib/component/tooltip';
  10. import 'echarts/lib/component/grid';
  11. import resolveChartThumbnailOption from './resolveChartThumbnailOption';
  12. class ThumbnailEcharts extends React.Component {
  13. componentDidMount() {
  14. const { dispatch, option } = this.props;
  15. let base64;
  16. if(!option || ((!option.series || option.series.length === 0 || !option.series[0].data || option.series[0].data.length === 0) && (!option.baseOption || !option.baseOption.series || option.baseOption.series.length === 0 || !option.baseOption.series[0].data || option.baseOption.series[0].data.length === 0))) {
  17. base64 = '';
  18. }else {
  19. base64 = this.echartsRef.getEchartsInstance().getDataURL({
  20. pixelRatio: 1,
  21. });
  22. }
  23. dispatch({ type: 'chartDesigner/silentSetField', name: 'thumbnail', value: base64 });
  24. }
  25. render() {
  26. const { style, option } = this.props;
  27. return <ReactEchartsCore
  28. ref={node => this.echartsRef = node}
  29. echarts={echarts}
  30. option={resolveChartThumbnailOption(option)}
  31. className='rc-echarts'
  32. style={{ ...style, width: '187px', height: '132px' }}
  33. />
  34. }
  35. }
  36. export default connect()(ThumbnailEcharts);