Skip to content

Commit 187564b

Browse files
committed
Add prop "highlightSelectedNode" to highlight selected item. closed #19
1 parent 13c7e39 commit 187564b

File tree

4 files changed

+32
-15
lines changed

4 files changed

+32
-15
lines changed

example/App.vue

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,12 @@
5454
<input type="checkbox" v-model="showDoubleQuotes">
5555
</div>
5656
<div>
57-
<label>showMouseOver</label>
58-
<input type="checkbox" v-model="showMouseOver">
57+
<label>highlightMouseoverNode</label>
58+
<input type="checkbox" v-model="highlightMouseoverNode">
59+
</div>
60+
<div>
61+
<label>highlightSelectedNode</label>
62+
<input type="checkbox" v-model="highlightSelectedNode">
5963
</div>
6064
<div>
6165
<label>deep</label>
@@ -80,7 +84,8 @@
8084
:path="path"
8185
:deep="deep"
8286
:show-double-quotes="showDoubleQuotes"
83-
:show-mouse-over="showMouseOver"
87+
:highlight-mouseover-node="highlightMouseoverNode"
88+
:highlight-selected-node="highlightSelectedNode"
8489
:show-length="showLength"
8590
:select-on-click-node="selectOnClickNode"
8691
v-model="value"
@@ -131,7 +136,8 @@ export default {
131136
showSelectController: true,
132137
showLength: true,
133138
showDoubleQuotes: true,
134-
showMouseOver: true,
139+
highlightMouseoverNode: true,
140+
highlightSelectedNode: true,
135141
selectOnClickNode: true,
136142
path: 'res',
137143
deep: 4,
@@ -148,7 +154,7 @@ export default {
148154
if (newVal === 'single') {
149155
this.value = 'res.error'
150156
} else if (newVal === 'multiple') {
151-
this.value = ['res', 'res.error']
157+
this.value = ['res.error', 'res.data[0].title']
152158
}
153159
// 重新渲染, 因为2中情况的v-model格式不同
154160
this.$nextTick(() => {

src/assets/less/tree.less

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,10 @@
2323
background-color: @highlight-bg-color;
2424
}
2525

26+
&.is-highlight-selected {
27+
background-color: darken(@highlight-bg-color, 5%);
28+
}
29+
2630
.@{css-prefix}-tree__content {
2731
padding-left: @content-padding;
2832
border-left: 1px dotted @border-color;

src/assets/less/var.less

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
@css-prefix: vjs;
33

44
/* theme color */
5-
@color-primary: #20a0ff;
5+
@color-primary: #1890ff;
66
@color-info: #1d8ce0;
77
@color-error: #ff4949;
88
@color-success: #13ce66;
@@ -14,7 +14,7 @@
1414
@color-null: @color-error;
1515

1616
/* highlight */
17-
@highlight-bg-color: #eee;
17+
@highlight-bg-color: #e6f7ff;
1818

1919
/* common border-color */
2020
@border-color: #bfcbd9;

src/components/app.vue

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
'is-root': currentDeep === 1,
77
'is-selectable': selectable,
88
'is-selected': isSelected,
9+
'is-highlight-selected': isSelected && highlightSelectedNode,
910
'is-mouseover': isMouseover
1011
}"
1112
@click.stop="handleClick($event, 'tree')"
@@ -39,7 +40,8 @@
3940
:deep="deep"
4041
:show-length="showLength"
4142
:show-double-quotes="showDoubleQuotes"
42-
:show-mouse-over="showMouseOver"
43+
:highlight-mouseover-node="highlightMouseoverNode"
44+
:highlight-selected-node="highlightSelectedNode"
4345
:path="path + (Array.isArray(data) ? `[${key}]` : `.${key}`)"
4446
:path-selectable="pathSelectable"
4547
:selectable-type="selectableType"
@@ -108,11 +110,6 @@
108110
type: Boolean,
109111
default: true
110112
},
111-
// 是否展示鼠标悬浮效果
112-
showMouseOver: {
113-
type: Boolean,
114-
default: false
115-
},
116113
// 数据层级顶级路径
117114
path: {
118115
type: String,
@@ -144,6 +141,16 @@
144141
type: Function,
145142
default: () => true
146143
},
144+
// highlight current node when mouseover
145+
highlightMouseoverNode: {
146+
type: Boolean,
147+
default: false
148+
},
149+
// highlight current node when selected
150+
highlightSelectedNode: {
151+
type: Boolean,
152+
default: true
153+
},
147154
/* outer props */
148155
149156
/* inner props */
@@ -264,11 +271,11 @@
264271
},
265272
266273
handleMouseover () {
267-
this.showMouseOver && this.selectable && (this.isMouseover = true)
274+
this.highlightMouseoverNode && this.selectable && (this.isMouseover = true)
268275
},
269276
270277
handleMouseout () {
271-
this.showMouseOver && this.selectable && (this.isMouseover = false)
278+
this.highlightMouseoverNode && this.selectable && (this.isMouseover = false)
272279
},
273280
274281
// 是否对象

0 commit comments

Comments
 (0)