frontend-admin-v3 迁移台账
初始台账来源:
frontend-admin/src/app/router/routes.ts、frontend-admin/src/layout/AdminLayout/composables/useAdminLayout.js、frontend-admin/src/api/*、frontend-admin/src/constants/permissions.ts。本文件用于阻断漏页、漏接口、漏权限;未完成逐项验收前不得标记页面通过。
状态约定
- 页面归类:真实页面 / 重定向 / 隐藏详情页 / 聚合 tab / 兼容入口。
- 验收状态:未开始 / 进行中 / 通过 / 不适用。
- API 方法、权限码和测试用例必须在迁移对应页面时补充到方法级。
路由台账
| 业务域 | 旧路由 | 旧页面文件 | 旧菜单入口 | v3 路由 | v3 页面文件 | API 模块 | API 方法 | 权限码 | 主要功能 | 状态映射 | PC 验收 | 移动端验收 | 浏览器自动化验收 | API 验收 | 构建验收 | 备注 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 认证 | /admin/login | frontend-admin/src/views/admin/Login.vue | hidden | /admin/login | frontend-admin-v3/src/pages/login/index.vue、frontend-admin-v3/src/pages/login/components/Login.vue | auth.ts | adminAuthApi.login | 不适用 | 管理员用户名 + 密码登录,写入 admin_token,登录后跳转仪表盘或 redirect | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 已移除 Starter 注册/扫码/手机号登录入口;登录请求按后端契约使用 JSON body 提交 username/password;Playwright 覆盖真实登录提交 |
| 入口 | /admin | frontend-admin/src/layout/AdminLayout.vue | shell | /admin | frontend-admin-v3/src/layouts/index.vue、frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | 不适用 | 管理端壳层、重定向到仪表盘 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 重定向 + layout;菜单只保留业务首页路由 |
| 数据总览 | /admin/dashboard | frontend-admin/src/views/admin/Dashboard/index.vue | /admin/dashboard | /admin/dashboard | frontend-admin-v3/src/pages/dashboard/base/index.vue | admin.ts | dashboardStats -> adminApi.dashboardStats、dashboardRecentInvoices -> adminApi.dashboardRecentInvoices、dashboardMonthlyRevenue -> adminApi.dashboardMonthlyRevenue | dashboard.view | 仪表盘、指标卡、商品收入占比、每日收入趋势、最近账单 | INVOICE_STATUS_MAP | 通过 | 通过 | 通过 | 通过 | 通过 | 已按 TDesign Card/Table/Tag + ECharts 迁移;Playwright mock 覆盖三条 Dashboard API;已移除 Starter Dashboard 详情示例入口 |
| 用户体系 | /admin/users | frontend-admin/src/views/admin/Users/index.vue、frontend-admin/src/views/admin/Users/ListPage.vue、frontend-admin/src/views/admin/Users/Verification/index.vue | /admin/users | /admin/users | frontend-admin-v3/src/pages/users/index.vue、frontend-admin-v3/src/pages/users/components/VerificationPanel.vue | user.ts、admin.ts | userApi.list -> GET /admin/users、userApi.create -> POST /admin/users、userApi.toggleStatus -> POST /admin/users/{id}/toggle-status、userApi.recharge -> POST /admin/users/{id}/recharge、userApi.delete -> DELETE /admin/users/{id}、adminApi.verifications.list -> GET /admin/verifications、adminApi.verifications.summary -> GET /admin/verifications/summary、adminApi.verifications.detail -> GET /admin/verifications/{id}、adminApi.verifications.history -> GET /admin/verifications/{id}/history、adminApi.verifications.unbind -> POST /admin/verifications/{id}/unbind、adminApi.verifications.settings -> GET /admin/settings、adminApi.verifications.saveSettings -> POST /admin/settings | user.list、user.manage、user.recharge、verification.list、verification.unbind、settings.manage | 用户列表、筛选、分页、新增用户、状态切换、资金管理、删除入口;实名列表、筛选、详情抽屉、历史抽屉、驳回入口、接口配置、费用设置 | 用户状态自定义正常/禁用;实名状态按旧端 VERIFICATION_STATUS_MAP 口径在 TDesign Tag 中等价映射 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Table List + 移动端卡片列表;用户列表和实名管理 PC/移动端 E2E 通过;用户详情 /admin/users/:id 已作为独立隐藏详情页迁移并验收 |
| 用户体系 | /admin/users/verification | redirect | /admin/users | /admin/users/verification | frontend-admin-v3/src/router/modules/homepage.ts | admin.ts | 同 /admin/users?tab=verification 实名管理 API | verification.list | 跳转到用户实名 tab | 同 /admin/users 实名状态映射 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/users?tab=verification,Playwright 覆盖 PC/移动端兼容入口 |
| 用户体系 | /admin/users/:id | frontend-admin/src/views/admin/Users/detail/index.vue、frontend-admin/src/views/admin/Users/detail/components/* | hidden | /admin/users/:id | frontend-admin-v3/src/pages/users/detail/index.vue | user.ts、admin.ts、product.ts、supplier.ts | userApi.detail -> GET /admin/users/{id}、userApi.update -> PUT /admin/users/{id}、userApi.toggleStatus -> POST /admin/users/{id}/toggle-status、userApi.recharge -> POST /admin/users/{id}/recharge、userApi.loginAs -> POST /admin/users/{id}/login-as、userApi.services -> GET /admin/users/{id}/services、userApi.storeService -> POST /admin/users/{id}/services、userApi.serviceDelete -> DELETE /admin/users/{id}/services/{serviceId}、userApi.serviceDetail -> GET /admin/users/{id}/services/{serviceId}、userApi.serviceRemoteStatus -> GET /admin/users/{id}/services/{serviceId}/remote-status、userApi.refreshServiceStatuses -> POST /admin/users/{id}/services/refresh-statuses、userApi.servicePower -> POST /admin/users/{id}/services/{serviceId}/power、userApi.serviceResetPassword -> PUT /admin/users/{id}/services/{serviceId}/password/reset、userApi.updateServiceMeta -> PUT /admin/users/{id}/services/{serviceId}/meta、userApi.manualProvisionService -> PUT /admin/users/{id}/services/{serviceId}/manual-provision、userApi.refundService -> POST /admin/users/{id}/services/{serviceId}/refund、userApi.osOptions -> GET /admin/os-options、userApi.invoices -> GET /admin/users/{id}/invoices、userApi.invoiceDetail -> GET /admin/users/{id}/invoices/{invoice}、userApi.refundInvoice -> POST /admin/users/{id}/invoices/{invoice}/refund、adminApi.invoices.cancel -> POST /admin/invoices/{id}/cancel、userApi.balanceLogs -> GET /admin/users/{id}/balance-logs、userApi.tickets -> GET /admin/users/{id}/tickets、userApi.operationLogs -> GET /admin/users/{id}/operation-logs、userApi.emailLogs -> GET /admin/users/{id}/email-logs、userApi.smsLogs -> GET /admin/users/{id}/sms-logs、productApi.categories -> GET /admin/product-categories、productApi.list -> GET /admin/products、productApi.detail -> GET /admin/products/{id}、supplierApi.list -> GET /admin/suppliers | user.detail、user.manage、user.recharge、invoice.manage、product.list、product.manage | 用户详情头部、基础信息、推荐信息、服务列表、添加实例、服务刷新/删除、服务控制台、电源控制、重置密码、上游绑定、调价、改名称、手动开通、服务退款、账单列表、账单详情抽屉、账单取消、账单退款、资金流水、工单、操作日志、通知记录、编辑资料、资金管理、状态切换、代登录 | 用户状态自定义正常/禁用;账单/服务/工单/流水/通知状态按旧端本地映射迁移到 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Detail + Tabs + Table + Dialog + Drawer;Playwright 覆盖 PC/移动端详情打开、主要 tab、添加实例入口、服务控制台深操作入口、账单详情/退款入口;npm run build 与完整 E2E 26 passed |
| 工单 | /admin/tickets | frontend-admin/src/views/admin/Tickets/index.vue | /admin/tickets | /admin/tickets | frontend-admin-v3/src/pages/tickets/index.vue | admin.ts | adminApi.tickets.list -> GET /admin/tickets | ticket.list | 工单卡片列表、默认进行中筛选、标题/ID 搜索、状态筛选、优先级筛选、分类筛选、分页、用户详情入口、工单会话入口 | 工单状态按旧端 TICKET_STATUS_MAP 口径迁移为 TDesign Tag;优先级/分类沿用旧端本地枚举 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card List + Filter;Playwright 覆盖 PC/移动端页面打开、筛选、重置、用户详情入口与会话 URL 入口;会话页 /admin/ticket-conversations/:id 已作为独立隐藏详情页迁移并验收 |
| 工单 | /admin/ticket-conversations/:id | frontend-admin/src/views/admin/Tickets/detail.vue | hidden | /admin/ticket-conversations/:id | frontend-admin-v3/src/pages/tickets/detail/index.vue | admin.ts | adminApi.tickets.detail -> GET /admin/tickets/{id}、adminApi.tickets.adminUsers -> GET /admin/tickets/admin-users、adminApi.tickets.assign -> POST /admin/tickets/{id}/assign、adminApi.tickets.reply -> POST /admin/tickets/{id}/reply、adminApi.tickets.recall -> POST /admin/tickets/{id}/replies/{replyId}/recall、adminApi.tickets.close -> POST /admin/tickets/{id}/close、adminApi.tickets.uploadImage -> POST /admin/tickets/upload-image | ticket.reply、ticket.manage | 工单详情、会话流、管理员指派、回复、引用回复、两分钟内撤回、图片上传/预览、关闭工单、关联服务信息、用户详情入口 | 工单状态按旧端 TICKET_STATUS_MAP 口径迁移为 TDesign Tag;优先级/分类沿用旧端本地枚举 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Detail + Card + Descriptions + Upload;Playwright 覆盖 PC/移动端页面打开、详情信息、指派、引用回复、图片上传、撤回、关闭 |
| 产品 | /admin/products | frontend-admin/src/pages/admin/products/index.vue | /admin/products | /admin/products | frontend-admin-v3/src/pages/products/index.vue | product.ts、supplier.ts、admin.ts | 已接入基础方法:productApi.summary -> GET /admin/products/summary、productApi.types/createType/updateType/deleteType/reorderTypes -> /admin/product-types*、productApi.categories -> GET /admin/product-categories、productApi.createCategory/updateCategory/deleteCategory/reorderCategory -> /admin/product-categories*、productApi.list/detail/create/update/toggleStatus/delete/batchUpdateCategory/splitPreview/splitProducts/batchUpdateProvisionHostname -> /admin/products*、productApi.pullTrafficPackages -> POST /admin/products/traffic-packages/pull、supplierApi.summary/providerTypes/list/detail/create/update/toggleStatus/delete/balance/products/batchConnectProducts/productConfigTemplate、adminApi.settings.list/save -> GET/POST /admin/settings | product.list、product.manage | 商品目录聚合页、商品种类管理、分类 CRUD/排序、商品基础维护、商品配置项加载/新增/模板拉取/保存、商品批量归类、商品拆分、批量主机名规则、流量包分组新增/编辑/删除/绑定配置、流量包档位编辑/保存/上游拉取、供应商基础维护/余额同步/批量对接 | 产品状态 | 通过 | 通过 | 通过 | 通过 | 通过 | 已建立 TDesign Starter Table/Card/Tabs 基础页;PC/移动端 E2E 覆盖商品目录基础查询、商品种类新增/编辑/排序/删除、分类新增/编辑/排序/删除、商品新增入口、商品删除、商品配置项详情加载/手动新增/供应商模板拉取/保存 payload、商品批量归类、商品拆分预览/确认、批量主机名规则、流量包兼容入口、流量包分组新增/编辑/删除/绑定配置、流量包上游拉取与保存、供应商详情编辑/删除、状态切换、余额同步、供应商批量对接;完整 npm run test:e2e 40 passed |
| 产品 | /admin/specs | frontend-admin/src/views/admin/Products/SpecsPage.vue | /admin/specs | /admin/specs | frontend-admin-v3/src/pages/products/specs/index.vue | admin.ts | adminApi.instanceSpecCatalog.list -> GET /admin/instance-spec-catalog、adminApi.instanceSpecCatalog.save -> POST /admin/instance-spec-catalog、adminApi.coupons.productTree -> GET /admin/coupons/product-tree | product.manage | 实例规格目录、关键词筛选、绑定状态筛选、新增/编辑/删除规格、商品配置绑定、整体保存目录 | 实例规格状态:展示中/隐藏 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Table List + Dialog;Playwright 覆盖 PC/移动端页面打开、筛选、绑定配置选择、新增、删除、保存 payload |
| 产品 | /admin/cpu-models | frontend-admin/src/views/admin/Products/CpuModelsPage.vue | /admin/cpu-models | /admin/cpu-models | frontend-admin-v3/src/pages/products/cpu-models/index.vue | admin.ts | adminApi.cpuModelCatalog.list -> GET /admin/cpu-model-catalog、adminApi.cpuModelCatalog.save -> POST /admin/cpu-model-catalog、adminApi.coupons.productTree -> GET /admin/coupons/product-tree | product.manage | CPU 分组、CPU 型号列表、新增/编辑/删除分组、新增/编辑/删除型号、主频/睿频维护、商品配置绑定、整体保存目录 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card List + Table + Dialog;Playwright 覆盖 PC/移动端页面打开、型号展示、绑定配置选择、新增/删除型号、新增/删除分组、保存 payload |
| 产品 | /admin/products/catalog | redirect | /admin/products | /admin/products/catalog | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | product.list | 兼容旧商品目录入口 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/products |
| 产品 | /admin/products/traffic-packages | redirect | /admin/products/traffic-packages | /admin/products/traffic-packages | frontend-admin-v3/src/router/modules/homepage.ts | admin.ts、product.ts | adminApi.settings.list/save -> GET/POST /admin/settings?group=traffic_package_catalog、productApi.types -> GET /admin/product-types、productApi.categories -> GET /admin/product-categories、productApi.list -> GET /admin/products、productApi.pullTrafficPackages -> POST /admin/products/traffic-packages/pull | product.manage | 兼容流量包入口、分组新增/编辑/删除、绑定配置、档位新增/删除/保存、上游拉取 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/products?tab=traffic-packages;Playwright 覆盖 PC/移动端分组展示、新增/编辑/删除、绑定配置、档位保存、上游拉取与 settings payload |
| 产品 | /admin/products/suppliers | redirect | /admin/products/suppliers | /admin/products/suppliers | frontend-admin-v3/src/router/modules/homepage.ts | supplier.ts | supplierApi.summary/providerTypes/list/detail/create/update/toggleStatus/delete/balance/products/batchConnectProducts | product.manage | 兼容供应商入口、供应商列表、余额同步、新增、详情编辑、状态切换、删除、批量对接 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/products?tab=suppliers;Playwright 覆盖 PC/移动端兼容入口、列表加载后 /balance 静默同步、新增、状态切换、详情编辑、删除、批量对接请求与 payload |
| 财务 | /admin/orders | redirect | hidden | /admin/orders | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | invoice.list | 旧订单入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/finance/invoices;Playwright 覆盖 PC/移动端兼容入口 |
| 财务 | /admin/finance/orders | frontend-admin/src/views/admin/Finance/OrderListPage.vue | /admin/finance/orders | /admin/finance/orders | frontend-admin-v3/src/pages/finance/orders/index.vue | admin.ts | adminApi.orders.list -> GET /admin/orders | order.list、order.manage | 财务订单列表、关键词/类型/状态/日期筛选、分页、关联账单展示 | 订单状态按旧端 ORDER_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Table;保留 orders/renewals/addons mode 结构供后续复用;Playwright 覆盖 PC/移动端列表打开、筛选、重置、分页;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 财务 | /admin/finance/invoices | frontend-admin/src/views/admin/Finance/InvoiceListPage.vue | /admin/finance/invoices | /admin/finance/invoices | frontend-admin-v3/src/pages/finance/invoices/index.vue | admin.ts | adminApi.invoices.list -> GET /admin/invoices、adminApi.invoices.detail -> GET /admin/invoices/{id}、adminApi.invoices.cancel -> POST /admin/invoices/{id}/cancel | invoice.list、invoice.manage | 账单列表、关键词/类型/状态/日期筛选、分页、详情抽屉、取消账单 | 账单状态按旧端 INVOICE_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Table + Drawer + Dialog;Playwright 覆盖 PC/移动端 /admin/orders 兼容重定向、列表筛选、详情抽屉、取消账单;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 财务 | /admin/finance/recharges | frontend-admin/src/views/admin/Finance/RechargesPage.vue | /admin/finance/recharges | /admin/finance/recharges | frontend-admin-v3/src/pages/finance/recharges/index.vue | admin.ts | adminApi.financeMenu.recharges -> GET /admin/finance/recharges | finance.report | 充值记录、关键词/状态/日期筛选、分页、支付记录展示 | 充值状态按旧端 INVOICE_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Table;Playwright 覆盖 PC/移动端列表打开、筛选、重置、分页;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 财务 | /admin/finance/new-customers | frontend-admin/src/views/admin/Finance/NewCustomersPage.vue | /admin/finance/new-customers | /admin/finance/new-customers | frontend-admin-v3/src/pages/finance/new-customers/index.vue | admin.ts | adminApi.financeMenu.newCustomerDailySummary -> GET /admin/finance/new-customer-daily-summary | finance.report | 新客户统计、日期范围筛选、指标汇总、日报表 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Metric Strip + Table;Playwright 覆盖 PC/移动端默认加载、日期筛选、回到本月;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 财务 | /admin/finance/product-income | redirect | hidden | /admin/finance/product-income | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | finance.report | 旧商品收入入口兼容,重定向到服务列表 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/services;Playwright 覆盖 PC/移动端兼容入口 |
| 财务 | /admin/finance/renewals | frontend-admin/src/views/admin/Finance/OrderListPage.vue | /admin/finance/renewals | /admin/finance/renewals | frontend-admin-v3/src/pages/finance/orders/index.vue | admin.ts | adminApi.financeMenu.renewalOrders -> GET /admin/finance/renewal-orders | invoice.list | 续费订单列表、关键词/状态/日期筛选、分页、关联账单展示 | 订单状态按旧端 ORDER_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 复用 /admin/finance/orders 的 Starter Card + Table mode;Playwright 覆盖 PC/移动端列表打开、筛选、重置、分页;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 财务 | /admin/finance/upgrades | frontend-admin/src/views/admin/Finance/OrderListPage.vue | /admin/finance/upgrades | /admin/finance/upgrades | frontend-admin-v3/src/pages/finance/orders/index.vue | admin.ts | adminApi.financeMenu.upgradeOrders -> GET /admin/finance/upgrade-orders | invoice.list | 附加配置订单列表、配置类型/关键词/状态/日期筛选、分页、关联账单展示 | 订单状态按旧端 ORDER_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 复用 /admin/finance/orders 的 Starter Card + Table mode;Playwright 覆盖 PC/移动端列表打开、配置列、筛选、重置、分页;最新 npm run build 通过,完整 npm run test:e2e 52 passed |
| 服务 | /admin/services | frontend-admin/src/views/admin/Orders/ServicesPage.vue | /admin/services | /admin/services | frontend-admin-v3/src/pages/services/index.vue | service.ts | serviceApi.list -> GET /admin/services、serviceApi.batchUpdateCustomHostnames -> POST /admin/services/custom-hostnames/batch | product.list、user.manage | 服务列表、状态筛选、关键词筛选、分页、行选择、用户详情入口、批量自定义主机名保存 | 服务状态按旧端 SERVICE_STATUS_MAP 口径迁移为 TDesign Tag | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Table + Dialog;Playwright 覆盖 PC/移动端列表打开、筛选、重置、分页、批量主机名保存;最新 npm run build 通过,完整 npm run test:e2e 56 passed |
| 产品 | /admin/coupons | frontend-admin/src/views/admin/Products/CouponsPage.vue | /admin/coupons | /admin/coupons | frontend-admin-v3/src/pages/products/coupons/index.vue | admin.ts、user.ts | adminApi.coupons.summary -> GET /admin/coupons/summary、adminApi.coupons.list -> GET /admin/coupons、adminApi.coupons.create -> POST /admin/coupons、adminApi.coupons.update -> PUT /admin/coupons/{id}、adminApi.coupons.toggleStatus -> POST /admin/coupons/{id}/toggle-status、adminApi.coupons.delete -> DELETE /admin/coupons/{id}、adminApi.coupons.productTree -> GET /admin/coupons/product-tree、userApi.list -> GET /admin/users | product.manage | 优惠券列表、关键词/状态/类型/优惠阶段/发放方式筛选、分页、新增、编辑、启停、删除、适用商品选择、计费周期、公开/私有发放用户选择、功能开关禁用态 | 优惠券状态:生效中/已停用/已过期,TDesign Tag 等价映射 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Table List + Dialog/Form;Playwright 覆盖 PC/移动端页面打开、筛选、重置、新增 payload、编辑 payload、启停、删除 |
| 产品 | /admin/coupon-campaigns | frontend-admin/src/views/admin/Products/CouponCampaignsPage.vue | /admin/coupon-campaigns | /admin/coupon-campaigns | frontend-admin-v3/src/pages/products/coupon-campaigns/index.vue | admin.ts | adminApi.couponCampaigns.summary -> GET /admin/coupon-campaigns/summary、adminApi.couponCampaigns.list -> GET /admin/coupon-campaigns、adminApi.couponCampaigns.create -> POST /admin/coupon-campaigns、adminApi.couponCampaigns.update -> PUT /admin/coupon-campaigns/{id}、adminApi.couponCampaigns.toggleStatus -> POST /admin/coupon-campaigns/{id}/toggle-status、adminApi.couponCampaigns.trigger -> POST /admin/coupon-campaigns/{id}/trigger、adminApi.couponCampaigns.delete -> DELETE /admin/coupon-campaigns/{id}、adminApi.coupons.productTree -> GET /admin/coupons/product-tree | product.manage | 活动券列表、关键词/状态筛选、分页、新增、编辑、立即发放、启停、删除、发放星期/时间、每批数量、有效时长、优惠规则、适用商品、适用计费周期 | 活动券状态:运行中/已停用,TDesign Tag 等价映射 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Table List + Dialog/Form;Playwright 覆盖 PC/移动端页面打开、筛选、重置、新增 payload、编辑 payload、立即发放、启停、删除 |
| 运营 | /admin/referral | frontend-admin/src/views/admin/Growth/Referral/index.vue | /admin/referral | /admin/referral | frontend-admin-v3/src/pages/referral/index.vue | admin.ts | adminApi.referral.overview -> GET /admin/referral/overview、adminApi.referral.rewards -> GET /admin/referral/rewards、adminApi.referral.withdrawals -> GET /admin/referral-withdrawals、adminApi.referral.approveWithdrawal -> POST /admin/referral-withdrawals/{id}/approve、adminApi.referral.rejectWithdrawal -> POST /admin/referral-withdrawals/{id}/reject | referral.list、finance.withdraw | 推广概览、达人排行、奖励记录筛选/分页、提现记录筛选、提现通过/拒绝审核 | 奖励状态按旧端 REWARD_STATUS_MAP 口径迁移为 TDesign Tag;提现状态本地映射待审核/已通过/已拒绝 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Tabs + Table + Dialog + 移动端卡片;Playwright 覆盖 PC/移动端概览、奖励筛选/分页、提现筛选、通过/拒绝 payload;最新 npm run build 通过,完整 npm run test:e2e 58 passed |
| 增长 | /admin/growth | redirect | hidden | /admin/growth | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | member_level.manage | 旧增长入口兼容,重定向到会员等级 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/member-levels;Playwright 覆盖 PC/移动端兼容入口 |
| 增长 | /admin/member-levels | frontend-admin/src/views/admin/Growth/MemberLevelsPage.vue | /admin/member-levels | /admin/member-levels | frontend-admin-v3/src/pages/member-levels/index.vue | admin.ts | adminApi.memberLevels.list -> GET /admin/member-levels、adminApi.memberLevels.create -> POST /admin/member-levels、adminApi.memberLevels.update -> PUT /admin/member-levels/{id}、adminApi.memberLevels.delete -> DELETE /admin/member-levels/{id} | member_level.manage | 会员等级列表、新增、编辑、删除、状态展示、销售额门槛和返利比例维护 | 会员等级状态本地映射启用/停用,TDesign Tag 等价展示 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Card + Table + Dialog + 移动端卡片;Playwright 覆盖 PC/移动端列表打开、新增 payload、编辑 payload、删除和 /admin/growth 兼容重定向;最新 npm run build 通过,完整 npm run test:e2e 60 passed |
| 内容 | /admin/content/notices | frontend-admin/src/views/admin/ContentCenter/index.vue | /admin/content/notices | /admin/content/notices | frontend-admin-v3/src/pages/content/index.vue | admin.ts | adminApi.content.categories.list/create/update/delete -> /admin/content/categories*、adminApi.content.articles.list/detail/create/update/delete -> /admin/content/articles* | content.list、content.manage | 系统公告列表、关键词/分类/状态/置顶筛选、分页、分类管理、新增、编辑、删除、发布状态维护 | 内容状态本地映射草稿/已发布/已下线,TDesign Tag 等价展示 | 通过 | 通过 | 通过 | 通过 | 通过 | 同一 TDesign 页面按 contentType=notice 复用;Playwright 覆盖 PC/移动端筛选、分页、分类新增、公告新增/编辑/删除 payload;最新 npm run build 通过,完整 npm run test:e2e 62 passed |
| 内容 | /admin/content/help | frontend-admin/src/views/admin/ContentCenter/index.vue | /admin/content/help | /admin/content/help | frontend-admin-v3/src/pages/content/index.vue | admin.ts | 同 /admin/content/notices,请求参数 content_type=help | content.list、content.manage | 帮助中心列表、分类、筛选、编辑、发布状态维护 | 内容状态本地映射草稿/已发布/已下线,TDesign Tag 等价展示 | 通过 | 通过 | 通过 | 通过 | 通过 | 同一 TDesign 页面按 contentType=help 复用;Playwright 覆盖 PC/移动端帮助页打开与数据加载 |
| 内容 | /admin/content | redirect | hidden | /admin/content | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | content.list | 内容入口兼容,重定向到系统公告 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/content/notices;Playwright 覆盖 PC/移动端兼容入口 |
| 通知 | /admin/notifications | frontend-admin/src/pages/admin/notifications/index.vue | /admin/notifications | /admin/notifications | frontend-admin-v3/src/pages/notifications/index.vue | admin.ts、本地 apiCatalog.generated.json | adminApi.settings.list -> GET /admin/settings?group=notification、adminApi.settings.save -> POST /admin/settings、本地 apiCatalog.generated.json | settings.manage、content.list | 通知管理聚合页、邮件/短信接口配置、邮件模板列表、邮件模板详情入口、API 目录分类/筛选/复制 | 通知启用状态、本地模板类型状态 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Settings + Tabs + Table;Playwright 覆盖 PC/移动端接口配置加载与保存 payload、邮件模板用户/管理员切换、API 目录搜索/重置、兼容入口重定向;邮件模板详情 /admin/notifications/email-templates/:code 仍按独立隐藏页迁移 |
| 通知 | /admin/notifications/interfaces | redirect | /admin/notifications | /admin/notifications/interfaces | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 通知接口入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/notifications;Playwright 覆盖 PC/移动端兼容入口 |
| 通知 | /admin/notifications/email-templates | redirect | /admin/notifications | /admin/notifications/email-templates | frontend-admin-v3/src/router/modules/homepage.ts | admin.ts | adminApi.settings.list -> GET /admin/settings?group=notification | content.list | 邮件模板列表入口兼容 | 模板类型状态 HTML/文本、本地用户/管理员分组 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/notifications?tab=email-templates;Playwright 覆盖 PC/移动端兼容入口和列表加载 |
| 通知 | /admin/notifications/email-templates/:code | frontend-admin/src/views/admin/Notifications/EmailTemplates/index.vue | hidden | /admin/notifications/email-templates/:code | frontend-admin-v3/src/pages/notifications/email-template-detail/index.vue | admin.ts | adminApi.settings.list -> GET /admin/settings?group=notification、adminApi.settings.save -> POST /admin/settings | settings.manage | 邮件模板详情、变量样例、主题编辑、正文编辑、主题预览、iframe 邮件预览、恢复默认、保存模板、返回列表 | 模板类型用户/管理员、正文类型 HTML/文本 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Form + Detail;Playwright 覆盖 PC/移动端详情打开、变量样例、主题/正文编辑、保存 payload、恢复默认、返回列表 |
| 通知 | /admin/api-directory | redirect | hidden | /admin/api-directory | frontend-admin-v3/src/router/modules/homepage.ts | 本地 apiCatalog.generated.json | 本地 apiCatalog.generated.json | content.list | API 目录旧入口兼容、API 目录分类/筛选/复制 | API 访问级别公开/仅登录/登录+权限 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/notifications?tab=api-directory;Playwright 覆盖 PC/移动端兼容入口、目录展示与筛选 |
| 通知 | /admin/notifications/sms-logs | redirect | hidden | /admin/notifications/sms-logs | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 短信日志旧入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=sms;Playwright 覆盖 PC/移动端 |
| 通知 | /admin/notifications/email-logs | redirect | hidden | /admin/notifications/email-logs | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 邮件日志旧入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=email;Playwright 覆盖 PC/移动端 |
| 日志 | /admin/logs | frontend-admin/src/pages/admin/logs/index.vue、frontend-admin/src/views/admin/Logs/*、frontend-admin/src/views/admin/Notifications/EmailLogs/index.vue | /admin/logs | /admin/logs | frontend-admin-v3/src/pages/logs/index.vue | admin.ts | adminApi.logs.system -> GET /admin/logs/system、adminApi.logs.systemSummary -> GET /admin/logs/system/summary、adminApi.logs.adminLogins -> GET /admin/logs/admin-logins、adminApi.logs.api -> GET /admin/logs/api、adminApi.logs.sms -> GET /admin/logs/sms、adminApi.logs.smsSummary -> GET /admin/logs/sms/summary、adminApi.logs.email -> GET /admin/logs/email、adminApi.logs.emailSummary -> GET /admin/logs/email/summary、adminApi.logs.tasks -> GET /admin/logs/tasks、adminApi.logs.tasksSummary -> GET /admin/logs/tasks/summary、adminApi.logs.cleanupOverview -> GET /admin/logs/cleanup/overview、adminApi.logs.cleanup -> POST /admin/logs/cleanup、adminApi.schedules.overview -> GET /admin/schedules/overview、adminApi.schedules.trigger -> POST /admin/schedules/trigger | log.list、settings.manage | 8 tab 日志聚合页、系统日志/管理员登录/API/短信/邮件/任务日志筛选分页、详情抽屉、调度任务查看与手动触发、日志清理概览与确认清理 | 日志级别、HTTP 状态码、通知发送状态、管理员登录来源本地 TDesign Tag 映射;调度状态按日志级别映射 | 通过 | 通过 | 通过 | 通过 | 通过 | 模板:Starter Table List + Tabs + Drawer + Settings Form;后端当前 AdminPermissions 无 log.manage,日志清理实际在 log.list 组,调度接口实际在 settings.manage 组;Playwright 覆盖 PC/移动端列表筛选、分页、详情、调度触发、清理提交和兼容重定向;完整 E2E 72 passed |
| 日志 | /admin/logs/system | redirect | /admin/logs | /admin/logs/system | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 系统日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=system |
| 日志 | /admin/logs/admin-logins | redirect | /admin/logs | /admin/logs/admin-logins | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 管理员登录日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=admin-logins |
| 日志 | /admin/logs/api | redirect | /admin/logs | /admin/logs/api | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | API 日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=api;Playwright 覆盖 PC/移动端 |
| 日志 | /admin/logs/sms | redirect | /admin/logs | /admin/logs/sms | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 短信日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=sms |
| 日志 | /admin/logs/email | redirect | /admin/logs | /admin/logs/email | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 邮件日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=email |
| 日志 | /admin/logs/tasks | redirect | /admin/logs | /admin/logs/tasks | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 任务日志入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=tasks |
| 日志 | /admin/logs/cleanup | redirect | /admin/logs | /admin/logs/cleanup | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | log.list | 日志清理入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=cleanup;后端实际权限为 log.list |
| 日志 | /admin/schedules | redirect | /admin/logs | /admin/schedules | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 调度任务入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/logs?tab=schedules;后端实际权限为 settings.manage,Playwright 覆盖 PC/移动端 |
| 设置 | /admin/settings | frontend-admin/src/views/admin/Settings/index.vue | /admin/settings | /admin/settings | frontend-admin-v3/src/pages/settings/index.vue | admin.ts | adminApi.settings.list -> GET /admin/settings、adminApi.settings.save -> POST /admin/settings、adminApi.media.upload -> POST /admin/media-files、adminApi.siteHero.get -> GET /admin/site/home-hero、adminApi.siteHero.save -> POST /admin/site/home-hero | settings.manage、媒体上传依赖 content.manage | 设置聚合页:系统/支付/推荐奖励/自动化/站点基础/首页 Banner;通用配置按 group/settings 保存;站点图片上传;首页 Banner 独立编辑 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 设置页已移除商品设置、流量包设置与搜索优化相关入口 |
| 设置 | /admin/settings/basic | redirect | /admin/settings | /admin/settings/basic | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 旧基础设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=system;Playwright 覆盖 PC/移动端 |
| 设置 | /admin/settings/system | redirect | /admin/settings | /admin/settings/system | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 系统设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=system |
| 设置 | /admin/settings/message-limit | redirect | /admin/settings | /admin/settings/message-limit | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 消息限制入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=system |
| 设置 | /admin/settings/payment | redirect | /admin/settings | /admin/settings/payment | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 支付设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=payment |
| 设置 | /admin/settings/referral | redirect | /admin/settings | /admin/settings/referral | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 分销设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=referral |
| 设置 | /admin/settings/automation | redirect | /admin/settings | /admin/settings/automation | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 自动化设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=automation |
| 设置 | /admin/settings/site | redirect | /admin/settings | /admin/settings/site | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 站点基础设置入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=site_basic |
| 设置 | /admin/settings/site/basic | redirect | /admin/settings | /admin/settings/site/basic | frontend-admin-v3/src/router/modules/homepage.ts | admin.ts | 同 /admin/settings 站点基础配置与媒体上传 | settings.manage、媒体上传依赖 content.manage | 站点基础设置入口兼容、站点 Logo/Favicon/二维码上传 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/settings?tab=site_basic;Playwright 覆盖 PC/移动端保存与图片上传 |
| 设置 | /admin/settings/site/hero | redirect | /admin/settings | /admin/settings/site/hero | frontend-admin-v3/src/router/modules/homepage.ts | admin.ts | adminApi.siteHero.get -> GET /admin/site/home-hero、adminApi.siteHero.save -> POST /admin/site/home-hero | settings.manage | 首页 Hero 设置入口兼容、轮播项与底部特色卡片编辑保存 | 不适用 | 通过 | 通过 | 通过 | 通过 | 通过 | 已重定向到 /admin/settings?tab=site_hero;Playwright 覆盖 PC/移动端独立 payload 保存 |
| 设置 | /admin/site-ops | redirect | hidden | /admin/site-ops | frontend-admin-v3/src/router/modules/homepage.ts | 不适用 | 不适用 | settings.manage | 站点运维旧入口兼容 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 已重定向到 /admin/settings?tab=site_basic |
| 根路径 | / | redirect | hidden | / | frontend-admin-v3/src/router/index.ts | 不适用 | 不适用 | 不适用 | 跳转登录 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 重定向到 /admin/login |
| 异常页 | 无 | hidden | hidden | /admin/403 | frontend-admin-v3/src/pages/result/403/index.vue | 不适用 | 不适用 | 不适用 | 403 无权限提示,返回仪表盘 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | hidden 固定路由;返回 /admin/dashboard |
| 异常页 | /:pathMatch(.*)* | frontend-admin/src/views/common/NotFound.vue | hidden | /:pathMatch(.*)* | frontend-admin-v3/src/pages/result/404/index.vue | 不适用 | 不适用 | 不适用 | 404,返回仪表盘 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | 兜底路由;Playwright 覆盖未知 admin 路由 |
| 示例路由清理 | Starter 示例路由 | hidden | hidden | /result/*、/user/* | 不注册 | 不适用 | 不适用 | 不适用 | 移除 Starter 结果页、个人中心等示例入口 | 不适用 | 通过 | 通过 | 通过 | 不适用 | 通过 | fixedRouterList 不再自动注册非首页模块;Playwright 覆盖示例路由返回 404 |
批次记录
| 批次 | 范围 | 状态 | 构建验收 | 浏览器自动化验收 | 备注 |
|---|---|---|---|---|---|
| 批次 1 | 登录、Dashboard、Forbidden、NotFound、布局、路由、菜单与权限 | 通过 | 通过 | 通过 | frontend-admin-v3 独立构建通过;已完成登录业务化、Dashboard 迁移、403/404 对齐、菜单、Breadcrumb、权限过滤与 Starter 示例路由收敛;最新完整 E2E 80 passed |
| 批次 2 | 用户与工单 | 通过 | 通过 | 通过 | 用户列表、实名管理、用户详情深操作、工单列表、工单会话均已迁移;最新 npm run build 通过,完整 E2E 30 passed |
| 批次 3 | 产品与供应商 | 通过 | 通过 | 通过 | /admin/products 聚合页、兼容重定向、商品目录、商品种类、分类 CRUD/排序、商品配置项、商品删除、批量归类、商品拆分、批量主机名、流量包分组/档位/上游拉取、供应商列表/余额同步/新增/状态切换/详情编辑/删除/批量对接、/admin/specs 规格目录、/admin/cpu-models CPU 型号、/admin/coupons 优惠券、/admin/coupon-campaigns 活动券均已接入;旧端产品域路由与菜单审计覆盖 /admin/products、/admin/products/catalog、/admin/products/traffic-packages、/admin/products/suppliers、/admin/specs、/admin/cpu-models、/admin/coupons、/admin/coupon-campaigns;最新 npm run build 通过,完整 npm run test:e2e 40 passed |
| 批次 4 | 账单、财务与服务 | 通过 | 通过 | 通过 | 已完成 /admin/orders 兼容重定向、/admin/finance/orders 订单列表、/admin/finance/invoices 账单列表、/admin/finance/recharges 充值记录、/admin/finance/new-customers 新客户统计、/admin/finance/renewals 续费订单、/admin/finance/upgrades 附加配置订单、/admin/services 服务列表与 /admin/finance/product-income 兼容重定向;最新 npm run build 通过,完整 npm run test:e2e 56 passed;批次 4 已按旧端路由收口 |
| 批次 5 | 增长、内容与通知 | 通过 | 通过 | 通过 | 已完成 /admin/referral 推广返利、/admin/member-levels 会员等级、/admin/growth 兼容重定向、/admin/content/notices 系统公告、/admin/content/help 帮助中心、/admin/content 兼容重定向、/admin/notifications 通知聚合页、/admin/notifications/interfaces、/admin/notifications/email-templates、/admin/notifications/email-templates/:code、/admin/api-directory、通知日志兼容入口;最新完整 E2E 80 passed |
| 批次 6 | 日志、调度与设置 | 通过 | 通过 | 通过 | 已完成 /admin/logs 日志聚合页、通知日志兼容入口、日志 tab 兼容入口、/admin/schedules 调度兼容入口、/admin/settings 设置聚合页与设置相关兼容入口;设置页覆盖系统、支付、推荐奖励、自动化、站点基础、首页 Banner,媒体上传与首页 Banner 独立编辑器;最新 npm run build:type、npm run build、设置中心定向 E2E 与完整 npm run test:e2e 均通过,完整 E2E 80 passed |
