模块说明:购物车是家长管理已加购商品、按财务主体分组勾选并进入结算的核心页面。
入口:底部Tab「购物车」/ 课程详情加购成功 | 页面组成:购物车主页 → 学员切换 → 编辑删除
| 字段 | 来源 | 规则 |
|---|---|---|
| 分账主体分组 | cart.getCart() 接口 | 按 financeId 分组,key=financeId, value={list[], checked} |
| 价格对象 priceObj | /v2/order/queryPre | {totalPrice, originPrice, payEcouponDiscount, payClassDiscount, goodsNum} |
| 拓科推荐 | cart.getExpandSubjects() | 有结果时展示拓科推荐区;无结果或服务降级时隐藏,不影响购物车主流程。候选、过滤与排除口径见 WB-REC-001 |
| 关联推荐 | cart.getRelatedClass() | 有结果时展示关联推荐;无结果或服务降级时隐藏。推荐与财务主体无关,完整候选/过滤口径见 WB-REC-001 |
| 失效购物单 | cart.getCart() invalidList | 班级失效后自动归入底部灰色区域 |
| 预选课倒计时 | good.netRegDate + secondsToNetRegStart | 距开抢 HH:MM:SS,未到点禁用勾选 |
| 状态 | 触发条件 | 表现 |
|---|---|---|
| 正常态 | 已登录 + 有学员 + 有数据 | 完整商品列表 + 底部结算 |
| 编辑模式 | 点右上角"编辑" | 底部"结算"变"删除",所有商品可勾选(含预选课) |
| 预选课态 | good.isNetRegStarted = false | 显示禁用 icon + 倒计时,不可勾选 |
| 原班标签态(已移除) | good.originClass 有值 | 2026-07-28 测试评审决议:原班推荐逻辑未实现,去掉"原班 ›"标签及课程对比弹窗 UI(原设计:底部显示橙色"原班 ›",点击弹课程对比弹窗) |
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 拓科推荐开关 | 是否展示拓科推荐区域 | 开启 |
| 关联推荐开关 | 是否展示关联推荐(沿用现有逻辑,与主体无关) | 开启 |
| 预选课提前开放时间 | 倒计时提前多久展示 | 由后台班级配置 |
| 设计稿 | 对应规则 |
|---|---|
| 常规「讲次」 | 1. 界面结构 · 商品信息行(📍地点 · 🕐时间 · 📅N次课 · 👤指导老师)的常规讲次形态 |
| 拓科推荐 | 1. 界面结构 · 拓科推荐区("— ❤️ 推荐以下拓科服务 —" + 课程卡片);取数规则见上方数据规则「拓科推荐」行(2026-07-28 测试评审确认,与企微讨论记录 14.6/11.12 原文核对一致) |
| 顾问/系统推荐课程 | 商品标签形态(推荐 / 续报 / 线下 / 在线 / 双师 / AI):顾问推荐与系统推荐课程带「推荐」标签;关联推荐取数规则同上(14.6/11.12) |
| 状态 | 对应规则 |
|---|---|
| 有优惠明细 | 4. 交互规则「查看详情∧」:展开优惠明细弹窗(合计 / 原价 / 已减 / 券减),数据来自 queryPre 的 priceObj |
| 无优惠时 | 无可用优惠时弹窗仅展示合计 / 原价,无优惠明细行 |
模块说明:不同财务主体的商品按组隔离展示和勾选,顾问可通过 TMS 为家长配置分段支付。
入口:购物车主页内自动触发 | 页面组成:购物车主体分组卡片
| 字段 | 来源 | 规则 |
|---|---|---|
| financeId 分组 | getCart 接口 | 不同主体不能合并支付,前端按组隔离勾选 |
| financeDisplayName | financeInfos[financeId] | 组头标题展示用 |
| classPaySegments | 商品接口 | 2 种来源:产品分段 / 分校(顾问)分段 |
| segmentStatus | 接口返回 | 0=已结课 / 1=现缴 / 2=待缴 / 3=已过期;值定义与展示形态以 09 §三 段次状态机 为准 |
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 分段来源标识 | good.segmentSource: product/manual_tms | product |
| 城市+分校分段配置 | TMS 后台配置,如寒暑全讲/春秋4讲(配置维度见 09 §八) | 按地区配置 |
模块说明:购物车在三种前置条件下的占位态引导,优先级:未登录 > 无学员 > 空购物车。
入口:购物车主页自动判断 | 页面组成:切换学员弹窗 + EmptyDefault 占位组件
| 状态 | 判断条件 | 展示文案 | 按钮动作 |
|---|---|---|---|
| 未登录 | !hasLoggedIn | 暂无服务,请登录后查看 | 立即登录 → toLogin |
| 已登录无学员 | hasLoggedIn && !hasChild | 暂无服务,请添加学员后查看 | 添加学员 → /addStudent |
| 空购物车 | availableGroupedList 和 invalidList 均为空 | 购物单空空如也~ | 去选课 → /selectCourse |
| 配置项 | 说明 | 默认值 |
|---|---|---|
| 空状态图片 | EmptyDefault 组件使用的空态图 | 通用空状态图 |
| 登录引导文案 | 未登录时展示文案(cart.vue 源码含「请登录后查看」相关逻辑,此条为源码有据) | "暂无服务,请登录后查看" |
| 状态 | 对应规则 |
|---|---|
| 已登录 · 空购物车 | 2. 数据规则「空购物车」行:EmptyDefault + "购物单空空如也~" + "去选课"按钮(→ /selectCourse) |
| 未登录 · 引导登录 | 2. 数据规则「未登录」行:EmptyDefault + "暂无服务,请登录后查看" + "立即登录"按钮(→ 微信授权登录) |
模块说明:购物车的编辑删除、失效商品管理和预选课倒计时机制。
入口:购物车主页"编辑"按钮 / 左滑删除 | 无独立设计稿,交互基于购物车主页编辑态
| 场景 | 规则 |
|---|---|
| 编辑模式 | isEditting=true 时,所有商品可勾选(含预选课未到点),底部切为"删除"按钮 |
| 左滑删除 | 调用 /v2/shoppingcart/delete,claIds 逗号分隔 |
| 批量删除 | 编辑模式多选后点"删除" → batchDelete + recompute 保证原子性 |
| 失效判定 | 后端 getCart 返回 invalidList 的商品进入底部失效区并灰显;五类失效口径与实时复核见 WB-COURSE-001 |
| 未到缴费时间 | 不归入失效区:留在正常商品区,icon 置灰不可勾选,编辑模式例外可选,倒计时到点自动变可选(2026-07-30 补充)。注意与第 ⑤ 类区分:未到缴费时间是"还没开始",段次全部过期是"已经错过",后者入失效区 |
| 预选课倒计时 | good.netRegDate + secondsToNetRegStart,前端 judgeFormat 计算 |
batch_delete_cart(P0 新增)| 配置项 | 说明 | 默认值 |
|---|---|---|
| 左滑删除开关 | 是否支持左滑删除 | 开启 |
| 失效区展示上限 | 失效商品最多展示条数 | 无上限(全部展示) |
| 网报报名截止时间 | TMS 存在网报报名截止时间配置项(2026-07-31 测试沟通 15.6,张鑫发现、吴源华确认),为失效判定 ②「服务已截止报名」的判定来源 | — |
模块说明:顾问在 TMS 后台为家长生成购物车同步链接,家长扫码后自动绑学员并将顾问配置的商品批量加购到购物车。
入口:顾问扫码二维码 | 页面组成:/shareFromTms → /shareOrderFromTms → /shareRepayFromTms
| 路由参数 | 含义 | 来源 |
|---|---|---|
| uuid | TMS 后台同步会话唯一标识 | TMS 生成的二维码 |
| stuMemberId | 目标学员 ID | 同上 |
| shareUserId | 顾问 ID(归因) | 同上 |
| shareUserPhone | 顾问手机号(备用) | 同上 |
| claIds | 逗号分隔班级 ID 列表 | 同上 |
| 错误码 | 含义 | 前端处理 |
|---|---|---|
| 200 | 成功 | 跳转 /cart 查看购物车 |
| 5005/5006/5011 | 诊断分层冲突 | 弹 CourseShowDialog"无法处理的班级,请先参加学习诊断" |
| 5003 | 服务冲突 | 弹"以下 N 个班级未能更新至服务" |
/shareFromTms:TMS 购物车同步(主入口)/shareOrderFromTms:TMS 服务分享/shareRepayFromTms:补缴分享(配合我的-补缴结算)| 配置项 | 说明 | 默认值 |
|---|---|---|
| 分段来源标识 | good.segmentSource: product/manual_tms | product |
| 城市+分校分段配置 | TMS 后台配置(寒暑全讲/春秋4讲等) | 按地区配置 |
| 二维码有效期 | TMS 生成的二维码有效期 | 待确认 |
关联文档:确认订单、收银台、支付结果、报读须知与订阅消息、支付成功页 Banner,以及「购物车 → 支付全链路核心流程图」,详见 三期/10-确认订单与支付。
| 修订项 | 修订内容 | 期数 | 依据来源 | 日期 |
|---|---|---|---|---|
| 流程注清理 | 删除「原待确认清单 N 已闭环」「用户裁定归属/承载/迁入」等闭环与归属性流程注,保留裁定结果内容与来源依据注 | 二期 | 用户裁定 2026-08-06 | 2026-08-06 |
| 红框标注校准 | 按 PIL 图像测量 + 读图目检校准 6 处部件级红框位置:修正弹窗/toast/列表区域框错位,叠加弹窗图(输错 1/2)改框整组弹窗区,同页面不同状态截图确认沿用同参数 | 二期 | PIL 测量校准 2026-08-05 | 2026-08-05 |
| 图组布局规则统一 | 依 00 V1.10 新布局规则:同层级多图(同图不同状态/图+弹窗/同流程步骤)一律横排,每张统一 280px 宽(uniform),容器横向滚动查看(细滚动条常显 + 右侧渐变提示防漏看);本页 5 个图组统一改造,half/third 混宽与多图竖排旧规则废止 | 二期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 异常兜底事实核查清理 | 「删除失败请重试」「链接已失效,请联系顾问重新生成」2 处杜撰 Toast 文案改通用表述(后端下发 message,前端不硬编码);二维码 uuid 机制保留并注明 shareFromTms.vue 源码有据;登录引导文案注明 cart.vue 源码依据 | 二期 | portal-vue 源码 grep 核查 2026-08-05 | 2026-08-05 |
| 业务规则库接入 | 加购前置条件、冲突类型及可替换性引用 WB-CART-001;拓科/关联推荐引用 WB-REC-001;课程失效引用 WB-COURSE-001;分段收费引用 WB-SEGMENT-001 | 跨期 | 业务规则库首批提取 | 2026-08-05 |
| 待裁定回写 | ① §四 失效口径裁定:按 PRD 现行口径(未到缴费时间不入失效区;失效 5 类含分段全部过期),何龙 7/30 版不再适用(原待确认清单 1 闭环);② §一 勾选区新增「段次行日期小字 = 产品分段开放缴费日期,购物车全部通用」(2026-08-05 裁定,详见 09 §五 6,原待确认清单 7 闭环) | 二期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 期数目录拆分 | 原「07-购物车与下单」按期数拆分:购物车侧(§一~§四 + §五 TMS 加购)归属二期(本页);确认订单/收银台/支付结果/报读须知与订阅/核心流程图拆分至 三期/10-确认订单与支付;期数语义重定义为开发里程碑(M1/M2/M3),旧期数徽标语义(一期=9月版本)作废,徽标全量清除 | 二期 | 20260917网报三期功能梳理.xlsx | 2026-08-04 |
| 分段支付规则 | 新增:TMS支持按分校配置收费段次+针对指定客户的个性化分段;TMS"同步购物车(分段支付)"推送学员/班级/分段信息并打需分段标签;网报端优先按课程分段,课程未配置时再识别分校(顾问)分段 | 二期 | 改动汇总 §3.1/§3.2 | 2026-07-26 |
| 关联推荐口径 | 购物车关联推荐确认沿用现有逻辑(与主体无关),修正原"同主体相似课推荐"表述 | 一期 | 改动汇总 §3.7/§7.8 | 2026-07-26 |
| 分段折叠交互移除 | 分段信息默认全部展开,去掉展开/折叠交互(原设计未实现)(§2 交互规则) | 一期 | 2026-07-28 测试评审会 | 2026-07-28 |
| 原班推荐 UI 移除 | 原班推荐逻辑未实现,去掉"原班 ›"标签及课程对比弹窗 UI(§1 状态说明) | 一期 | 2026-07-28 测试评审会 | 2026-07-28 |
| 拓科/关联推荐取数规则 | 补充拓科推荐与关联推荐的完整取数规则(城市/学校/学科/年级/剩余学位维度)(§1 数据规则) | 一期 | 2026-07-28 测试评审会 | 2026-07-28 |
| 分段收费缴费规则 | 新增分校(顾问)分段核心规则:购物车展示全部段次但只缴当前可缴费的首个段次,即使后续段次已到缴费时间仍只缴一段;产品分段到缴费时间需全段一起缴(唯一差异点);资料费默认合入首段,首段已过期时合入实际可缴的首个段次;首段缴完进入订单-待补缴(§2 交互规则) | 二期 | 语雀《分段收费》2026-07-30 | 2026-07-30 |
| 段名口径与已过期状态 | 段名统一按「学期 + 段序号」展示(如"春季1段");segmentStatus 新增 3=已过期(讲次已过、置灰不可缴);分校(顾问)分段展示起止讲次、产品分段展示起止日期(此条表述有误,已由下方"分段规则收敛至 09"修正);补 TMS 分校分段配置维度(分段数/每段起止讲次/段次开始缴费时间);分段相关期数由 P0 统一改为二期(§1/§2/§10) | 二期 | 语雀《分段收费》2026-07-30 | 2026-07-30 |
| 购物车失效判定清单 | 失效判定由"班级状态为失效"细化为 4 类归入失效区:班级下架/服务已截止报名/服务已结课/服务已满班;服务未到缴费时间不入失效区,留正常商品区置灰、编辑模式可选、到点自动可选;失效卡片统一灰显不按原因区分文案(§4 数据规则/状态说明) | 一期 | 2026-07-30 补充 | 2026-07-30 |
| 分段规则收敛至 09 | 分段收费独立成模块 09-分段收费 作为唯一权威源;本文档 §二 删除分段业务规则(缴费范围/资料费归段/TMS 配置 note/插班待确认项)改为引用,仅保留段次行界面结构与勾选交互;段次行展示口径修正为「段名 + 状态文字 + 金额」,不展示起止日期与起止讲次(依据语雀贴图核对,修正前述"分校(顾问)分段显示起止讲次"表述) | 二期 | 语雀《分段收费》2026-07-30 | 2026-07-30 |
| 失效判定新增第 5 类 | 失效判定清单由 4 类扩为 5 类:新增「⑤ 分段商品全部段次已过期」(已无可缴段次,等同不可购买);同时明确与「服务未到缴费时间不入失效区」的区别——未到缴费时间是"还没开始"(置灰留原位),段次全部过期是"已经错过"(入失效区)(§4 数据规则) | 二期 | 业务批注 2026-07-30 | 2026-07-30 |
| 矛盾检查修订 | 全量矛盾检查修复:段次来源收敛为 2 种「产品分段 / 分校(顾问)分段」并同步 segmentSource 枚举口径(§二/§十);「手工分段/顾问分段」叫法统一为「分校(顾问)分段」(12 处,图片文件名除外);分段失效清单第⑤类、资料费归段等待补缴衔接口径与 09 核对一致 | 二期 | 全量矛盾检查 | 2026-07-30 |
| 2026-08-04 批设计稿合入 | 合入设计稿 9 张:§一 新增主态补充设计稿(常规讲次/拓科推荐/顾问系统推荐标签 3 张)+ 优惠明细弹窗 2 态(有优惠/无优惠);§三 新增三态补充设计稿(已登录空状态/未登录引导登录);§四 占位替换为编辑删除/预选课 2 图 | 二期 | 网报3.0升级设计稿-20260804 | 2026-08-05 |
| 关联推荐/拓科规则核对 | §一 数据规则「拓科推荐」「关联推荐」取数规则与企微讨论记录 14.6(吴源华 7/28 输出)/11.12 原文核对一致,已于 2026-07-28 测试评审合入,无规则变更 | 二期 | 企微讨论记录 14.6/11.12 | 2026-08-05 |
| 失效口径差异登记 | 何龙 7/30 单聊版失效 5 类(含「服务未到缴费时间」、无「分段全部段次已过期」)与本页现行口径(未到缴费时间不入失效区+第⑤类分段过期)存在差异,已在 §四 数据规则处登记,最终口径待裁定 | 二期 | 企微讨论记录 15.1 | 2026-08-05 |
| TMS 报名截止时间配置 | §四 配置项新增:TMS 存在网报报名截止时间配置项,为失效判定 ②「服务已截止报名」的判定来源 | 二期 | 企微讨论记录 15.6(2026-07-31) | 2026-08-05 |