mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
60 lines
1.0 KiB
JavaScript
60 lines
1.0 KiB
JavaScript
import { use } from '../utils';
|
|
import { RED, BLUE, GREEN, GRAY_DARK } from '../utils/color';
|
|
|
|
const [sfc, bem] = use('tag');
|
|
|
|
const COLOR_MAP = {
|
|
danger: RED,
|
|
primary: BLUE,
|
|
success: GREEN
|
|
};
|
|
|
|
export default sfc({
|
|
props: {
|
|
size: String,
|
|
type: String,
|
|
mark: Boolean,
|
|
color: String,
|
|
plain: Boolean,
|
|
round: Boolean,
|
|
textColor: String
|
|
},
|
|
|
|
computed: {
|
|
style() {
|
|
const color = this.color || COLOR_MAP[this.type] || GRAY_DARK;
|
|
const key = this.plain ? 'color' : 'backgroundColor';
|
|
const style = { [key]: color };
|
|
|
|
if (this.textColor) {
|
|
style.color = this.textColor;
|
|
}
|
|
|
|
return style;
|
|
}
|
|
},
|
|
|
|
render(h) {
|
|
const {
|
|
mark,
|
|
plain,
|
|
round,
|
|
size
|
|
} = this;
|
|
|
|
return (
|
|
<span
|
|
class={[
|
|
bem({ mark, plain, round, [size]: size }),
|
|
{
|
|
'van-hairline--surround': plain
|
|
}
|
|
]}
|
|
style={this.style}
|
|
>
|
|
{this.$slots.default}
|
|
</span>
|
|
);
|
|
}
|
|
});
|