From 1f27d02788e1f47a43bb145fc908a8531614d922 Mon Sep 17 00:00:00 2001 From: yuding <1023798085@qq.com> Date: Wed, 10 Dec 2025 09:46:22 +0800 Subject: [PATCH] docs: update menu and right-key component documentation --- docs/components/menu.md | 360 +++++++++++++++++++++++++++++------ docs/components/right-key.md | 219 +++++++++++++++++---- 2 files changed, 492 insertions(+), 87 deletions(-) diff --git a/docs/components/menu.md b/docs/components/menu.md index 6bd5d08..315bc97 100644 --- a/docs/components/menu.md +++ b/docs/components/menu.md @@ -1,66 +1,318 @@ -# Menu 组件文档 +# Menu 组件详细文档 + +> 本文档详细描述 Menu 组件的实现细节,包括 API、UI 结构、逻辑流程等,供 AI 根据文档重现组件。 + +--- ## 1. 组件概述 -`BimMenu` 是一个通用的菜单列表组件。 -- **位置**: `src/components/menu/index.ts` -- **功能**: 渲染一组 `BimMenuItem`,支持分组、排序、图标、快捷键提示和多级子菜单。 -- **特点**: 数据驱动(通过 Item 类实例),支持国际化。 +### 1.1 基本信息 +- **组件名称**: `BimMenu` +- **文件路径**: `src/components/menu/index.ts` +- **类型定义**: `src/components/menu/item.ts` (配置), `src/components/menu/types.ts` (选项) +- **样式文件**: `src/components/menu/index.css` +- **实现接口**: `IBimComponent`, `IRightKeyContent` +- **用途**: 渲染一组菜单项,支持分组、排序、图标、快捷键提示和无限级递归子菜单。 +- **特点**: 纯数据驱动(基于 `MenuItemConfig`),内置国际化支持。 -## 2. 组件类 API +### 1.2 在 SDK 中的位置 +- Menu 组件主要由 `RightKeyManager` 使用,作为右键菜单的内容载体。 +- 也可以单独实例化并挂载到任何容器中。 +- `RightKeyManager` 位于 `src/managers/right-key-manager.ts`。 -### `BimMenu` +--- -#### 构造函数 -`new BimMenu(options: MenuOptions)` +## 2. 组件类 API 文档 -#### 方法 - -| 方法名 | 参数 | 返回值 | 描述 | -|:----|:---|:---|:---| -| `init` | `()` | `void` | 初始化,渲染 DOM | -| `destroy` | `()` | `void` | 销毁,清理事件和子菜单 | -| `getElement` | `()` | `HTMLElement` | 获取根 DOM 元素 (实现 IRightKeyContent) | - -### `BimMenuItem` (基类) - -所有菜单项必须继承此抽象类。 - -| 方法/属性 | 类型 | 描述 | -|:----|:---|:---| -| `id` | `string` | 唯一标识 | -| `group` | `string` | 分组 ID (默认 'default') | -| `order` | `number` | 排序权重 | -| `getLabel()` | `string` | 获取显示文本 | -| `onClick()` | `void` | 点击回调 | -| `getIcon()` | `string?` | 获取图标 HTML | -| `getChildren()` | `BimMenuItem[]?` | 获取子菜单项 | - -## 3. UI 详细描述 - -- **根元素**: `