272 lines
6.8 KiB
Markdown
272 lines
6.8 KiB
Markdown
# 标签优化说明 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`
|
||
|
||
---
|
||
|
||
**更新完成!** 🎉
|
||
|