159 lines
5.7 KiB
HTML
Generated
159 lines
5.7 KiB
HTML
Generated
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<script src="lib/simpleRequire.js"></script>
|
|
<script src="lib/config.js"></script>
|
|
<script src="lib/dat.gui.min.js"></script>
|
|
</head>
|
|
<body>
|
|
<style>
|
|
html, body, #main {
|
|
width: 100%;
|
|
height: 100%;
|
|
margin: 0;
|
|
}
|
|
</style>
|
|
<div id="main"></div>
|
|
<script>
|
|
|
|
require([
|
|
'echarts'
|
|
], function (echarts) {
|
|
|
|
var chart = echarts.init(document.getElementById('main'), null, {
|
|
|
|
});
|
|
|
|
var itemStyle = {
|
|
normal: {
|
|
borderWidth: 0
|
|
},
|
|
emphasis: {
|
|
shadowBlur: 40,
|
|
shadowOffsetX: 0,
|
|
shadowOffsetY: 0,
|
|
shadowColor: 'rgba(0, 0, 0, 0.4)',
|
|
borderWidth: 2
|
|
}
|
|
};
|
|
|
|
chart.setOption({
|
|
aria: {
|
|
show: true
|
|
},
|
|
title : {
|
|
text: '漏斗图',
|
|
subtext: '纯属虚构'
|
|
},
|
|
tooltip : {
|
|
trigger: 'item',
|
|
formatter: '{a} <br/>{b} : {c}%'
|
|
},
|
|
legend: {
|
|
data : ['展现','点击','访问','咨询','订单']
|
|
},
|
|
series: [
|
|
{
|
|
name:'漏斗图',
|
|
type:'funnel',
|
|
gap: 3,
|
|
itemStyle: itemStyle,
|
|
left: 300,
|
|
right: 300,
|
|
sort: 'ascending',
|
|
orient: 'horizontal',
|
|
label: {
|
|
normal: {
|
|
position: 'leftTop'
|
|
}
|
|
},
|
|
data:[
|
|
{value:60, name:'访问'},
|
|
{value:40, name:'咨询'},
|
|
{value:20, name:'订单'},
|
|
{
|
|
value:80,
|
|
name:'点击',
|
|
itemStyle: {
|
|
height: '10%'
|
|
},
|
|
label: {
|
|
position: 'insideLeft'
|
|
}
|
|
},
|
|
{
|
|
value:100,
|
|
name:'展现',
|
|
itemStyle: {
|
|
height: '30%'
|
|
},
|
|
label: {
|
|
position: 'insideRight'
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|
|
});
|
|
|
|
var config = {
|
|
sort: 'ascending',
|
|
orient: 'vertical',
|
|
labelPosition: 'inside',
|
|
labelLineLen: 20
|
|
};
|
|
|
|
function update() {
|
|
chart.setOption({
|
|
series: [{
|
|
name: '漏斗图',
|
|
sort: config.sort,
|
|
orient: config.orient,
|
|
label: {
|
|
normal: {
|
|
position: config.labelPosition
|
|
}
|
|
},
|
|
labelLine: {
|
|
normal: {
|
|
length: config.labelLineLen
|
|
}
|
|
}
|
|
}]
|
|
});
|
|
}
|
|
|
|
var gui = new dat.GUI();
|
|
gui.add(config, 'sort', ['descending', 'ascending', 'none'])
|
|
.onChange(update);
|
|
gui.add(config, 'orient', ['vertical', 'horizontal'])
|
|
.onChange(update);
|
|
gui.add(config, 'labelPosition', ['inside', 'center', 'insideLeft', 'insideRight', 'left', 'right', 'top', 'bottom', 'leftTop', 'leftBottom', 'rightTop', 'rightBottom'])
|
|
.onChange(update);
|
|
gui.add(config, 'labelLineLen', 0, 100)
|
|
.onChange(update);
|
|
});
|
|
|
|
</script>
|
|
</body>
|
|
</html> |