Commit 26b2cfa02f3c8099a8663541dcbb7c6a36ef07f6
1 parent
d6e14b11
fixed #5377
Showing
2 changed files
with
23 additions
and
2 deletions
Show diff stats
src/components/tabs/pane.vue
src/components/tabs/tabs.vue
... | ... | @@ -96,6 +96,10 @@ |
96 | 96 | default: false |
97 | 97 | }, |
98 | 98 | beforeRemove: Function, |
99 | + // Tabs 嵌套时,用 name 区分层级 | |
100 | + name: { | |
101 | + type: String | |
102 | + }, | |
99 | 103 | }, |
100 | 104 | data () { |
101 | 105 | return { |
... | ... | @@ -170,7 +174,20 @@ |
170 | 174 | methods: { |
171 | 175 | getTabs () { |
172 | 176 | // return this.$children.filter(item => item.$options.name === 'TabPane'); |
173 | - return findComponentsDownward(this, 'TabPane'); | |
177 | + const AllTabPanes = findComponentsDownward(this, 'TabPane'); | |
178 | + const TabPanes = []; | |
179 | + | |
180 | + AllTabPanes.forEach(item => { | |
181 | + if (item.tab && this.name) { | |
182 | + if (item.tab === this.name) { | |
183 | + TabPanes.push(item); | |
184 | + } | |
185 | + } else { | |
186 | + TabPanes.push(item); | |
187 | + } | |
188 | + }); | |
189 | + | |
190 | + return TabPanes; | |
174 | 191 | }, |
175 | 192 | updateNav () { |
176 | 193 | this.navList = []; | ... | ... |