FxActionGroup 操作组
表格操作列按钮组。不依赖任何 UI 框架,支持仅图标 / 仅文字 / 图标+文字三种展示模式;容器宽度不足时自动将溢出操作折叠进「更多」下拉。
「更多」下拉基于 FxDropdown,固定 click 触发(hover / 右键均不触发);展开时箭头图标(svg:arrow-right-2)带旋转动画变为指向下方。「更多」按钮为 primary 色(variant="link" 为 primary 链接,variant="group" 为 primary 实心并拼接进按钮组),悬浮显示「更多」tooltip。
基础用法
通过 actions 传入操作项,点击任意操作项(含「更多」下拉中的项)触发 action 事件;操作项也可自带 onClick。type: 'danger' 项渲染为红色。
展示模式
通过 display 属性切换:icon(仅图标)/ text(仅文字)/ icon-text(图标+文字),默认 icon-text。icon 模式下未配置图标的操作项回退展示文字;悬浮仅有图标的操作项会显示 label tooltip。icon 字段支持字符串(IconString)与 VNode(h() 渲染产物)两种形态。
对齐方式
通过 align 属性设置容器内对齐:start(左对齐)/ center(居中,默认)/ end(右对齐)/ between(项间间距自动均分填满容器,「更多」恒贴右缘,gap 作为最小间距)。
按钮组形态
通过 variant="group" 切换为按钮组形态:操作项渲染为连体实心按钮(复用 FxButtonGroup 连体样式,「更多」下拉作为组尾参与拼接)。默认 link(链接按钮)。
注意:按钮组是连续整体,align="between" 在该形态下失效(按 start 处理);align 其余取值正常。
溢出折叠与自动宽度
默认自动模式:组件以 ResizeObserver 监听自身根元素宽度(在表格操作列中即随列宽变化),通过隐藏测量行量出每项宽度,动态计算可平铺数量,放不下的操作项自动收入「更多」下拉。
也可通过 max-width 指定宽度上限:数字按 px 处理,字符串原样作为 CSS max-width(如 "50%")。指定后不再依赖容器测量。
「更多」下拉中的菜单项始终展示文字(icon / icon-text 模式附带图标)。
FxActionGroup API
Attributes
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| actions | 操作项列表,见 ActionGroupItem | ActionGroupItem[] | [] |
| display | 展示模式:icon / text / icon-text | enum | icon-text |
| align | 对齐方式:start / center / end / between | enum | center |
| variant | 按钮形态:link 链接按钮 / group 按钮组(连体实心) | enum | link |
| max-width | 可用宽度上限;不传则自动跟随父容器宽度(ResizeObserver) | number / string | — |
| gap | 按钮间距(px);align="between" 时作为最小间距 | number | 4 |
| size | 尺寸,透传给操作按钮 | large / default / small | — |
Events
| 事件名 | 说明 | 类型 |
|---|---|---|
| action | 点击任一操作项时触发(含「更多」下拉中的项) | (item: ActionGroupItem) => void |
ActionGroupItem
| 属性 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| label | 操作文案 | string | — |
| icon | 图标:FxIcon 图标名(IconString,如 ep:edit、svg:edit)或 VNode(h() 渲染产物) | IconString / VNode | — |
| type | 按钮类型(颜色) | FxBtnProps['type'] | primary |
| disabled | 是否禁用 | boolean | false |
| onClick | 点击回调(同时也会派发 action 事件) | () => void | — |