From 6e70cc02ae46253215974b720a09bae737fdc58a Mon Sep 17 00:00:00 2001 From: jianghaoran116 Date: Tue, 28 Mar 2023 01:25:23 +0800 Subject: [PATCH 1/2] fix(tree): Changing selected node's linestyle doesn't work. close #18214 --- src/chart/tree/TreeView.ts | 11 ++++++++++- src/data/Tree.ts | 4 +++- src/util/states.ts | 2 ++ src/util/types.ts | 1 + 4 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/chart/tree/TreeView.ts b/src/chart/tree/TreeView.ts index bd6a4ecc6e..e34703b97c 100644 --- a/src/chart/tree/TreeView.ts +++ b/src/chart/tree/TreeView.ts @@ -514,6 +514,15 @@ function updateNode( } } }; + + // triggle edge's linestyle when select change + (symbolEl as ECElement).onElSelectedChange = function (state) { + const parentEl = node.parentNode + && data.getItemGraphicEl(node.parentNode.dataIndex); + if (parentEl) { + (symbolEl.__edge as ECElement).selected = state; + } + }; } } @@ -792,4 +801,4 @@ function getEdgeShape( }; } -export default TreeView; \ No newline at end of file +export default TreeView; diff --git a/src/data/Tree.ts b/src/data/Tree.ts index 8467084945..185c5e9073 100644 --- a/src/data/Tree.ts +++ b/src/data/Tree.ts @@ -67,6 +67,8 @@ export class TreeNode { isExpand: boolean = false; + isSelected: boolean = false; + readonly hostTree: Tree; constructor(name: string, hostTree: Tree) { @@ -485,4 +487,4 @@ function addChild(child: TreeNode, node: TreeNode) { child.parentNode = node; } -export default Tree; \ No newline at end of file +export default Tree; diff --git a/src/util/states.ts b/src/util/states.ts index 1748ef6f72..2972e0db5b 100644 --- a/src/util/states.ts +++ b/src/util/states.ts @@ -167,9 +167,11 @@ function singleLeaveBlur(el: ECElement) { function singleEnterSelect(el: ECElement) { el.selected = true; + el.onElSelectedChange && el.onElSelectedChange(true); } function singleLeaveSelect(el: ECElement) { el.selected = false; + el.onElSelectedChange && el.onElSelectedChange(false); } function updateElementState( diff --git a/src/util/types.ts b/src/util/types.ts index 6f135e83a1..3704ff0038 100644 --- a/src/util/types.ts +++ b/src/util/types.ts @@ -107,6 +107,7 @@ export interface ComponentTypeInfo { export interface ECElement extends Element { highDownSilentOnTouch?: boolean; onHoverStateChange?: (toState: DisplayState) => void; + onElSelectedChange?: (toState: boolean) => void; // 0: normal // 1: blur From f3995227cdec9bc5670543f0dd8abe1128e62ecf Mon Sep 17 00:00:00 2001 From: jianghaoran116 Date: Tue, 28 Mar 2023 04:02:30 +0800 Subject: [PATCH 2/2] fix(tree): Changing selected node's linestyle doesn't work. close #18214 --- test/tree-lineStyle.html | 124 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) create mode 100644 test/tree-lineStyle.html diff --git a/test/tree-lineStyle.html b/test/tree-lineStyle.html new file mode 100644 index 0000000000..2f70d6024b --- /dev/null +++ b/test/tree-lineStyle.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + +
+ + +