模块说明:提供课程/老师/校区搜索能力,支持关键字联想、热门搜索、历史搜索,搜索结果按老师→课程→校区优先级展示。本模块自 03-首页 模块5 抽离(搜索链路归属三期)。
入口:首页搜索栏(吸顶) | 页面组成:搜索栏(入口) → 搜索页面(独立页)
| 字段 | 来源 | 说明 |
|---|---|---|
| 热搜词 | 运营配置后台(按城市+年级) | 进入首页时获取,轮播展示 |
| 购物车数量 | 交易系统(实时接口) | 已登录显示数字;未登录不显示角标 |
| 数量限制 | — | 后台配几个展示几个,无前端上限 |
| 排序 | — | 按后台配置顺序轮播 |
| 刷新 & 缓存 | — | 见 01 §3.2 刷新时机,不做本地缓存 |
| 热搜词轮播间隔 | 前端固定 | 3秒切换一次,循环播放 |
| 购物车角标超出 | 交易系统 | 数量超过99时展示「99+」 |
| 切换学员 | 交易系统 | 切换学员时自动刷新角标数量(与新学员购物车数据保持一致) |
| 退出登录 | — | 退出登录时角标清空,不展示数字(仅显示购物车图标) |
| 状态 | 表现 |
|---|---|
| 已登录 | 显示购物车角标数字 |
| 未登录 | 显示图标但不显示角标数字 |
| 操作 | 响应 |
|---|---|
| 点击搜索框 | 跳转搜索页面(见 二、搜索页面) |
| 点击购物车图标 | 跳转购物车页面(二期/07-购物车) |
| 页面滚动 | 搜索栏随头部一起吸顶 |
— 遵循 01 §6 异常与兜底通则,无特殊处理。
| 配置项 | 格式 | 说明 |
|---|---|---|
| 热搜词 | 文本列表 | 按城市+年级配置,轮播展示 |
模块说明:独立搜索页(非弹窗):默认态展示热门搜索 + 历史搜索;输入态实时联想(老师优先于课程);点「搜索」按 老师→课程→校区 优先级跳转对应结果页。
入口:点击首页搜索栏 | 页面组成:热门搜索 + 历史搜索 + 关键字联想
① 热门搜索
| 字段 | 来源 | 说明 |
|---|---|---|
| 热门搜索词 | 运营配置后台(按城市+年级) | 标签流式布局,最多 2 行 |
| 刷新 | — | 进入页面时拉取,不做本地缓存 |
② 历史搜索
| 字段 | 说明 |
|---|---|
| 存储 | 本地存储(localStorage),按账号隔离 |
| 数量 | 最多展示 10 条,超出自动丢弃最旧记录 |
| 排序 | 按搜索时间倒序,最新搜索的排在最前 |
| 展示格式 | 纯文本关键词,不带课程类型标签 |
| 点击行为 | 统一填入搜索框 + 重新发起搜索接口请求(实时最新结果,非缓存) |
| 已下架内容处理 | 历史记录作为关键词保留不删除;搜索时由后端过滤已下架内容;若结果为空则跳转搜索结果页展示空状态页 |
| 切换城市/年级 | 搜索历史不清空(搜索历史按用户维度存储,不按城市/年级区分) |
③ 关键字联想(输入时实时触发)
| 字段 | 来源 | 说明 |
|---|---|---|
| 联想范围 | 当前城市 + 当前年级的数据 | — |
| 老师联想 | 关键字匹配老师姓名 | 最多展示 10 个 |
| 课程联想 | 关键字匹配课程名(任意关键词,除课程类型标签外) | 最多展示 10 个 |
| 排序 | 最近点击过的联想结果排在列表最上方 | — |
| 最近点击记录 | 本地存储(按账号隔离),最多保留 5 条最近点击的联想结果,前端排序后插入联想列表顶部 | — |
| 展示优先级 | 同时匹配老师+课程 → 先展示老师列表,再展示课程列表 | — |
④ 自主搜索(点击「搜索」按钮触发)
| 字段 | 来源 | 说明 |
|---|---|---|
| 搜索范围 | 当前城市 + 当前年级 | 同时搜索老师姓名、课程名、校区 |
| 老师匹配 | 精准匹配(全名) | 只能通过授课老师全名匹配相关授课老师 |
| 课程匹配 | 模糊匹配 | 课程名中任意关键词(含课程类型标签) |
| 校区匹配 | 模糊匹配 | 上课地点任意关键字 |
| 检索优先级 | 按 老师→课程→校区 顺序检索,命中首个类型即展示 | — |
| 优先级细则 | — | a.匹配到老师全名→老师列表;b.未匹配老师但匹配课程→课程列表;c.仅匹配校区→校区列表 |
| 状态 | 表现 |
|---|---|
| 默认态(刚进入) | 展示热门搜索 + 历史搜索 |
| 联想态(输入中) | 搜索框显示文字 + ×清空按钮,下方实时展示关键字联想结果(老师列表 + 课程列表) |
| 搜索结果态 | 点击「搜索」后跳转对应结果页(老师列表页/课程列表页/校区列表页),非本页内展示 |
| 无历史 | "历史搜索"区域不展示 |
联想交互:
| 操作 | 响应 |
|---|---|
| 输入关键字(实时) | 监测用户输入的关键字,实时进行关键字联想匹配老师/课程 |
| 点击联想的具体老师姓名 | 直接跳转老师详情页 + 写入历史记录(标记为联想类型) |
| 点击联想的具体课程名 | 直接跳转班级列表页 + 写入历史记录(标记为联想类型) |
自主搜索交互:
| 操作 | 响应 |
|---|---|
| 输入文字 + 点击「搜索」 | 触发自主搜索 → 按优先级跳转对应结果页 + 写入历史记录(标记为自主搜索类型) |
| 搜索结果 - 老师 | 进入老师列表页,当前在售课程节数即为当前授课老师在售的班级数,点击具体老师 → 老师详情页 |
| 搜索结果 - 课程 | 进入课程列表页(班级列表),点击具体课程 → 班级列表页 |
| 搜索结果 - 校区 | 进入校区列表页,点击具体校区 → 校区详情页 |
热门搜索 & 历史搜索交互:
| 操作 | 响应 |
|---|---|
| 点击热门搜索标签 | 将该关键词填入搜索框 + 自动触发自主搜索 → 跳转搜索结果页 |
| 点击历史记录 | 将该关键词自动填入搜索框 + 重新发起搜索接口请求(实时获取最新结果,非缓存) → 跳转搜索结果页 |
| 点击历史记录右侧 × | 删除单条历史记录 |
| 点击🗑️全部删除 | 弹出确认弹窗「确认删除全部历史记录?」,确认后清空全部 |
| 点击 × 清空搜索框 | 清空输入内容,回到默认态 |
| 点击 ← 返回 | 返回首页 |
| 场景 | 处理 |
|---|---|
| 热门搜索接口失败 | 热门搜索区域不展示,仅展示历史搜索 |
| 关键字联想无结果 | 联想区域不展示,保持当前页面状态 |
| 自主搜索无任何命中(老师/课程/校区均无) | 跳转搜索结果页展示空状态(不在本页处理) |
| 配置项 | 格式 | 说明 |
|---|---|---|
| 热门搜索词 | 文本列表 | 按城市+年级配置,最多展示 2 行 |
| 修订项 | 修订内容 | 期数 | 依据来源 | 日期 |
|---|---|---|---|---|
| 流程注清理 | 删除「原待确认清单 N 已闭环」「用户裁定归属/承载/迁入」等闭环与归属性流程注,保留裁定结果内容与来源依据注 | 三期 | 用户裁定 2026-08-06 | 2026-08-06 |
| 红框标注校准 | 按 PIL 图像测量 + 读图目检校准 2 处部件级红框位置:修正弹窗/toast/列表区域框错位,叠加弹窗图(输错 1/2)改框整组弹窗区,同页面不同状态截图确认沿用同参数 | 三期 | PIL 测量校准 2026-08-05 | 2026-08-05 |
| 图组布局规则统一 | 依 00 V1.10 新布局规则:同层级多图(同图不同状态/图+弹窗/同流程步骤)一律横排,每张统一 280px 宽(uniform),容器横向滚动查看(细滚动条常显 + 右侧渐变提示防漏看);本页 2 个图组统一改造(其中 2 组竖排改横排),half/third 混宽与多图竖排旧规则废止 | 三期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 待裁定回写 | §2.A 联想校区条目裁定:不采纳、不增加校区类型,联想保持「仅老师 + 课程」(原待确认清单 6 闭环) | 三期 | 用户裁定 2026-08-05 | 2026-08-05 |
| 网报3.0设计稿合入 | 新增 2.A 关键字联想态 / 2.B 自主搜索结果页 3 态(老师/班级/校区)/ 2.C 搜索结果空状态(共 5 图);空状态文案「未找到相关服务,换个关键词试试呗」落为规则;登记差异待确认:设计稿联想列表含校区条目,与 2.2 ③ 现行「联想仅老师+课程」口径不一致 | 三期 | 网报3.0升级设计稿-20260804 | 2026-08-05 |
| 自 03-首页 抽离 | 搜索模块(原 03-首页 模块5:首页搜索栏入口 + 搜索页面)抽离为独立页,归属三期(M3);内容与原 03 模块5 完全一致,仅章节号(6.A→一、6.B→二)与资源路径适配 | 三期 | 20260917网报三期功能梳理.xlsx(三期 sheet:首页-搜索链路) | 2026-08-04 |