|
|
@@ -1,4 +1,5 @@
|
|
|
import React from 'react'
|
|
|
+import { findDOMNode } from 'react-dom'
|
|
|
import { Layout, Tabs, Switch, Button } from 'antd'
|
|
|
import BaseConfigForm from './sections/baseConfigForm'
|
|
|
import AggregateTableConfigForm from './sections/aggregateTableConfigForm'
|
|
|
@@ -23,9 +24,35 @@ class ChartDesignerContent extends React.Component {
|
|
|
super(props);
|
|
|
this.state = {
|
|
|
autoRefresh: true,
|
|
|
- collapsed: false
|
|
|
+ collapsed: false,
|
|
|
+ contentSize: {
|
|
|
+ width: 0,
|
|
|
+ height: 0
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ componentDidMount() {
|
|
|
+ this.refreshContentSize();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 设置图表区域大小
|
|
|
+ */
|
|
|
+ refreshContentSize = () => {
|
|
|
+ let contentEl = findDOMNode(this.refs.contentEl);
|
|
|
+ if(!contentEl) { return; }
|
|
|
+ let contentLayout = contentEl.getBoundingClientRect();
|
|
|
+ console.log(contentLayout);
|
|
|
+ // let scroll = contentEl.scrollHeight > contentEl.clientHeight;
|
|
|
+ this.setState({
|
|
|
+ contentSize: {
|
|
|
+ width: contentLayout.width,
|
|
|
+ height: contentLayout.height
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
onCollapse = () => {
|
|
|
this.setState({
|
|
|
collapsed: !this.state.collapsed,
|
|
|
@@ -34,7 +61,7 @@ class ChartDesignerContent extends React.Component {
|
|
|
|
|
|
render() {
|
|
|
const { chartDesigner, dispatch } = this.props;
|
|
|
- const { autoRefresh } = this.state;
|
|
|
+ const { autoRefresh, contentSize } = this.state;
|
|
|
const { baseConfig } = chartDesigner;
|
|
|
const { viewType } = baseConfig;
|
|
|
const formItemLayout = {
|
|
|
@@ -46,22 +73,22 @@ class ChartDesignerContent extends React.Component {
|
|
|
|
|
|
if(viewType === 'aggregateTable') {
|
|
|
configForm = (<AggregateTableConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<TableView />);
|
|
|
+ chartView = (<TableView contentSize={contentSize}/>);
|
|
|
}else if(viewType === 'dataView') {
|
|
|
configForm = (<DataViewConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<TableView />);
|
|
|
+ chartView = (<TableView contentSize={contentSize}/>);
|
|
|
}else if(viewType === 'line') {
|
|
|
configForm = (<LineConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<EchartsView />);
|
|
|
+ chartView = (<EchartsView contentSize={contentSize}/>);
|
|
|
}else if(viewType === 'bar') {
|
|
|
configForm = (<BarConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<EchartsView />);
|
|
|
+ chartView = (<EchartsView contentSize={contentSize}/>);
|
|
|
}else if(viewType === 'pie') {
|
|
|
configForm = (<PieConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<EchartsView />);
|
|
|
+ chartView = (<EchartsView contentSize={contentSize}/>);
|
|
|
}else if(viewType === 'scatter') {
|
|
|
configForm = (<ScatterConfigForm autoRefresh={autoRefresh} formItemLayout={formItemLayout}/>);
|
|
|
- chartView = (<EchartsView />);
|
|
|
+ chartView = (<EchartsView contentSize={contentSize}/>);
|
|
|
}
|
|
|
|
|
|
return (
|
|
|
@@ -97,12 +124,12 @@ class ChartDesignerContent extends React.Component {
|
|
|
</div>
|
|
|
</Footer> }
|
|
|
</Sider>
|
|
|
- <Content style={{ overflow: 'hidden' }}>
|
|
|
+ <Content className='view-content' >
|
|
|
<Layout>
|
|
|
<Header className='content-header'>
|
|
|
<ToolBar className='header-toolbar' autoRefresh={autoRefresh} />
|
|
|
</Header>
|
|
|
- <Content style={{ overflow: 'auto' }}>
|
|
|
+ <Content className='content-body' ref='contentEl' >
|
|
|
{ chartView }
|
|
|
</Content>
|
|
|
</Layout>
|