From 32c35e58f8bb162136fe4465998d6fd51296b44d Mon Sep 17 00:00:00 2001 From: sushuang Date: Wed, 16 Jan 2019 18:57:07 +0800 Subject: [PATCH] Enable triggerEvent for angleAxis label. Fix #9765 --- src/component/axis/AngleAxisView.js | 14 ++++++++++- src/component/axis/AxisBuilder.js | 26 ++++++++++----------- test/bar-polar-basic.html | 5 +++- test/ut/spec/component/helper/sliderMove.js | 14 ++++++++--- 4 files changed, 41 insertions(+), 18 deletions(-) diff --git a/src/component/axis/AngleAxisView.js b/src/component/axis/AngleAxisView.js index ae9cfc7dfc..90678b4240 100644 --- a/src/component/axis/AngleAxisView.js +++ b/src/component/axis/AngleAxisView.js @@ -21,6 +21,7 @@ import * as zrUtil from 'zrender/src/core/util'; import * as graphic from '../../util/graphic'; import Model from '../../model/Model'; import AxisView from './AxisView'; +import AxisBuilder from './AxisBuilder'; var elementList = ['axisLine', 'axisLabel', 'axisTick', 'splitLine', 'splitArea']; @@ -145,6 +146,7 @@ export default AxisView.extend({ var commonLabelModel = angleAxisModel.getModel('axisLabel'); var labelMargin = commonLabelModel.get('margin'); + var triggerEvent = angleAxisModel.get('triggerEvent'); // Use length of ticksAngles because it may remove the last tick to avoid overlapping zrUtil.each(labels, function (labelItem, idx) { @@ -167,7 +169,9 @@ export default AxisView.extend({ ); } - var textEl = new graphic.Text({silent: true}); + var textEl = new graphic.Text({ + silent: AxisBuilder.isLabelSilent(angleAxisModel) + }); this.group.add(textEl); graphic.setTextStyle(textEl.style, labelModel, { x: p[0], @@ -177,6 +181,14 @@ export default AxisView.extend({ textAlign: labelTextAlign, textVerticalAlign: labelTextVerticalAlign }); + + // Pack data for mouse event + if (triggerEvent) { + textEl.eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel); + textEl.eventData.targetType = 'axisLabel'; + textEl.eventData.value = labelItem.rawLabel; + } + }, this); }, diff --git a/src/component/axis/AxisBuilder.js b/src/component/axis/AxisBuilder.js index 76f7ec45f0..33be699021 100644 --- a/src/component/axis/AxisBuilder.js +++ b/src/component/axis/AxisBuilder.js @@ -30,15 +30,6 @@ import {shouldShowAllLabels} from '../../coord/axisHelper'; var PI = Math.PI; -function makeAxisEventDataBase(axisModel) { - var eventData = { - componentType: axisModel.mainType, - componentIndex: axisModel.componentIndex - }; - eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex; - return eventData; -} - /** * A final axis is translated and rotated from a "standard axis". * So opt.position and opt.rotation is required. @@ -354,7 +345,7 @@ var builders = { position: pos, rotation: labelLayout.rotation, - silent: isSilent(axisModel), + silent: isLabelSilent(axisModel), z2: 1, tooltip: (tooltipOpt && tooltipOpt.show) ? extend({ @@ -393,6 +384,15 @@ var builders = { }; +var makeAxisEventDataBase = AxisBuilder.makeAxisEventDataBase = function (axisModel) { + var eventData = { + componentType: axisModel.mainType, + componentIndex: axisModel.componentIndex + }; + eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex; + return eventData; +}; + /** * @public * @static @@ -470,14 +470,14 @@ function endTextLayout(opt, textPosition, textRotate, extent) { }; } -function isSilent(axisModel) { +var isLabelSilent = AxisBuilder.isLabelSilent = function (axisModel) { var tooltipOpt = axisModel.get('tooltip'); return axisModel.get('silent') // Consider mouse cursor, add these restrictions. || !( axisModel.get('triggerEvent') || (tooltipOpt && tooltipOpt.show) ); -} +}; function fixMinMaxLabelShow(axisModel, labelEls, tickEls) { if (shouldShowAllLabels(axisModel.axis)) { @@ -645,7 +645,7 @@ function buildAxisLabel(axisBuilder, axisModel, opt) { var rawCategoryData = axisModel.getCategories(true); var labelEls = []; - var silent = isSilent(axisModel); + var silent = isLabelSilent(axisModel); var triggerEvent = axisModel.get('triggerEvent'); each(labels, function (labelItem, index) { diff --git a/test/bar-polar-basic.html b/test/bar-polar-basic.html index d64b56ddb6..ee2b503032 100644 --- a/test/bar-polar-basic.html +++ b/test/bar-polar-basic.html @@ -36,6 +36,7 @@ background: #fff; } +

click axis labe should console log