[bugfix] Tab: color not work in card type (#1763)

This commit is contained in:
neverland 2018-09-06 20:40:14 +08:00 committed by GitHub
parent 7f549e6519
commit 6bbecc8a90
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 45 additions and 10 deletions

View File

@ -5,7 +5,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -32,7 +32,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -75,7 +75,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -102,7 +102,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--card"> <div class="van-tabs van-tabs--card">
<div class="van-tabs__wrap"> <div class="van-tabs__wrap">
<div class="van-tabs__nav van-tabs__nav--card"> <div class="van-tabs__nav van-tabs__nav--card" style="border-color:undefined;">
<!----> <!---->
</div> </div>
</div> </div>
@ -129,7 +129,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -156,7 +156,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -183,7 +183,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>
@ -214,7 +214,7 @@ exports[`renders demo correctly 1`] = `
<div> <div>
<div class="van-tabs van-tabs--line"> <div class="van-tabs van-tabs--line">
<div class="van-tabs__wrap van-hairline--top-bottom"> <div class="van-tabs__wrap van-hairline--top-bottom">
<div class="van-tabs__nav van-tabs__nav--line"> <div class="van-tabs__nav van-tabs__nav--line" style="border-color:undefined;">
<div class="van-tabs__line"></div> <div class="van-tabs__line"></div>
</div> </div>
</div> </div>

View File

@ -8,7 +8,7 @@
{ 'van-hairline--top-bottom': type === 'line' } { 'van-hairline--top-bottom': type === 'line' }
]" ]"
> >
<div :class="b('nav', [type])" ref="nav"> <div :class="b('nav', [type])" ref="nav" :style="navStyle">
<div v-if="type === 'line'" :class="b('line')" :style="lineStyle" /> <div v-if="type === 'line'" :class="b('line')" :style="lineStyle" />
<div <div
v-for="(tab, index) in tabs" v-for="(tab, index) in tabs"
@ -18,7 +18,7 @@
'van-tab--active': index === curActive, 'van-tab--active': index === curActive,
'van-tab--disabled': tab.disabled 'van-tab--disabled': tab.disabled
}" }"
:style="{ color }" :style="getTabStyle(tab, index)"
@click="onClick(index)" @click="onClick(index)"
> >
<span class="van-ellipsis" ref="title">{{ tab.title }}</span> <span class="van-ellipsis" ref="title">{{ tab.title }}</span>
@ -109,6 +109,12 @@ export default create({
default: default:
return null; return null;
} }
},
navStyle() {
return {
borderColor: this.color
};
} }
}, },
@ -119,6 +125,10 @@ export default create({
} }
}, },
color() {
this.setLine();
},
tabs(tabs) { tabs(tabs) {
this.correctActive(this.curActive || this.active); this.correctActive(this.curActive || this.active);
this.scrollIntoView(); this.scrollIntoView();
@ -338,6 +348,27 @@ export default create({
const title = this.$refs.title[index]; const title = this.$refs.title[index];
title.parentNode.replaceChild(el, title); title.parentNode.replaceChild(el, title);
}); });
},
getTabStyle(item, index) {
const style = {};
const { color } = this;
const active = index === this.curActive;
const isCard = this.type === 'card';
if (color) {
if (!item.disabled && isCard !== active) {
style.color = color;
}
if (!item.disabled && isCard && active) {
style.backgroundColor = color;
}
if (isCard) {
style.borderColor = color;
}
}
return style;
} }
} }
}); });

View File

@ -72,6 +72,10 @@ $van-tabs-card-height: 30px;
color: $white; color: $white;
background-color: $red; background-color: $red;
} }
&--disabled {
color: $gray;
}
} }
} }
} }