44 lines
1.0 KiB
Java
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;
|
|
}
|
|
}; |