feat(items): add dye previews support
Add item_dye_previews table to store color preview images per dyeable part Update item detail and edit views to support managing dye previews
This commit is contained in:
16
DESIGN.md
16
DESIGN.md
@@ -232,7 +232,7 @@
|
||||
- 删除所选范围的主数据、关联数据、实体翻译、编辑历史、图片上传记录和实体讨论评论。
|
||||
- Wipe Pokemon 会删除 Pokemon 及其属性 / 特长 / 喜欢的东西 / 掉落关联 / Trading 观察,并移除栖息地中的 Pokemon 出现配置,但不删除栖息地本身。
|
||||
- Wipe Habitats 会删除栖息地、栖息地配方项和 Pokemon 出现配置,但不删除 Pokemon、Items 或 Maps。
|
||||
- Wipe Items 会先删除 Recipes,再删除物品、物品入手方式 / 喜欢的东西关联、栖息地配方项、Pokemon 掉落关联和 Trading 观察。
|
||||
- Wipe Items 会先删除 Recipes,再删除物品、物品入手方式 / 喜欢的东西关联、染色预览、栖息地配方项、Pokemon 掉落关联和 Trading 观察。
|
||||
- Wipe Ancient Artifacts 会清空物品上的 Ancient Artifact 分类并删除对应 Ancient Artifact 讨论;物品本身仍保留在 Items / Event Items 中。
|
||||
- Wipe Recipes 会删除材料单、材料项和入手方式关联,但不删除 Items。
|
||||
- Wipe Daily CheckList 会删除清单任务和任务翻译 / 编辑历史。
|
||||
@@ -240,7 +240,7 @@
|
||||
- Export 行为:
|
||||
- 导出为版本化 JSON bundle,包含 `version`、`exportedAt`、`scopes` 和对应范围数据。
|
||||
- JSON bundle 用于系统导入,不作为前台展示内容。
|
||||
- 导出包含所选范围的主数据、关联数据、实体翻译、编辑历史、图片上传记录和实体讨论评论。
|
||||
- 导出包含所选范围的主数据、关联数据、物品染色预览、实体翻译、编辑历史、图片上传记录和实体讨论评论。
|
||||
- 导出必须包含对应 Wipe 会移除的跨范围关联行,例如 Pokemon 出现配置、Pokemon 掉落、Trading 观察和栖息地配方项;导入这些关联时,引用的另一侧实体必须已存在。
|
||||
- JSON 不包含上传文件本身;`backend_uploads` volume 需要单独备份。
|
||||
- Import 行为:
|
||||
@@ -668,12 +668,13 @@ Pokemon 详情页展示:
|
||||
- Food
|
||||
- 入手方式:可多选
|
||||
- 客制化:
|
||||
- 染色能力:`dyeability`,使用互斥枚举值维护:
|
||||
- 染色能力:`dyeability` 表示物品包含多少个可独立染色部位,使用互斥枚举值维护:
|
||||
- `0`:不可染色
|
||||
- `1`:可染色
|
||||
- `2`:可双区染色
|
||||
- `3`:可三区染色
|
||||
- `1`:1 个可独立染色部位
|
||||
- `2`:2 个可独立染色部位
|
||||
- `3`:3 个可独立染色部位
|
||||
- 可改花纹
|
||||
- 染色预览:当 `dyeability > 0` 时,物品可为每个染色部位维护不同颜色的预览图片;每条预览记录包含部位序号、颜色名称(例如 `None`、`Red`、`Blue`)和预览图片路径。部位序号必须在 `1..dyeability` 范围内;同一物品的同一部位同一颜色只能有一张预览图。
|
||||
- 无材料单:`no_recipe`
|
||||
- 标签:使用喜欢的东西配置,可多选
|
||||
- 图标图片:通过通用 Wiki 图片上传维护当前图标和历史上传记录
|
||||
@@ -708,6 +709,7 @@ Items 与 Event Items 使用相同数据模型:
|
||||
- 基本信息
|
||||
- 当前图标图片;未配置图标时展示默认物品标记占位符
|
||||
- 顶部按图标 / 占位符与核心信息概览并排展示,移动端改为单列;顶部概览卡片不显示 `Image` / `Details` 通用区块标题,也不展示图片历史缩略图
|
||||
- 染色预览:若已维护预览图,按染色部位分组展示各颜色预览,用户可查看每个独立染色部位在不同颜色下的效果
|
||||
- 介绍
|
||||
- Base Price
|
||||
- Ancient Artifact 分类:仅在物品已配置 Ancient Artifact 分类时展示
|
||||
@@ -1232,7 +1234,7 @@ API 暴露边界:
|
||||
- `GET /api/habitats`:支持 `isEventItem=true|false` 按普通栖息地 / Event Habitats 拆分列表;公开页面支持 `cursor` / `limit` 分页读取;未传分页参数时返回全部栖息地以兼容管理端和实体选择器。
|
||||
- `GET /api/habitats/:id`
|
||||
- `GET /api/items`:支持 `isEventItem=true|false` 按普通 Items / Event Items 拆分列表;默认返回所有物品,包括已配置 Ancient Artifact 分类的物品;传入 `ancientArtifactCategoryId` 时可额外筛选对应 Ancient Artifact 分类下的物品;公开页面支持 `cursor` / `limit` 分页读取;未传分页参数时返回完整数组以兼容管理端、实体选择器和排序。
|
||||
- `GET /api/items/:id`
|
||||
- `GET /api/items/:id`:返回物品详情、材料单关联、相关内容、编辑历史、图片历史和染色预览;染色预览只包含公开展示所需的部位序号、颜色名称和图片 URL / 路径。
|
||||
- `GET /api/ancient-artifacts`:支持 `search`、`categoryId` 和 `tagIds` 筛选;公开页面支持 `cursor` / `limit` 分页读取;未传分页参数时返回完整数组以兼容排序。
|
||||
- `GET /api/ancient-artifacts/:id`
|
||||
- `GET /api/recipes`:公开页面支持 `cursor` / `limit` 分页读取;未传分页参数时返回完整数组以兼容排序。
|
||||
|
||||
Reference in New Issue
Block a user