NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/@antv/g2/lib/geom/mixin/split.js
2023-09-14 14:47:11 +08:00

44 lines
1.0 KiB
Java

/**
* @fileOverview 分割数据用于处理存在 null 值的折线图、区域图
* @author dxq613@gmail.com
*/
var Util = require('../../util');
var Global = require('../../global');
module.exports = {
splitData: function splitData(data) {
var viewTheme = this.get('viewTheme') || Global;
if (!data.length) return [];
var arr = [];
var tmp = [];
var yScale = this.getYScale();
var yDim = yScale.field;
var yValue;
Util.each(data, function (obj) {
yValue = obj._origin ? obj._origin[yDim] : obj[yDim];
if (viewTheme.connectNulls) {
// 如果忽视 Null 直接连接节点,则将 value = null 的数据过滤掉
if (!Util.isNil(yValue)) {
tmp.push(obj);
}
} else {
if (Util.isArray(yValue) && Util.isNil(yValue[0]) || Util.isNil(yValue)) {
if (tmp.length) {
arr.push(tmp);
tmp = [];
}
} else {
tmp.push(obj);
}
}
});
if (tmp.length) {
arr.push(tmp);
}
return arr;
}
};