From e0a70e6a96eab940f39b05a122b8393aa207ffb9 Mon Sep 17 00:00:00 2001 From: sushuang Date: Fri, 18 Jan 2019 17:21:42 +0800 Subject: [PATCH] fix(graph): fix hover style disabled by focusNodeAdjacency --- src/chart/graph/GraphView.js | 19 +-- test/graph-simple.html | 240 ++++++++++++++++++++--------------- test/tmp-base.html | 4 +- 3 files changed, 152 insertions(+), 111 deletions(-) diff --git a/src/chart/graph/GraphView.js b/src/chart/graph/GraphView.js index 01d6f745f..27f0bd157 100644 --- a/src/chart/graph/GraphView.js +++ b/src/chart/graph/GraphView.js @@ -27,6 +27,8 @@ import {onIrrelevantElement} from '../../component/helper/cursorHelper'; import * as graphic from '../../util/graphic'; import adjustEdge from './adjustEdge'; +var FOCUS_ADJACENCY = '__focusNodeAdjacency'; +var UNFOCUS_ADJACENCY = '__unfocusNodeAdjacency'; var nodeOpacityPath = ['itemStyle', 'opacity']; var lineOpacityPath = ['lineStyle', 'opacity']; @@ -151,24 +153,23 @@ export default echarts.extendChartView({ } el.setDraggable(draggable && forceLayout); - el.off('mouseover', el.__focusNodeAdjacency); - el.off('mouseout', el.__unfocusNodeAdjacency); + el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); + el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (itemModel.get('focusNodeAdjacency')) { - el.on('mouseover', el.__focusNodeAdjacency = function () { + el.on('mouseover', el[FOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, dataIndex: el.dataIndex }); }); - el.on('mouseout', el.__unfocusNodeAdjacency = function () { + el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: seriesModel.id }); }); - } }, this); @@ -176,18 +177,18 @@ export default echarts.extendChartView({ data.graph.eachEdge(function (edge) { var el = edge.getGraphicEl(); - el.off('mouseover', el.__focusNodeAdjacency); - el.off('mouseout', el.__unfocusNodeAdjacency); + el[FOCUS_ADJACENCY] && el.off('mouseover', el[FOCUS_ADJACENCY]); + el[UNFOCUS_ADJACENCY] && el.off('mouseout', el[UNFOCUS_ADJACENCY]); if (edge.getModel().get('focusNodeAdjacency')) { - el.on('mouseover', el.__focusNodeAdjacency = function () { + el.on('mouseover', el[FOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'focusNodeAdjacency', seriesId: seriesModel.id, edgeDataIndex: edge.dataIndex }); }); - el.on('mouseout', el.__unfocusNodeAdjacency = function () { + el.on('mouseout', el[UNFOCUS_ADJACENCY] = function () { api.dispatchAction({ type: 'unfocusNodeAdjacency', seriesId: seriesModel.id diff --git a/test/graph-simple.html b/test/graph-simple.html index 0fcbe9e7e..8478a3f9b 100644 --- a/test/graph-simple.html +++ b/test/graph-simple.html @@ -24,132 +24,170 @@ under the License. + + - - hover node3, edge label should be displayed. - 节点1 should display value in tooltip. -
+ +
+
+ + \ No newline at end of file diff --git a/test/tmp-base.html b/test/tmp-base.html index fb3a3ba75..90ad91785 100644 --- a/test/tmp-base.html +++ b/test/tmp-base.html @@ -28,6 +28,7 @@ under the License. + @@ -54,7 +55,8 @@ under the License. // }); var chart = testHelper.create(echarts, 'main0', { - option: option + option: option, + // recordCanvas: true }); }); -- GitLab