[bugfix] Tab: return default active when all tabs disabled (#1926)

This commit is contained in:
neverland 2018-10-12 20:03:11 +08:00 committed by GitHub
parent 7e8cb981bc
commit 3d8a2c795f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 23 additions and 36 deletions

View File

@ -18,7 +18,7 @@
<demo-block :title="$t('title3')"> <demo-block :title="$t('title3')">
<van-tabs @disabled="onClickDisabled"> <van-tabs @disabled="onClickDisabled">
<van-tab v-for="index in 4" :title="$t('tab') + index" :disabled="index === 2" :key="index"> <van-tab v-for="index in 3" :title="$t('tab') + index" :disabled="index === 2" :key="index">
{{ $t('content') }} {{ index }} {{ $t('content') }} {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -26,7 +26,7 @@
<demo-block :title="$t('title4')"> <demo-block :title="$t('title4')">
<van-tabs type="card"> <van-tabs type="card">
<van-tab v-for="index in 4" :title="$t('tab') + index" :key="index"> <van-tab v-for="index in 3" :title="$t('tab') + index" :key="index">
{{ $t('content') }} {{ index }} {{ $t('content') }} {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -34,7 +34,7 @@
<demo-block :title="$t('title5')"> <demo-block :title="$t('title5')">
<van-tabs @click="onClick"> <van-tabs @click="onClick">
<van-tab v-for="index in 4" :title="$t('tab') + index" :key="index"> <van-tab v-for="index in 2" :title="$t('tab') + index" :key="index">
{{ $t('content') }} {{ index }} {{ $t('content') }} {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -73,7 +73,7 @@
export default { export default {
i18n: { i18n: {
'zh-CN': { 'zh-CN': {
tab: '选项 ', tab: '标签 ',
title2: '横向滚动', title2: '横向滚动',
title3: '禁用标签', title3: '禁用标签',
title4: '样式风格', title4: '样式风格',

View File

@ -49,7 +49,7 @@ You can set `disabled` attribute on the corresponding `van-tab`.
```html ```html
<van-tabs @disabled="onClickDisabled"> <van-tabs @disabled="onClickDisabled">
<van-tab v-for="index in 4" :title="'tab' + index" :disabled="index === 2"> <van-tab v-for="index in 3" :title="'tab' + index" :disabled="index === 2">
content of tab {{ index }} content of tab {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -71,7 +71,7 @@ Tabs styled as cards.
```html ```html
<van-tabs type="card"> <van-tabs type="card">
<van-tab v-for="index in 4" :title="'tab' + index"> <van-tab v-for="index in 3" :title="'tab' + index">
content of tab {{ index }} content of tab {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -81,7 +81,7 @@ Tabs styled as cards.
```html ```html
<van-tabs @click="onClick"> <van-tabs @click="onClick">
<van-tab v-for="index in 4" :title="'tab' + index"> <van-tab v-for="index in 2" :title="'tab' + index">
content of tab {{ index }} content of tab {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>

View File

@ -92,10 +92,6 @@ exports[`renders demo correctly 1`] = `
<!----> <!---->
<!----> <!---->
</div> </div>
<div class="van-tab__pane" style="display:none;">
<!---->
<!---->
</div>
</div> </div>
</div> </div>
</div> </div>
@ -119,10 +115,6 @@ exports[`renders demo correctly 1`] = `
<!----> <!---->
<!----> <!---->
</div> </div>
<div class="van-tab__pane" style="display:none;">
<!---->
<!---->
</div>
</div> </div>
</div> </div>
</div> </div>
@ -142,14 +134,6 @@ exports[`renders demo correctly 1`] = `
<!----> <!---->
<!----> <!---->
</div> </div>
<div class="van-tab__pane" style="display:none;">
<!---->
<!---->
</div>
<div class="van-tab__pane" style="display:none;">
<!---->
<!---->
</div>
</div> </div>
</div> </div>
</div> </div>
@ -194,7 +178,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<i class="van-icon van-icon-more-o" style="color:undefined;font-size:undefined;"> <i class="van-icon van-icon-more-o" style="color:undefined;font-size:undefined;">
<!----> <!---->
</i>选项 </i>标签
</div> </div>
</div> </div>
</div> </div>
@ -204,7 +188,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<i class="van-icon van-icon-more-o" style="color:undefined;font-size:undefined;"> <i class="van-icon van-icon-more-o" style="color:undefined;font-size:undefined;">
<!----> <!---->
</i>选项 </i>标签
</div> </div>
</div> </div>
</div> </div>

View File

@ -38,7 +38,7 @@ export default {
```html ```html
<van-tabs> <van-tabs>
<van-tab v-for="index in 8" :title="'选项 ' + index"> <van-tab v-for="index in 8" :title="'标签 ' + index">
内容 {{ index }} 内容 {{ index }}
</van-tab> </van-tab>
</van-tabs> </van-tabs>
@ -50,9 +50,9 @@ export default {
```html ```html
<van-tabs @disabled="onClickDisabled"> <van-tabs @disabled="onClickDisabled">
<van-tab v-for="index in 4" :title="'选项 ' + index" :disabled="index === 2"> <van-tab title="标签 1">内容 1</van-tab>
内容 {{ index }} <van-tab title="标签 2" disabled>内容 2</van-tab>
</van-tab> <van-tab title="标签 3">内容 3</van-tab>
</van-tabs> </van-tabs>
``` ```
@ -72,9 +72,9 @@ export default {
```html ```html
<van-tabs type="card"> <van-tabs type="card">
<van-tab v-for="index in 4" :title="'选项 ' + index"> <van-tab title="标签 1">内容 1</van-tab>
内容 {{ index }} <van-tab title="标签 2">内容 2</van-tab>
</van-tab> <van-tab title="标签 3">内容 3</van-tab>
</van-tabs> </van-tabs>
``` ```
@ -84,9 +84,8 @@ export default {
```html ```html
<van-tabs @click="onClick"> <van-tabs @click="onClick">
<van-tab v-for="index in 4" :title="'选项 ' + index"> <van-tab title="标签 1">内容 1</van-tab>
内容 {{ index }} <van-tab title="标签 2">内容 2</van-tab>
</van-tab>
</van-tabs> </van-tabs>
``` ```

View File

@ -288,14 +288,18 @@ export default create({
} }
}, },
findAvailableTab(index, reverse) { findAvailableTab(active, reverse) {
const diff = reverse ? -1 : 1; const diff = reverse ? -1 : 1;
let index = active;
while (index >= 0 && index < this.tabs.length) { while (index >= 0 && index < this.tabs.length) {
if (!this.tabs[index].disabled) { if (!this.tabs[index].disabled) {
return index; return index;
} }
index += diff; index += diff;
} }
return active;
}, },
// emit event when clicked // emit event when clicked