257 lines
7.9 KiB
Markdown
257 lines
7.9 KiB
Markdown
# 设计模块CRMEB风格重构报告
|
||
|
||
## 📋 重构概述
|
||
|
||
已将设计页面从**Tab式导航**重构为**CRMEB风格的侧边栏菜单导航**,实现了与后台整体设计风格的统一。
|
||
|
||
---
|
||
|
||
## 🎯 主要变更
|
||
|
||
### 1. **导航结构重构**
|
||
|
||
#### 原有结构(Tab式)
|
||
|
||
```
|
||
┌─ 首页装修 │ 分类页 │ 商品页 │ 自定义 │ 模板库 │ 组件库 ─┐
|
||
│ (水平选项卡导航) │
|
||
└──────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
#### 新结构(侧边栏菜单)
|
||
|
||
```
|
||
┌─ 页面装修 ──────────────┐
|
||
│ ├─ 首页装修 │
|
||
│ ├─ 分类页装修 │
|
||
│ ├─ 商品页装修 │
|
||
│ └─ 自定义页面 │
|
||
│ │
|
||
│ 设计库 ───────────────┤
|
||
│ ├─ 模板库 │
|
||
│ └─ 组件库 │
|
||
└────────────────────────┘
|
||
```
|
||
|
||
### 2. **文件变更**
|
||
|
||
#### 修改文件
|
||
|
||
- **pages/mall/admin/design/index.uvue** (773行)
|
||
- 移除顶部Tab导航条
|
||
- 重构为侧边栏菜单式导航
|
||
- 简化模板结构
|
||
- 改进样式设计
|
||
- 添加onLoad生命周期处理URL参数
|
||
|
||
- **layouts/admin/utils/menu.uts** (更新设计菜单配置)
|
||
- 原:1个子菜单
|
||
- 现:6个子菜单项分组在2个菜单组中
|
||
- 支持深层级导航
|
||
|
||
### 3. **功能特性**
|
||
|
||
✅ **侧边栏菜单导航**
|
||
|
||
- 按功能分组展示(页面装修、设计库)
|
||
- 点击菜单项实时切换内容
|
||
- 高亮显示当前选中项
|
||
- CRMEB风格一致
|
||
|
||
✅ **内容区展示**
|
||
|
||
- 首页装修 - 单页卡片式布局
|
||
- 分类页 - 列表展示已有装修
|
||
- 商品页 - 单页卡片式布局
|
||
- 自定义页面 - 列表展示
|
||
- 模板库 - 网格布局展示
|
||
- 组件库 - 网格布局展示
|
||
|
||
✅ **交互设计**
|
||
|
||
- 点击侧边栏菜单项,内容区平滑切换
|
||
- 空状态友好提示
|
||
- 列表项操作按钮(编辑、删除)
|
||
- 卡片悬停效果
|
||
|
||
✅ **URL参数支持**
|
||
|
||
- `?tab=homepage` - 打开首页装修
|
||
- `?tab=category` - 打开分类页装修
|
||
- `?tab=product` - 打开商品页装修
|
||
- `?tab=custom` - 打开自定义页面
|
||
- `?tab=templates` - 打开模板库
|
||
- `?tab=components` - 打开组件库
|
||
|
||
---
|
||
|
||
## 📊 代码对比
|
||
|
||
### 侧边栏菜单组结构(design/index.uvue)
|
||
|
||
```typescript
|
||
const designGroups = ref([
|
||
{
|
||
id: "page-decoration",
|
||
title: "页面装修",
|
||
children: [
|
||
{ id: "homepage", title: "首页装修" },
|
||
{ id: "category", title: "分类页装修" },
|
||
{ id: "product", title: "商品页装修" },
|
||
{ id: "custom", title: "自定义页面" },
|
||
],
|
||
},
|
||
{
|
||
id: "design-library",
|
||
title: "设计库",
|
||
children: [
|
||
{ id: "templates", title: "模板库" },
|
||
{ id: "components", title: "组件库" },
|
||
],
|
||
},
|
||
]);
|
||
```
|
||
|
||
### 菜单配置更新(menu.uts)
|
||
|
||
```typescript
|
||
{
|
||
id: 'design',
|
||
title: '设计',
|
||
icon: '/static/design.svg',
|
||
path: '/pages/mall/admin/design/index',
|
||
groups: [
|
||
{
|
||
id: 'page-decoration',
|
||
title: '页面装修',
|
||
children: [
|
||
{ id: 'design-homepage', title: '首页装修', path: '/pages/mall/admin/design/index?tab=homepage' },
|
||
{ id: 'design-category', title: '分类页装修', path: '/pages/mall/admin/design/index?tab=category' },
|
||
// ... 其他菜单项
|
||
]
|
||
},
|
||
// ... 其他组
|
||
]
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
## 🎨 样式优化
|
||
|
||
### 新增样式特性
|
||
|
||
- **模块动画** - slideIn 进入动画
|
||
- **卡片设计** - 白色背景,圆角阴影
|
||
- **网格布局** - 响应式网格布局
|
||
- **空状态** - 友好的空状态提示
|
||
- **响应式设计** - 适配各种屏幕尺寸
|
||
- 桌面 (>768px)
|
||
- 平板 (768px-480px)
|
||
- 手机 (<480px)
|
||
|
||
### 颜色方案
|
||
|
||
- 使用uni.scss中的设计系统变量
|
||
- 一致的按钮颜色 ($primary, $danger)
|
||
- 统一的文字颜色等级 ($text-primary, $text-secondary, $text-tertiary)
|
||
|
||
---
|
||
|
||
## 🔄 生命周期处理
|
||
|
||
### onLoad钩子
|
||
|
||
```typescript
|
||
onLoad((option: any) => {
|
||
// 从URL查询参数中获取选中的tab
|
||
if (option && option.tab) {
|
||
activeTab.value = option.tab;
|
||
} else {
|
||
activeTab.value = "homepage";
|
||
}
|
||
});
|
||
```
|
||
|
||
**功能说明**
|
||
|
||
- 页面加载时自动解析URL参数
|
||
- 设置正确的初始tab
|
||
- 支持深层链接分享
|
||
|
||
---
|
||
|
||
## 📱 界面布局
|
||
|
||
```
|
||
┌─────────────────────────────────────────────────────────┐
|
||
│ AdminLayout (主布局) │
|
||
├──────┬──────────────┬─────────────────────────────────┤
|
||
│ 侧 │ 侧边栏菜单 │ │
|
||
│ 边 │ (200px宽) │ 内容区 │
|
||
│ 栏 │ │ │
|
||
│ │ 页面装修 │ ┌─────────────────────────────┐ │
|
||
│(96px)├─────────────┤ │ 当前选中页面内容展示 │ │
|
||
│ │ • 首页装修 │ │ │ │
|
||
│ │ • 分类页装修 │ │ (首页装修/分类页/商品页等) │ │
|
||
│ │ • 商品页装修 │ │ │ │
|
||
│ │ • 自定义页面 │ │ │ │
|
||
│ │ │ │ │ │
|
||
│ │ 设计库 │ │ │ │
|
||
│ ├─────────────┤ │ │ │
|
||
│ │ • 模板库 │ │ │ │
|
||
│ │ • 组件库 │ └─────────────────────────────┘ │
|
||
│ └──────────────┘ │
|
||
└─────────────────────────────────────────────────────────┘
|
||
```
|
||
|
||
---
|
||
|
||
## ✅ 验证清单
|
||
|
||
- ✅ 设计页面导入正确的AdminLayout.uvue
|
||
- ✅ 菜单结构符合CRMEB标准
|
||
- ✅ 侧边栏菜单与AdminSubSider组件兼容
|
||
- ✅ URL参数解析功能正常
|
||
- ✅ 所有6个装修类型都正确展示
|
||
- ✅ 样式与uni.scss设计系统一致
|
||
- ✅ 响应式设计覆盖所有屏幕尺寸
|
||
- ✅ 文件大小合理(18.5 KB)
|
||
|
||
---
|
||
|
||
## 🚀 后续功能开发
|
||
|
||
以下功能已准备好框架,可直接在此基础上开发:
|
||
|
||
1. **编辑功能** (`handleEditPage`)
|
||
2. **预览功能** (`handlePreviewPage`)
|
||
3. **创建分类装修** (`handleCreateCategory`)
|
||
4. **编辑分类装修** (`handleEditCategory`)
|
||
5. **删除操作** (`handleDeleteCategory`, `handleDeletePage`)
|
||
6. **创建自定义页面** (`handleCreateCustomPage`)
|
||
7. **使用模板** (`handleUseTemplate`)
|
||
|
||
所有方法已预留,只需要与后端API进行集成即可。
|
||
|
||
---
|
||
|
||
## 📈 对比优势
|
||
|
||
| 特性 | 原Tab式 | 新菜单式 |
|
||
| ----------- | ------- | ---------- |
|
||
| 导航清晰度 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||
| 功能分组 | ❌ | ✅ |
|
||
| 可扩展性 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
|
||
| CRMEB一致性 | ⭐ | ⭐⭐⭐⭐⭐ |
|
||
| 用户体验 | 良好 | 优秀 |
|
||
| 菜单可见性 | 有限 | 完整 |
|
||
|
||
---
|
||
|
||
## 📝 总结
|
||
|
||
本次重构成功地将设计模块的导航方式改为CRMEB风格,使整个后台管理界面更加统一和专业。新的侧边栏菜单设计提供了更好的功能分组和更强的可扩展性,同时保持了良好的用户体验。
|
||
|
||
**重构完成,设计模块已全面升级!** 🎉
|