# 标签优化说明 v2.1 ## 📅 更新日期:2025-10-17 --- ## 📝 标签更新概述 为了更好地匹配实际业务场景,对系统中的标签进行了全面优化: | 原标签 | 新标签 | 说明 | |--------|--------|------| | 商品型号 | **SPU** | 更专业的电商术语,表示标准产品单元 | | 一级分类 | **使用店铺** | 明确表示素材所属的电商店铺 | | 场景名称/二级分类 | **场景类别** | 统一命名,表示素材适用的场景分类 | --- ## 🎯 更新范围 ### 1. 前端组件 #### UploadModal.tsx(上传模态框) - ✅ "商品型号" → "SPU" - ✅ "一级分类" → "使用店铺" - 提示文本:"输入新店铺名称" - 按钮文本:"+ 新建店铺" - 选择提示:"选择使用店铺" - ✅ "二级分类/场景" → "场景类别" - 提示文本:"输入新场景类别" - 按钮文本:"+ 新建场景类别" - 选择提示:"选择场景类别" #### page.tsx(首页) - ✅ 搜索框 placeholder: - 原:"搜索商品型号、分类、场景、作者..." - 新:"搜索SPU、店铺、场景类别、作者..." - ✅ 筛选区域标题: - "一级分类" → "使用店铺" - "二级分类/场景" → "场景类别" - ✅ 筛选标签显示: - "一级分类: xxx" → "店铺: xxx" - "二级分类: xxx" → "场景类别: xxx" - ✅ 素材卡片信息: - "一级分类:" → "店铺:" - "二级分类:" → "场景类别:" ### 2. 后端API #### /api/categories/route.ts - ✅ 注释更新:"获取所有一级分类" → "获取所有使用店铺" - ✅ 错误消息更新: - "获取分类列表失败" → "获取店铺列表失败" - "分类名称不能为空" → "店铺名称不能为空" - "该分类已存在" → "该店铺已存在" - "创建分类失败" → "创建店铺失败" #### /api/scenes/route.ts - ✅ 注释更新:"获取所有场景" → "获取所有场景类别" - ✅ 错误消息更新: - "获取场景列表失败" → "获取场景类别列表失败" - "场景名称不能为空" → "场景类别名称不能为空" - "该场景已存在" → "该场景类别已存在" - "创建场景失败" → "创建场景类别失败" #### /api/materials/route.ts - ✅ 搜索注释更新: - 原:"search in productModel, categoryName, sceneName, authorName" - 新:"search in SPU, shop, scene category, author" - ✅ 筛选注释更新: - "Add category filter" → "Add shop filter (使用店铺)" - "Add scene filter" → "Add scene category filter (场景类别)" ### 3. 数据库Schema #### prisma/schema.prisma ```prisma model Material { productModel String // SPU (原:商品型号) categoryName String // 使用店铺 (原:一级分类名称) sceneName String // 场景类别 (原:二级分类/场景名称) ... } model Category { name String @unique // 使用店铺名称 (原:一级分类名称) ... } model Scene { name String @unique // 场景类别名称 (原:二级分类/场景名称) ... } ``` ### 4. 部署脚本 #### update-deploy.sh - ✅ 初始化数据更新: ```bash # 原:初始化一级分类数据(家居、办公、商业等) # 新:初始化店铺数据(天猫旗舰店、京东自营等) ``` - ✅ 部署完成提示新增标签更新说明: ``` 标签更新: 📝 商品型号 → SPU 📝 一级分类 → 使用店铺 📝 场景名称 → 场景类别 ``` --- ## 💡 业务场景说明 ### SPU(Standard Product Unit) - **定义**:标准产品单元,电商行业标准术语 - **示例**: - iPhone 15 Pro Max 256GB(SPU) - ├─ 深空黑色(SKU) - ├─ 原色钛金属(SKU) - └─ 白色钛金属(SKU) - **用途**:统一管理同一产品的所有变体 ### 使用店铺 - **定义**:素材所属的电商店铺/销售渠道 - **示例**: - 天猫旗舰店 - 京东自营 - 拼多多店铺 - 1688店铺 - 淘宝店铺 - 抖音小店 - 小红书店铺 - **用途**:区分不同渠道的素材需求 ### 场景类别 - **定义**:素材适用的具体场景分类 - **示例**: - 客厅 - 卧室 - 厨房 - 办公室 - 商业展厅 - 户外场景 - **用途**:快速找到特定场景的素材 --- ## 📊 数据迁移 ### 无需迁移 ✅ 本次更新**仅涉及标签文本更改**,不涉及数据库字段名修改 ✅ **现有数据完全兼容**,无需数据迁移 ✅ 只需要重新部署前端和后端代码即可 ### 可选:更新初始数据 如果希望更新初始店铺数据,可以执行: ```bash ssh root@192.168.58.20 cd /mnt/tank/apps/youyidian-3d docker compose exec -T app npx prisma db execute --schema=/app/prisma/schema.prisma --stdin <<< " -- 清空现有分类(可选) DELETE FROM categories; -- 插入新的店铺数据 INSERT INTO categories (id, name, \"createdAt\") VALUES (gen_random_uuid(), '天猫旗舰店', NOW()), (gen_random_uuid(), '京东自营', NOW()), (gen_random_uuid(), '拼多多店铺', NOW()), (gen_random_uuid(), '1688店铺', NOW()), (gen_random_uuid(), '淘宝店铺', NOW()), (gen_random_uuid(), '抖音小店', NOW()), (gen_random_uuid(), '小红书店铺', NOW()), (gen_random_uuid(), '其他店铺', NOW()) ON CONFLICT (name) DO NOTHING; " ``` --- ## 🚀 部署更新 ### 方式一:自动部署(推荐) ```bash cd /Users/lanmu/Desktop/gongxiangp2 ./update-deploy.sh ``` ### 方式二:手动部署 ```bash # 1. 打包 cd /Users/lanmu/Desktop/gongxiangp2 tar -czf update.tar.gz --exclude='node_modules' --exclude='.next' . # 2. 上传 scp update.tar.gz root@192.168.58.20:/mnt/tank/apps/youyidian-3d/ # 3. 部署 ssh root@192.168.58.20 cd /mnt/tank/apps/youyidian-3d tar -xzf update.tar.gz docker compose down docker compose up -d --build ``` --- ## ✅ 验证更新 ### 1. 上传页面 1. 打开上传模态框 2. 检查标签: - ✅ "SPU"(而不是"商品型号") - ✅ "使用店铺"(而不是"一级分类") - ✅ "场景类别"(而不是"场景名称") ### 2. 首页 1. 检查搜索框 placeholder 2. 检查筛选区域标题: - ✅ "使用店铺" - ✅ "场景类别" 3. 检查素材卡片信息显示 ### 3. 功能测试 1. 测试新建店铺 2. 测试新建场景类别 3. 测试搜索功能 4. 测试筛选功能 --- ## 📈 用户体验改进 ### 更专业 - ✅ 使用行业标准术语(SPU) - ✅ 提升系统专业度 ### 更清晰 - ✅ "使用店铺"比"一级分类"更明确 - ✅ "场景类别"比"场景名称/二级分类"更统一 ### 更易用 - ✅ 标签语义更明确 - ✅ 减少理解成本 - ✅ 提升操作效率 --- ## 📞 技术支持 如有问题,请查看: - **功能更新文档**:`FEATURE_UPDATES.md` - **快速部署指南**:`QUICK_DEPLOY.md` - **项目信息**:`PROJECT_INFO.md` --- **更新完成!** 🎉