# 页面布局与间距控制规范 **版本**: v3.8 **更新时间**: 2026-03-24 --- ## 📋 一、路由与页面布局对应表 ### 1.1 主布局容器 所有页面都使用统一的布局结构: ```
← 页面容器(全局统一)
← 标题区域

页面标题

页面描述

← Tips 提示(可选) ← 筛选工具栏(可选)
← 内容区块(白色背景) {/* 表格/卡片/列表等 */}
``` ### 1.2 路由与页面布局详细对应 | 路由 | 页面组件 | 标题 | 筛选栏 | 内容类型 | 使用组件 | |------|---------|------|--------|---------|---------| | **`/overview`** | `home/index` | 概览 | ❌ | 统计卡片 | `StatsGrid` | | **`/appCenter`** | `appPlazaList/index` | 全部 RAG 应用 | ✅ | 卡片网格 | `AppCard` + `.app-card-grid` | | **`/appCenter/category/*`** | `categoryApps/index` | 分类应用 | ✅ | 卡片网格 | `AppCard` + `.app-card-grid` | | **`/appCenter/questionAnswer`** | `questionAnswer/list` | 我创建的应用 | ❌ | 卡片网格 | `AppCard` + `.app-card-grid` | | **`/appCenter/questionAnswer/create`** | `questionAnswer/form` | 创建应用 | ❌ | 表单 | `Step1Drawer` | | **`/knowledge/knowledgeLib`** | `knowledgeLib/list` | 知识库 | ✅ | 表格 | `Table` | | **`/knowledge/knowledgeLib/create`** | `knowledgeLib/list` | 创建知识库 | ❌ | 表单 | `InfoModal` | | **`/system/apiKey`** | `apiKey/index` | API Key 管理 | ✅ | 表格 | `Table` | | **`/system/audit`** | `audit/index` | 应用审核 | ✅ | 表格 | `Table` | | **`/universalChat`** | `universalChat/index` | 智能问答 | ❌ | 对话界面 | `ChatInterface` | | **`/mobile-test`** | `mobile/MobileH5` | H5 测试 | ✅ | 混合 | `FilterBar` + `ChatInterface` | --- ## 📐 二、全局间距控制 ### 2.1 间距变量系统 所有间距使用全局变量,定义在 `src/styles/variables.less`: ```less // 4px 基准间距系统 @spacing-1: 4px; // 最小间距 @spacing-2: 8px; // 小间距 @spacing-3: 12px; // 中等间距 @spacing-4: 16px; // 标准间距 @spacing-5: 20px; // 大间距 @spacing-6: 24px; // 加大间距 @spacing-8: 32px; // 特大间距 @spacing-10: 40px; // 页面级间距 ``` ### 2.2 容器间距控制 #### **页面容器(`.page-container`)** ```less .page-container { padding: @spacing-4 @spacing-6; // 上下 16px,左右 24px min-height: calc(100vh - @header-height); background: @bg-primary; } ``` **修改方式**: ```less // 在 global.less 中统一修改 .page-container { padding: @spacing-6 @spacing-8; // 改为更宽松的间距 } ``` #### **内容区块(`.content-section`)** ```less .content-section { margin-bottom: @spacing-6; // 与下一区块间距 24px padding: @spacing-4; // 内边距 20px background: @bg-secondary; border-radius: @radius-lg; } ``` **修改方式**: ```less // 在 global.less 中统一修改 .content-section { margin-bottom: @spacing-5; // 改为 20px padding: @spacing-4; // 改为 16px } ``` #### **区块间距(`.section-gap`)** ```less .section-gap { margin-bottom: @spacing-5; // 20px 统一间距 } ``` ### 2.3 列表头部间距 ```less .list-header { margin-bottom: @spacing-4; // 与下方内容间距 16px padding-bottom: @spacing-3; // 标题栏底部内边距 12px border-bottom: 1px solid @border-base; // 紧跟 GuideTips 时 &.with-tips { margin-bottom: 0; // 紧贴 GuideTips } } ``` ### 2.4 筛选工具栏间距 ```less .filter-bar { padding: @spacing-3 0; // 上下 12px margin-bottom: 0; // 无外边距(让内容容器控制) } ``` --- ## 🎯 三、全局控制方法 ### 3.1 修改全局间距(推荐) **位置**:`src/styles/global.less` **示例 1**:增加所有页面容器的内边距 ```less // 修改前 .page-container { padding: @spacing-4 @spacing-6; // 16px / 24px } // 修改后 .page-container { padding: @spacing-6 @spacing-8; // 24px / 32px - 更宽松 } ``` **示例 2**:统一内容区块间距 ```less // 修改前 .content-section { margin-bottom: @spacing-6; // 24px } // 修改后 .content-section { margin-bottom: @spacing-5; // 20px - 更紧凑 } ``` ### 3.2 修改特定页面间距 **位置**:页面自己的 `style.less` 文件 **示例**:知识库列表页面增加额外间距 ```less // src/pages/knowledgeLib/list/style.less .knowledgeLibList { // 覆盖全局间距 .page-container { padding-top: @spacing-8; // 顶部增加间距 } .content-section { margin-bottom: @spacing-8; // 增加底部间距 } } ``` ### 3.3 使用间距工具类 **在 JSX 中使用**: ```tsx // 增加顶部间距
内容
{/* margin-top: 16px */} // 增加底部间距
内容
{/* margin-bottom: 24px */} // 增加内边距
内容
{/* padding: 20px */} ``` **可用的工具类**: | 类名 | 说明 | 值 | |------|------|-----| | `.mt-1` ~ `.mt-6` | 上外边距 | 4px ~ 24px | | `.mb-1` ~ `.mb-6` | 下外边距 | 4px ~ 24px | | `.p-1` ~ `.p-6` | 内边距 | 4px ~ 24px | --- ## 📊 四、常见布局场景 ### 4.1 标准列表页(知识库、API Key、审核) ```tsx
{/* 标题区域 */}

知识库管理

管理您的所有知识库

{/* Tips 提示 */} {/* 筛选工具栏 */} {/* 内容区块 */}
``` **间距说明**: - `.list-header` → `.guide-tips-wrapper`: 0px (紧贴) - `.guide-tips-wrapper` → `.filter-bar`: 0px (紧贴) - `.filter-bar` → `.content-section`: 0px (紧贴) - `.content-section` 内部:`padding: 20px` ### 4.2 卡片网格页(应用中心) ```tsx

应用中心

浏览所有 RAG 应用

``` **间距说明**: - `.filter-bar` → `.app-card-grid`: 0px (紧贴) - `.app-card-grid` 内部:`gap: 16px` - `.app-card-grid` → `.pagination-container`: 24px ### 4.3 统计概览页(首页) ```tsx

概览

查看系统使用情况

``` **间距说明**: - `.list-header` → `StatsGrid`: 24px (默认) --- ## 🔧 五、快速修改指南 ### 5.1 增加所有页面的上下间距 **修改位置**:`src/styles/global.less` ```less .page-container { padding: @spacing-6 @spacing-8; // 改为 24px / 32px } ``` ### 5.2 增加内容区块之间的间距 ```less .content-section { margin-bottom: @spacing-8; // 改为 32px } ``` ### 5.3 增加标题与内容的间距 ```less .list-header { margin-bottom: @spacing-6; // 改为 24px } ``` ### 5.4 增加筛选栏与内容的间距 **方法 1**:在 `FilterBar` 组件样式中修改 ```less // src/components/common/FilterBar/index.less .filter-bar { margin-bottom: @spacing-4; // 改为 16px } ``` **方法 2**:在内容区块上增加上边距 ```less .content-section { margin-top: @spacing-4; // 增加顶部间距 16px } ``` --- ## 📋 六、最佳实践 ### ✅ 推荐做法 1. **使用全局变量** ```less // ✅ 正确 .my-class { margin-bottom: @spacing-5; } // ❌ 错误 .my-class { margin-bottom: 20px; // 硬编码 } ``` 2. **优先修改全局样式** ```less // ✅ 在 global.less 中统一修改 .content-section { margin-bottom: @spacing-8; } ``` 3. **使用工具类** ```tsx // ✅ 使用现有工具类
内容
``` ### ❌ 避免的做法 1. **不要在组件中硬编码间距** ```tsx // ❌ 错误
内容
// ✅ 正确
内容
``` 2. **不要重复定义全局样式** ```less // ❌ 错误 - 在组件样式中重复定义 .my-component .content-section { margin-bottom: 24px; } // ✅ 正确 - 使用全局类
内容
``` --- ## 🎯 七、总结 ### 全局间距控制层级 ``` 1. 页面容器 (.page-container) └─ padding: @spacing-4 @spacing-6 2. 标题区域 (.list-header) └─ margin-bottom: @spacing-4 3. Tips 提示 (.guide-tips-wrapper) └─ margin-bottom: @spacing-4 4. 筛选工具栏 (.filter-bar) └─ margin-bottom: 0 5. 内容区块 (.content-section) └─ margin-bottom: @spacing-6 └─ padding: @spacing-5 ``` ### 修改优先级 1. **全局修改** → `src/styles/global.less` 2. **页面特定** → `src/pages/xxx/style.less` 3. **组件特定** → `src/components/xxx/index.less` --- **文档维护**: AI Assistant **最后更新**: 2026-03-24 **版本**: v3.8