142 lines
3.9 KiB
JavaScript
142 lines
3.9 KiB
JavaScript
'use strict';
|
|
|
|
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
|
|
|
|
var utils = require('./utils');
|
|
var utilsLite = require('utils-lite');
|
|
require('echarts/lib/chart/gauge');
|
|
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 getTooltip(args) {
|
|
var tooltipFormatter = args.tooltipFormatter,
|
|
dataType = args.dataType,
|
|
digit = args.digit;
|
|
|
|
return {
|
|
formatter: function formatter(options) {
|
|
var seriesName = options.seriesName,
|
|
_options$data = options.data,
|
|
value = _options$data.value,
|
|
name = _options$data.name;
|
|
|
|
if (tooltipFormatter) {
|
|
return tooltipFormatter.apply(null, arguments);
|
|
}
|
|
var tpl = [];
|
|
tpl.push(seriesName + ': ');
|
|
tpl.push(utils.getFormated(value, dataType[seriesName], digit) + ' ' + name);
|
|
return tpl.join('');
|
|
}
|
|
};
|
|
}
|
|
|
|
function getSeries(args) {
|
|
var rows = args.rows,
|
|
dimension = args.dimension,
|
|
metrics = args.metrics,
|
|
digit = args.digit,
|
|
dataType = args.dataType,
|
|
labelMap = args.labelMap,
|
|
seriesMap = args.seriesMap,
|
|
dataName = args.dataName;
|
|
|
|
|
|
var series = rows.map(function (row) {
|
|
var label = row[dimension];
|
|
var seriesItem = seriesMap[label];
|
|
var result = {
|
|
type: 'gauge',
|
|
name: labelMap[label] != null ? labelMap[label] : label,
|
|
data: [{
|
|
name: dataName[label] || '',
|
|
value: row[metrics]
|
|
}],
|
|
detail: {
|
|
formatter: function formatter(v) {
|
|
return utils.getFormated(v, dataType[label], digit);
|
|
}
|
|
},
|
|
axisLabel: {
|
|
formatter: function formatter(v) {
|
|
return utils.getFormated(v, dataType[label], digit);
|
|
}
|
|
}
|
|
};
|
|
|
|
if (seriesItem) {
|
|
Object.keys(seriesItem).forEach(function (key) {
|
|
if (utilsLite.isObject(result[key])) {
|
|
_extends(result[key], seriesItem[key]);
|
|
} else {
|
|
result[key] = seriesItem[key];
|
|
}
|
|
});
|
|
}
|
|
|
|
return result;
|
|
});
|
|
|
|
return series;
|
|
}
|
|
|
|
var gauge$1 = function gauge$$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$digit = settings.digit,
|
|
digit = _settings$digit === undefined ? 2 : _settings$digit,
|
|
_settings$dataType = settings.dataType,
|
|
dataType = _settings$dataType === undefined ? {} : _settings$dataType,
|
|
_settings$labelMap = settings.labelMap,
|
|
labelMap = _settings$labelMap === undefined ? {} : _settings$labelMap,
|
|
_settings$seriesMap = settings.seriesMap,
|
|
seriesMap = _settings$seriesMap === undefined ? {} : _settings$seriesMap,
|
|
_settings$dataName = settings.dataName,
|
|
dataName = _settings$dataName === undefined ? {} : _settings$dataName;
|
|
var tooltipFormatter = extra.tooltipFormatter,
|
|
tooltipVisible = extra.tooltipVisible;
|
|
|
|
|
|
var tooltip = tooltipVisible && getTooltip({
|
|
tooltipFormatter: tooltipFormatter,
|
|
dataType: dataType
|
|
});
|
|
|
|
var series = getSeries({
|
|
rows: rows,
|
|
dimension: dimension,
|
|
metrics: metrics,
|
|
digit: digit,
|
|
dataType: dataType,
|
|
labelMap: labelMap,
|
|
seriesMap: seriesMap,
|
|
dataName: dataName
|
|
});
|
|
return { tooltip: tooltip, series: series };
|
|
};
|
|
|
|
var index = _extends({}, Core, {
|
|
name: 'VeGauge',
|
|
data: function data() {
|
|
this.chartHandler = gauge$1;
|
|
return {};
|
|
}
|
|
});
|
|
|
|
module.exports = index;
|