产品管理 原系列管理
📌 功能概述
产品(原系列管理)资料管理页:按产品类型(卡牌盲盒类 / 赏品盲盒类 / 衍生品类)分 Tab 管理产品,支持多条件查询(名称/货号/IP多选/系列/系列ID),新增与编辑(系列ID、货号手动录入 + 箱规/盒规 + 卡位信息表格),卡位 Excel 批量导入,发售时间录入(待售 → 发售),删除(仅待售可删)。
🧱 页面结构
| 模块 | 内容 | 数据来源 |
|---|---|---|
| 类型 Tab | 卡牌盲盒类 / 赏品盲盒类 / 衍生品类(3 个分段) | 产品类型枚举 |
| 筛选区 | 产品名称、货号、IP(multi-select 多选标签,可单独删除/一键清空)、系列、系列ID | 产品表 |
| 全局操作栏 | 新增产品(按当前 Tab 默认产品类型,左对齐) | 操作入口 |
| 数据表格 | 卡牌类:序号/产品信息/发售信息/IP系列/系列ID/卡位/卡面/箱规/操作;赏品类同构但「盒规」;衍生品类:序号/产品信息/发售信息/IP系列/系列ID/操作 | 产品表 |
| 新增/编辑弹窗 | 基础信息 + 图文信息(产品封面≤200KB,预置产品自动回显系列封面方图)+ 卡位信息表格(卡牌/赏品) | 产品表 + 系列封面方图(D:\万漫社\01产品履历 整理压缩至 wms-images/products/) |
📋 功能说明(需求)
1. 查询域:产品名称(模糊)/ 货号(模糊)/ IP(multi-select,标签展示,可单独删除或一键清空)/ 系列(模糊)/ 系列ID(模糊)/ 发售状态(下拉单选:全部·发售·待售),条件之间为且,IP 多选为或,默认为空=全部。
2. 列表排序:发售状态「待售」>「发售」;发售产品按发售时间倒序排列。
3. 发售信息:新增后默认待售、发售时间为空;点击「发售」弹出弹窗添加发售时间,提交成功后状态为「发售」(编辑可改发售时间,可撤销售售清空时间回待售)。
4. 新增产品:产品类型默认=当前 Tab;基础信息(产品类型下拉/产品名称全品类唯一≤50字符失焦去空格/所属IP下拉=IP管理维护/卡位数量·卡面数量正整数=卡牌·赏品/系列名称同类型同IP唯一≤50/系列ID同类型同IP唯一≤50/货号全品类唯一≤50/箱规:盒/箱·包/盒·张/包 1~99999 正整数);图文信息(产品封面一张≤200KB);卡位信息(表格默认空,序号自增、卡位ID≤10字符、卡位名称≤10字符、卡位类型多选不互斥、卡位顺序正整数,操作=删除)。
5. 注意:赏品盲盒类箱规改为盒规(袋/盒·张/袋);衍生品类无卡位数量/卡面数量/卡位信息表格。
6. 卡位数量为校验目标值:保存时校验卡位信息表格条数与卡位数量一致,不一致拦截并提示;表格增删行不改变卡位数量字段。
7. 删除:仅「待售」产品可删除,删除需二次确认;已发售产品删除按钮置灰。
8. 操作列:编辑、发售(待售时)/已发售(置灰)、删除(待售时);卡位导入入口在新增/编辑弹窗的卡位信息区。
🖱️ 交互行为(页面现状)
| 操作 | 行为 |
|---|---|
| Tab 切换 | 切换产品类型,列表/表头随类型切换列结构,筛选条件保留 |
| IP 多选 | 点击输入框展开下拉面板勾选,选中以标签展示在筛选区;标签可单独 × 删除;「清空」一键清空 |
| 查询/重置 | 按条件筛选(名称/货号/系列/系列ID 模糊 + IP 多选 + 发售状态下拉单选);重置清空全部条件;无匹配显示空态 |
| 新增产品 | 按当前 Tab 默认产品类型;保存校验全部必填与唯一性,成功后列表刷新(localStorage 持久化) |
| 编辑 | 回显全部字段与卡位明细;任意状态可编辑;卡位可增删改 |
| 卡位数量校验 | 卡位数量为目标校验值:新增/删除卡位行、卡位导入均不影响该字段;保存时校验表格条数与卡位数量一致,不一致拦截并提示 |
| 卡位类型 | 行内「选类型」弹面板多选(不互斥,如 OFP=亲签限编卡+印签卡),标签可删 |
| 卡位导入 | 弹窗上传 Excel/CSV,解析后预览,确认追加;卡位ID 重复行跳过并提示(衍生品类提示不支持) |
| 发售 | 待售产品点「发售」→ 弹窗选发售时间(日期+时间,若有上次发售时间自动回显)→ 确认后状态变发售;已发售产品点「取消发售」→ 二次确认弹窗 → 确认后回待售,原发售时间保留(lastSale),再次发售自动回显 |
| 删除 | 仅待售可删,二次确认弹窗;已发售产品点删除 → toast 提示「请先取消发售后再删除」(按钮不禁用) |
| 每页条数/分页 | 20/50/100 条切换,分页吸底、表头吸顶、数据区滚动 |
📐 数据口径
| 字段 | 口径 |
|---|---|
| 产品名称 | 全品类唯一;≤50 字符;失焦去所有空格;卡牌/赏品类=IP·系列,衍生品类=商品标题 |
| 系列名称 / 系列ID | 同类型同 IP 下唯一;≤50 字符;失焦去空格 |
| 货号 | 全品类唯一;≤50 字符;失焦去空格 |
| 卡位数量 / 卡面数量 | 正整数(单位:个 / 款);卡位数量=目标校验值,保存时校验表格条数与之一致;卡面数量=产品卡牌款式总和 |
| 箱规(卡牌) | 盒/箱、包/盒、张/包:仅正整数 1~99999 |
| 盒规(赏品) | 袋/盒、张/袋:仅正整数 1~99999 |
| 卡位信息 | 卡位ID/卡位名称 ≤10 字符;卡位类型 7 类多选不互斥(亲签限编卡/印签限编卡/印签卡/限编卡/隐藏卡/隐藏限编卡/普卡);卡位顺序正整数 |
| 发售状态 | 待售(无发售时间)/ 发售(有发售时间);列表排序:待售>发售,发售按时间倒序 |
❌ 错误提示清单
| 页面 | 按钮/操作 | 场景 | 提示文案 |
|---|---|---|---|
| 产品管理 | 查询 | 无匹配 | 空态「未找到匹配的产品」 |
| 新增/编辑 | 保存 | 必填项为空(类型/名称/IP/系列名称/系列ID/货号/数量/箱规) | 「请输入/请选择 XX」 |
| 新增/编辑 | 保存 | 产品名称/货号全品类重复 | 「该产品名称已存在」/「该货号已存在」 |
| 新增/编辑 | 保存 | 系列名称/系列ID 同类型同IP重复 | 「该系列名称已存在」/「该系列ID已存在」 |
| 新增/编辑 | 保存 | 卡位数量/卡面数量/箱规非正整数或超范围 | 「请输入 1~99999 的正整数」 |
| 新增/编辑 | 选择封面 | 格式不支持 / 0KB / 超过 200KB | 「仅支持 JPG / PNG / WebP / GIF 格式图片」/「不能上传 0KB 的图片」/ 超限自动压缩至 ≤200KB 后上传 |
| 新增/编辑 | 保存 | 卡位信息条数与卡位数量不一致 | 「卡位数量为 N,卡位信息已录入 M 条,请核对一致后再保存」 |
| 卡位导入 | 导入 | 卡位ID 与已有卡位重复 | 「N 条卡位ID重复,已跳过」 |
| 卡位导入 | 打开 | 衍生品类无卡位 | 「衍生品类产品无需卡位信息」(按钮置灰+提示) |
| 发售弹窗 | 确认发售 | 未选择发售时间 | 「请选择发售时间」 |
| 列表 | 删除 | 已发售产品 | toast「已发售产品请先取消发售后再删除」 |
| 列表 | 取消发售 | 逆操作发售 | 二次确认弹窗;确认后回待售,时间保留,toast「已取消发售」 |
🔲 状态说明
| 状态 | 完成情况 |
|---|---|
| 默认 | ✅ 62 个产品(万漫社产品履历表.xlsx:卡牌 33 / 赏品 5 / 衍生品 24),待售 8 个演示「待售>发售」排序,分页吸底、数据区滚动 |
| Loading | 🔲 静态原型未模拟加载态 |
| Empty | ✅ 无匹配显示空态文案 |
| Error | 🔲 静态原型无请求失败场景 |