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