From 4204283766e21e65a7394c4a3460ecccb98dadfc Mon Sep 17 00:00:00 2001 From: tangjinzhou <415800467@qq.com> Date: Tue, 12 Dec 2017 11:08:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- components/tabs/TabBarMixin.js | 4 +--- components/tabs/TabPane.vue | 2 +- components/tabs/Tabs.vue | 6 +++--- components/tabs/index.vue | 11 +++++++---- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/components/tabs/TabBarMixin.js b/components/tabs/TabBarMixin.js index 487373645..3b806d4fe 100644 --- a/components/tabs/TabBarMixin.js +++ b/components/tabs/TabBarMixin.js @@ -91,7 +91,7 @@ export default { const { prefixCls, onKeyDown, tabBarPosition, hideAdd, } = this - let extraContent = this.extraContent + let extraContent = this.$slots.extraContent const tabsType = this.$parent.type const cls = { [`${prefixCls}-bar`]: true, @@ -99,8 +99,6 @@ export default { const topOrBottom = (tabBarPosition === 'top' || tabBarPosition === 'bottom') const tabBarExtraContentStyle = topOrBottom ? { float: 'right' } : {} let children = contents - extraContent = typeof extraContent === 'function' ? extraContent(createElement) : extraContent - extraContent = extraContent || this.$slots.extraContent if (tabsType === 'editable-card' && !hideAdd) { extraContent = ( diff --git a/components/tabs/TabPane.vue b/components/tabs/TabPane.vue index 812c52415..8149742ae 100644 --- a/components/tabs/TabPane.vue +++ b/components/tabs/TabPane.vue @@ -12,7 +12,7 @@ export default { name: 'TabPane', props: { - tab: [String, Number, Function], + tab: [String, Number, Function, Array], disabled: Boolean, closable: Boolean, forceRender: Boolean, diff --git a/components/tabs/Tabs.vue b/components/tabs/Tabs.vue index f4a12319e..8f7103493 100644 --- a/components/tabs/Tabs.vue +++ b/components/tabs/Tabs.vue @@ -163,7 +163,7 @@ export default { if (componentOptions) { if (componentOptions.propsData.tab === undefined) { componentOptions.propsData.tab = $slots[`tab_${tabKey}`] - ? h => h('span', [$slots[`tab_${tabKey}`]]) + ? $slots[`tab_${tabKey}`] : null } panels.push({ ...componentOptions.propsData, tabKey }) @@ -195,9 +195,9 @@ export default { } const contents = [ - {$slots.tabBarExtraContent ? + {$slots.tabBarExtraContent ? : null} , {$slots.default} diff --git a/components/tabs/index.vue b/components/tabs/index.vue index 332f496b5..8a92bc637 100644 --- a/components/tabs/index.vue +++ b/components/tabs/index.vue @@ -102,18 +102,18 @@ export default { [`${prefixCls}-no-animation`]: !tabPaneAnimated, } tabBarExtraContent = tabBarExtraContent === undefined && $slots.tabBarExtraContent - ? h => h('span', [$slots.tabBarExtraContent]) - : tabBarExtraContent + ? $slots.tabBarExtraContent : tabBarExtraContent + tabBarExtraContent = typeof tabBarExtraContent === 'function' + ? tabBarExtraContent(createElement) : tabBarExtraContent $slots.default && $slots.default.forEach(({ componentOptions, key: tabKey }) => { if (componentOptions && componentOptions.propsData.tab === undefined) { componentOptions.propsData.tab = $slots[`tab_${tabKey}`] - ? h => h('span', [$slots[`tab_${tabKey}`]]) + ? $slots[`tab_${tabKey}`] : null } }) const tabBarProps = { inkBarAnimated, - extraContent: tabBarExtraContent, onTabClick, onPrevClick, onNextClick, @@ -152,6 +152,9 @@ export default { {...tabsProps} > {this.$slots.default} + {tabBarExtraContent ? : null} ) },