[improvement] Badge: jsx (#2440)

This commit is contained in:
neverland 2019-01-05 15:44:27 +08:00 committed by GitHub
parent 1468f9e210
commit de9c7ffe0a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 28 additions and 47 deletions

View File

@ -1,13 +1,3 @@
<template>
<div
:class="b()"
class="van-hairline--top-bottom"
>
<slot />
</div>
</template>
<script>
import create from '../utils/create';
export default create({
@ -30,6 +20,13 @@ export default create({
return {
badges: []
};
},
render(h) {
return (
<div class={['van-hairline--top-bottom', this.b()]}>
{this.$slots.default}
</div>
);
}
});
</script>

View File

@ -1,30 +1,9 @@
<template>
<a
:class="[b({ select }), 'van-hairline']"
:href="url"
@click="onClick"
>
<div :class="b('text')">
{{ title }}
<van-info
:info="info"
:class="b('info')"
/>
</div>
</a>
</template>
<script>
import Info from '../info';
import create from '../utils/create';
export default create({
name: 'badge',
components: {
[Info.name]: Info
},
props: {
url: String,
info: [String, Number],
@ -50,9 +29,7 @@ export default create({
},
select() {
return (
this.parent.badges.indexOf(this) === +this.parent.activeKey
);
return this.parent.badges.indexOf(this) === +this.parent.activeKey;
}
},
@ -62,6 +39,20 @@ export default create({
this.$emit('click', index);
this.parent.$emit('change', index);
}
},
render(h) {
return (
<a
href={this.url}
class={[this.b({ select: this.select }), 'van-hairline']}
onClick={this.onClick}
>
<div class={this.b('text')}>
{this.title}
<Info info={this.info} class={this.b('info')} />
</div>
</a>
);
}
});
</script>

View File

@ -4,24 +4,17 @@ exports[`renders demo correctly 1`] = `
<div>
<div>
<div class="van-hairline--top-bottom van-badge-group"><a class="van-badge van-badge--select van-hairline">
<div class="van-badge__text">
标签名称
<div class="van-badge__text">标签名称
<!---->
</div>
</a> <a class="van-badge van-hairline">
<div class="van-badge__text">
标签名称
<div class="van-info van-badge__info">8</div>
<div class="van-badge__text">标签名称<div class="van-info van-badge__info">8</div>
</div>
</a> <a class="van-badge van-hairline">
<div class="van-badge__text">
标签名称
<div class="van-info van-badge__info">99</div>
<div class="van-badge__text">标签名称<div class="van-info van-badge__info">99</div>
</div>
</a> <a class="van-badge van-hairline">
<div class="van-badge__text">
标签名称
<div class="van-info van-badge__info">99+</div>
<div class="van-badge__text">标签名称<div class="van-info van-badge__info">99+</div>
</div>
</a></div>
</div>