模块说明:我的订单列表页按 4 个 Tab 组织,本页按 Tab 顺序分章说明:模块二 待支付 → 模块三 待补缴 → 模块四 已完成 → 模块五 已取消(每章含该 Tab 的列表卡片、订单详情与相关流程)。本模块仅保留列表页公共规则(页面结构、状态字典、公共交互与接口)。
| 状态码 | 含义 | 主按钮(列表) | 主按钮(详情) |
|---|---|---|---|
| 1 | 已完成 | 无 | (查看订单) |
| 2 | 等待补缴 | 立即补缴 / 未开放补缴(显示 toPayTime) | 立即补缴 |
| 3 | 等待付款 | 立即支付 + 倒计时 | 立即支付 + 倒计时 + 取消服务 |
| 4 | 已取消 | 删除服务 / 放回购物车(P0 新增) | 删除 / 放回购物车 |
| 5 | 支付成功 | 无 | (查看订单) |
| 6 | 支付成功 | 无 | (同 status 5) |
| 值 | 标签 | 说明 |
|---|---|---|
| 0 | 已缴 | 已支付完成的段次 |
| 1 | 现缴 | 当前需要支付的段次 |
| 2 | 待缴 | 后续待补缴的段次 |
| 3 | 已过期 | 讲次已过的段次,置灰展示、不可缴费(值定义以 09 §三 段次状态机 为准) |
| Tab | 筛选条件 | 卡片操作按钮 | 补充说明 |
|---|---|---|---|
| 待支付 | orderStatus=3 | "立即支付"橙色按钮 + 倒计时(mm:ss) | 倒计时到 0 自动 reload |
| 待补缴 | orderStatus=2 | "立即补缴"或"未开放补缴" | orderCanRePay===3 可补缴;===4 灰禁;否则显示 toPayTime 文案 |
| 已完成 | orderStatus=1/5/6 | 无主按钮(点卡片进详情) | P1 可考虑"再次购买"入口 |
| 已取消 | orderStatus=4 | "删除服务" + "放回购物车"橙色描边按钮 | 放回购物车调 batchAdd 接口 |
| 操作 | 行为 | 补充 |
|---|---|---|
| 点击订单卡片 | 跳转 /orderDetail?orderId= | 所有状态均可点击进入详情 |
| 下拉刷新 | onRefresh 重新拉取列表 | — |
| 分页加载 | listMixin 提供,pageSize=10 | 滚动到底部自动加载下一页 |
| 场景 | 处理方式 |
|---|---|
| 空列表 | 各 tab 显示 empty 占位图(具体文案以设计稿/后端下发为准,前端不硬编码) |
| 订单服务不可用 | 各 tab 显示服务不可用提示(文案由后端下发 message,前端不硬编码) |
| 接口 | 入参 | 用途 |
|---|---|---|
/v2/order/queryOrders | type, pageIndex, pageSize | 订单列表分页 |
/v2/order/queryOrderCount | type | 订单数量(用于角标) |
/v2/order/deleteOrder | orderId | 删除已取消订单 |
/v2/shoppingcart/batchAdd | claIds, ignoreTest | 已取消订单一键放回购物车 |
| 操作 | 行为 | 补充 |
|---|---|---|
| 立即支付 | 跳转 07 收银台(continuePay 接口) | 携带 orderId,倒计时从 orderCreateTime 算 30 分钟 |
| 字段 | 代码字段 | 来源 | 规则 |
|---|---|---|---|
| 订单详情 | orderDetail | mine.getQueryOrderDetail({orderId}) | 包含 orderInfo + 商品列表 |
| 订单状态 | orderInfo.orderStatus | 同上 | 1/2/3/4/5/6 见 orderStatus 字典(模块一) |
| 支付倒计时 | cptCountDownTime | computed | 从 orderCreateTime 算 30 分钟 |
| 取消原因 | orderInfo.cancelReason | 接口返回 | 已取消时显示在 banner 文案(见 5.1) |
| 物流信息 | expressOrder | order.queryExpress({tmsOrderId}) | 有则显示"查看物流"按钮 |
| 退费状态 | item.regShowStatus | 接口 | 0~6 共 7 种态 |
| 服务总价 | orderInfo.orderPrice | 同上 | — |
| 优惠金额 | orderOtherCouponDis | 同上 | 优惠券折扣 |
| 电子券折扣 | orderEcouponDis | 同上 | — |
| 口令优惠 | orderNbygCouponDis | 同上 | — |
| 值 | 显示文案 | 颜色 |
|---|---|---|
| 0 | (不显示) | — |
| 1 | 申请退费 | 橙色 |
| 2 | 退费中 | 蓝色 |
| 3 | 退费成功 | 绿色 |
| 4 | 已退余额 | 绿色 |
| 5 | 已转班 | 灰色 |
| 6 | 退费失败 | 红色 |
| Banner 状态 | 背景色 | 图标 | 主文案 | 副文案 |
|---|---|---|---|---|
| 待支付(status=3) | 橙色 | 时钟 | 待支付 | 该服务将于 XX分XX秒后失效,请尽快支付 |
| 待补缴(status=2) | 橙色 | 补缴 | 待补缴 | X月X日 开放补缴 / 已开放补缴 |
| 已完成(status=1/5/6) | 蓝色 | 成功 | 已完成 | — |
| 已取消(status=4) | 灰色 | 失败 | 已取消 | 取消原因:{cancelReason} |
| 操作 | 行为 | 补充 |
|---|---|---|
| 立即支付 | 调 continuePay 接口 → 跳转 07 收银台 | 倒计时到 0 → 页面自动 reload |
| 取消服务 | 弹底部半屏取消订单弹窗(见 2.3) | 仅待支付态可见 |
| 修改地址 | 跳转地址编辑页(modifyAddress 接口) | 若已发货则按钮文案改为"查看物流" |
| 查看物流 | 调 order.queryExpress → 展示物流信息 | expressOrder 有值时显示 |
| 接口 | 用途 |
|---|---|
/v2/order/queryOrderDetail | 订单详情 |
/v2/order/cancelOrder | 取消订单 |
/v2/order/modifyAddress | 修改收货地址 |
/v2/order/continuePay | 继续支付 |
/v2/logistics/express | 查看物流 |
order.cancelOrder({orderId, cancelReason})cart.batchAdd({claIds}) 把订单班级放回购物车| 场景 | 处理方式 |
|---|---|
| cancelOrder 接口失败 | toast 错误信息,弹窗不关闭 |
| 防重复提交 | "确定"按钮 disabled + Loading |
| 开关 ON 时 batchAdd 失败 | 按错误码处理,同 模块五 batchAdd 异常表 |
| 配置项 | 维度 | 说明 |
|---|---|---|
| 取消原因列表 | 后台可配置 | 当前固定 5 个,后续可运营调整 |
| "放回购物车"开关默认值 | 全局 | 默认开启(ON)(已确认,影响转化挽留率) |
待补缴订单详情页复用 模块二 2.1 的整体结构,仅 banner 状态和操作按钮区域有差异。
| 状态 | Banner | 底部按钮 |
|---|---|---|
| 已开放补缴(orderCanRePay=3) | 橙色"待补缴—已开放补缴" | "立即补缴"橙色按钮 |
| 未开放补缴(orderCanRePay=4) | 橙色"待补缴" | "未开放补缴"灰色禁用 |
| 未开放·存在退费 | 橙色"待补缴" + 退费标签 | 灰色禁用,金额行扣除已退 |
| 未开放·其他(status=2, 其他) | 橙色"待补缴" | 显示 toPayTime 文案,灰色禁用,按钮文案「补缴时间 MM-DD」,取最近一段的开始缴费时间 |
| 操作 | 行为 | 补充 |
|---|---|---|
| 立即补缴 | 跳转 07 收银台 | 复用 continuePay 接口,走补缴结算 |
| 多段同时到期合并缴 | 多个段次同时到达可缴费时间 → 一起缴费(不拆单);仅部分段次到期 → 只缴已到期段次 | 完整规则见 09 §六 支付与待补缴 |
| 退费申请 | 跳转退费流程页 | P1 后续迭代,本期仅保留路由入口 |
| 场景 | 处理方式 |
|---|---|
| 补缴开放但班级已下架 | Toast 提示无法补缴(后端下发 message,前端不硬编码文案) |
| 订单详情加载失败 | 显示加载失败占位(文案以设计稿/后端下发为准)+ 重试按钮 |
已完成订单详情页复用 模块二 2.1 的整体结构,banner 为蓝色"已完成",无主操作按钮。
| 操作 | 行为 | 补充 |
|---|---|---|
| 再次购买(P1) | 将订单中班级重新加入购物车 | 类似"放回购物车"但面向已完成订单 |
| 去评价(P1) | 跳转评价页 | 需与 06 课程详情的学员评价模块联动 |
| 退费申请 | 跳转退费流程页 | P1 后续迭代,本期仅保留路由入口 |
cart.batchAdd({claIds})(claIds 取订单中所有班级 ID)| 操作 | 行为 | 补充 |
|---|---|---|
| 放回购物车 | 调 batchAdd({claIds}) → 成功 toast"已放回购物车" + 跳 07 购物车 | claIds 取订单中所有班级 ID |
| 删除服务 | 调 order.deleteOrder({orderId}) → 移除卡片 | 需二次确认弹窗 |
| 场景 | 处理方式 |
|---|---|
| batchAdd 全部成功 | Toast 提示成功数量(后端下发 message,前端不硬编码文案)+ 跳购物车 |
| batchAdd 部分失败 | dialog 列出失败班级名 + 已成功项保留(如"已结束/学位售罄") |
| batchAdd 全部失败 | toast 失败原因 |
| batchAdd 5003(班级冲突) | 弹"班级冲突"弹窗,提示用户去购物车处理 |
| batchAdd 5005/5006(诊断分层冲突) | 弹"诊断分层冲突"弹窗,同 07 购物车错误码处理 |
| batchAdd 5011(其他业务冲突) | 弹冲突提示弹窗 |
| 配置项 | 维度 | 说明 |
|---|---|---|
| "已取消"tab 红点判断 | 后端字段 | 近 7 天有新取消?有未处理的?(待确认 M-01,需后端字段支持) |
| 已取消订单是否需要二次确认 | 全局 | 列表页"放回购物车"是否弹确认 dialog(待确认 M-03) |
| 类型 | 含义 | 展示方式 |
|---|---|---|
| 1 | 满减券 | 满 XX 减 XX |
| 2 | 折扣券 | X 折 |
| 3 | 代金券 | 直减 XX 元 |
| 4 | 无门槛券 | 减 XX 元(不限门槛) |
| 状态 | 判断条件 | Tab 归属 |
|---|---|---|
| 未使用 | unusedStatus=1 且未过期 | 未使用 tab |
| 已使用 | unusedStatus=2 | 已使用 tab |
| 已过期 | unusedStatus=1 且已过期 | 已过期 tab |
| 操作 | 行为 | 补充 |
|---|---|---|
| "去使用" | 跳转 03 首页 / 04 选课 | 根据券适用范围决定跳转目标 |
| 整卡点击 | 同"去使用"(整卡 click 热区扩大) | P0 改进:旧版点击区域小,新版整张券都是点击热区 |
| 下拉刷新 | onRefresh 重新拉取 | — |
| 使用指南 | 跳转 /couponUserGuide | 旧版已实现,本期保留 |
| 场景 | 处理方式 |
|---|---|
| 无优惠券 | 各 tab 显示 empty 占位图 + "暂无优惠券" |
| 优惠券服务不可用 | 显示服务不可用提示(文案由后端下发 message,前端不硬编码) |
| 配置项 | 说明 |
|---|---|
| 优惠券使用指南 URL | 路由 /couponUserGuide,旧版已实现 |
| 点击热区规则 | 整卡 click(hover/active 态视觉反馈,待确认 M-09) |
券切换弹窗是在确认订单页(07 购物车与下单)中调用的券选择 UI,非独立页面。2026-08-04 起由「未使用/历史卡券」调整为「可使用/不可用」两类(企微讨论记录 15.8,因接口无"历史卡券"字段,见文末说明)。
| 操作 | 行为 | 补充 |
|---|---|---|
| 选中一张券 | 单选高亮 + 自动计算优惠金额 | 切换选中时实时更新 |
| "不使用优惠券" | 取消选中所有券,按原价计算 | — |
| 点击"确定" | 回填选中券 → 关闭弹窗 → 确认订单页更新金额 | 若未选任何券则等价于"不使用" |
| 切换到"不可用"tab | 展示已使用/已过期/不满足条件券(只读) | 不可选中,仅供查看 |
| 场景 | 处理方式 |
|---|---|
| 无可用优惠券 | 可使用 tab 显示"暂无可用优惠券" + 引导查看"不可用"tab |
| 券已过期但列表未刷新 | 选中时校验有效期,过期则 Toast 提示(后端下发 message,前端不硬编码文案)+ 刷新列表 |
| 多选互斥(同类型券) | 单选模式,选新自动取消旧选中 |
flowchart TD Start([我的 - 订单入口]) --> OrderList[订单列表页
4 Tab: 待付款/待补缴/已完成/已取消] OrderList -- 点击卡片 --> OrderDetail[订单详情页] OrderDetail -- status=3 待支付 --> PayAction{操作} PayAction -- 立即支付 --> Cashier[07 收银台
continuePay] PayAction -- 取消服务 --> CancelDialog[取消订单弹窗
5 原因 + 放回购物车开关] CancelDialog -- 确定 --> CancelOrder[/cancelOrder/] CancelOrder -- 开关 ON --> BatchAdd1[/batchAdd
放回购物车/] CancelOrder -- 开关 OFF --> RefreshDetail[刷新详情
status=4 已取消] BatchAdd1 --> RefreshDetail OrderDetail -- status=4 已取消 --> CancelAction{操作} CancelAction -- 放回购物车 --> BatchAdd2[/batchAdd/] CancelAction -- 删除服务 --> DeleteOrder[/deleteOrder/] BatchAdd2 -- 成功 --> JumpCart[toast + 跳 07 购物车] BatchAdd2 -- 5003/5005/5006/5011 --> ConflictDialog[弹冲突弹窗] OrderDetail -- status=2 待补缴 --> RepayAction{操作} RepayAction -- 立即补缴 --> Cashier RepayAction -- 未开放 --> Disabled[灰色禁用
显示 toPayTime] OrderDetail -- status=1/5/6 已完成 --> DoneAction[查看详情
P1: 再次购买/去评价] OrderList -- 已取消 tab 放回购物车 --> BatchAdd3[/batchAdd/] BatchAdd3 --> JumpCart subgraph 优惠券 CouponList[优惠券列表 3 Tab
未使用/已使用/已过期] CouponSwitch[确认订单 - 券切换
2 Tab: 可使用/不可用] end OrderList -- 优惠券入口 --> CouponList Cashier -.-> CouponSwitch
flowchart TD
Start([已取消订单]) --> Click{用户点击放回购物车}
Click -- 列表卡片按钮 --> CallBatch
Click -- 详情页底部按钮 --> CallBatch
CallBatch[/shoppingcart/batchAdd
入参 claIds=订单中的班级] --> Resp{响应 code}
Resp -- 200 全部成功 --> Success[toast 已放回购物车 + 跳购物车页]
Resp -- 部分失败 --> PartFail[dialog 列出失败班级
+ 已成功项保留]
Resp -- 全部失败 --> AllFail[toast 失败原因]
Resp -- 5003 --> Conflict[弹班级冲突弹窗]
Resp -- 5005/5006 --> DiagConflict[弹诊断分层冲突弹窗]
Resp -- 5011 --> BizConflict[弹业务冲突弹窗]
subgraph 取消订单时放回
CancelPreCancel([待支付订单点取消服务]) --> CancelPop[弹取消原因弹窗]
CancelPop --> ChooseReason[选 1/5 原因 + 切换放回购物车开关]
ChooseReason --> SubmitCancel[确定: cancelOrder + 可选 batchAdd]
SubmitCancel --> Resp
end
| 修订项 | 修订内容 | 期数 | 依据来源 | 日期 |
|---|---|---|---|---|
| 按 4 Tab 重组章节 | 由「页面类型」切分(列表/详情-待支付/取消弹窗/详情-已完成)重组为按订单列表 4 个 Tab 分章:模块一 列表页总览(公共规则:4 Tab 结构、orderStatus 字典、segmentLabelObj、公共交互与接口清单)→ 模块二 待支付(列表卡片+详情+取消订单弹窗与流程)→ 模块三 待补缴(列表卡片+详情三态)→ 模块四 已完成(列表卡片+详情与操作)→ 模块五 已取消(列表卡片+一键放回购物车流程+详情);原优惠券相关模块顺延为模块六/七/八,遗留问题 M-01/M-03/M-04 随取消/放回购物车内容归入对应 Tab 章节 | 三期 | 用户裁定 2026-08-07 | 2026-08-07 |
| 流程注清理 | 删除「原待确认清单 N 已闭环」「用户裁定归属/承载/迁入」等闭环与归属性流程注,保留裁定结果内容与来源依据注 | 三期 | 用户裁定 2026-08-06 | 2026-08-06 |
| 红框标注校准 | 按 PIL 图像测量 + 读图目检校准 10 处部件级红框位置:修正弹窗/toast/列表区域框错位,叠加弹窗图(输错 1/2)改框整组弹窗区,同页面不同状态截图确认沿用同参数 | 三期 | PIL 测量校准 2026-08-05 | 2026-08-05 |
| 图组布局规则统一 | 依 00 V1.10 新布局规则:同层级多图(同图不同状态/图+弹窗/同流程步骤)一律横排,每张统一 280px 宽(uniform),容器横向滚动查看(细滚动条常显 + 右侧渐变提示防漏看);本页 6 个图组统一改造(其中 4 组竖排改横排),half/third 混宽与多图竖排旧规则废止 | 三期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 异常兜底事实核查清理 | 「暂无订单」「服务暂不可用,请稍后」×2「已放回 X 个班级」「该服务已下架,无法补缴」「加载失败,请重试」「该券已过期」7 处杜撰/具体文案改通用表述(后端下发 message,前端不硬编码);「暂无优惠券」空态保留(企微 15.8 有据);m4「补缴倒计时归零 → 自动 reload」(核查项 K8)与待支付倒计时 reload 无源码依据,删除移待确认红字登记 | 三期 | portal-vue 源码 grep 核查 2026-08-05 | 2026-08-05 |
| 图组布局规则统一 | §4.2 待补缴三态、§5.1 券四态由横排 third 改竖排 vertical-item(依 00 V1.9 登记的图组布局规则:整页长截图组竖排、短图组 ≤3 张横排);另按用户裁定将事实核查编号「C8」改为「核查项 K8」避免与待确认清单 C-08 混淆 | 三期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 业务规则库接入 | 订单状态与操作引用 WB-ORDER-001,待补缴段次计算引用 WB-SEGMENT-001,本页保留列表/详情页表现与按钮状态 | 跨期 | 业务规则库首批提取 | 2026-08-05 |
| 待裁定回写 | m4 待补缴支付流程裁定(原待办57/待确认清单 3 闭环):方向可行——收银台放弃支付→待付款可支付(原待补缴页仍有但不能支付)→待付款取消→回待补缴可直接支付;修正:原 15.8「去掉确认服务页直跳收银台」不采纳,正常流程保持「立即补缴→确认服务页→收银台」 | 三期 | 用户裁定 2026-08-05(企微讨论记录 15.8) | 2026-08-05 |
| 网报3.0设计稿合入 | 合入网报3.0升级设计稿-20260804:m1 新增 1.1 各 Tab 订单卡片状态(待支付/待补缴手工+产品分段/待补缴含退费/已完成 4 图);m2 新增 2.1 接口延迟过渡态(已取消闪现 1 图);m4 新增 4.1 已完成订单详情与操作(详情/修改地址/已转班/已退余额 4 图)+ 4.2 待补缴三态(已开放/未开放/未开放含退费 3 图);m5 新增 5.1 券四态与详情/说明(未使用/已使用/已过期/详情/说明 5 图) | 三期 | 网报3.0升级设计稿-20260804 | 2026-08-05 |
| 讨论记录增量落地(15.8) | ① m6 历史卡券改「可使用/不可用」两类:因接口无"历史卡券"字段,Tab 与规则全量改写(待办56);② m4 登记待补缴支付流程调整(收银台放弃→待付款可支付→取消→回待补缴可支付;去确认服务页直跳收银台),标待确认(待办57);③ m5 重申 discountType 4 类枚举(与 7/26"实际发放仅立减/折扣"口径不冲突);④ m2 接口延迟已取消闪现登记前端防抖待确认 | 三期 | 企微-网报讨论记录 15.8(待办56/57) | 2026-08-05 |
| 优惠券类型口径 | 明确当前业务仅有"立减""折扣"两种优惠券,无"满减";discountType 接口枚举保留,前端展示与测试以两种类型为准 | 一期 | 2026-07-26确认 | 2026-07-26 |
| 待补缴段次缴费规则 | 新增:多个段次同时到达可缴费时间则一起缴费(与产品分段一致),仅部分到期则只缴已到期段次;补充与购物车侧"只缴首段"的差异说明 | 二期 | 语雀《分段收费》2026-07-30 | 2026-07-30 |
| 段次标签新增已过期 | segmentLabelObj 增加 3=已过期(讲次已过、置灰不可缴、不参与金额计算),值定义统一以 09 §三 段次状态机为准 | 二期 | 语雀《分段收费》2026-07-30 | 2026-07-30 |
| 分段规则收敛至 09 | 分段收费独立成模块 09-分段收费 作为唯一权威源;本文档待补缴业务规则改为引用,仅保留界面结构与按钮状态;补充界面事实:段次行「段名 + 状态文字 + 金额」、金额行四段式(原价/优惠/已缴/待缴)、未到期按钮文案「补缴时间 MM-DD」灰色禁用 | 二期 | 语雀《分段收费》贴图 | 2026-07-30 |
| 矛盾检查修订 | 全量矛盾检查修复:优惠券相关开关「默认开启(ON)」口径确认;删除 M-02 重复登记行;09 引用去锚点改指整页(唯一权威源) | 一期 | 全量矛盾检查 | 2026-07-30 |