fixed tabs bug when close tab

pull/177/head
baiyaaaaa 2016-09-28 15:20:50 +08:00
parent 4da56ee4d0
commit 6a42b66403
4 changed files with 14 additions and 13 deletions

View File

@ -11,6 +11,7 @@
- 修复 DatePicker 初始值是合法时间类型但无法设置成功的问题 - 修复 DatePicker 初始值是合法时间类型但无法设置成功的问题
- 修复 Pagination 的图标没有正确切换样式, #163 - 修复 Pagination 的图标没有正确切换样式, #163
- 修复 Row 组件 align 属性不生效的问题 - 修复 Row 组件 align 属性不生效的问题
- 修复 Tabs 关闭标签页时对应 Tab-panel 没有移除的问题
#### 非兼容性更新 #### 非兼容性更新
- Menu 组件的 `unique-opend` 属性修正为 `unique-opened` - Menu 组件的 `unique-opend` 属性修正为 `unique-opened`

View File

@ -27,8 +27,8 @@
```html ```html
<template> <template>
<el-tabs :active-name="activeName"> <el-tabs>
<el-tab-pane name="first" label="用户管理"></el-tab-pane> <el-tab-pane label="用户管理"></el-tab-pane>
<el-tab-pane label="配置管理"></el-tab-pane> <el-tab-pane label="配置管理"></el-tab-pane>
<el-tab-pane label="角色管理"></el-tab-pane> <el-tab-pane label="角色管理"></el-tab-pane>
<el-tab-pane label="定时任务补偿"></el-tab-pane> <el-tab-pane label="定时任务补偿"></el-tab-pane>
@ -126,7 +126,7 @@
|---------- |-------- |---------- |------------- |-------- | |---------- |-------- |---------- |------------- |-------- |
| type | 风格类型 | string | card, border-card | — | | type | 风格类型 | string | card, border-card | — |
| closable | 标签是否可关闭 | boolean | true, false | false | | closable | 标签是否可关闭 | boolean | true, false | false |
| active-name | 选中选项卡的 name | string | — | | | active-name | 选中选项卡的 name | string | — | 第一个选项卡的 name |
### Tabs Events ### Tabs Events
| 事件名称 | 说明 | 回调参数 | | 事件名称 | 说明 | 回调参数 |
@ -138,4 +138,4 @@
| 参数 | 说明 | 类型 | 可选值 | 默认值 | | 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---------- |-------- |---------- |------------- |-------- | |---------- |-------- |---------- |------------- |-------- |
| label | 选项卡标题 | string | — | — | | label | 选项卡标题 | string | — | — |
| name | 与选项卡 activeName 对应的标识符,表示选项卡别名 | string | — | 该选项卡在选项卡中的 name 值,如第一个选项卡则为'1' | | name | 与选项卡 activeName 对应的标识符,表示选项卡别名 | string | — | 该选项卡在选项卡列表中的顺序值,如第一个选项卡则为'1' |

View File

@ -33,6 +33,10 @@
} }
}, },
destroyed() {
this.$el.remove();
},
watch: { watch: {
name: { name: {
immediate: true, immediate: true,

View File

@ -29,8 +29,7 @@
watch: { watch: {
activeName: { activeName: {
handler(val) { handler(val) {
var fisrtKey = this.$children[0] && this.$children[0].key || '1'; this.currentName = val;
this.currentName = val || fisrtKey;
} }
}, },
@ -51,9 +50,8 @@
} }
if (tab.key === this.currentName) { if (tab.key === this.currentName) {
let deleteIndex = this.$children.indexOf(tab); let nextChild = this.tabs[index];
let nextChild = this.$children[deleteIndex + 1]; let prevChild = this.tabs[index - 1];
let prevChild = this.$children[deleteIndex - 1];
this.currentName = nextChild ? nextChild.key : prevChild ? prevChild.key : '-1'; this.currentName = nextChild ? nextChild.key : prevChild ? prevChild.key : '-1';
} }
@ -90,10 +88,8 @@
} }
}, },
mounted() { mounted() {
if (!this.currentName) { var fisrtKey = this.$children[0].key || '1';
var fisrtKey = this.$children[0] && this.$children[0].key || '1';
this.currentName = this.activeName || fisrtKey; this.currentName = this.activeName || fisrtKey;
}
this.$children.forEach(tab => this.tabs.push(tab)); this.$children.forEach(tab => this.tabs.push(tab));
this.$nextTick(() => this.calcBarStyle(true)); this.$nextTick(() => this.calcBarStyle(true));
} }