# UiType
**控件功能**:所有输入控件的基础类,提供通用的值获取、设置、重置、禁用等方法。
**类型**:普通控件
**父类控件**:`bricks.Layout`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `name` | string | 控件名称(必填) |
| `value` / `defaultvalue` | any | 默认值 |
| `required` | boolean | 是否为必填项,默认 `false` |
## 主要事件
- `changed`:当控件值发生变化时触发,携带当前控件的键值对数据。
- `blur`:失去焦点时可能被派发(由子类实现)。
---
# UiHide
**控件功能**:隐藏字段控件,用于存储不显示的数据,DOM 显示为 `display: none`。
**类型**:普通控件
**父类控件**:`UiType`
## 初始化参数
继承自 `UiType`,无额外参数。
## 主要事件
- `changed`:值变化时触发。
---
# UiStr
**控件功能**:单行文本输入框,支持对齐、长度限制、占位符等功能。
**类型**:普通控件
**父类控件**:`UiType`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `align` | string | 文本对齐方式:`left`, `center`, `right` |
| `length` | number | 最大字符数(maxlength) |
| `minlength` | number | 最小字符数(minlength) |
| `tip` | string | 提示信息(暂未使用) |
| `width` | string | 输入框宽度(如 `'200px'`) |
| `readonly` | string/boolean | 是否只读 |
| `required` | boolean | 是否必填 |
| `placeholder` | string | 占位符文本(支持国际化) |
| `css` | string | 自定义 CSS 类名 |
| `dynsize` | boolean | 是否动态调整字体大小,默认 `true` |
| `cfontsize` | number | 字体缩放比例 |
## 主要事件
- `focus`:获得焦点时触发。
- `blur`:失去焦点时触发。
- `changed`:输入内容改变且通过正则校验后触发。
- `keydown`:按下 Enter 键时会触发 blur 事件。
---
# UiPassword
**控件功能**:密码输入框,继承 `UiStr`,输入内容掩码显示。
**类型**:普通控件
**父类控件**:`UiStr`
## 初始化参数
同 `UiStr`。
## 主要事件
同 `UiStr`。
---
# UiInt
**控件功能**:整数输入框,自动限制只能输入数字,右对齐显示。
**类型**:普通控件
**父类控件**:`UiStr`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `length` | number | 输入最大位数(可选) |
## 主要事件
- `changed`:输入合法整数时触发。
- 值始终以整数形式返回(调用 `parseInt`)。
---
# UiFloat
**控件功能**:浮点数输入框,支持小数位控制和步长设置。
**类型**:普通控件
**父类控件**:`UiInt`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `dec_len` | number | 小数点后保留位数,默认为 2 |
## 主要事件
- `changed`:输入合法浮点数时触发。
- 返回值为 `parseFloat(this.value)`。
---
# UiTel
**控件功能**:电话号码输入框,使用 ``,支持自定义 pattern。
**类型**:普通控件
**父类控件**:`UiStr`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `pattern` | string | 正则表达式字符串,用于验证输入格式 |
## 主要事件
- `changed`:输入符合 pattern 时触发。
---
# UiEmail
**控件功能**:邮箱输入框,使用 ``,可附加自定义 pattern。
**类型**:普通控件
**父类控件**:`UiStr`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `pattern` | string | 可选的自定义正则验证规则 |
## 主要事件
- `changed`:输入合法邮箱格式时触发。
---
# UiFile
**控件功能**:文件上传控件,支持拖拽上传、点击选择文件,可限定文件类型和多选。
**类型**:容器控件
**父类控件**:`VBox`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `accept` | string | 接受的 MIME 类型前缀,如 `'image/'`, `'audio/'` |
| `multiple` | boolean | 是否允许多文件上传 |
| `width` | string | 容器宽度,默认 `'100%'` |
## 主要事件
- `dragenter` / `dragover` / `dragleave` / `drop`:拖拽相关事件处理高亮与文件接收。
- `changed`:选择或拖入文件后触发,传递文件对象或数组。
- `input`:原生 input change 事件监听。
---
# UiImage
**控件功能**:图像上传控件,支持拖拽、点击上传及拍照按钮,上传后预览图片。
**类型**:容器控件
**父类控件**:`UiFile`
## 初始化参数
同 `UiFile`,默认 `accept='image/'`。
## 主要事件
- `changed`:文件选择或拍照完成后触发,附带 File 对象。
- `shot`:拍照完成事件由 `SysCamera` 派发并被捕获。
---
# UiAudio
**控件功能**:音频上传控件,支持录音功能(麦克风),上传后可播放预览。
**类型**:容器控件
**父类控件**:`UiFile`
## 初始化参数
同 `UiFile`,默认 `accept='audio/'`。
## 主要事件
- `changed`:文件选择或录音完成后触发。
- `record_end`:录音结束事件由 `SysAudioRecorder` 派发。
---
# UiVideo
**控件功能**:视频上传控件,支持录制视频功能(摄像头),上传后可播放预览。
**类型**:容器控件
**父类控件**:`UiFile`
## 初始化参数
同 `UiFile`,默认 `accept='video/'`。
## 主要事件
- `changed`:文件选择或录制完成后触发。
- `record_end`:录像结束事件由 `SysVideoRecorder` 派发。
---
# UiCheck
**控件功能**:复选框控件(视觉上是图标切换),表示布尔状态(true/false)。
**类型**:普通控件
**父类控件**:`UiType`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `value` | boolean | 初始是否选中 |
## 主要事件
- `changed`:状态切换时触发,携带 `{name: true/false}` 数据。
- `state_changed`:图标状态变更事件(来自 `MultipleStateIcon`)。
---
# UiCheckBox
**控件功能**:多选/单选组控件,基于数据生成多个 `UiCheck` + 文本标签。支持静态数据或远程加载。
**类型**:容器控件
**父类控件**:`UiType`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `label` | string | 分组标题 |
| `data` | array | 静态选项列表 `[ {text:'', value:''} ]` |
| `dataurl` | string | 远程数据 URL |
| `method` | string | 请求方式,默认 GET |
| `params` | object | 请求参数 |
| `textField` | string | 显示字段名,默认 `'text'` |
| `valueField` | string | 值字段名,默认 `'value'` |
| `value` / `defaultValue` | string/array | 默认选中值(单选为字符串,多选为数组) |
> 注:若 `multicheck` 属性存在且为真,则为多选模式。
## 主要事件
- `changed`:任一选项状态变化时触发,携带 `{name: selectedValue(s)}`。
- 内部绑定 `UiCheck` 的 `changed` 事件进行值更新。
---
# UiDate
**控件功能**:日期选择器,使用原生 ``,支持最小/最大日期限制。
**类型**:普通控件
**父类控件**:`UiStr`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `max_date` | string | 最大允许日期(格式 YYYY-MM-DD) |
| `min_date` | string | 最小允许日期(格式 YYYY-MM-DD) |
## 主要事件
- `changed`:日期更改时触发。
- `blur` / `focus`:焦点事件由父类支持。
---
# UiText
**控件功能**:多行文本域(textarea),支持 Tab 缩进、回车换行、动态字体适配。
**类型**:普通控件
**父类控件**:`UiType`
## 初始化参数
| 参数 | 类型 | 说明 |
|------|------|------|
| `rows` | number | 行数,默认 5 |
| `cols` | number | 列数,默认 40 |
| `readonly` | boolean | 是否只读 |
| `required` | boolean | 是否必填 |
| `value` / `defaultvalue` | string | 默认文本内容 |
## 主要事件
- `input`:内容变化时更新内部值。
- `keydown`:拦截 Tab 和 Enter 键实现智能缩进与换行。
- `changed`:内容变化时手动派发。
---
# UiCode
**控件功能**:下拉选择框(`