fix(用户管理): 修复用户列表页面加载失败问题
Some checks failed
CI / rust-check (push) Has been cancelled
CI / rust-test (push) Has been cancelled
CI / frontend-build (push) Has been cancelled
CI / security-audit (push) Has been cancelled

修复用户列表页面加载失败导致测试超时的问题,确保页面元素正确渲染
This commit is contained in:
iven
2026-04-19 08:46:28 +08:00
parent 0ee9d22634
commit 841766b168
174 changed files with 26366 additions and 675 deletions

View File

@@ -0,0 +1,61 @@
# 插件侧边栏三级菜单重构
## Context
当前插件菜单是扁平结构,所有插件的页面(客户管理、联系人、沟通记录等)都平铺在"插件"分组下。随着更多插件接入,菜单会变得杂乱无章。需要改为三级结构:
```
插件(分组标题)
└ CRM插件名称可折叠
├ 客户管理
├ 联系人
├ 沟通记录
├ 标签管理
└ 客户关系
└ 未来插件名称(可折叠)
├ 页面1
└ 页面2
```
## 改动范围
仅涉及前端两个文件,无需后端改动(`PluginMenuItem.pluginId` 字段已存在)。
### 1. `apps/web/src/stores/plugin.ts`
**改动:** 新增 `PluginMenuGroup` 类型和 `pluginMenuGroups` getter。
```ts
export interface PluginMenuGroup {
pluginId: string;
pluginName: string; // 从 cachedPlugins 取 metadata.name
items: PluginMenuItem[];
}
```
在 store 中添加一个 `pluginMenuGroups` 计算属性Zustand getter`pluginId` 分组,取插件名称从 `plugins` 数组中查找。
### 2. `apps/web/src/layouts/MainLayout.tsx`
**改动:**
- 新增 `SidebarSubMenu` 组件:显示插件名称作为可折叠子标题,渲染其下级 `SidebarMenuItem`
- 子标题使用 `expand-icon` (右箭头) 指示可折叠,点击切换展开/收起
- 子标题样式:略深背景 + 左侧有缩进指示线
- 子菜单项有额外左缩进12px表示层级
- 折叠侧边栏时,子菜单标题只显示插件图标,悬浮弹出子项
**渲染逻辑:**
```
"插件" 标签
for each group in pluginMenuGroups:
<SidebarSubMenu title=group.pluginName items=group.items />
```
## 验证
1. 启动前端 `pnpm dev`,访问侧边栏
2. 确认 CRM 插件下所有 5 个菜单项嵌套在 "CRM" 子标题下
3. 点击 "CRM" 子标题可展开/收起
4. 折叠侧边栏后CRM 子项通过 tooltip 或悬浮展示
5. 点击各子项,路由正确跳转
6. 页面标题(面包屑)正确显示