Some checks failed
CI Check / check (push) Has been cancelled
- 创建统一UI三层架构系统(基础层、颜色层、组合层) - 拆分Admin页面为独立Tab组件(MonitorTab、UsersTab、DepartmentsTab等) - 提取公共逻辑到Hooks(useToast、useDataFetch、useUserOperations等) - 提取工具函数(validators、formatters、api等) - 创建统一弹窗组件(Modal)和useModal Hook - 添加错误边界和统一状态组件 - 完善类型定义和可访问性支持 - 更新文档(优化记录、优化计划、更新日志)
9.9 KiB
9.9 KiB
🧾 2025-01-XX · 「Admin页面重构 & UI架构优化」版本 🎨
本次更新对Admin管理页面进行了全面重构,建立了统一UI三层架构系统,大幅提升了代码可维护性和用户体验。
🎯 UI三层架构系统
-
✨ 三层架构设计
- 基础层:
lib/ui-styles-base.ts- 布局、大小、动画等非颜色样式 - 颜色层:
lib/ui-theme-colors-light.ts/dark.ts- 仅包含颜色配置 - 组合层:
lib/ui-styles-composer.ts- 自动组合基础样式和颜色主题 - 导出层:
lib/ui-styles-light.ts/dark.ts- 最终导出的样式 - Hook层:
lib/hooks/useThemeStyles.ts- 主题感知的样式 Hook
- 基础层:
-
🎨 核心优势
- 修改布局/大小/动画时,只需修改基础层一处,浅色和深色模式自动同步
- 颜色配置完全分离,可以独立调整浅色或深色模式的颜色
- 清晰的职责分离,修改时不会遗漏或出错
- TypeScript 类型检查确保配置正确
-
📦 组件迁移
- ✅ 所有Tab组件已完全迁移到新样式系统(MaterialsTab、CategoriesTab、InvitationsTab、DepartmentsTab、UsersTab、MonitorTab)
- ✅ TemplateManager 完全迁移
- ✅ 基础UI组件迁移(LoadingState、ErrorState、EmptyState)
- ✅ Admin主页面完全迁移
🔧 代码结构优化
-
✨ 组件拆分
- 将
page.tsx(原3795行)拆分为多个独立Tab组件 - ✅
MonitorTab.tsx- 监控仪表板 - ✅
UsersTab.tsx- 用户管理 - ✅
DepartmentsTab.tsx- 架构管理 - ✅
CategoriesTab.tsx- 分类管理 - ✅
InvitationsTab.tsx- 邀请管理 - ✅
MaterialsTab.tsx- 素材管理 - ✅
TemplateManager.tsx- 模板管理(已拆分为多个子组件)
- 将
-
🎯 Hook提取
- ✅
useToast.ts- 统一Toast通知管理 - ✅
useDataFetch.ts- 统一数据获取逻辑 - ✅
useUserOperations.ts- 用户相关操作(更新、删除、权限切换等) - ✅
useDepartmentOperations.ts- 部门相关操作(创建、删除、重命名) - ✅
usePermissions.ts- 权限检查逻辑 - ✅
useModalState.ts- 模态框状态管理 - ✅
useDashboardData.ts- 仪表板数据获取
- ✅
-
🛠️ 工具函数提取
- ✅
validators.ts- 表单验证逻辑(验证邮箱、部门名、密码等) - ✅
formatters.ts- 格式化函数(日期时间、文件大小、数字等) - ✅
api.ts- API错误处理和类型安全 - ✅
departmentTree.ts- 部门树结构处理
- ✅
-
🎨 模板管理器组件化
- ✅
TemplateManagerHeader.tsx- 头部搜索和操作 - ✅
BuiltInTemplateGrid.tsx- 内置模板网格 - ✅
CustomTemplateSection.tsx- 自定义模板区域 - ✅
TemplateBasicsForm.tsx- 基础信息表单 - ✅
TemplateAdvancedConfigPanel.tsx- 高级配置面板 - ✅
TemplateFieldsEditor.tsx- 字段编辑器 - ✅
TemplateEditorFooter.tsx- 编辑器底部操作 - ✅
TemplatePreviewPanel.tsx- 预览面板
- ✅
🎯 统一弹窗组件系统
-
✨ 创建统一弹窗组件
- 新增
components/ui/Modal.tsx统一弹窗组件 - 使用三层架构设计
- 支持多种尺寸(small, medium, large, xlarge, fullscreen)
- 支持ESC键关闭、点击遮罩关闭
- 完整的ARIA标签和键盘导航支持
- 新增
-
🔧 Hook支持
- 新增
hooks/useModal.tsHook,统一管理弹窗状态 - 提供
open、close、toggle方法
- 新增
待完成:
- ⏳ 替换所有浏览器原生弹窗(confirm/alert)
- ⏳ 素材预览面板统一使用新弹窗组件
🛡️ 错误处理与用户体验
-
✨ 错误边界
- 新增
TabErrorBoundary.tsx组件 - 为各个Tab包裹错误边界,提供统一的fallback和重试机制
- 新增
-
📊 统一状态组件
- ✅
LoadingState.tsx- 加载状态 - ✅
ErrorState.tsx- 错误状态 - ✅
EmptyState.tsx- 空状态 - 统一错误提示样式,替换所有重复的加载/错误UI
- ✅
-
♿ 可访问性增强
- 为Tab导航添加完整的ARIA标签
- 添加键盘导航支持(Enter和Space键)
- 添加焦点样式
- 为所有交互元素添加
aria-label
📝 类型安全优化
- ✨ 类型定义统一化
- 创建
app/admin/_components/types.ts统一管理所有类型定义 - 移除了重复的类型定义
- 添加
AdminTab类型统一管理Tab类型 - 添加
DashboardData接口用于监控仪表板数据 - 定义完整的Session类型(
SessionUser接口) - 定义API响应类型(
ApiErrorResponse,ApiSuccessResponse) - 移除所有
as any使用
- 创建
📚 文档完善
- 📝 优化文档
- 创建
优化记录.md- 记录所有优化和修复 - 创建
优化计划与优先级.md- 详细规划后续优化任务 - 更新
后续修改.txt- 记录需求进度 - 创建
更新日志.md(原CHANGELOG.md) - 版本更新记录
- 创建
🎨 UI样式统一
- ✨ 颜色系统统一
- Admin目录中的
text-gray-* / bg-gray-* / border-gray-*类已全部替换为slate系列 - 浅色与深色模式的视觉基调保持一致
- 统一使用
buttonStyles和inputStyles - 新增
buttonModifiers和inputModifiers辅助类
- Admin目录中的
🧾 2025-11-20 · 「拖拽体验优化」版本 🎨
本次更新主要优化了模板管理器的拖拽交互体验,让字段排序操作更加流畅和直观。
🎯 拖拽交互优化
-
✨ 移除高亮卡片效果
- 移除了拖拽悬停时的高亮卡片显示,避免与虚位卡片(placeholder)视觉重复。
- 现在只保留虚位卡片来显示落点位置,界面更简洁清晰。
-
⚡ 立即更新布局
- 松开鼠标后布局立即更新,不再等待动画完成。
- 直接根据拖拽后的顺序更新字段数据,响应更快,体验更流畅。
-
🎨 动画效果优化
- 拖拽结束动画时长从 400ms 增加到 500ms,使用弹性缓动函数
cubic-bezier(0.34, 1.56, 0.64, 1)。 - 拖拽覆盖层增加旋转和缩放效果,视觉反馈更明显。
- 占位符卡片使用渐变背景和脉冲动画,更清晰地指示落点位置。
- 拖拽结束动画时长从 400ms 增加到 500ms,使用弹性缓动函数
🧾 2025-11-18 · 「权限进化 & 电商加成」版本 (๑•̀ㅂ•́)و✧
这次更新主要围绕 权限体验、电商字段扩展、模板/分类管理、部署体验 做了一轮集中升级,让「由壹点 3D 素材平台」更像一款真正能落地到团队里的内部产品,而不是一个玩具 Demo。下面是本次改动的「人话版」说明👇
🛡 权限与用户管理
-
✨ 部门管理员权限升级
- 非最高权限账号,只要有「管理的部门」或「自己的部门」,就可以管理 该部门 + 所有子部门 的用户。
- 没有部门范围时,就老老实实只能改自己,避免误操作全公司 ( ̄▽ ̄)/
-
🧍♀️ 按钮展示更聪明
- 对当前登录用户 没有管理权限 的成员:
- 不再显示一整排「编辑 / 禁用 / 下载权限 / 管理员」按钮。
- 只保留一行「无权限修改」的小提示,界面更干净,权限边界更清晰。
- 对当前登录用户 没有管理权限 的成员:
📦 模板与分类管理
-
🧩 内置电商模板上线
- 在模板管理中新增几套常用电商模板(如「通用电商」「简易基础」「渲染维度」等)。
- 字段命名与素材表最新标准对齐,开箱即用,不用每次从 0 造轮子。
-
📂 分类下拉选项更好配
- 使用店铺 / 场景类别 / 平台分类,全部支持配置「下拉选项」。
- 规则超简单:一行一个选项,不用再写 JSON 数组。
- 管理端统一提供输入框 + 示例,方便以后快速按业务维护分类选项。
🛍 素材模型与电商字段
-
🏷 商品 / 品牌维度补齐
- 为
Material增加:brandName(品牌)、seriesName(系列)、skuCode(SKU 编码)、materialTexture(材质纹理)等字段。 - 方便日后按品牌、系列、SKU 做统计和检索,更贴合电商团队日常用语。
- 为
-
🎨 渲染 / 制作维度补充
- 新增:
renderTime(渲染耗时)、imageResolution(输出分辨率)、colorMode(颜色模式)等字段。 - 从上传 → 编辑 → 展示 → 搜索,全链路打通,真正做到「不只是传个压缩包」。
- 新增:
-
🔍 前台页面同步升级
- 首页列表、分享页、素材编辑页均已接入以上新字段。
- 搜索支持按这些维度模糊匹配,找素材更像「搜商品」而不是「翻文件夹」。
🚀 部署与运维体验
-
📜
deploy-new-fixed.ps1阶段化部署脚本- 拆分为:检查阶段 → 构建阶段 → 镜像推送 → 远程部署,并在每一步给出清晰进度条和提示。
- 附带一点小彩蛋文案,部署的时候不那么无聊 (´・ω・`)
-
🔐 SSH & Registry 流程更稳
- 强制优先使用 OpenSSH,避免 plink 等工具弹交互对话框导致脚本卡死。
- 自动打 Tag 并推送镜像到私有 Registry,然后在远程服务器上拉取并通过 Docker Compose 滚动更新。
-
❤️ 健康检查
/api/health- 部署完成后,脚本会主动轮询
/api/health,确认服务真正「跑起来」再宣告成功。 - 避免刚部署完就打开页面,结果服务还在启动中的尴尬。
- 部署完成后,脚本会主动轮询
🎛 其他细节优化
- 🧭 系统管理页默认打开 「监控仪表板」 标签,而不是素材管理,让管理者一眼看到系统状态。
- 🎨 调整架构管理 & 用户管理的卡片、阴影、悬浮效果与按钮样式,使整个后台的观感更统一、更接近苹果风格。
小结:这一版可以理解为「权限体验 + 电商字段 + 可迁移部署脚本」的整合升级版,为后续更多客户侧部署和定制做好了「打基础」工作。✨