提交代码
This commit is contained in:
@@ -20,6 +20,7 @@ src/components/
|
||||
├── tree/ # 树形控件组件
|
||||
├── menu/ # 菜单组件
|
||||
├── button-group/ # 按钮组件
|
||||
├── radial-toolbar/ # 径向工具栏组件
|
||||
├── collapse/ # 折叠面板组件
|
||||
├── tab/ # 标签页组件
|
||||
├── description/ # 描述列表组件
|
||||
@@ -408,6 +409,81 @@ class BimButtonGroup {
|
||||
|
||||
---
|
||||
|
||||
## RadialToolbar(径向工具栏组件)
|
||||
|
||||
### 概述
|
||||
|
||||
圆形径向菜单组件,用于替代传统线性工具栏。支持多环布局、扇形展开、hover 触发和 toggle 状态。
|
||||
|
||||
### 配置
|
||||
|
||||
```typescript
|
||||
interface RadialToolbarOptions {
|
||||
container: HTMLElement;
|
||||
items?: RadialMenuItem[];
|
||||
mainButtonIcon?: string;
|
||||
mainButtonLabel?: string;
|
||||
onMainButtonClick?: () => void;
|
||||
itemsPerRing?: number;
|
||||
closeDelay?: number;
|
||||
}
|
||||
|
||||
interface RadialMenuItem {
|
||||
id: string;
|
||||
label: string;
|
||||
/** 直接显示的文本(优先级高于 label 的国际化翻译) */
|
||||
title?: string;
|
||||
icon?: string;
|
||||
onClick?: (item: RadialMenuItem) => void;
|
||||
isToggle?: boolean;
|
||||
isActive?: boolean;
|
||||
onToggle?: (nextActive: boolean, item: RadialMenuItem) => void;
|
||||
}
|
||||
```
|
||||
|
||||
### API
|
||||
|
||||
```typescript
|
||||
class RadialToolbar {
|
||||
init(): void;
|
||||
addItem(item: RadialMenuItem): void;
|
||||
setItemActive(id: string, active: boolean): void;
|
||||
setTheme(theme: ThemeConfig): void;
|
||||
setLocales(): void;
|
||||
destroy(): void;
|
||||
}
|
||||
```
|
||||
|
||||
### 使用说明
|
||||
|
||||
- `label`:国际化键名(如 `'toolbar.home'`),SDK 内置按钮使用
|
||||
- `title`:直接显示文本,优先级高于 `label`,适合外部动态添加按钮
|
||||
- `itemsPerRing`:每环最多显示的按钮数,超出自动进入下一环
|
||||
- `isToggle`:是否为切换按钮,配合 `onToggle` 和 `setItemActive` 使用
|
||||
|
||||
### 布局说明
|
||||
|
||||
**角度计算**:按钮中心均匀分布在扇形范围内(默认 180°~270°),通过 `(index + 0.5) / count` 计算位置,确保完整填满扇形而不贴边。
|
||||
|
||||
**环容量**:每环按钮数量写死在 `src/components/radial-toolbar/index.ts` 中(当前为 `[4, 6, 8]`),如需调整直接修改源码。
|
||||
|
||||
### 与 BottomDock 联动
|
||||
|
||||
`RadialToolbarManager` 会自动监听 `BottomDock` 状态变化,同步按钮激活状态:
|
||||
|
||||
```typescript
|
||||
// 点击径向工具栏按钮展开/收起 Dock
|
||||
onToggle: (active) => {
|
||||
if (active) {
|
||||
bimEngine.bottomDock?.open('measure');
|
||||
} else {
|
||||
bimEngine.bottomDock?.close('measure');
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## BimCollapse(折叠面板组件)
|
||||
|
||||
### 概述
|
||||
|
||||
Reference in New Issue
Block a user