401 lines
8.7 KiB
Markdown
401 lines
8.7 KiB
Markdown
# 功能更新说明 v2.0
|
||
|
||
## 📅 更新日期:2025-10-16
|
||
|
||
---
|
||
|
||
## ✨ 新功能总览
|
||
|
||
### 1. ✅ 浏览器黑暗模式支持
|
||
- **自动跟随系统**:自动识别系统黑暗模式设置
|
||
- **全局适配**:所有页面和组件都支持黑暗模式
|
||
- **流畅过渡**:主题切换平滑过渡
|
||
|
||
**使用方法**:
|
||
- 在系统设置中启用黑暗模式,应用会自动切换
|
||
- macOS: 系统偏好设置 → 通用 → 外观 → 深色
|
||
- Windows: 设置 → 个性化 → 颜色 → 深色
|
||
|
||
---
|
||
|
||
### 2. ✅ 上传进度条和网络速度显示
|
||
- **实时进度**:显示上传百分比
|
||
- **速度显示**:实时显示上传速度(KB/s, MB/s)
|
||
- **文件大小**:显示上传文件大小
|
||
|
||
**界面改进**:
|
||
- 蓝色进度条动画
|
||
- 上传速度实时更新
|
||
- 上传中禁用取消和上传按钮
|
||
|
||
---
|
||
|
||
### 3. ✅ 支持7Z压缩格式
|
||
- **新增格式**:除了ZIP、RAR,现在还支持7Z格式
|
||
- **智能识别**:上传时自动验证文件格式
|
||
- **友好提示**:不支持的格式会给出清晰的错误提示
|
||
|
||
**支持的压缩格式**:
|
||
- ✅ .zip
|
||
- ✅ .rar
|
||
- ✅ .7z
|
||
|
||
---
|
||
|
||
### 4. ✅ 取消上传大小限制
|
||
- **之前限制**:100MB
|
||
- **现在限制**:10GB(基本无限制)
|
||
- **适用场景**:支持大型3D模型文件上传
|
||
|
||
**注意事项**:
|
||
- 上传大文件时建议使用内网模式
|
||
- 公网上传速度取决于您的网络带宽
|
||
|
||
---
|
||
|
||
### 5. ✅ 内外网模式识别和提示
|
||
- **自动识别**:系统根据访问地址自动识别当前访问模式
|
||
- **智能提示**:首页顶部显示当前模式和替代访问地址
|
||
- **模式说明**:
|
||
- 🏠 **内网模式**:`http://192.168.58.20:4320` (绿色标识)
|
||
- 局域网内访问
|
||
- 速度更快,延迟更低
|
||
- 适合上传大文件(可达3GB)
|
||
- 显示外网地址供参考
|
||
- 🌍 **公网模式**:`http://180.97.221.140:2320` (蓝色标识)
|
||
- 互联网访问
|
||
- 随时随地可访问
|
||
- 适合外出使用
|
||
- 提示内网地址供参考
|
||
|
||
**智能提示功能**:
|
||
- 公网访问时,提示内网地址更快
|
||
- 内网访问时,显示公网地址供外出使用
|
||
- 自动检测当前网络环境
|
||
|
||
---
|
||
|
||
### 6. ✅ 一级分类功能
|
||
这是本次最大的功能更新!
|
||
|
||
#### 6.1 数据库架构调整
|
||
- **新增**:Category(一级分类)模型
|
||
- **更新**:Material模型新增`categoryName`字段
|
||
- **优化**:添加索引提升查询性能
|
||
|
||
#### 6.2 上传界面改进
|
||
**新的上传流程**:
|
||
1. 选择预览图片
|
||
2. 输入商品型号
|
||
3. **选择/新建一级分类** ⭐
|
||
4. **选择/新建二级分类/场景** ⭐
|
||
5. 选择压缩包
|
||
6. 上传
|
||
|
||
**一级分类管理**:
|
||
- 下拉选择现有分类
|
||
- 快速新建分类(输入即保存)
|
||
- 自动记忆,下次直接选择
|
||
|
||
**二级分类管理**:
|
||
- 下拉选择现有场景
|
||
- 快速新建场景
|
||
- 支持快速切换
|
||
|
||
#### 6.3 首页筛选增强
|
||
**新的筛选方式**:
|
||
1. **搜索框**:搜索商品型号、一级分类、二级分类、作者
|
||
2. **一级分类**:按钮式快速筛选
|
||
3. **二级分类/场景**:按钮式快速筛选
|
||
4. **组合筛选**:可同时使用多个筛选条件
|
||
|
||
**筛选状态显示**:
|
||
- 当前筛选条件标签显示
|
||
- 单独移除某个筛选条件
|
||
- 一键清除所有筛选
|
||
|
||
#### 6.4 卡片信息展示
|
||
每个素材卡片显示:
|
||
- 预览图
|
||
- 商品型号
|
||
- **一级分类** ⭐
|
||
- **二级分类** ⭐
|
||
- 作者
|
||
- 创建时间
|
||
- 下载按钮
|
||
|
||
---
|
||
|
||
## 🗄️ 数据库更新
|
||
|
||
### 需要执行的迁移
|
||
|
||
连接到NAS并运行数据库迁移:
|
||
|
||
\`\`\`bash
|
||
# 1. SSH到NAS
|
||
ssh root@192.168.58.20
|
||
# 密码:jsjj8888
|
||
|
||
# 2. 进入项目目录
|
||
cd /mnt/tank/apps/youyidian-3d
|
||
|
||
# 3. 停止容器
|
||
docker compose down
|
||
|
||
# 4. 更新代码(如果通过Git或上传)
|
||
# 确保所有更新的文件都已上传
|
||
|
||
# 5. 重新构建并启动
|
||
docker compose up -d --build
|
||
|
||
# 6. 运行数据库迁移
|
||
docker compose exec app npx prisma db push
|
||
|
||
# 7. 初始化一级分类数据(可选)
|
||
docker compose exec -T app npx prisma db execute --schema=/app/prisma/schema.prisma --stdin <<< "
|
||
INSERT INTO categories (id, name, \"createdAt\") VALUES
|
||
(gen_random_uuid(), '家居', NOW()),
|
||
(gen_random_uuid(), '办公', NOW()),
|
||
(gen_random_uuid(), '商业', NOW()),
|
||
(gen_random_uuid(), '户外', NOW()),
|
||
(gen_random_uuid(), '其他', NOW())
|
||
ON CONFLICT (name) DO NOTHING;
|
||
"
|
||
|
||
# 8. 验证部署
|
||
docker compose ps
|
||
docker compose logs --tail=50 app
|
||
\`\`\`
|
||
|
||
---
|
||
|
||
## 🎨 界面改进
|
||
|
||
### 配色方案
|
||
**亮色模式**:
|
||
- 主色调:灰色系 (#F9FAFB, #FFFFFF)
|
||
- 强调色:深灰 (#111827, #1F2937)
|
||
- 边框:浅灰 (#E5E7EB)
|
||
|
||
**暗色模式**:
|
||
- 主色调:深灰系 (#111827, #1F2937)
|
||
- 强调色:中灰 (#374151, #4B5563)
|
||
- 边框:深灰 (#374151)
|
||
|
||
### 组件样式
|
||
- 圆角统一为12px(Apple风格)
|
||
- 按钮添加hover和active动画
|
||
- 卡片添加阴影提升层次感
|
||
- 输入框focus状态优化
|
||
|
||
---
|
||
|
||
## 📊 性能优化
|
||
|
||
1. **数据库索引**
|
||
- 添加categoryName索引
|
||
- 添加sceneName索引
|
||
- 优化查询性能
|
||
|
||
2. **前端优化**
|
||
- 使用XMLHttpRequest实现上传进度
|
||
- 实时计算上传速度
|
||
- 减少不必要的重渲染
|
||
|
||
3. **用户体验**
|
||
- 自动保存常用分类和场景
|
||
- 快速筛选和搜索
|
||
- 一键清除所有筛选
|
||
|
||
---
|
||
|
||
## 🐛 Bug修复
|
||
|
||
1. ✅ 修复了下载文件路径问题
|
||
2. ✅ 修复了Next.js API配置警告
|
||
3. ✅ 修复了Prisma二进制目标问题
|
||
4. ✅ 优化了文件名中文编码问题
|
||
|
||
---
|
||
|
||
## 📖 使用指南
|
||
|
||
### 上传素材(新流程)
|
||
|
||
1. **登录系统**
|
||
- 使用您的账号登录
|
||
|
||
2. **点击"上传素材"按钮**
|
||
|
||
3. **填写信息**:
|
||
- 选择预览图(支持JPG、PNG、WebP等)
|
||
- 输入商品型号(如:XY-2024-001)
|
||
- **选择一级分类**(如:家居、办公等)
|
||
- 如果没有合适的,点击"新建分类"
|
||
- **选择二级分类**(如:客厅、卧室等)
|
||
- 如果没有合适的,点击"新建场景"
|
||
- 选择压缩包(支持ZIP、RAR、7Z,最大10GB)
|
||
|
||
4. **开始上传**
|
||
- 实时查看上传进度
|
||
- 查看上传速度
|
||
- 等待上传完成
|
||
|
||
5. **完成**
|
||
- 上传成功后自动返回首页
|
||
- 新上传的素材会出现在列表顶部
|
||
|
||
### 筛选和查找素材
|
||
|
||
1. **使用搜索框**
|
||
- 输入关键词搜索
|
||
- 支持搜索商品型号、分类、场景、作者
|
||
|
||
2. **使用一级分类筛选**
|
||
- 点击分类按钮快速筛选
|
||
- 再次点击取消筛选
|
||
|
||
3. **使用二级分类筛选**
|
||
- 点击场景按钮筛选
|
||
- 可与一级分类组合使用
|
||
|
||
4. **组合筛选**
|
||
- 同时使用搜索、一级分类、二级分类
|
||
- 查看当前筛选条件标签
|
||
- 单独移除某个条件或一键清除
|
||
|
||
### 下载素材
|
||
|
||
1. 找到需要的素材卡片
|
||
2. 点击"下载"按钮
|
||
3. 浏览器会自动下载压缩包
|
||
|
||
---
|
||
|
||
## 🔧 技术栈
|
||
|
||
### 前端
|
||
- Next.js 14.2.33
|
||
- React 18
|
||
- TypeScript
|
||
- Tailwind CSS(支持黑暗模式)
|
||
- NextAuth.js
|
||
|
||
### 后端
|
||
- Next.js API Routes
|
||
- Prisma ORM
|
||
- PostgreSQL
|
||
- S3对象存储(MinIO)
|
||
|
||
### 部署
|
||
- Docker + Docker Compose
|
||
- FRP内网穿透
|
||
- TrueNAS(NAS服务器)
|
||
|
||
---
|
||
|
||
## 📝 API更新
|
||
|
||
### 新增API
|
||
|
||
**GET /api/categories**
|
||
- 获取所有一级分类
|
||
- 返回:`{ id, name, createdAt }[]`
|
||
|
||
**POST /api/categories**
|
||
- 创建新的一级分类
|
||
- 参数:`{ name: string }`
|
||
- 返回:`{ id, name, createdAt }`
|
||
|
||
### 更新API
|
||
|
||
**POST /api/materials/upload**
|
||
- 新增参数:`categoryName` (必填)
|
||
- 其他参数保持不变
|
||
|
||
**GET /api/materials**
|
||
- 新增查询参数:`?category=分类名`
|
||
- 支持组合查询:`?category=家居&scene=客厅&search=关键词`
|
||
|
||
---
|
||
|
||
## 🚀 部署更新
|
||
|
||
### 本地开发
|
||
|
||
\`\`\`bash
|
||
# 1. 拉取最新代码
|
||
cd /Users/lanmu/Desktop/gongxiangp2
|
||
|
||
# 2. 安装依赖(如有新增)
|
||
npm install
|
||
|
||
# 3. 生成Prisma Client
|
||
npx prisma generate
|
||
|
||
# 4. 运行数据库迁移
|
||
npx prisma db push
|
||
|
||
# 5. 启动开发服务器
|
||
npm run dev
|
||
\`\`\`
|
||
|
||
### NAS生产环境
|
||
|
||
\`\`\`bash
|
||
# 1. 上传新代码到NAS
|
||
sshpass -p 'jsjj8888' scp -r . root@192.168.58.20:/mnt/tank/apps/youyidian-3d/
|
||
|
||
# 2. SSH到NAS
|
||
ssh root@192.168.58.20
|
||
|
||
# 3. 进入项目目录
|
||
cd /mnt/tank/apps/youyidian-3d
|
||
|
||
# 4. 重新构建并启动
|
||
docker compose down
|
||
docker compose up -d --build
|
||
|
||
# 5. 运行数据库迁移
|
||
docker compose exec app npx prisma db push
|
||
|
||
# 6. 检查状态
|
||
docker compose ps
|
||
docker compose logs --tail=50 app
|
||
\`\`\`
|
||
|
||
---
|
||
|
||
## 🎯 未来规划
|
||
|
||
### 短期(1-2周)
|
||
- [ ] 添加批量下载功能
|
||
- [ ] 添加素材收藏功能
|
||
- [ ] 优化移动端体验
|
||
|
||
### 中期(1个月)
|
||
- [ ] 添加素材评论功能
|
||
- [ ] 添加素材标签系统
|
||
- [ ] 实现高级搜索(多条件组合)
|
||
|
||
### 长期(3个月)
|
||
- [ ] AI智能分类
|
||
- [ ] 素材推荐系统
|
||
- [ ] 数据统计和分析
|
||
|
||
---
|
||
|
||
## 📞 技术支持
|
||
|
||
如有问题,请联系:
|
||
- **开发者**:系统管理员
|
||
- **更新时间**:2025-10-16
|
||
- **版本**:v2.0.0
|
||
|
||
---
|
||
|
||
**感谢使用FLNXI素材库管理系统!** 🎉
|
||
|
||
|