echarts-for-react
Version:
baidu Echarts(v3.0) components for react
127 lines (124 loc) • 4.7 kB
JSX
import React from 'react';
import ReactEcharts from '../lib/echarts-for-react';
const ChartAPIComponent = React.createClass({
propTypes: {
},
getOtion: function() {
const option = {
title: {
text: '漏斗图',
subtext: '纯属虚构'
},
tooltip: {
trigger: 'item',
formatter: "{a} <br/>{b} : {c}%"
},
toolbox: {
feature: {
dataView: {readOnly: false},
restore: {},
saveAsImage: {}
}
},
legend: {
data: ['展现','点击','访问','咨询','订单']
},
series: [
{
name: '预期',
type: 'funnel',
left: '10%',
width: '80%',
label: {
normal: {
formatter: '{b}预期'
},
emphasis: {
position:'inside',
formatter: '{b}预期: {c}%'
}
},
labelLine: {
normal: {
show: false
}
},
itemStyle: {
normal: {
opacity: 0.7
}
},
data: [
{value: 60, name: '访问'},
{value: 40, name: '咨询'},
{value: 20, name: '订单'},
{value: 80, name: '点击'},
{value: 100, name: '展现'}
]
},
{
name: '实际',
type: 'funnel',
left: '10%',
width: '80%',
maxSize: '80%',
label: {
normal: {
position: 'inside',
formatter: '{c}%',
textStyle: {
color: '#fff'
}
},
emphasis: {
position:'inside',
formatter: '{b}实际: {c}%'
}
},
itemStyle: {
normal: {
opacity: 0.5,
borderColor: '#fff',
borderWidth: 2
}
},
data: [
{value: 30, name: '访问'},
{value: 10, name: '咨询'},
{value: 5, name: '订单'},
{value: 50, name: '点击'},
{value: 80, name: '展现'}
]
}
]
};
return option;
},
clickBtn: function() {
window.open(this.refs.echarts_react.getEchartsInstance().getDataURL(), '_blank');
},
render: function() {
let code = "<ReactEcharts ref='echartsInstance' \n" +
" option={this.getOtion()} /> \n" +
"\n" +
"// use echarts API: http://echarts.baidu.com/api.html#echartsInstance" +
"this.refs.echarts_react.getEchartsInstance().getDataURL();";
return (
<div className='examples'>
<div className='parent'>
<label> use echarts API With <strong> getEchartsInstance() </strong>: (the API will return the echarts instance, then you can use any API of echarts.)</label>
<ReactEcharts ref='echarts_react'
option={this.getOtion()} />
<div>
<button className='a_line' onClick={this.clickBtn}>click here to get the DataURL of chart.</button>
</div>
<label> code below: (echarts API list see: http://echarts.baidu.com/api.html#echartsInstance)</label>
<pre>
<code>{code}</code>
</pre>
</div>
</div>
);
}
});
export default ChartAPIComponent;