ai-admin/docs/菜单表格优化/ALIGNMENT_菜单表格优化.md

101 lines
3.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 菜单表格优化 - 需求对齐文档
## 项目上下文分析
### 技术栈
- 前端框架Vue 3 + TypeScript + Composition API
- UI库Element Plus 2.10.7
- 构建工具Vite
- 滚动库Perfect Scrollbar已安装但未在菜单页面使用
- 样式Scoped CSS + Deep Selectors
### 现有菜单管理页面架构
- 页面路径:`/src/views/system/MenuView.vue`
- 页面布局使用Flexbox垂直布局高度填满视口
- 表格组件Element Plus `el-table` 组件,支持树形数据结构
- 数据结构分层菜单树目录M/菜单C/按钮F
### 现有实现分析
**布局结构(从上到下):**
1. 卡片头部60px固定高度
2. 搜索容器100px固定高度
3. 表格工具栏50px固定高度
4. 表格容器(`calc(100vh - 280px)`计算高度)
**现有高度控制:**
- 整个页面容器:`height: 100vh, overflow: hidden`
- 表格容器:`max-height: calc(100vh - 280px)`
- 表格体滚动:`.el-table__body-wrapper` 设置了 `overflow-y: auto`
## 原始需求分析
用户描述的问题:
> "菜单有分层可以展开会导致高度超出浏览器可视区的高度,我想要整个页面是不可滚动的,内部表格会根据是否展开菜单层级自适应变化高度,且最大高度不可超过浏览器可视区域的高度,当超过时,菜单表格可上下滚动"
### 需求分解:
1. **整个页面不可滚动** - 已实现 ✓
2. **表格根据展开状态自适应高度** - 需要优化 ⚠️
3. **最大高度不超过可视区域** - 基本实现,需要精准计算 ⚠️
4. **表格内部可滚动** - 已实现 ✓
## 边界确认
### 任务范围
- **包含**:优化菜单表格的高度自适应逻辑
- **包含**:确保表格滚动体验流畅
- **包含**:精准计算容器高度
- **不包含**:修改菜单数据结构
- **不包含**:重写整个页面布局
- **不包含**更换UI框架或组件
### 技术约束
- 必须使用现有的Element Plus表格组件
- 必须保持现有的Vue 3 Composition API写法
- 必须保持现有的CSS Scoped样式结构
- 不能影响现有的功能(搜索、编辑、删除等)
## 问题识别
### 当前可能存在的问题:
1. **高度计算不够精准**`calc(100vh - 280px)` 可能不准确
2. **展开/折叠时高度没有动态调整**:表格容器高度是固定的
3. **滚动同步可能有问题**:表头和表体的同步滚动逻辑复杂
4. **Perfect Scrollbar未使用**:已安装但未在表格中应用
### 潜在的用户体验问题:
1. 展开大量菜单项时,表格可能超出容器范围
2. 表格滚动可能不够流畅
3. 表头和表体可能出现不同步的情况
## 疑问澄清
### 需要确认的关键点:
1. **高度计算精度**:当前 `calc(100vh - 280px)` 中的280px是否包含了所有固定元素的高度
- 卡片头部60px
- 搜索容器100px
- 工具栏50px
- 卡片内边距40px (上下各20px)
- 容器间距约10px
- **实际应该是约260px而非280px**
2. **展开状态响应**:用户是否希望表格容器高度根据内容动态调整,还是固定容器高度内滚动?
- **理解**:用户希望固定容器高度,内容超出时滚动
3. **滚动体验优化**是否需要使用已安装的Perfect Scrollbar来提升滚动体验
4. **浏览器兼容性**:是否需要考虑不同浏览器的视口计算差异?
## 技术实现思路
### 优化方案:
1. **精准高度计算**:动态计算所有固定元素高度
2. **响应式调整**:监听窗口大小变化,动态调整表格容器
3. **滚动优化**考虑集成Perfect Scrollbar
4. **性能优化**:优化展开/折叠时的重新渲染
### 实现步骤预估:
1. 重新计算和校准容器高度
2. 优化展开/折叠时的高度调整逻辑
3. 改进滚动同步机制
4. 测试各种展开状态下的显示效果