|  |  | 
|  | <!-- | 
|  | 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> | 
|  | <meta name="viewport" content="width=device-width, initial-scale=1" /> | 
|  | </head> | 
|  | <body> | 
|  | <style> | 
|  | html, body, #main { | 
|  | width: 100%; | 
|  | height: 100%; | 
|  | margin: 0; | 
|  | padding: 0; | 
|  | } | 
|  | .controller { | 
|  | position: fixed; | 
|  | top: 0; | 
|  | left: 0; | 
|  | right: 0; | 
|  | background: #fff; | 
|  | border-bottom: 1px solid #ccc; | 
|  | line-height: 30px; | 
|  | z-index: 100; | 
|  | } | 
|  | .controller label { | 
|  | margin-right: 10px; | 
|  | } | 
|  | .item-title { | 
|  | font-weight: bold; | 
|  | } | 
|  | .controller .item { | 
|  | margin-right: 20px; | 
|  | padding-right: 10px; | 
|  | border-right: 1px solid #ccc; | 
|  | } | 
|  | .tooltip-title { | 
|  | color: yellow; | 
|  | font-size: 16px; | 
|  | margin-bottom: 5px; | 
|  | } | 
|  | </style> | 
|  | <div class="controller"> | 
|  | <span class="item"> | 
|  | <span class="item-title">childrenVisibleMin:</span> | 
|  | <input type="radio" id="childrenVisibleMin-0" name="childrenVisibleMin" onclick="childrenVisibleMinChange(0);" checked="checked"/> | 
|  | <label for="childrenVisibleMin-0">0</label> | 
|  | <input type="radio" id="childrenVisibleMin-1" name="childrenVisibleMin" onclick="childrenVisibleMinChange(1000000);"/> | 
|  | <label for="childrenVisibleMin-1">1000000</label> | 
|  | </span> | 
|  | <span class="item"> | 
|  | <span class="item-title">colorMapping:</span> | 
|  | <input type="radio" id="colorMapping-0" name="colorMapping" onclick="colorMappingChange('index');" checked="checked"/> | 
|  | <label for="colorMapping-0">byIndex</label> | 
|  | <input type="radio" id="colorMapping-1" name="colorMapping" onclick="colorMappingChange('value');"/> | 
|  | <label for="colorMapping-1">byValue</label> | 
|  | </span> | 
|  | <span class="item"> | 
|  | <span class="item-title">leafDepth:</span> | 
|  | <input type="radio" id="leafDepth-0" name="leafDepth" onclick="leafDepthChange(null);" checked="checked"/> | 
|  | <label for="leafDepth-0">Not set</label> | 
|  | <input type="radio" id="leafDepth-1" name="leafDepth" onclick="leafDepthChange(1);"/> | 
|  | <label for="leafDepth-1">Set to 1</label> | 
|  | <input type="radio" id="leafDepth-2" name="leafDepth" onclick="leafDepthChange(2);"/> | 
|  | <label for="leafDepth-1">Set to 2</label> | 
|  | </span> | 
|  | </div> | 
|  |  | 
|  | <div id="main"></div> | 
|  |  | 
|  | <script src="data/disk.tree.js"></script> | 
|  |  | 
|  | <script> | 
|  |  | 
|  | var chart; | 
|  | var formatUtil; | 
|  |  | 
|  | require([ | 
|  | 'echarts' | 
|  | ], function (echarts) { | 
|  | formatUtil = echarts.format; | 
|  | initEcharts(echarts); | 
|  | }); | 
|  |  | 
|  | function childrenVisibleMinChange(value) { | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | childrenVisibleMin: value | 
|  | }] | 
|  | }); | 
|  | } | 
|  |  | 
|  | function colorMappingChange(value) { | 
|  | var levelOption = getLevelOption(value); | 
|  |  | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | levels: levelOption | 
|  | }] | 
|  | }); | 
|  | } | 
|  |  | 
|  | function leafDepthChange(value) { | 
|  | chart.setOption({ | 
|  | series: [{ | 
|  | leafDepth: value | 
|  | }] | 
|  | }); | 
|  | } | 
|  |  | 
|  | function getLevelOption(colorMapping) { | 
|  | return [ | 
|  | { | 
|  | color: ['#d14a61'], // default color | 
|  | itemStyle: { | 
|  | borderWidth: 0, | 
|  | gapWidth: 5 | 
|  | } | 
|  | }, | 
|  | { | 
|  | color: [ | 
|  | '#d14a61', '#fd9c35', | 
|  | '#675bba', '#fec42c', '#dd4444', | 
|  | '#d4df5a', '#cd4870' | 
|  | ], | 
|  | colorMappingBy: colorMapping, | 
|  | itemStyle: { | 
|  | gapWidth: 1 | 
|  | } | 
|  | }, | 
|  | { | 
|  | colorSaturation: [0.35, 0.5], | 
|  | itemStyle: { | 
|  | gapWidth: 1, | 
|  | borderColorSaturation: 0.6 | 
|  | } | 
|  | } | 
|  | ]; | 
|  | } | 
|  |  | 
|  | function initEcharts(echarts) { | 
|  | chart = echarts.init(document.getElementById('main'), null, { | 
|  |  | 
|  | }); | 
|  |  | 
|  | 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:'Disk Usage', | 
|  | type:'treemap', | 
|  | visibleMin: 300, | 
|  | // childrenVisibleMin: 500000, | 
|  | label: { | 
|  | show: true, | 
|  | formatter: '{b}' | 
|  | // normal: { | 
|  | //     textStyle: { | 
|  | //         color: 'black' | 
|  | //     } | 
|  | // } | 
|  | }, | 
|  | itemStyle: { | 
|  | normal: { | 
|  | borderColor: '#fff' | 
|  | }, | 
|  | emphasis: { | 
|  | } | 
|  | }, | 
|  | levels: getLevelOption('index'), | 
|  | data: window.disk_usage_tree | 
|  | } | 
|  | ] | 
|  | }); | 
|  |  | 
|  | chart.on('click', function (params) { | 
|  | console.log(params); | 
|  | }); | 
|  | } | 
|  |  | 
|  | </script> | 
|  | </body> | 
|  | </html> |