feat(admin-frontend): 完成订阅与系统管理真实工作台
补齐订单、优惠券、主题、插件、公告与支付管理页面, 接入对应后台接口、路由入口与工具层类型定义。 同时修复套餐页开关初始化误写问题,避免浏览即触发写操作。 在订阅协议侧为 Stash 导出增加 AnyTLS 版本守卫, 未知版本或低于 3.3.0 时不再导出该协议,并补充回归测试与知识记录。
This commit is contained in:
+48
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"updatedAt": "2026-04-24T16:20:00+08:00",
|
||||
"version": 1,
|
||||
"source": "manual",
|
||||
"originCommand": "generic-r2",
|
||||
"verifyMode": "build-first",
|
||||
"reviewerFocus": [
|
||||
"订单管理列表结构是否贴近用户提供的后台截图",
|
||||
"详情抽屉是否覆盖查看、手动支付、取消与佣金状态维护主链路"
|
||||
],
|
||||
"testerFocus": [
|
||||
"订单列表是否真实连接 /order/fetch,并响应搜索、筛选、排序与分页",
|
||||
"分配订单抽屉是否真实连接 /order/assign",
|
||||
"详情抽屉是否真实连接 /order/detail /order/paid /order/cancel /order/update"
|
||||
],
|
||||
"ui": {
|
||||
"required": true,
|
||||
"designContract": true,
|
||||
"sourcePriority": [
|
||||
"requirements.md",
|
||||
".helloagents/DESIGN.md",
|
||||
"hello-ui"
|
||||
],
|
||||
"styleAdvisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": []
|
||||
},
|
||||
"visualValidation": {
|
||||
"required": true,
|
||||
"reason": "订单管理属于真实后台业务页,需要确认列表结构、筛选条与详情抽屉在代码实现上与目标截图和 Apple 化后台契约一致。",
|
||||
"screens": [
|
||||
"#/subscriptions/orders desktop"
|
||||
],
|
||||
"states": [
|
||||
"订单列表默认加载完成态",
|
||||
"分配订单抽屉展开态",
|
||||
"订单详情抽屉展开态"
|
||||
]
|
||||
}
|
||||
},
|
||||
"advisor": {
|
||||
"required": false,
|
||||
"reason": "",
|
||||
"focus": [],
|
||||
"preferredSources": []
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
# admin-frontend 订单管理首版交付 — 实施规划
|
||||
|
||||
## 目标与范围
|
||||
- 在现有订阅管理分组中补齐订单管理真实页,替换原先的禁用态入口。
|
||||
- 页面聚焦“订单运营工作台”主链路:查订单、分配订单、看详情、手工补单、管理佣金状态。
|
||||
|
||||
## 架构与实现策略
|
||||
- 在现有 `AdminLayout` 中开放 `/subscriptions/orders` 导航入口,并新增对应路由。
|
||||
- 新增 `OrdersView` 作为真实列表页,整体结构参考用户截图:
|
||||
- 顶部标题与说明
|
||||
- “添加订单”主按钮
|
||||
- 搜索框
|
||||
- 类型 / 周期 / 订单状态 / 佣金状态筛选按钮
|
||||
- 数据表格与分页
|
||||
- 新增两个子组件:
|
||||
- `OrderAssignDrawer.vue`:负责手动分配订单
|
||||
- `OrderDetailDrawer.vue`:负责查看详情与行级动作
|
||||
- 在 `src/utils/orders.ts` 中集中处理:
|
||||
- 金额分→元格式化
|
||||
- 类型 / 状态 / 周期映射
|
||||
- 筛选参数组装
|
||||
- 分配订单周期选项生成
|
||||
- API 层在 `src/api/admin.ts` 中新增订单接口封装;类型定义统一收敛到 `src/types/api.d.ts`。
|
||||
|
||||
## 完成定义
|
||||
- 侧边栏中的“订单管理”不再是禁用入口,能正常进入 `#/subscriptions/orders`。
|
||||
- 订单列表可真实连接 `/order/fetch`,并响应搜索、筛选、排序与分页。
|
||||
- 订单详情抽屉可真实连接 `/order/detail`,且能触发已支付、取消、佣金状态更新。
|
||||
- 分配订单抽屉可真实连接 `/order/assign`。
|
||||
- 订单金额相关字段统一正确展示为人民币元值。
|
||||
|
||||
## 文件结构
|
||||
- `admin-frontend/src/router/index.ts`
|
||||
- `admin-frontend/src/layouts/AdminLayout.vue`
|
||||
- `admin-frontend/src/api/admin.ts`
|
||||
- `admin-frontend/src/types/api.d.ts`
|
||||
- `admin-frontend/src/utils/orders.ts`
|
||||
- `admin-frontend/src/views/subscriptions/OrdersView.vue`
|
||||
- `admin-frontend/src/views/subscriptions/OrdersView.scss`
|
||||
- `admin-frontend/src/views/subscriptions/OrderAssignDrawer.vue`
|
||||
- `admin-frontend/src/views/subscriptions/OrderDetailDrawer.vue`
|
||||
|
||||
## UI / 设计约束
|
||||
- 列表页以白色工作台为主,不堆叠多余卡片;重点放在表格可读性与运营效率。
|
||||
- 订单号作为主入口,点击后进入详情抽屉,不额外拉长操作列。
|
||||
- 筛选入口使用紧凑 pill 风格按钮,对齐截图中的轻量筛选条。
|
||||
- 详情抽屉用黑色 hero + 白色信息卡的节奏,兼顾 Apple 风格与运营后台的信息密度。
|
||||
|
||||
## 风险与验证
|
||||
- 风险 1:`/order/fetch` 返回的 `period` 已被后端转换成 legacy key,筛选时需要继续使用数据库真实值。
|
||||
- 风险 2:订单金额与佣金金额在后端仍以分为单位存储,若前端直接展示会再次出现后台金额口径错误。
|
||||
- 风险 3:本地环境缺少真实后台登录态时,只能做结构与构建验证,不能替代完整联调。
|
||||
- 验证方式:
|
||||
- `npm run build`
|
||||
- 代码级结构自检 `#/subscriptions/orders`
|
||||
- 结构化视觉验收记录(无浏览器工具时以 code inspection 说明边界)
|
||||
|
||||
## 决策记录
|
||||
- [2026-04-24] 订单主操作收口到详情抽屉,不额外新增宽操作列,优先对齐用户截图。
|
||||
- [2026-04-24] 金额展示统一由 `src/utils/orders.ts` 处理,避免分/元换算逻辑散落在页面组件。
|
||||
- [2026-04-24] 分配订单抽屉默认按所选套餐周期自动回填金额,但允许运营手动覆盖。
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
# admin-frontend 订单管理首版交付 — 需求
|
||||
|
||||
确认后冻结,执行阶段不可修改。如需变更必须回到设计阶段重新确认。
|
||||
|
||||
## 核心目标
|
||||
- 在 `admin-frontend` 中开放“订阅管理 / 订单管理”入口,不再保留禁用态。
|
||||
- 参考用户提供的订单管理截图,交付真实订单列表页,覆盖搜索、筛选、排序、分页与详情查看。
|
||||
- 保持 `apple/DESIGN.md` 与 `.helloagents/DESIGN.md` 定义的 Apple 化后台视觉语言,但优先贴近截图中的数据密集型运营视图。
|
||||
|
||||
## 功能边界
|
||||
- 必须实现 `#/subscriptions/orders` 真实页面。
|
||||
- 页面必须包含:
|
||||
- 添加订单入口
|
||||
- 订单号搜索
|
||||
- 类型 / 周期 / 订单状态 / 佣金状态筛选
|
||||
- 支持排序的订单表格
|
||||
- 订单详情抽屉
|
||||
- 分配订单抽屉
|
||||
- 必须接入现有 Laravel 管理接口:
|
||||
- `GET /order/fetch`
|
||||
- `POST /order/detail`
|
||||
- `POST /order/assign`
|
||||
- `POST /order/paid`
|
||||
- `POST /order/cancel`
|
||||
- `POST /order/update`
|
||||
- 详情抽屉至少支持:
|
||||
- 查看订单核心信息与金额拆解
|
||||
- 对待支付订单手动标记已支付
|
||||
- 对待支付订单取消
|
||||
- 对有佣金金额的订单更新佣金状态
|
||||
|
||||
## 非目标
|
||||
- 本轮不实现礼品卡管理真实页面。
|
||||
- 本轮不改造 Laravel 订单后端接口逻辑。
|
||||
- 本轮不新增批量操作、多选导出或订单打印等扩展功能。
|
||||
|
||||
## 技术约束
|
||||
- 技术栈固定为 `Vue 3 + TypeScript + Vite + Element Plus`。
|
||||
- 后端真相源以仓库内 `App\Http\Controllers\V2\Admin\OrderController` 为准。
|
||||
- 构建验证使用 `admin-frontend/package.json` 中已有 `npm run build`。
|
||||
|
||||
## 质量要求
|
||||
- 订单页面需要对齐截图中的高密度表格工作流,同时保持 Apple 化后台的克制风格。
|
||||
- 金额字段必须统一处理“后端以分存储、前端以元展示”的换算。
|
||||
- 页面需覆盖加载、错误、空状态与成功反馈。
|
||||
- 最终至少完成一次构建验证,并留下结构化视觉验收与交付证据。
|
||||
@@ -0,0 +1,14 @@
|
||||
# admin-frontend 订单管理首版交付 — 任务分解
|
||||
|
||||
## 任务列表
|
||||
- [x] 任务1:补齐订单管理的方案与知识产物(涉及文件:`.helloagents/archive/2026-04/202604241620_admin-frontend-order-management/*`;完成标准:存在需求、方案、任务与合同文件;验证方式:文件检查)
|
||||
- [x] 任务2:开放导航与路由入口(涉及文件:`admin-frontend/src/layouts/AdminLayout.vue`、`admin-frontend/src/router/index.ts`;完成标准:侧边栏可进入 `#/subscriptions/orders`;验证方式:`npm run build`)
|
||||
- [x] 任务3:补齐订单 API、类型与工具层(涉及文件:`admin-frontend/src/api/admin.ts`、`admin-frontend/src/types/api.d.ts`、`admin-frontend/src/utils/orders.ts`;完成标准:前端可消费 `order/*` 接口并统一金额/状态映射;验证方式:`npm run build`)
|
||||
- [x] 任务4:实现订单列表页(涉及文件:`admin-frontend/src/views/subscriptions/OrdersView.vue`、`admin-frontend/src/views/subscriptions/OrdersView.scss`;完成标准:列表页支持搜索、筛选、排序、分页与详情入口;验证方式:`npm run build`)
|
||||
- [x] 任务5:实现分配订单与详情抽屉(涉及文件:`admin-frontend/src/views/subscriptions/OrderAssignDrawer.vue`、`admin-frontend/src/views/subscriptions/OrderDetailDrawer.vue`;完成标准:支持分配订单、查看详情、手动支付、取消订单与佣金状态维护;验证方式:`npm run build`)
|
||||
- [x] 任务6:完成验证与知识库同步(涉及文件:`.helloagents/CHANGELOG.md`、`.helloagents/context.md`、`.helloagents/modules/admin-frontend.md`、`.helloagents/.ralph-visual.json`、`.helloagents/.ralph-closeout.json`;完成标准:构建通过、知识库更新、交付证据写入;验证方式:命令输出 + 证据文件)
|
||||
|
||||
## 进度
|
||||
- [x] 已确认订单管理首版范围,聚焦真实列表、详情抽屉与分配订单。
|
||||
- [x] 已完成订单管理页面、抽屉与订单接口接入。
|
||||
- [x] 已完成构建验证,待输出最终交付摘要。
|
||||
Reference in New Issue
Block a user