From bfd350c0b4d60c323fdb3be7e2d78cda7883accd Mon Sep 17 00:00:00 2001 From: Jikkai Xiao Date: Fri, 22 Jun 2018 16:43:31 +0800 Subject: [PATCH 1/2] Tabs: add activeName and oldActiveName parameters to before-leave hook --- examples/docs/en-US/tabs.md | 2 +- examples/docs/es/tabs.md | 2 +- examples/docs/zh-CN/tabs.md | 2 +- packages/tabs/src/tabs.vue | 2 +- types/tabs.d.ts | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/docs/en-US/tabs.md b/examples/docs/en-US/tabs.md index 1eae67e526..78a90e655c 100644 --- a/examples/docs/en-US/tabs.md +++ b/examples/docs/en-US/tabs.md @@ -377,7 +377,7 @@ Only card type Tabs support addable & closeable. | value | name of the selected tab | string | — | name of first tab | | tab-position | position of tabs | string | top/right/bottom/left | top | | stretch | whether width of tab automatically fits its container | boolean | - | false | -| before-leave | hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented | function | — | — | +| before-leave | hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented | Function({activeName, oldActiveName}) | — | — | ### Tabs Events | Event Name | Description | Parameters | diff --git a/examples/docs/es/tabs.md b/examples/docs/es/tabs.md index 9743f44c6a..c5a9f71807 100644 --- a/examples/docs/es/tabs.md +++ b/examples/docs/es/tabs.md @@ -377,7 +377,7 @@ Solo las pestañas de tipo tarjeta soportan adición y cierre. | value | nombre de la pestaña seleccionada | string | — | nombre de la primer pestaña | | tab-position | posición de tabulación | string | top/right/bottom/left | top | | stretch | si el ancho del tab se ajusta automáticamente a su contenedor | boolean | - | false | -| before-leave | función `hook` antes de cambiar de pestaña. Si se devuelve `false` o se devuelve una `Promise` y luego se rechaza, se evitará el cambio. | function | — | — | +| before-leave | función `hook` antes de cambiar de pestaña. Si se devuelve `false` o se devuelve una `Promise` y luego se rechaza, se evitará el cambio. | Function({activeName, oldActiveName}) | — | — | ### Eventos de Pestañas | Nombre de Evento | Descripción | Parámetros | diff --git a/examples/docs/zh-CN/tabs.md b/examples/docs/zh-CN/tabs.md index 4ef3ccc614..c63a79ae81 100644 --- a/examples/docs/zh-CN/tabs.md +++ b/examples/docs/zh-CN/tabs.md @@ -375,7 +375,7 @@ | value | 绑定值,选中选项卡的 name | string | — | 第一个选项卡的 name | | tab-position | 选项卡所在位置 | string | top/right/bottom/left | top | | stretch | 标签的宽度是否自撑开 | boolean | - | false | -| before-leave | 切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换。 | function | — | — | +| before-leave | 切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换。 | Function({activeName, oldActiveName}) | — | — | ### Tabs Events | 事件名称 | 说明 | 回调参数 | diff --git a/packages/tabs/src/tabs.vue b/packages/tabs/src/tabs.vue index 2abb62a3dc..d2c7b40e38 100644 --- a/packages/tabs/src/tabs.vue +++ b/packages/tabs/src/tabs.vue @@ -74,7 +74,7 @@ this.$emit('input', value); }; if (this.currentName !== value && this.beforeLeave) { - const before = this.beforeLeave(); + const before = this.beforeLeave(this.currentName, value); if (before && before.then) { before.then(() => { changeCurrentName(); diff --git a/types/tabs.d.ts b/types/tabs.d.ts index 784b424880..fee7c1a8a7 100644 --- a/types/tabs.d.ts +++ b/types/tabs.d.ts @@ -27,5 +27,5 @@ export declare class ElTabs extends ElementUIComponent { stretch: Boolean /** Hook function before switching tab. If false or a Promise is returned and then is rejected, switching will be prevented */ - beforeLeave: () => boolean | Promise + beforeLeave: (activeName: string, oldActiveName: string) => boolean | Promise } From 164a2dde866e1efe5557094dfd30e4d608418438 Mon Sep 17 00:00:00 2001 From: Jikkai Xiao Date: Mon, 25 Jun 2018 15:39:59 +0800 Subject: [PATCH 2/2] Tabs: fix docs --- examples/docs/en-US/tabs.md | 2 +- examples/docs/es/tabs.md | 2 +- examples/docs/zh-CN/tabs.md | 2 +- packages/tabs/src/tabs.vue | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/examples/docs/en-US/tabs.md b/examples/docs/en-US/tabs.md index 78a90e655c..586cd01700 100644 --- a/examples/docs/en-US/tabs.md +++ b/examples/docs/en-US/tabs.md @@ -377,7 +377,7 @@ Only card type Tabs support addable & closeable. | value | name of the selected tab | string | — | name of first tab | | tab-position | position of tabs | string | top/right/bottom/left | top | | stretch | whether width of tab automatically fits its container | boolean | - | false | -| before-leave | hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented | Function({activeName, oldActiveName}) | — | — | +| before-leave | hook function before switching tab. If `false` is returned or a `Promise` is returned and then is rejected, switching will be prevented | Function(activeName, oldActiveName) | — | — | ### Tabs Events | Event Name | Description | Parameters | diff --git a/examples/docs/es/tabs.md b/examples/docs/es/tabs.md index c5a9f71807..bafae0b3dc 100644 --- a/examples/docs/es/tabs.md +++ b/examples/docs/es/tabs.md @@ -377,7 +377,7 @@ Solo las pestañas de tipo tarjeta soportan adición y cierre. | value | nombre de la pestaña seleccionada | string | — | nombre de la primer pestaña | | tab-position | posición de tabulación | string | top/right/bottom/left | top | | stretch | si el ancho del tab se ajusta automáticamente a su contenedor | boolean | - | false | -| before-leave | función `hook` antes de cambiar de pestaña. Si se devuelve `false` o se devuelve una `Promise` y luego se rechaza, se evitará el cambio. | Function({activeName, oldActiveName}) | — | — | +| before-leave | función `hook` antes de cambiar de pestaña. Si se devuelve `false` o se devuelve una `Promise` y luego se rechaza, se evitará el cambio. | Function(activeName, oldActiveName) | — | — | ### Eventos de Pestañas | Nombre de Evento | Descripción | Parámetros | diff --git a/examples/docs/zh-CN/tabs.md b/examples/docs/zh-CN/tabs.md index c63a79ae81..74b4b3c873 100644 --- a/examples/docs/zh-CN/tabs.md +++ b/examples/docs/zh-CN/tabs.md @@ -375,7 +375,7 @@ | value | 绑定值,选中选项卡的 name | string | — | 第一个选项卡的 name | | tab-position | 选项卡所在位置 | string | top/right/bottom/left | top | | stretch | 标签的宽度是否自撑开 | boolean | - | false | -| before-leave | 切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换。 | Function({activeName, oldActiveName}) | — | — | +| before-leave | 切换标签之前的钩子,若返回 false 或者返回 Promise 且被 reject,则阻止切换。 | Function(activeName, oldActiveName) | — | — | ### Tabs Events | 事件名称 | 说明 | 回调参数 | diff --git a/packages/tabs/src/tabs.vue b/packages/tabs/src/tabs.vue index d2c7b40e38..21429888f7 100644 --- a/packages/tabs/src/tabs.vue +++ b/packages/tabs/src/tabs.vue @@ -74,7 +74,7 @@ this.$emit('input', value); }; if (this.currentName !== value && this.beforeLeave) { - const before = this.beforeLeave(this.currentName, value); + const before = this.beforeLeave(value, this.currentName); if (before && before.then) { before.then(() => { changeCurrentName();