112 lines
2.7 KiB
JavaScript
112 lines
2.7 KiB
JavaScript
'use strict';
|
|
|
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
|
|
var utilsLite = require('utils-lite');
|
|
require('echarts/lib/chart/tree');
|
|
var Core = _interopDefault(require('./core'));
|
|
|
|
var _extends = Object.assign || function (target) {
|
|
for (var i = 1; i < arguments.length; i++) {
|
|
var source = arguments[i];
|
|
|
|
for (var key in source) {
|
|
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
target[key] = source[key];
|
|
}
|
|
}
|
|
}
|
|
|
|
return target;
|
|
};
|
|
|
|
function getTreeLegend(args) {
|
|
var dimension = args.dimension,
|
|
rows = args.rows;
|
|
|
|
var result = rows.map(function (row) {
|
|
return row[dimension];
|
|
});
|
|
return { data: result };
|
|
}
|
|
|
|
function getTreeTooltip(args) {
|
|
var tooltipFormatter = args.tooltipFormatter;
|
|
|
|
|
|
return {
|
|
trigger: 'item',
|
|
triggerOn: 'mousemove',
|
|
formatter: tooltipFormatter
|
|
};
|
|
}
|
|
|
|
function getTreeSeries(args) {
|
|
var dimension = args.dimension,
|
|
metrics = args.metrics,
|
|
rows = args.rows,
|
|
seriesMap = args.seriesMap;
|
|
|
|
|
|
var series = [];
|
|
rows.forEach(function (row) {
|
|
var label = row[dimension];
|
|
var seriesItem = seriesMap[label];
|
|
var result = {
|
|
type: 'tree',
|
|
name: row[dimension],
|
|
data: row[metrics]
|
|
};
|
|
if (seriesMap[row[dimension]]) {
|
|
Object.keys(seriesItem).forEach(function (key) {
|
|
if (utilsLite.isObject(result[key])) {
|
|
_extends(result[key], seriesItem[key]);
|
|
} else {
|
|
result[key] = seriesItem[key];
|
|
}
|
|
});
|
|
}
|
|
series.push(result);
|
|
});
|
|
|
|
return series;
|
|
}
|
|
|
|
var tree$1 = function tree$$1(columns, rows, settings, extra) {
|
|
var _settings$dimension = settings.dimension,
|
|
dimension = _settings$dimension === undefined ? columns[0] : _settings$dimension,
|
|
_settings$metrics = settings.metrics,
|
|
metrics = _settings$metrics === undefined ? columns[1] : _settings$metrics,
|
|
_settings$seriesMap = settings.seriesMap,
|
|
seriesMap = _settings$seriesMap === undefined ? {} : _settings$seriesMap;
|
|
var legendVisible = extra.legendVisible,
|
|
tooltipFormatter = extra.tooltipFormatter,
|
|
tooltipVisible = extra.tooltipVisible;
|
|
|
|
|
|
var series = getTreeSeries({
|
|
dimension: dimension,
|
|
metrics: metrics,
|
|
rows: rows,
|
|
seriesMap: seriesMap
|
|
});
|
|
var legend = legendVisible && rows.length > 1 && getTreeLegend({
|
|
dimension: dimension,
|
|
rows: rows
|
|
});
|
|
var tooltip = tooltipVisible && getTreeTooltip({
|
|
tooltipFormatter: tooltipFormatter
|
|
});
|
|
return { series: series, legend: legend, tooltip: tooltip };
|
|
};
|
|
|
|
var index = _extends({}, Core, {
|
|
name: 'VeTree',
|
|
data: function data() {
|
|
this.chartHandler = tree$1;
|
|
return {};
|
|
}
|
|
});
|
|
|
|
module.exports = index;
|