Commit 26b2cfa02f3c8099a8663541dcbb7c6a36ef07f6

Authored by 梁灏
1 parent d6e14b11

fixed #5377

src/components/tabs/pane.vue
... ... @@ -25,7 +25,11 @@
25 25 closable: {
26 26 type: Boolean,
27 27 default: null
28   - }
  28 + },
  29 + // Tabs 嵌套时,用 tab 区分层级,指向对应的 Tabs 的 name
  30 + tab: {
  31 + type: String
  32 + },
29 33 },
30 34 data () {
31 35 return {
... ...
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 = [];
... ...