WuYongJie 0db3c07dfb 添加多样化演示数据和模型更新脚本
✨ 新功能:
- 创建多样化的演示产品(办公椅、餐桌、书架)
- 添加 update-demo-models.js 脚本,支持更丰富的演示数据
- 每个产品类别都有专门的装配步骤和板件信息
- 随机生成访问量,模拟真实使用场景

📦 演示数据:
- 现代办公椅:6个装配步骤,4个板件
- 实木餐桌:4个装配步骤,5个板件
- 北欧书架:4个装配步骤,6个板件
- 保持向后兼容的 demo123 链接

🔧 脚本命令:
- npm run demo:update - 更新演示模型
- npm run demo:refresh - 推送数据库并更新模型
- 支持多种家具类别的自动化数据生成

🎯 用户体验:
- 产品管理页面显示多样化的产品列表
- 每个产品都有独特的分享链接
- 真实的统计数据和访问量显示
2025-12-11 17:14:55 +08:00
2025-12-11 16:42:59 +08:00
2025-12-11 16:42:59 +08:00

3D家具安装展示系统

现代化的3D家具装配过程展示系统,支持交互式动画和分享功能。

🚀 功能特性

  • 3D模型查看器: 支持旋转、缩放、平移的交互式3D家具模型
  • 装配动画: 分步骤展示装配过程,配备流畅的GSAP动画
  • 分享链接: 为客户生成可分享的装配说明链接
  • 移动端适配: 完美支持桌面端和移动端设备
  • 本地缓存优化: 优先使用本地资源,提升构建速度

🛠️ 技术栈

  • 前端: Next.js 14, React 18, TypeScript
  • 3D图形: Three.js, React Three Fiber
  • 动画: GSAP (GreenSock)
  • 数据库: PostgreSQL + Prisma ORM
  • 存储: MinIO (S3兼容)
  • 样式: Tailwind CSS
  • 部署: Docker & Docker Compose

⚡ 快速开始

环境要求

  • Node.js 18+
  • Docker & Docker Compose
  • Git

一键启动

# 克隆项目
git clone http://git.1080p.hk/WuYongJie/furniture-3d-system-Wu.git
cd furniture-3d-system-Wu

# 启动系统(自动设置缓存)
.\quick-start.ps1

# 创建演示数据
npm run demo:setup

# 访问应用
# http://localhost:3000
# 演示分享页面: http://localhost:3000/share/demo123

手动启动

# 1. 安装依赖
npm install

# 2. 配置环境变量
cp .env.example .env

# 3. 启动服务
docker-compose up -d

# 4. 访问应用
# 主应用: http://localhost:3000
# MinIO控制台: http://localhost:9001 (minioadmin/minioadmin)

📁 项目结构

src/
├── app/                    # Next.js App Router
│   ├── (public)/          # 公开路由 (分享页面)
│   ├── api/               # API路由
│   └── globals.css        # 全局样式
├── components/            # React组件
│   ├── 3d/               # 3D相关组件
│   ├── assembly/         # 装配动画组件
│   └── ui/               # UI组件
├── lib/                  # 工具库
│   ├── 3d/              # 3D引擎和工具
│   └── utils.ts         # 通用工具
└── types/               # TypeScript类型定义

🔧 开发命令

# 开发服务器
npm run dev

# 数据库管理
npm run prisma:studio
npm run prisma:generate
npm run prisma:push

# 演示数据
npm run demo:create        # 创建演示数据
npm run demo:setup         # 推送数据库结构并创建演示数据

# 构建部署
npm run build
npm start

# Docker部署
.\quick-start.ps1 prod

📡 主要API

  • GET /api/health - 健康检查
  • GET /api/products - 获取产品列表
  • POST /api/products - 创建产品
  • POST /api/share - 创建分享链接
  • GET /api/share/[token] - 获取分享的产品

🎯 使用流程

  1. 上传3D模型: 支持glTF格式的家具模型
  2. 设置装配步骤: 定义每个装配步骤的动画和说明
  3. 生成分享链接: 为客户创建可访问的装配指导页面
  4. 客户查看: 通过分享链接查看3D装配过程

🔧 本地缓存系统

项目支持本地缓存,大幅提升构建速度:

# 设置缓存(从flnxi_sucai项目复制资源)
.\scripts\cache-manager.ps1 -Action setup

# 加载Docker镜像
.\scripts\cache-manager.ps1 -Action load-images

# 清理缓存
.\scripts\cache-manager.ps1 -Action clean

⚙️ 环境变量

# 数据库
DATABASE_URL="postgresql://furniture_user:furniture_pass_2024@localhost:5432/furniture_3d"

# MinIO存储
S3_ENDPOINT="http://localhost:9000"
S3_BUCKET="furniture-3d-models"
S3_ACCESS_KEY="minioadmin"
S3_SECRET_KEY="minioadmin"

# 应用配置
NEXTAUTH_SECRET="your-secret-key"
NEXTAUTH_URL="http://localhost:3000"

🛠️ 故障排除

# 查看服务状态
.\quick-start.ps1 status

# 查看日志
.\quick-start.ps1 logs

# 重启服务
.\quick-start.ps1 restart

# 停止服务
.\quick-start.ps1 stop

📝 许可证

本项目采用 MIT 许可证。

🤝 技术支持

如需技术支持,请在项目仓库中提交Issue或联系开发团队。

Description
3D家具展示系统
Readme 391 MiB
Languages
TypeScript 91.1%
JavaScript 5.1%
C# 1%
PowerShell 0.7%
CSS 0.6%
Other 1.4%