blob: 9a10d654357e570c3448956948b9825a2a02522e [file] [log] [blame]
<html>
<head>
<meta charset="utf-8">
<script src="../common/esl.js"></script>
<script src="../common/config.js"></script>
<link rel="stylesheet" href="../common/reset.css">
<link rel="stylesheet" href="../common/simpleRadio.css">
</head>
<body>
<style>
#main {
position: absolute;
left: 0;
right: 0;
bottom: 0;
top: 0;
}
.controller {
font-size: 14px;
position: fixed;
top: 0;
left: 0;
right: 0;
background: #222;
color: #ddd;
line-height: 20px;
z-index: 100;
text-align: center;
height: 32px;
line-height: 32px;
}
.controller #measures {
display: inline-block;
}
.controller .query {
display: inline-block;
margin-left: 30px;
}
.controller .query #query-input {
width: 130px;
margin-right: 10px;
background: #222;
border: 1px solid #999;
padding: 0 5px;
border-radius: 3px;
color: #fff;
}
.controller .query .query-btn {
display: inline-block;
background: #555;
height: 20px;
line-height: 20px;
padding: 0 5px;
border-radius: 3px;
cursor: pointer;
}
.tooltip-title {
color: yellow;
font-size: 16px;
margin-bottom: 5px;
}
</style>
<div class="controller">
<div id="measures"></div>
</div>
<div id="main"></div>
<script>
var chart;
var data;
var formatUtil;
var SERIES_NAME = 'Disk Usage';
require([
'data/disk-tree.json',
'common/simpleRadio',
'echarts'
], function (d, simpleRadio, echarts) {
simpleRadio.init(
document.getElementById('measures'),
[
{value: 1000000, text: '概况', selected: true},
{value: 0, text: '详情'}
],
childrenVisibleMinChange
);
data = d;
formatUtil = echarts.format;
initEcharts(echarts);
});
function childrenVisibleMinChange(value) {
chart.setOption({
series: [{
childrenVisibleMin: value
}]
});
}
function getLevelOption(colorMapping) {
return [
{
color: ['#d14a61'], // default color
itemStyle: {
normal: {
borderWidth: 0,
gapWidth: 5,
}
}
},
{
color: [
'#d14a61', '#fd9c35',
'#675bba', '#fec42c', '#dd4444',
'#d4df5a', '#cd4870'
],
colorMappingBy: colorMapping,
itemStyle: {
normal: {
gapWidth: 1
}
}
},
{
colorSaturation: [0.35, 0.5],
colorS: [0.35, 0.5],
itemStyle: {
normal: {
gapWidth: 1,
borderColorSaturation: 0.6,
borderColorS: 0.6
}
}
}
];
}
function initEcharts(echarts) {
chart = echarts.init(document.getElementById('main'), null, {
renderer: 'canvas'
});
chart.setOption({
tooltip: {
formatter: function (info) {
var value = info.value;
var treePathInfo = info.treePathInfo;
var treePath = [];
for (var i = 1; i < treePathInfo.length; i++) {
treePath.push(treePathInfo[i].name);
}
return [
'<div class="tooltip-title">' + formatUtil.encodeHTML(treePath.join('/')) + '</div>',
'Disk Usage: ' + formatUtil.addCommas(value) + ' KB',
].join('');
}
},
series: [
{
name: SERIES_NAME,
type: 'treemap',
visibleMin: 300,
childrenVisibleMin: 1000000,
label: {
show: true,
formatter: '{b}'
// normal: {
// textStyle: {
// color: 'black'
// }
// }
},
itemStyle: {
normal: {
borderColor: '#fff'
},
emphasis: {
}
},
levels: getLevelOption('byIndex'),
data: data
}
]
});
}
</script>
</body>
</html>