Skip to content

Commit 6b14d50

Browse files
committed
feat: support node mouseover
1 parent 701bc80 commit 6b14d50

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed

example/SelectControl.vue

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@
9191
:show-select-controller="state.showSelectController"
9292
:show-icon="state.showIcon"
9393
@node-click="handleNodeClick"
94+
@node-mouseover="handleAll"
9495
@brackets-click="handleAll"
9596
@icon-click="handleAll"
9697
@selected-change="handleAll"

src/components/Tree/index.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,7 @@ export default defineComponent({
8080

8181
emits: [
8282
'nodeClick',
83+
'nodeMouseover',
8384
'bracketsClick',
8485
'iconClick',
8586
'selectedChange',
@@ -216,6 +217,10 @@ export default defineComponent({
216217
emit('nodeClick', node);
217218
};
218219

220+
const handleNodeMouseover = (node: NodeDataType) => {
221+
emit('nodeMouseover', node);
222+
};
223+
219224
const updateCollapsedPaths = (collapsed: boolean, path: string) => {
220225
if (collapsed) {
221226
state.hiddenPaths = {
@@ -303,6 +308,7 @@ export default defineComponent({
303308
renderNodeKey={renderNodeKey}
304309
renderNodeValue={renderNodeValue}
305310
onNodeClick={handleNodeClick}
311+
onNodeMouseover={handleNodeMouseover}
306312
onBracketsClick={handleBracketsClick}
307313
onIconClick={handleIconClick}
308314
onSelectedChange={handleSelectedChange}

src/components/TreeNode/index.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,9 @@ export const treeNodePropsPass = {
8383
onNodeClick: {
8484
type: Function as PropType<(node: NodeDataType) => void>,
8585
},
86+
onNodeMouseover: {
87+
type: Function as PropType<(node: NodeDataType) => void>,
88+
},
8689
onBracketsClick: {
8790
type: Function as PropType<(collapsed: boolean, node: NodeDataType) => void>,
8891
},
@@ -114,7 +117,7 @@ export default defineComponent({
114117
},
115118
},
116119

117-
emits: ['nodeClick', 'bracketsClick', 'iconClick', 'selectedChange', 'valueChange'],
120+
emits: ['nodeClick', 'nodeMouseover', 'bracketsClick', 'iconClick', 'selectedChange', 'valueChange'],
118121

119122
setup(props, { emit }) {
120123
const dataType = computed<string>(() => getDataType(props.node.content));
@@ -189,6 +192,10 @@ export default defineComponent({
189192
}
190193
};
191194

195+
const handleNodeMouseover = () => {
196+
emit('nodeMouseover', props.node);
197+
};
198+
192199
const handleValueEdit = (e: MouseEvent) => {
193200
if (!props.editable) return;
194201
if (!state.editing) {
@@ -220,6 +227,7 @@ export default defineComponent({
220227
dark: props.theme === 'dark',
221228
}}
222229
onClick={handleNodeClick}
230+
onMouseover={handleNodeMouseover}
223231
style={props.style}
224232
>
225233
{props.showLineNumber && <span class="vjs-node-index">{node.id + 1}</span>}

0 commit comments

Comments
 (0)