1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
| <template>
| <div class="app-container">
| <el-input v-model="filterText" placeholder="Filter keyword" style="margin-bottom:30px;" />
|
| <el-tree
| ref="tree2"
| :data="data2"
| :props="defaultProps"
| :filter-node-method="filterNode"
| class="filter-tree"
| default-expand-all
| />
| </div>
| </template>
|
| <script>
| export default {
| data() {
| return {
| filterText: '',
| data2: [
| {
| id: 1,
| label: 'Level one 1',
| children: [
| {
| id: 4,
| label: 'Level two 1-1',
| children: [
| {
| id: 9,
| label: 'Level three 1-1-1'
| },
| {
| id: 10,
| label: 'Level three 1-1-2'
| }
| ]
| }
| ]
| },
| {
| id: 2,
| label: 'Level one 2',
| children: [
| {
| id: 5,
| label: 'Level two 2-1'
| },
| {
| id: 6,
| label: 'Level two 2-2'
| }
| ]
| },
| {
| id: 3,
| label: 'Level one 3',
| children: [
| {
| id: 7,
| label: 'Level two 3-1'
| },
| {
| id: 8,
| label: 'Level two 3-2'
| }
| ]
| }
| ],
| defaultProps: {
| children: 'children',
| label: 'label'
| }
| }
| },
| watch: {
| filterText(val) {
| this.$refs.tree2.filter(val)
| }
| },
|
| methods: {
| filterNode(value, data) {
| if (!value) return true
| return data.label.indexOf(value) !== -1
| }
| }
| }
| </script>
|
|