This is an automated email from the ASF dual-hosted git repository. sushuang pushed a commit to branch release in repository https://gitbox.apache.org/repos/asf/incubator-echarts.git
commit 5fc79255907a3819962de391367c3450f0315e36 Author: sushuang <[email protected]> AuthorDate: Wed Sep 12 15:30:00 2018 +0800 Fix legend highlight bug brought by previous update. --- src/component/legend/LegendView.js | 25 +++++++------ test/legend.html | 73 +++++++++++++++++++++++++++++++------- 2 files changed, 75 insertions(+), 23 deletions(-) diff --git a/src/component/legend/LegendView.js b/src/component/legend/LegendView.js index 169c16b..acc6ce6 100644 --- a/src/component/legend/LegendView.js +++ b/src/component/legend/LegendView.js @@ -166,8 +166,8 @@ export default echarts.extendComponentView({ ); itemGroup.on('click', curry(dispatchSelectAction, name, api)) - .on('mouseover', curry(dispatchHighlightAction, seriesModel, null, api, excludeSeriesId)) - .on('mouseout', curry(dispatchDownplayAction, seriesModel, null, api, excludeSeriesId)); + .on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)) + .on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId)); legendDrawnMap.set(name, true); } @@ -199,9 +199,10 @@ export default echarts.extendComponentView({ // FIXME: consider different series has items with the same name. itemGroup.on('click', curry(dispatchSelectAction, name, api)) - // FIXME Should not specify the series name - .on('mouseover', curry(dispatchHighlightAction, seriesModel, name, api, excludeSeriesId)) - .on('mouseout', curry(dispatchDownplayAction, seriesModel, name, api, excludeSeriesId)); + // Should not specify the series name, consider legend controls + // more than one pie series. + .on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)) + .on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId)); legendDrawnMap.set(name, true); } @@ -211,7 +212,9 @@ export default echarts.extendComponentView({ if (__DEV__) { if (!legendDrawnMap.get(name)) { - console.warn(name + ' series not exists. Legend data should be same with series name or data name.'); + console.warn( + name + ' series not exists. Legend data should be same with series name or data name.' + ); } } }, this); @@ -254,7 +257,7 @@ export default echarts.extendComponentView({ // PENDING if (!itemIcon && symbolType // At least show one symbol, can't be all none - && ((symbolType !== legendSymbolType) || symbolType == 'none') + && ((symbolType !== legendSymbolType) || symbolType === 'none') ) { var size = itemHeight * 0.8; if (symbolType === 'none') { @@ -361,26 +364,26 @@ function dispatchSelectAction(name, api) { }); } -function dispatchHighlightAction(seriesModel, dataName, api, excludeSeriesId) { +function dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) { // If element hover will move to a hoverLayer. var el = api.getZr().storage.getDisplayList()[0]; if (!(el && el.useHoverLayer)) { api.dispatchAction({ type: 'highlight', - seriesName: seriesModel.name, + seriesName: seriesName, name: dataName, excludeSeriesId: excludeSeriesId }); } } -function dispatchDownplayAction(seriesModel, dataName, api, excludeSeriesId) { +function dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) { // If element hover will move to a hoverLayer. var el = api.getZr().storage.getDisplayList()[0]; if (!(el && el.useHoverLayer)) { api.dispatchAction({ type: 'downplay', - seriesName: seriesModel.name, + seriesName: seriesName, name: dataName, excludeSeriesId: excludeSeriesId }); diff --git a/test/legend.html b/test/legend.html index 849ac31..24e6c60 100644 --- a/test/legend.html +++ b/test/legend.html @@ -69,8 +69,10 @@ under the License. <div id="legendHoverLink"></div> + <div id="multi-pie"></div> <script> + function makeSeries(seriesCount, categoryCount) { var series = []; var legendData = []; @@ -812,17 +814,6 @@ under the License. - - - - - - - - - - - <script> var chart; @@ -875,7 +866,7 @@ under the License. ] } - chart = myChart = testHelper.create(echarts, legendHoverLink, { + chart = myChart = testHelper.create(echarts, 'legendHoverLink', { title: 'legendHoverLink is disabled on pie', option: option }); @@ -883,5 +874,63 @@ under the License. </script> + + + + + + + + + + <script> + + var chart; + var myChart; + var option; + + require([ + 'echarts'/*, 'map/js/china' */ + ], function (echarts) { + + var option = { + tooltip: { + }, + legend: { + data: ['a', 'b', 'c'] + }, + series: [ + { + name: 'AAA', + type: 'pie', + center: ['75%', '50%'], + radius: '30%', + data: [ + {name: 'a', value: 12}, + {name: 'b', value: 34}, + {name: 'c', value: 56} + ] + }, + { + name: 'BBB', + type: 'pie', + center: ['25%', '50%'], + radius: '30%', + data: [ + {name: 'a', value: 12}, + {name: 'b', value: 34}, + {name: 'c', value: 56} + ] + } + ] + } + + chart = myChart = testHelper.create(echarts, 'multi-pie', { + title: 'Hover legend, the segments of BOTH pie should be hightlighted', + option: option + }); + }); + + </script> </body> </html> \ No newline at end of file --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
