Files
TakeoutSaaS.AdminUI/document/99页面ToDo.md
2026-01-29 04:21:09 +00:00

12 KiB
Raw Permalink Blame History

页面ToDo

背景与接口基线

  • 后端架构Clean ArchitectureApi/Application/Domain/InfrastructureAdmin API 路由前缀 api/admin/v{version}/Mini API 路由前缀 api/mini/v{version}/,鉴权为 JWT + 权限码(PermissionAuthorize),长整型 ID 以字符串返回,前端需保持大数解析(可用 json-bigint)。
  • Admin 端已交付核心 APIPhase 1
    • 租户:注册/分页/详情、实名认证提交与审核、套餐订阅/续费/升降配、审核日志、公告/通知、账单、配额占用校验。
    • 商户:入驻创建、证照上传、合同管理、审核流程、审核日志、类目列表。
    • 套餐与配额TenantPackage CRUD、订阅历史、配额占用校验。
    • RBAC 模板:角色模板 CRUD、复制、租户初始化权限码种子齐全。
    • 门店:门店 CRUD、营业时间/配送区/节假日、能力开关(预约/排队)。
    • 桌码:区域与桌码 CRUD、批量生成、二维码 ZIP 导出。
    • 员工排班:员工 CRUD、门店角色绑定、排班 CRUD默认未来 7 天)。
    • 菜品:分类/SPU/SKU/规格/加料/媒资/定价 CRUD上/下架Mini 端可拉取门店菜单。
    • 库存SKU 库存与批次、调整/锁定/释放/售罄管理(表已具备,接口可用)。
    • 自提档期:自提设置与时间窗 CRUDMini 端按日期查询档期。
    • Mini 端基础:桌码扫码上下文(门店+桌台+公告)。
  • 尚未交付的模块(前端需占位但标记阻塞):购物车、完整下单/支付/优惠、桌台账单、自配送与第三方配送抽象、预购自提核销、业务指标大盘。
  • 业务关系(前端路由/权限需体现上下游约束):
    • 租户 ↔ 商户:商户属于租户,租户未通过实名认证/订阅过期时,商户入驻审核需提示或限制;租户停用后商户与门店入口应灰显。
    • 租户套餐/配额 ↔ 门店/员工/商品:套餐与配额决定可创建的门店数、员工数、商品数/库存操作等,前端在创建/批量操作时需展示剩余额度(调用配额校验接口),超额时阻止提交。
    • RBAC ↔ 模块入口:权限码控制菜单与按钮显隐;角色模板可复制到租户,租户停用/配额不足时仍可查看权限但部分操作需禁用;商户/门店/商品等操作按钮需绑权限码,防止“看得见点不了”的体验分裂。

搭建顺序(推荐)

  1. 环境与基础设施:pnpm i、配置 .env 的 API 基地址axios 实例 + 拦截器(加 Authorization、全局错误/超时提示、TraceId 透传)。
  2. 全局框架:登录页、基础布局(侧边导航/头部/标签页)、动态路由/菜单与权限控制(基于角色模板权限码)。
  3. 通用组件:表格查询模板、表单/抽屉、批量操作、上传(对接文件上传 API/COS、二维码下载、富文本/备注输入。
  4. 模块页面按优先级迭代(见下表);每个模块先做列表 → 详情 → 创建/编辑 → 审核/状态流转 → 导出/下载。
  5. 联调与观测:与 Swagger 一致的请求/响应模型,统一错误提示,必要时对长 ID 使用字符串展示;完成一模块后补充 E2E/组件级用例。

页面清单与依赖

模块 页面 关键功能 依赖 API 优先级
认证/首页 登录/登出 账号登录、Token 缓存/续期、租户/角色选择 Admin 鉴权接口Swagger权限码获取 P0
控制台总览 展示租户数/门店数/商品数、待办项入口 后续可接统计接口(暂用静态/Mock P2
系统权限 角色模板列表/详情 查看模板、权限码树、变更记录 api/admin/v1/role-templates*(根据 RolesController 路由) P1
角色模板新建/编辑 复制模板、勾选权限、保存 同上 P1
租户初始化权限 选择模板批量初始化租户权限 角色模板复制/初始化接口 P2
租户管理 租户列表/搜索 分页、状态筛选、关键字搜索 api/admin/v1/tenants GET P0
租户详情 基本信息、当前套餐/订阅、实名状态、公告/通知概览 tenants/{id} GET P0
注册租户 提交注册信息并初始化套餐 tenants POST P1
实名提交/审核 上传资料、查看审核记录、通过/驳回 tenants/{id}/verification POST / tenants/{id}/review POST 等 P1
订阅与配额 订阅创建/续费/升降配、配额占用校验历史 tenants/{id}/subscriptionstenants/{id}/quotas/check P1
账单与通知 账单列表/详情/标记支付,公告/通知列表+已读 tenants/{id}/billingsannouncementsnotifications P2
审核日志 查看租户审核日志 tenants/{id}/audits P2
商户入驻 商户列表/详情 状态筛选、合同/证照查看、审核轨迹 api/admin/v1/merchants GET P0
商户创建/编辑 录入基本信息、证照上传、合同录入 merchants POST/PUT、merchants/{id}/documentscontracts P1
商户审核 状态流转(待审/驳回/通过)、驳回原因 merchants/{id}/review P1
类目管理 类目列表/选择 merchant-categories 列表接口 P2
门店 门店列表/详情 基本信息、营业时间、配送区、能力开关 stores CRUD P0
门店编辑 基础信息维护、配送区 GeoJSON、节假日 stores PUT、stores/{id}/delivery-zones P1
门店公告 门店公告/通知管理 tenant-announcements (按租户/门店) P2
桌码 区域与桌台列表 区域/桌码 CRUD、状态展示 stores/{id}/tablestable-areas P1
批量生成与导出 按区域/容量生成,下载二维码 ZIP stores/{id}/tables:batch/export P1
员工与排班 员工列表/编辑 员工信息、门店角色绑定 store-employees CRUD P1
排班日历 未来 7 天排班视图、冲突提示、批量排班 store-employee-shifts P1
菜品与菜单 分类管理 分类 CRUD、排序 product-categories P1
商品列表/详情 SPU/SKU/规格/加料/媒资、上下架 productsproduct-skuspublish/unpublish P0
商品编辑 规格/加料组维护、媒资上传、定价 同上 P1
菜单预览 拉取门店全量菜单 JSON 预览 Mini 菜单接口 api/mini/v1/stores/{id}/menu P2
库存 库存列表 SKU 库存、锁定/售罄状态 inventory-items P1
批次管理 批次列表、调整、售罄 inventory-batches P1
库存调整 增减、预售/限购、锁定/释放记录 inventory-adjustmentsinventory-lock-records P2
自提档期 自提设置 截单时间、容量、开关 stores/{id}/pickup-settings P2
档期日历 日期选择、可用档期/余量展示 stores/{id}/pickup-slots P2
运营 公告/通知 公告列表/发布/上下架、已读状态 tenant-announcementstenant-notifications P2
账单/对账 账单列表、详情、标记支付 tenants/{id}/billings P2
待后端的占位 购物车、下单/支付、桌台账单、自配送/第三方配送、预购自提核销、业务指标报表 只做菜单占位或灰显入口,待后端接口就绪再实现 P3

说明:表内路由根据当前 Controllers 约定推断,实际联调请以 Swagger api/admin/swagger/index.html 暴露的接口为准。

下一步行动(可直接执行)

  1. 初始化 axios/路由/权限骨架,完成登录页与基础布局。
  2. 先联调租户列表/详情/注册与商户列表/审核,确保 RBAC 与菜单权限生效。
  3. 依次落地门店→桌码→员工排班→商品→库存→自提档期页面,完成 Phase 1 闭环。
  4. 为未交付模块预留菜单占位(灰色状态 + “开发中”),避免导航缺口。

迭代执行序列(更细步骤)

  1. 环境与骨架(当天完成)
    • 配置 .envAdmin API 基地址、超时、Token 存储键名。
    • 初始化 axios 拦截器:附带 Authorization、长 ID 使用 json-bigint 解析、全局错误提示、TraceId 透传。
    • 路由/布局:登录页、基础布局(侧边栏 + 顶栏 + 页签),路由守卫检查 Token 与权限码。
  2. 权限与菜单P0
    • 角色模板列表/详情页:展示权限树、变更记录。
    • 角色模板创建/编辑:复制模板、新增/删除权限码、保存。
    • 菜单与按钮显隐:基于权限码动态生成侧栏,按钮加指令控制。
  3. 登录与首页P0
    • 登录页账号密码登录Token 缓存与续期。
    • 控制台总览:占位展示租户数/门店数/商品数、待办(实名/审核/续费),数据可先用 Mock。
  4. 租户管理P0-P1
    • 租户列表:分页、状态/关键词筛选,列出套餐、实名状态、到期时间。
    • 租户详情:基本信息、当前订阅、配额剩余、公告/通知概览、审核日志。
    • 注册租户:表单提交注册;提交后跳转详情。
    • 实名提交流程:资料上传、状态展示、提交/驳回/通过操作;显示审核记录。
    • 订阅与配额:创建/续费/升降配、调用配额校验接口并展示剩余额度,超额禁止提交。
    • 账单/公告/通知:账单列表/详情/标记支付,公告/通知列表和已读状态。
  5. 商户入驻P0-P1
    • 商户列表:分页、状态筛选,显示所属租户、审核状态。
    • 商户详情:基本信息、证照、合同、审核轨迹。
    • 商户创建/编辑信息录入、证照上传COS 上传 API、合同录入。
    • 商户审核:待审/通过/驳回,填写驳回原因。
    • 类目管理:类目列表选择,支持搜索。
  6. 门店管理P0-P1
    • 门店列表:展示租户/商户、状态、能力开关(预约/排队)。
    • 门店详情/编辑:基础信息、营业时间、配送区 GeoJSON、节假日套餐/配额超额时禁用创建。
    • 门店公告:公告列表/发布/上下架(若后端按租户共享则合并视图)。
  7. 桌码管理P1
    • 桌码区域与桌台列表:区域 CRUD、桌台 CRUD显示容量/状态。
    • 批量生成:按区域/容量批量生成桌码。
    • 二维码导出ZIP 下载,支持按区域过滤。
  8. 员工与排班P1
    • 员工列表/编辑:基础信息、门店角色绑定。
    • 排班日历:未来 7 天排班视图,创建/编辑/删除,冲突提示。
  9. 菜品与菜单P0-P1
    • 分类管理:列表/排序/CRUD。
    • 商品列表SPU/SKU 列表,支持状态/分类筛选、上下架。
    • 商品编辑:规格/加料组、媒资上传、定价策略;保存后刷新 SKU 列表。
    • 菜单预览:按门店拉取全量菜单 JSON供验收与演示。
  10. 库存管理P1-P2
    • 库存列表SKU 库存、锁定/售罄状态,支持搜索/筛选。
    • 批次管理:批次列表、批次调整(数量/售罄展示策略FIFO/FEFO
    • 库存调整:增减、锁定/释放记录查看;展示幂等键与状态。
  11. 自提档期P2
    • 自提设置:截单时间、容量、开关配置。
    • 档期日历:选择日期,查看可用档期与剩余容量,支持新增/编辑/删除。
  12. 运营与账单P2
    • 公告/通知:公告发布/上下架,通知列表与已读状态。
    • 账单/对账:账单列表/详情、标记支付、导出。
  13. 占位与后续P3
    • 购物车、下单/支付、桌台账单、自配送/第三方配送、预购自提核销、业务指标报表:菜单入口置灰或“开发中”,待后端接口完成后再实施。
  14. 联调与验收(每完成一模块即进行)
    • 对照 Swagger 校验请求/响应;异常与权限错误统一提示。
    • 大整数字段保持字符串展示;上传类接口校验文件大小/格式。
    • 完成后补充基础用例(可用 Cypress/Playwright 或组件测试)覆盖核心流程。