blob: d2d96948fce62d4fc0ee53eefc5e058ce3642ede [file] [log] [blame]
<html>
<head>
<meta charset="utf-8">
<script src="lib/esl.js"></script>
<script src="lib/config.js"></script>
<script src="data/pie-texture.js"></script>
<script src="lib/dat.gui.min.js"></script>
<link rel="stylesheet" href="lib/reset.css" />
<script src="lib/testHelper.js"></script>
</head>
<body>
<style>
</style>
<div id="main"></div>
<div id="main2"></div>
<script>
var chart;
require([
'echarts'
// 'echarts/chart/pie',
// 'echarts/component/legend',
// 'echarts/component/grid',
// 'echarts/component/tooltip',
// 'echarts/component/toolbox'
], function (echarts) {
chart = echarts.init(document.getElementById('main'));
// Pencil sketch texture
var patternSrc = window.pieTexture;
var img = new Image();
img.src = patternSrc;
var itemStyle = {
normal: {
opacity: 0.7,
color: {
image: img,
repeat: 'repeat'
},
borderWidth: 3,
borderColor: '#235894'
// shadowBlur: 10,
// shadowOffsetX: 0,
// shadowOffsetY: 5,
// shadowColor: 'rgba(0, 0, 0, 0.4)'
}
};
chart.setOption({
legend: {
data: ['直接访问(初始就被选中)','邮件营销','联盟广告','视频广告','搜索引擎']
// data: []
},
toolbox: {
left: 'left',
feature: {
dataView: {},
saveAsImage: {}
}
},
tooltip: {},
series: [{
name: 'pie',
type: 'pie',
selectedMode: 'single',
selectedOffset: 30,
clockwise: true,
label: {
textStyle: {
fontSize: 18,
// color: '#333'
}
},
labelLine: {
lineStyle: {
color: '#333'
}
},
// emphasis: {
// labelLine: {
// lineStyle: {
// color: 'red'
// }
// },
// itemStyle: {
// }
// },
data:[
{
value:235,
name:'直接访问(初始就被选中)',
cursor: 'move',
selected: true
},
{value: 163, name: '标签在内部',
label: {
normal: {
position: 'inside'
}
}
},
{value:310, name:'邮件营销', label: {
normal: {
textStyle: { // compat
color: 'red'
},
formatter: '{abg|(居右)背景文字 }\n {b|{b}}{c|} ',
backgroundColor: 'rgba(0,0,0,0.1)',
borderColor: '#777',
borderWidth: 2,
borderRadius: 3,
rich: {
abg: {
color: '#eee',
fontSize: 14,
backgroundColor: '#333',
width: '100%',
align: 'right',
height: 22,
borderRadius: [4, 4, 0, 0] // 四角的 borderRadius
},
b: {
fontSize: 20,
lineHeight: 46
},
c: {
backgroundColor: {
image: './data/hill-Kilimanjaro.png',
},
height: 30
}
}
},
emphasis: {
}
}},
{value:234, name:'联盟广告', label: {
normal: {
textStyle: { // compat
color: 'red'
},
formatter: '{a|(居中)背景文字顺序上有些 triky}{abg|}\n {b|{b}}{c|} ',
backgroundColor: 'rgba(0,0,0,0.1)',
borderColor: '#777',
borderWidth: 2,
borderRadius: 3,
rich: {
a: {
color: '#eee',
fontSize: 14,
align: 'center'
},
abg: {
backgroundColor: '#333',
width: '100%',
align: 'right',
height: 22,
borderRadius: [4, 4, 0, 0] // 四角的 borderRadius
},
b: {
fontSize: 20,
lineHeight: 46
},
c: {
backgroundColor: {
image: './data/hill-Kilimanjaro.png',
},
height: 30
}
}
},
emphasis: {
}
}},
{value:135, name:'视频广告', label: {
normal: {
textStyle: { // compat
color: 'red'
},
formatter: '{abg|(居左)背景文字}\n {b|{b}}{c|} ',
backgroundColor: 'rgba(0,0,0,0.1)',
borderColor: '#777',
borderWidth: 2,
borderRadius: 3,
rich: {
abg: {
color: '#eee',
fontSize: 14,
backgroundColor: '#333',
width: '100%',
align: 'left',
height: 22,
borderRadius: [4, 4, 0, 0] // 四角的 borderRadius
},
b: {
fontSize: 20,
lineHeight: 46
},
c: {
backgroundColor: {
image: './data/hill-Kilimanjaro.png',
},
height: 30
}
}
},
emphasis: {
}
}},
{value:148, name:'搜索引擎', label: {
normal: {
textStyle: { // compat
color: 'red'
},
formatter: '{a|富文本:(emphasis 背景改变)}\n{hr|}\n{b|{b}}{c|}',
backgroundColor: 'rgba(0,0,0,0.1)',
borderColor: '#777',
borderWidth: 2,
padding: 5,
borderRadius: 3,
rich: {
a: {
color: '#334499',
align: 'left'
},
b: {
fontSize: 20
},
hr: {
width: '100%',
borderColor: '#999',
borderWidth: 0.5,
height: 0,
lineHeight: 15
},
c: {
backgroundColor: {
image: './data/hill-Kilimanjaro.png',
},
height: 30
}
}
},
emphasis: {
backgroundColor: 'rgba(0,0,0,0.5)',
shadowOffsetX: 5,
shadowOffsetY: 5,
shadowBlur: 5,
shadowColor: '#333'
}
}}
],
itemStyle: itemStyle
}]
});
var config = {
labelPosition: 'outside',
clockwise: true,
labelLineLen: 20,
labelLineLen2: 5
};
function update() {
chart.setOption({
series: [{
name: 'pie',
clockwise: config.clockwise,
label: {
normal: {
position: config.labelPosition
}
},
labelLine: {
normal: {
length: config.labelLineLen,
length2: config.labelLineLen2
}
}
}]
});
}
var gui = new dat.GUI();
gui.add(config, 'clockwise')
.onChange(update);
gui.add(config, 'labelPosition', ['inside', 'outside'])
.onChange(update);
gui.add(config, 'labelLineLen', 0, 100)
.onChange(update);
gui.add(config, 'labelLineLen2', 0, 100)
.onChange(update);
})
</script>
<script>
require([
'echarts'
], function (echarts) {
var option = {
legend: {},
dataset: {
source: [
{name: 'a', value: 123},
{name: 'b', value: 456},
{name: 'should be selected', value: 789, selected: true}
]
},
series: {
type: 'pie',
selectedMode: 'multiply'
}
};
testHelper.create(echarts, 'main2', {
option: option,
info: option
})
});
</script>
</body>
</html>