shop-wx/doc/wot-design-uni/docs/component/button.md

187 lines
13 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Button 按钮
按钮用于触发一个操作,如提交表单或打开链接。
## 基本用法
基本按钮。
```html
<wd-button>主要按钮</wd-button>
<wd-button type="success">成功按钮</wd-button>
<wd-button type="info">信息按钮</wd-button>
<wd-button type="warning">警告按钮</wd-button>
<wd-button type="error">危险按钮</wd-button>
```
## 禁用
设置 `disabled` 属性。
```html
<wd-button disabled>默认按钮</wd-button>
```
## 幽灵按钮
设置 `plain` 属性。
```html
<wd-button plain>主要按钮</wd-button>
```
## 细边框幽灵按钮
设置 `hairline` 属性。
```html
<wd-button plain hairline>主要按钮</wd-button>
```
## 按钮大小
设置 `size` ,支持 'small'、'medium'、'large',默认为 'medium'。
```html
<wd-button size="small">小号按钮</wd-button>
<wd-button size="medium">中号按钮</wd-button>
<wd-button size="large">大号按钮</wd-button>
```
## 加载中按钮
设置 `loading` 属性,让按钮处于加载中状态。加载中的按钮是禁止点击的。
```html
<wd-button loading>加载中</wd-button>
```
## 文字按钮
`type` 设置为 `text`。文字按钮不支持其他颜色。
```html
<wd-button type="text">文字按钮</wd-button>
```
## 图标按钮
`type` 设置为 `icon`,同时设置 `icon` 属性icon 为图标的类名,可以直接使用 `Icon 图标` 章节中的图标类名。
```html
<wd-button type="icon" icon="picture"></wd-button>
```
## 带图标的按钮
设置 `icon` 属性,不需要设置 `type``icon`,即可以直接使用带图标的按钮。
```html
<wd-button icon="edit-outline"></wd-button>
```
结合`classPrefix`可以使用自定义图标,参见 [Icon 自定义图标](/component/icon#自定义图标)。
```html
<wd-button classPrefix="fish" icon="kehuishouwu">可回收</wd-button>
```
## 块状按钮
设置 `block` 属性。
```html
<wd-button block>主要按钮</wd-button>
```
## 自定义样式
通过 `custom-class``custom-style` 属性可以自定义按钮的样式,这里我们使用`custom-class`给按钮添加一个 `Material Design 3` 风格的`box-shadow`。
```html
<view class="page-class">
<wd-button custom-class="custom-shadow">主要按钮</wd-button>
<wd-button type="success" custom-class="custom-shadow">成功按钮</wd-button>
<wd-button type="info" custom-class="custom-shadow">信息按钮</wd-button>
<wd-button type="warning" custom-class="custom-shadow">警告按钮</wd-button>
<wd-button type="error" custom-class="custom-shadow">危险按钮</wd-button>
</view>
```
```scss
.page-class {
:deep() {
.custom-shadow {
box-shadow: 0 3px 1px -2px rgb(0 0 0 / 20%), 0 2px 2px 0 rgb(0 0 0 / 14%), 0 1px 5px 0 rgb(0 0 0 / 12%);
}
}
}
```
## Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 | 最低版本 |
| ---------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------- | -------------------------------------------------------- | ------------ | -------- |
| type | 按钮类型 | string | primary / success / info / warning / error / text / icon | primary | - |
| round | 圆角按钮 | boolean | - | true | - |
| plain | 幽灵按钮 | boolean | - | false | - |
| hairline | 是否细边框 | boolean | - | false | - |
| loading | 加载中按钮 | boolean | - | false | - |
| block | 块状按钮 | boolean | - | false | - |
| size | 按钮尺寸 | string | small / medium / large | medium | - |
| disabled | 禁用按钮 | boolean | - | false | - |
| icon | 图标类名 | string | - | - | - |
| loading-color | 加载图标颜色 | string | - | - | - |
| open-type | 微信开放能力 | string | - | - | - |
| hover-stop-propagation | 指定是否阻止本节点的祖先节点出现点击态 | boolean | - | false | - |
| lang | 指定返回用户信息的语言zh_CN 简体中文zh_TW 繁体中文en 英文 | string | zh_CN / zh_TW | en | - |
| session-from | 会话来源open-type="contact"时有效 | string | - | - | - |
| send-message-title | 会话内消息卡片标题open-type="contact"时有效 | string | - | 当前标题 | - |
| send-message-path | 会话内消息卡片点击跳转小程序路径open-type="contact"时有效 | string | - | 当前分享路径 | - |
| send-message-img | 会话内消息卡片图片open-type="contact"时有效 | string | - | 截图 | - |
| app-parameter | 打开 APP 时,向 APP 传递的参数open-type=launchApp 时有效 | string | - | - | - |
| show-message-card | 是否显示会话内消息卡片,设置此参数为 true用户进入客服会话会在右下角显示"可能要发送的小程序"提示用户点击后可以快速发送小程序消息open-type="contact"时有效 | boolean | - | false | - |
| classPrefix | 类名前缀,用于使用自定义图标,参见[icon](/component/icon#自定义图标) | string | - | 'wd-icon' | 0.1.27 |
| button-id | 按钮的唯一标识,可用于设置隐私同意授权按钮的 id | string | - | - | 1.3.6 |
| scope | 支付宝小程序使用,当 open-type 为 getAuthorize 时有效。 | ButtonScope | `phoneNumber` / `userInfo` | - | 1.3.14 |
### ButtonOpenType 开放能力
| 属性 | 说明 |
| ------------------------- | ------------------------------------------------------------------------------------------ |
| feedback | 打开“意见反馈”页面,用户可提交反馈内容并上传日志。 |
| share | 触发用户转发 |
| getUserInfo | 获取用户信息,可以从@getuserinfo 回调中获取到用户信息 |
| contact | 打开客服会话,如果用户在会话中点击消息卡片后返回应用,可以从 @contact 回调中获得具体信息 |
| getPhoneNumber | 获取用户手机号,可以从@getphonenumber 回调中获取到用户信息 |
| getRealtimePhoneNumber | 实时获取用户手机号,可以从@getrealtimephonenumber 回调中获取到用户信息,仅微信小程序 |
| launchApp | 小程序中打开 APP可以通过 app-parameter 属性设定向 APP 传的参数 |
| openSetting | 打开授权设置页 |
| chooseAvatar | 获取用户头像,可以从@chooseavatar 回调中获取到头像信息 |
| getAuthorize | 支持小程序授权,支付宝小程序配合`scope`使用,可以实现`getPhoneNumber`和`getUserInfo`功能。 |
| lifestyle | 关注生活号,支付宝小程序 |
| contactShare | 分享到通讯录好友,支付宝小程序 |
| agreePrivacyAuthorization | 用户同意隐私协议按钮。可通过 @agreeprivacyauthorization 监听用户同意隐私协议事件。 |
## Events
| 事件名称 | 说明 | 参数 | 最低版本 |
| -------------- | ------------------------------------------------------------ | -------- | -------- |
| click | 点击事件 | `event` | - |
| getuserinfo | 获取用户信息 | `detail` | - |
| contact | 客服消息回调open-type="contact"时有效 | `detail` | - |
| getphonenumber | 获取用户手机号回调open-type=getPhoneNumber 时有效 | `detail` | - |
| getrealtimephonenumber | 实时获取用户手机号回调open-type=getRealtimePhoneNumber 时有效 | `detail` | 1.13.0 |
| error | 当使用开放能力时发生错误的回调open-type=launchApp 时有效 | `detail` | - |
| launchapp | 打开 APP 成功的回调open-type=launchApp 时有效 | `detail` | - |
| opensetting | 在打开授权设置页后回调open-type=openSetting 时有效 | `detail` | - |
| chooseavatar | 获取用户头像回调open-type=chooseAvatar 时有效 | `detail` | - |
| agreeprivacyauthorization | 用户同意隐私协议回调open-type=agreePrivacyAuthorization 时有效 | `detail` | - |
## 外部样式类
| 类名 | 说明 | 最低版本 |
| ------------ | ---------- | -------- |
| custom-class | 根节点样式 | - |