antd-mini
Version:
antd-mini 是支付宝小程序 UI 组件库,遵循 Ant Design 规范。
84 lines (62 loc) • 3.7 kB
Markdown
nav:
path: /copilot
group:
title: 表达
order: 3
toc: 'content'
# Sender 消息发送
## 何时使用
需要用户输入并发送消息时使用。支持自适应高度、发送状态、自定义插槽等功能。
## 代码示例
### 基础用法
<code src='../../copilot-demo/pages/Sender/index'></code>
## API
### 属性
| 属性 | 说明 | 类型 | 默认值 |
| ----------- | ------------ | ------- | ------------------- |
| className | 类名 | string | - |
| style | 样式 | string | - |
| value | 输入框的值 | string | - |
| placeholder | 输入框占位符 | string | '可以问我任何问题~' |
| disabled | 是否禁用 | boolean | false |
| loading | 是否发送中 | boolean | false |
### 事件
| 事件名 | 说明 | 类型 |
| --------- | ---------------------------------- | ----------------------- |
| onChange | 输入框内容变化时触发 | (value: string) => void |
| onSubmit | 点击发送按钮时触发 | (value: string) => void |
| onCancel | 点击取消按钮时触发(loading 状态下) | () => void |
| onConfirm | 点击输入法中的确认按钮时触发 | (value: string) => void |
| onFocus | 输入框聚焦时触发 | () => void |
| onBlur | 输入框失焦时触发 | () => void |
### Slots
| 名称 | 说明 |
| -------------- | ---------------------------------------------------- |
| header | 自定义头部内容,一般可用来放置输入建议和快捷功能 |
| input-header | 自定义输入框上方内容,一般可用来放置图片、引用文案等 |
| prefix | 自定义输入框前缀内容 |
| suffix | 自定义输入框后缀内容 |
| wrapper-prefix | 输入框整体左侧,一般可用来放语音输入切换按钮 |
| wrapper-suffix | 输入框整体右侧,一般可用来自定义发送按钮在输入框外部 |
| footer | 自定义底部内容,可用于承载一些快捷功能 |
### 主题定制
#### 样式变量
组件提供了下列 CSS 变量,可用于自定义样式,使用方法请参考 ConfigProvider 组件。
| 变量名 | 默认值 | 说明 |
| --------------------------- | ------------------- | ---------------------- |
| --sender-background-color | #ffffff | 输入框背景色 |
| --sender-text-color | #333333 | 输入框文本颜色 |
| --sender-placeholder-color | rgba(0, 0, 0, 0.25) | 输入框占位文字颜色 |
| --sender-send-color | #1677ff | 发送按钮颜色 |
| --sender-input-text-color | #000000 | 输入框内容文本颜色 |
| --sender-input-caret-color | #1677ff | 输入框光标颜色 |
| --sender-focus-border-color | #1677ff | 输入框聚焦时的边框颜色 |
| --sender-max-height | 192rpx | 输入框最大高度 |
## FAQ
### 1. 如何处理发送状态?
组件提供了 loading 属性和 onCancel 事件用于处理发送状态:
- loading=true 时发送按钮会显示为加载状态
- 点击加载状态的按钮会触发 onCancel 事件
- 建议在发送完成后将 loading 设为 false