From 7a737482f0692f618150818aead926a2bbb14d52 Mon Sep 17 00:00:00 2001 From: 梁灏 <admin@aresn.com> Date: Mon, 16 Jan 2017 14:36:53 +0800 Subject: [PATCH] fixed #206 --- src/components/tabs/pane.vue | 4 ++++ src/components/tabs/tabs.vue | 16 ++++++++++++++-- test/routers/tabs.vue | 19 +++++++------------ 3 files changed, 25 insertions(+), 14 deletions(-) diff --git a/src/components/tabs/pane.vue b/src/components/tabs/pane.vue index 6654acf..acc86c1 100644 --- a/src/components/tabs/pane.vue +++ b/src/components/tabs/pane.vue @@ -20,6 +20,10 @@ disabled: { type: Boolean, default: false + }, + closable: { + type: Boolean, + default: null } }, data () { diff --git a/src/components/tabs/tabs.vue b/src/components/tabs/tabs.vue index c540efb..7e085d8 100644 --- a/src/components/tabs/tabs.vue +++ b/src/components/tabs/tabs.vue @@ -9,7 +9,7 @@ <div :class="tabCls(item)" v-for="item in navList" @click="handleChange($index)"> <Icon v-if="item.icon !== ''" :type="item.icon"></Icon> {{ item.label }} - <Icon v-if="closable && type === 'card'" type="ios-close-empty" @click.stop="handleRemove($index)"></Icon> + <Icon v-if="showClose(item)" type="ios-close-empty" @click.stop="handleRemove($index)"></Icon> </div> </div> </div> @@ -125,7 +125,8 @@ label: pane.label, icon: pane.icon || '', key: pane.key || index, - disabled: pane.disabled + disabled: pane.disabled, + closable: pane.closable }); if (!pane.key) pane.key = index; if (index === 0) { @@ -199,6 +200,17 @@ } this.$emit('on-tab-remove', tab.key); this.updateNav(); + }, + showClose (item) { + if (this.type === 'card') { + if (item.closable !== null) { + return item.closable; + } else { + return this.closable; + } + } else { + return false; + } } }, watch: { diff --git a/test/routers/tabs.vue b/test/routers/tabs.vue index 62dff61..13bbac5 100644 --- a/test/routers/tabs.vue +++ b/test/routers/tabs.vue @@ -1,22 +1,17 @@ <template> - <Tabs :active-key.sync="activeKey" :animated="true"> + <Tabs active-key="key1"> <Tab-pane label="标签一" key="key1">标签一的内容</Tab-pane> <Tab-pane label="标签二" key="key2">标签二的内容</Tab-pane> <Tab-pane label="标签三" key="key3">标签三的内容</Tab-pane> </Tabs> - <i-button @click="change">change</i-button> + <Tabs type="card" > + <Tab-pane label="标签一">标签一的内容</Tab-pane> + <Tab-pane label="标签二" :closable="true">标签二的内容</Tab-pane> + <Tab-pane label="标签三">标签三的内容</Tab-pane> + </Tabs> </template> <script> export default { - data () { - return { - activeKey: 'key2' - } - }, - methods: { - change () { - this.activeKey = 'key1'; - } - } + } </script> -- libgit2 0.21.4