mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
67 lines
1.2 KiB
Vue
67 lines
1.2 KiB
Vue
|
|
<template>
|
|
<component
|
|
:is="tag"
|
|
:type="nativeType"
|
|
:disabled="disabled"
|
|
class="van-button"
|
|
:class="[
|
|
'van-button--' + type,
|
|
'van-button--' + size,
|
|
{
|
|
'van-button--disabled': disabled,
|
|
'van-button--loading': loading,
|
|
'van-button--block': block,
|
|
'van-button--bottom-action': bottomAction
|
|
}
|
|
]"
|
|
@click="onClick"
|
|
>
|
|
<loading
|
|
v-if="loading"
|
|
class="van-button__icon-loading"
|
|
type="circle"
|
|
:color="type === 'default' ? 'black' : 'white'"
|
|
/>
|
|
<span class="van-button__text">
|
|
<slot></slot>
|
|
</span>
|
|
</component>
|
|
</template>
|
|
|
|
<script>
|
|
import { create } from '../utils';
|
|
|
|
export default create({
|
|
name: 'van-button',
|
|
|
|
props: {
|
|
block: Boolean,
|
|
loading: Boolean,
|
|
disabled: Boolean,
|
|
nativeType: String,
|
|
bottomAction: Boolean,
|
|
tag: {
|
|
type: String,
|
|
default: 'button'
|
|
},
|
|
type: {
|
|
type: String,
|
|
default: 'default'
|
|
},
|
|
size: {
|
|
type: String,
|
|
default: 'normal'
|
|
}
|
|
},
|
|
|
|
methods: {
|
|
onClick(event) {
|
|
if (!this.loading && !this.disabled) {
|
|
this.$emit('click', event);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
</script>
|