按钮 Button
通过点击发起一个命令或操作。
基础用法
按钮支持 5 中基础类型,分别是 normal - 常规(默认),primary - 主要,plain - 线框,dashed - 虚线,text - 文本。
<template>
<bp-space size="mini">
<bp-button type="normal" status="primary">Normal</bp-button>
<bp-button type="primary" status="primary">Primary</bp-button>
<bp-button type="plain" status="primary">Plain</bp-button>
<bp-button type="dashed" status="primary">Dashed</bp-button>
<bp-button type="text" status="primary">Text</bp-button>
</bp-space>
</template>
按钮尺寸
你可以根据不同使用场景选择合适尺寸的按钮,分别有 large - 大型,normal - 常规(默认),small - 小型,mini - 迷你。
<template>
<bp-space size="mini">
<bp-button size="large" type="primary" status="primary">Large</bp-button>
<bp-button size="normal" type="primary" status="primary">Normal</bp-button>
<bp-button size="small" type="primary" status="primary">Small</bp-button>
<bp-button size="mini" type="primary" status="primary">Mini</bp-button>
</bp-space>
</template>按钮形状
通过 shape 属性控制 square - 矩形,round - 圆角,circle - 圆形等 3 个按钮形状。
<template>
<bp-space size="mini">
<bp-button shape="square" type="plain" status="primary">Square</bp-button>
<bp-button shape="round" type="plain" status="primary">Round</bp-button>
<bp-button :icon="IconAddLine" type="plain" shape="round" status="primary"></bp-button>
<bp-button shape="circle" type="plain" :icon="IconSearch2Line" status="primary"></bp-button>
</bp-space>
</template>
<script setup lang="ts">
import { IconAddLine, IconSearch2Line } from "birdpaper-icon";
</script>
按钮状态
一共有 5 种按钮状态,它们通过status 属性控制,分别是normal - 普通,primary - 主要,success - 成功,warning - 警告,danger - 危险。
<template>
<div class="btn-box" v-for="v in list">
<bp-space size="mini">
<bp-button type="normal" :status="v.status">{{ v.status }}</bp-button>
<bp-button type="primary" :status="v.status">{{ v.status }}</bp-button>
<bp-button type="plain" :status="v.status">{{ v.status }}</bp-button>
<bp-button type="dashed" :status="v.status">{{ v.status }}</bp-button>
<bp-button type="text" :status="v.status">{{ v.status }}</bp-button>
</bp-space>
</div>
</template>
<script setup lang="ts">
const list = [
{ status: "normal" },
{ status: "primary" },
{ status: "success" },
{ status: "warning" },
{ status: "danger" },
];
</script>
<style lang="less" scoped>
.btn-box {
&:not(:first-child) {
margin-top: 10px;
}
.bp-btn {
text-transform: capitalize;
}
}
</style>
图标按钮
通过 icon 属性可以设置按钮图标,结合恰当的按钮状态,更明确表达按钮的用意。
<template>
<bp-space size="mini">
<bp-button :icon="IconSearch2Line" type="primary" status="primary">Search</bp-button>
<bp-button :icon="IconShareFill" type="plain" status="primary">Share</bp-button>
<bp-button :icon="IconDeleteBin6Line" type="dashed" status="danger">Confirm Delete</bp-button>
<bp-button :icon="IconUploadCloud2Line" type="text" status="primary">Upload</bp-button>
</bp-space>
</template>
<script setup lang="ts">
import { IconShareFill, IconSearch2Line, IconDeleteBin6Line, IconUploadCloud2Line } from "birdpaper-icon";
</script>禁用状态
通过 disabled 属性控制按钮的禁用状态。
<template>
<bp-space size="mini">
<bp-button disabled type="primary" status="primary">Disabled</bp-button>
<bp-button disabled status="primary">Disabled</bp-button>
</bp-space>
</template>
按钮加载
通过 loading 属性控制按钮的加载状态。
<template>
<bp-space size="mini">
<bp-button loading type="primary" status="primary">loading...</bp-button>
</bp-space>
</template>按钮组
通过 bp-button-group 将多个同类型或同级按钮组合到一起
<template>
<bp-space>
<bp-button-group>
<bp-button> <i class="ri-arrow-left-s-line"></i> Prev</bp-button>
<bp-button>Next <i class="ri-arrow-right-s-line"></i></bp-button>
</bp-button-group>
<bp-button-group type="primary" status="primary">
<bp-button>More</bp-button>
<bp-button :icon="IconArrowDownSLine"></bp-button>
</bp-button-group>
<bp-button-group type="primary" block status="danger">
<bp-button :icon="IconHeart3Fill"></bp-button>
<bp-button :icon="IconStarFill"></bp-button>
<bp-button :icon="IconThumbUpFill"></bp-button>
</bp-button-group>
</bp-space>
</template>
<script setup lang="ts">
import { IconArrowDownSLine, IconHeart3Fill, IconStarFill, IconThumbUpFill } from "birdpaper-icon";
</script>
Button 属性
| type | 按钮类型 | Enum | normal |
| size | 按钮尺寸 | Enum | normal |
| shape | 按钮形状 | Enum | square |
| status | 按钮状态 | Enum | normal |
| loading | 是否加载 | Boolean | false |
| disabled | 是否禁用 | Boolean | false |
| icon | 按钮图标 | BirdpaperIcon | - |
| block | 是否撑满父级 | Boolean | false |
ButtonGroup 属性
| type | 按钮类型 | Enum | normal |
| size | 按钮尺寸 | Enum | normal |
| shape | 按钮形状 | Enum | square |
| status | 按钮状态 | Enum | normal |
| block | 是否撑满父级 | Boolean | false |
Button 事件
| click | 点击触发 | none |