Icons
概述
Icons图标选择组件,从一组候选图标中选择一个或多个图标名,常用于为菜单项、按钮等配置图标。默认附带内置图标集,也可以通过icons指定自定义候选图标。
示例
声明图标选择字段只需指定widget: 'icons':
ts
const form = document.querySelector('#form');
form.state = {
icon: configurable('', {
label: '图标',
widget: 'icons',
}),
};loading
指南
基础用法
单选模式下组件收缩为一个图标加下拉箭头,点击从下拉面板中选择;默认附带help、email、search、lock、user等内置图标:
ts
form.state = {
icon: configurable('email', {
label: '菜单图标',
widget: 'icons',
}),
};自定义候选图标
icons指定候选图标名列表,接受数组或逗号分隔的字符串。图标名来自lucide图标库,可通过builtIn: false排除内置图标集:
ts
form.state = {
icon: configurable('', {
label: '图标',
widget: 'icons',
icons: ['award', 'apple', 'alarm-clock', 'aperture', 'chart-spline'],
}),
};尺寸
size控制图标的渲染尺寸,默认24px:
ts
form.state = {
icon: configurable('', {
label: '大图标',
widget: 'icons',
size: '32px',
}),
};多选
multiple开启多选模式,此时组件满宽平铺展示所有候选图标,状态值为图标名数组(单选时为字符串):
ts
form.state = {
icons: configurable([], {
label: '功能图标',
widget: 'icons',
multiple: true,
icons: 'award,apple,alarm-clock,aperture,cassette-tape',
}),
};dropdown控制是否以下拉面板展示(false时平铺);单选始终为下拉,多选默认平铺。
属性
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
icons | string[] | string | [] | 候选图标名列表,数组或逗号分隔字符串 |
size | string | "24px" | 图标渲染尺寸 |
multiple | boolean | false | 是否多选;多选满宽展示,单选收缩为图标+箭头 |
dropdown | boolean | false | 是否以下拉面板展示(false时平铺) |
builtIn | boolean | true | 是否附带内置图标集 |
注意事项
- 图标名来自lucide图标库,可通过
registerIcons注册本地 SVG 或自定义图标源。 - 多选时状态值为图标名数组,单选时为字符串。