40 lines
1.6 KiB
JavaScript
40 lines
1.6 KiB
JavaScript
import * as echarts from 'echarts/lib/echarts';
|
|
export default function (seriesModel, dims, source) {
|
|
source = source || seriesModel.getSource();
|
|
var coordSysDimensions = dims || echarts.getCoordinateSystemDimensions(seriesModel.get('coordinateSystem')) || ['x', 'y', 'z'];
|
|
var dimensions = echarts.helper.createDimensions(source, {
|
|
dimensionsDefine: source.dimensionsDefine || seriesModel.get('dimensions'),
|
|
encodeDefine: source.encodeDefine || seriesModel.get('encode'),
|
|
coordDimensions: coordSysDimensions.map(function (dim) {
|
|
var axis3DModel = seriesModel.getReferringComponents(dim + 'Axis3D').models[0];
|
|
return {
|
|
type: axis3DModel && axis3DModel.get('type') === 'category' ? 'ordinal' : 'float',
|
|
name: dim // Find stackable dimension. Which will represent value.
|
|
// stackable: dim === 'z'
|
|
|
|
};
|
|
})
|
|
});
|
|
|
|
if (seriesModel.get('coordinateSystem') === 'cartesian3D') {
|
|
dimensions.forEach(function (dimInfo) {
|
|
if (coordSysDimensions.indexOf(dimInfo.coordDim) >= 0) {
|
|
var axis3DModel = seriesModel.getReferringComponents(dimInfo.coordDim + 'Axis3D').models[0];
|
|
|
|
if (axis3DModel && axis3DModel.get('type') === 'category') {
|
|
dimInfo.ordinalMeta = axis3DModel.getOrdinalMeta();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
var stackCalculationInfo = echarts.helper.dataStack.enableDataStack( // Only support 'z' and `byIndex` now.
|
|
seriesModel, dimensions, {
|
|
byIndex: true,
|
|
stackedCoordDimension: 'z'
|
|
});
|
|
var data = new echarts.List(dimensions, seriesModel);
|
|
data.setCalculationInfo(stackCalculationInfo);
|
|
data.initData(source);
|
|
return data;
|
|
} |