网报小程序原生改造 — 全局通用规则

版本 V1.1 更新 2026-07-28 涉及期数一期 跨模块共享规则集

§1 产品定位与改造范围

1.1 产品简介

网报小程序是面向 K12 教培场景的家长与学生在线报名系统,提供选课、报名、支付等核心功能。本次原生改造将现有 Webview 套壳 H5 逐步替换为微信原生小程序实现。

1.2 小程序矩阵

网报当前存在两个小程序 + 一个 H5 端,共享同一套后端服务和用户体系:

终端名称默认城市城市切换说明
小程序 1卓越悦学广州可切换(按配置)主力小程序,覆盖广州及其他城市
小程序 2卓越优学深圳不可切换(锁定深圳)深圳专属,因资金监管要求独立
H5网报 H5按配置按配置历史版本,原生改造后逐步废弃
两个小程序仅 openID 不同,unionId 统一打通,用户数据完全共享。

城市与小程序绑定规则

1.3 Tab 结构

Tab说明
首页运营推荐入口
选课课程筛选与报名
我的个人中心、订单、设置
无购物车 Tab。购物车入口在首页搜索栏右侧图标及选课/详情页。

1.4 术语表

术语定义
学员实际上课的孩子,一个家长可绑定多个学员(多孩)
家长小程序操作者,微信登录主体
城市学员所在城市,决定可报课程和活动范围
年级学员当前就读年级,与城市共同决定后台配置维度
TMS顾问端管理系统,可生码让家长扫码支付
成单人促成订单成交的归属人(顾问或家长自主)
追随学员从上一季续报到下一季的报名行为

§2 身份体系与登录规则

2.1 登录方式

微信一键登录(手机号快捷登录),获取 unionId 实现多端打通。

2.2 登录态持久化

2.3 登录拦截规则

场景是否拦截
浏览首页/选课列表不拦截,允许游客浏览
加入购物车拦截,拉起登录
进入购物车/下单/支付拦截
查看我的订单/个人中心拦截
切换学员拦截
查看课程详情不拦截
点击专属顾问不拦截(跳转企微)
分享页面不拦截

2.4 多孩关系

2.5 城市初始化规则

首页初始城市确定规则(终端 × 登录态)

终端已登录 + 已绑学员已登录 + 未绑学员未登录
卓越悦学(广州)读取学员所属城市定位成功→定位城市;失败/拒绝→默认广州定位成功→定位城市;失败/拒绝→默认广州
卓越优学(深圳)锁定深圳锁定深圳锁定深圳
用户手动切换城市后,本地存储锁定,冷启动后仍优先使用用户上次手动选择的城市(优先级:手动选择 > 学员城市 > 定位 > 默认广州)。

年级默认值

状态默认年级
已登录 + 已绑学员读取学员绑定年级
已登录 + 未绑学员默认高一
未登录默认高一

2.6 网报内部跳转免登录 一期

网报小程序跳转以下目标时基于统一登录态免登录打开(2026-07-22 确认口径):

跳转路径状态
网报小程序 → 网报小程序✅ 已实现
网报小程序 → 入学诊断✅ 已实现
网报小程序 → 调课、转班、课表⚠️ 需复测(小程序上暂无入口,可先挂入口)
网报小程序 → 转介绍 H5✅ 已实现
跨小程序静默登录(如跳转拼团、希望之星)不在一期/二期范围,需目标小程序改造对接后另行排期。

§3 数据规则通则

3.1 配置维度

所有按城市+年级配置的模块,其内容展示由后台按「城市 + 年级」维度配置决定。

3.2 刷新时机

以下任一动作触发当前页面全部模块按新的「城市 + 年级」重新加载:

3.3 缓存策略

3.4 分页规则

页面/模块分页策略
首页各模块一次性全量加载,无分页、无"加载更多"
选课列表/班级列表分页加载(下拉触底加载更多)
我的订单列表分页加载
其他列表类默认分页,具体在对应模块标注

3.5 排序通则

除各模块另有标注外,展示顺序统一按后台配置顺序排列(从上到下/从左到右)。列表类页面的排序规则在各模块 PRD 中定义。

3.6 数量限制通则

除各模块另有标注外,数据量由后台配置决定(后台配几个展示几个),无前端硬编码上限。

§4 状态通则

4.1 登录态×数据态矩阵

状态组合通用表现
已登录 + 有数据正常展示模块
已登录 + 无数据隐藏该模块(不占位)
未登录 + 有数据正常展示(交互可能触发登录拦截)
未登录 + 无数据隐藏该模块
服务降级隐藏该模块
各模块如有例外(如始终展示、占位显示等),在模块 PRD 中单独说明。

4.2 空状态

场景表现
列表为空(如订单、购物车)展示空状态插图 + 引导文案
模块无数据(首页子模块)隐藏模块,不占位
搜索无结果展示"暂无搜索结果"空状态页

4.3 显示开关

后台可配置模块级显示/隐藏开关,关闭后前端直接不渲染该模块。

§5 交互通则

5.1 加载态

场景表现
页面首次打开全局 loading 动画(居中旋转),接口并行请求,全部完成后统一渲染
下拉刷新自定义下拉动画,刷新完成后动画收起
切换学员/年级/城市全局 loading 遮罩,数据刷新完毕后关闭
按钮提交(下单/支付)按钮置灰 + loading 状态,防重复提交

5.2 Toast

5.3 弹窗层级

层级类型
最高系统授权弹窗(微信原生)
营销弹窗、强制更新弹窗
业务确认弹窗(删除、取消订单等)
底部弹出面板(筛选、选择器)

同一层级弹窗不叠加,后来的排队等待。

5.4 页面跳转

5.5 手势

5.6 防重复提交

5.7 全局返回规则 一期

所有页面返回(导航栏返回箭头 / 物理返回 / 左滑返回)统一遵循:从哪个页面进入,即返回到哪个页面(按页面栈原路返回,不做跨层跳转)。

示例场景正确返回行为
购物车 → 课程详情 → 点击返回返回购物车(而非班次列表)
选课列表 → 班次列表 → 课程详情 → 返回逐级返回:课程详情 → 班次列表 → 选课列表
分享链接直接进入课程详情 → 返回无上级页面栈时返回小程序首页
2026-07-26 修订:旧版小程序存在返回链路错误(如从购物车进入课程详情后返回却进了班次列表),新版统一按本规则实现,原有与本规则冲突的返回链路描述一律以本节为准

§6 异常与兜底通则

6.1 网络异常

场景处理方式
全页无网络展示全局网络异常页(含重试按钮)
接口异常统一 Toast 文案统一使用"网络异常,请重试"(2026-07-28 测试评审确认,全端公用)
下拉刷新失败Toast 提示"刷新失败,请重试",保留当前数据
加载更多失败Toast 提示,保留已加载数据,可重试

6.2 接口报错

场景处理方式
单模块接口超时/报错隐藏该模块,不展示错误提示(静默降级)
关键接口失败(登录/支付)展示错误弹窗,引导重试
全部接口失败展示全局异常页

6.3 图片加载失败

显示默认占位色块(不显示裂图图标)。

6.4 文本超长

单行截断 + 省略号(各模块内有特殊规则的另行标注)。

6.5 排队页

高并发场景下展示排队等候页面,含预估等待时间和自动重试机制。

各模块如有特殊异常处理(与通则不同),在该模块 PRD 的「异常与兜底」中单独说明。

§7 埋点通则

7.1 埋点工具

神策数据(Sensors Analytics)SDK 接入。

7.2 通用事件

事件类型事件名说明
页面浏览$PageView所有页面自动采集
元素点击$Click可交互元素自动采集
小程序启动$MPLaunch含场景值、来源参数
小程序退出$MPHide

7.3 各模块埋点方式

§8 技术约束

8.1 性能指标

指标目标
首页首屏时间≤ 1.5s
页面切换响应≤ 300ms
接口超时阈值10s

8.2 兼容性

8.3 安全与隐私

8.4 灰度与回切

§9 双端差异矩阵

卓越悦学与卓越优学在城市、课程、配置维度存在显著差异,本节统一汇总两端差异点,作为各业务模块差异化处理的总入口。

功能维度卓越悦学卓越优学
城市切换支持多城市切换后台可配固定锁定深圳不可切换
课程展示按所选城市 + 年级展示仅展示深圳课程
金刚区入口城市 + 年级配置深圳 + 年级配置
转介绍入口
入学诊断入口
专属顾问城市 + 年级配置深圳维度
本节为双端差异总览,各模块如有更细化的差异规则,需在对应模块 PRD 中单独标注,并保持与本矩阵一致。

修订记录(V1.1 / 2026-07-28)

修订项修订内容期数依据来源日期
全局返回规则新增 §5.7:从哪个页面进入即返回到哪个页面(按页面栈原路返回),替代旧版错误返回链路一期改动汇总 12.32026-07-26
网报内部跳转免登录新增 §2.6:网报→网报、→入学诊断、→调课转班课表、→转介绍H5 免登录状态表一期改动汇总 5.72026-07-26
统一异常 Toast 文案§6.1 新增:接口异常统一 Toast 文案"网络异常,请重试",全端公用一期2026-07-28 测试评审会2026-07-28
期数徽标说明一期 二期 三期,仅标注本次修订涉及内容。