提交 f8f9b634 编写于 作者: S sushuang

Fix target series duplicate in task.

上级 1896f720
import * as echarts from '../../echarts';
import {createHashMap, each} from 'zrender/src/core/util';
echarts.registerProcessor({
getTargetSeries: function (ecModel) {
var seriesModels = [];
var seriesModelMap = createHashMap();
ecModel.eachComponent('dataZoom', function (dataZoomModel) {
dataZoomModel.eachTargetAxis(function (dimNames, axisIndex, dataZoomModel) {
var axisProxy = dataZoomModel.getAxisProxy(dimNames.name, axisIndex);
seriesModels = seriesModels.concat(axisProxy.getTargetSeriesModels());
each(axisProxy.getTargetSeriesModels(), function (seriesModel) {
seriesModelMap.set(seriesModel.uid, seriesModel);
});
});
});
return seriesModels;
return seriesModelMap;
},
// Consider appendData, where filter should be performed. Because data process is
// in block mode currently, it is not need to worry about that the overallProgress
// execute every frame.
......
......@@ -243,7 +243,7 @@ function createSeriesStageTask(scheduler, stageHandler, stageHandlerRecord, ecMo
ecModel.eachRawSeriesByType(seriesType, create);
}
else if (getTargetSeries) {
each(getTargetSeries(ecModel, api), create);
getTargetSeries(ecModel, api).each(create);
}
function create(seriesModel) {
......@@ -311,7 +311,7 @@ function createOverallStageTask(scheduler, stageHandler, stageHandlerRecord, ecM
ecModel.eachRawSeriesByType(seriesType, createStub);
}
else if (getTargetSeries) {
each(getTargetSeries(ecModel, api), createStub);
getTargetSeries(ecModel, api).each(createStub);
}
// Otherwise, (usually it is legancy case), the overall task will only be
// executed when upstream dirty. Otherwise the progressive rendering of all
......@@ -442,12 +442,6 @@ function seriesTaskReset(context, upstreamContext) {
));
unmountTaskMethods(this);
if (resetDefines.length) {
// ???! temp experiment
// if (resetDefines[0].filter) {
// context.model.setData(
// context.outputData = context.data.cloneShallow()
// );
// }
return seriesTaskProgress;
}
}
......@@ -467,11 +461,6 @@ function seriesTaskProgress(params, context) {
else if (resetDefine && resetDefine.progress) {
resetDefine.progress(params, data);
}
// else if (resetDefine && resetDefine.filter) {
// ???! temp experiment
// if (k !== 0) {throw new Error();}
// return context.data.filterTo(params, context.outputData, resetDefine.filter);
// }
}
unmountTaskMethods(this);
}
......
......@@ -132,7 +132,7 @@ taskProto.unfinished = function () {
*/
taskProto.pipe = function (downTask) {
if (__DEV__) {
assert(downTask && !downTask._disposed);
assert(downTask && !downTask._disposed && downTask !== this);
}
// If already downstream, do not dirty downTask.
......
// Pick color from palette for each data item.
// Applicable for charts that require applying color palette
// in data level (like pie, funnel, chord).
import {createHashMap} from 'zrender/src/core/util';
export default function (seriesType) {
return {
getTargetSeries: function (ecModel) {
// Pie and funnel may use diferrent scope
var paletteScope = {};
var seiresModels = [];
var seiresModelMap = createHashMap();
ecModel.eachSeriesByType(seriesType, function (seriesModel) {
seriesModel.__paletteScope = paletteScope;
seiresModels.push(seriesModel);
seiresModelMap.set(seriesModel.uid, seriesModel);
});
return seiresModels;
return seiresModelMap;
},
reset: function (seriesModel, ecModel) {
var dataAll = seriesModel.getRawData();
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册