Skip to content

Commit ab3d9e4

Browse files
authored
Merge pull request apache#12022 from Zaynex/fix-themeriver
fix(themeRiver): use layer key map rather then largestLayer apache#11948
2 parents 8d3291e + 65d726e commit ab3d9e4

File tree

2 files changed

+175
-27
lines changed

2 files changed

+175
-27
lines changed

src/chart/themeRiver/ThemeRiverSeries.js

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -63,52 +63,46 @@ var ThemeRiverSeries = SeriesModel.extend({
6363
*/
6464
fixData: function (data) {
6565
var rawDataLength = data.length;
66+
/**
67+
* Make sure every layer data get the same keys.
68+
* The value index tells which layer has visited.
69+
* {
70+
* 2014/01/01: -1
71+
* }
72+
*/
73+
var timeValueKeys = {};
6674

6775
// grouped data by name
6876
var groupResult = groupData(data, function (item) {
77+
if (!timeValueKeys.hasOwnProperty(item[0])) {
78+
timeValueKeys[item[0]] = -1;
79+
}
6980
return item[2];
7081
});
7182
var layData = [];
7283
groupResult.buckets.each(function (items, key) {
7384
layData.push({name: key, dataList: items});
7485
});
75-
7686
var layerNum = layData.length;
77-
var largestLayer = -1;
78-
var index = -1;
79-
for (var i = 0; i < layerNum; ++i) {
80-
var len = layData[i].dataList.length;
81-
if (len > largestLayer) {
82-
largestLayer = len;
83-
index = i;
84-
}
85-
}
8687

8788
for (var k = 0; k < layerNum; ++k) {
88-
if (k === index) {
89-
continue;
90-
}
9189
var name = layData[k].name;
92-
for (var j = 0; j < largestLayer; ++j) {
93-
var timeValue = layData[index].dataList[j][0];
94-
var length = layData[k].dataList.length;
95-
var keyIndex = -1;
96-
for (var l = 0; l < length; ++l) {
97-
var value = layData[k].dataList[l][0];
98-
if (value === timeValue) {
99-
keyIndex = l;
100-
break;
101-
}
102-
}
103-
if (keyIndex === -1) {
90+
for (var j = 0; j < layData[k].dataList.length; ++j) {
91+
var timeValue = layData[k].dataList[j][0];
92+
timeValueKeys[timeValue] = k;
93+
}
94+
95+
for (var timeValue in timeValueKeys) {
96+
if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {
97+
timeValueKeys[timeValue] = k;
10498
data[rawDataLength] = [];
10599
data[rawDataLength][0] = timeValue;
106100
data[rawDataLength][1] = 0;
107101
data[rawDataLength][2] = name;
108102
rawDataLength++;
109-
110103
}
111104
}
105+
112106
}
113107
return data;
114108
},
@@ -293,4 +287,4 @@ var ThemeRiverSeries = SeriesModel.extend({
293287
}
294288
});
295289

296-
export default ThemeRiverSeries;
290+
export default ThemeRiverSeries;

test/themeRiver3.html

Lines changed: 154 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)