7.9 KiB
7.9 KiB
设计模块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)
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)
{
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钩子
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)
🚀 后续功能开发
以下功能已准备好框架,可直接在此基础上开发:
- 编辑功能 (
handleEditPage) - 预览功能 (
handlePreviewPage) - 创建分类装修 (
handleCreateCategory) - 编辑分类装修 (
handleEditCategory) - 删除操作 (
handleDeleteCategory,handleDeletePage) - 创建自定义页面 (
handleCreateCustomPage) - 使用模板 (
handleUseTemplate)
所有方法已预留,只需要与后端API进行集成即可。
📈 对比优势
| 特性 | 原Tab式 | 新菜单式 |
|---|---|---|
| 导航清晰度 | ⭐⭐⭐ | ⭐⭐⭐⭐⭐ |
| 功能分组 | ❌ | ✅ |
| 可扩展性 | ⭐⭐ | ⭐⭐⭐⭐⭐ |
| CRMEB一致性 | ⭐ | ⭐⭐⭐⭐⭐ |
| 用户体验 | 良好 | 优秀 |
| 菜单可见性 | 有限 | 完整 |
📝 总结
本次重构成功地将设计模块的导航方式改为CRMEB风格,使整个后台管理界面更加统一和专业。新的侧边栏菜单设计提供了更好的功能分组和更强的可扩展性,同时保持了良好的用户体验。
重构完成,设计模块已全面升级! 🎉