ts-bigscreen-vue/node_modules/v-charts/lib/liquidfill.common.js

135 lines
3.6 KiB
JavaScript

'use strict';
function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
var utilsLite = require('utils-lite');
var utils = require('./utils');
require('echarts-liquidfill');
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 {
show: true,
formatter: function formatter(options) {
var seriesName = options.seriesName,
value = options.value;
if (tooltipFormatter) {
return tooltipFormatter.apply(null, arguments);
}
return [seriesName + ': ', utils.getFormated(value, dataType, digit)].join('');
}
};
}
function getSeries(args) {
var dimension = args.dimension,
metrics = args.metrics,
seriesMap = args.seriesMap,
rows = args.rows,
wave = args.wave;
var itemWave = wave;
var len = utilsLite.isArray(seriesMap) ? seriesMap.length : 0;
return rows.slice().map(function (item, index) {
var data = [];
var result = {
type: 'liquidFill'
};
var name = item[dimension];
var val = Number(item[metrics]);
var itemMap = {};
if (utilsLite.isArray(seriesMap)) {
itemMap = !seriesMap[index] ? seriesMap[len - 1] : seriesMap[index];
} else if (utilsLite.isObject(seriesMap[name])) {
itemMap = seriesMap[name];
}
if (utilsLite.isArray(wave) && utilsLite.isArray(wave[0])) {
itemWave = utilsLite.isArray(wave[index]) ? wave[index] : wave[wave.length - 1];
}
// 根据传入的数据(rows)和额外配置(seriesMap)的数据组合data
data.push({ value: val });
if (itemWave && itemWave.length) {
data = data.concat(itemWave.map(function (val) {
return { value: val };
}));
}
result = _extends(result, { data: data, name: name }, itemMap);
return result;
});
}
var liquidfill = function liquidfill(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,
_settings$dataType = settings.dataType,
dataType = _settings$dataType === undefined ? 'percent' : _settings$dataType,
_settings$digit = settings.digit,
digit = _settings$digit === undefined ? 2 : _settings$digit,
_settings$wave = settings.wave,
wave = _settings$wave === undefined ? [] : _settings$wave;
var tooltipVisible = extra.tooltipVisible,
tooltipFormatter = extra.tooltipFormatter;
var tooltip = tooltipVisible && getTooltip({
tooltipFormatter: tooltipFormatter,
dataType: dataType,
digit: digit
});
var series = getSeries({
rows: rows,
columns: columns,
dimension: dimension,
metrics: metrics,
seriesMap: seriesMap,
wave: wave
});
return {
tooltip: tooltip,
series: series
};
};
var index = _extends({}, Core, {
name: 'VeLiquidfill',
data: function data() {
this.chartHandler = liquidfill;
return {};
}
});
module.exports = index;