语言 / LanguagePRD v1.19

注册可选实体站展示 · PRD

作者 Luke 版本 v1.19 日期 2026-09-11 状态 进行中 平台 BRAND_A & BRAND_B 类 S

版本记录
版本 日期 变更说明
v1.19 2026-09-11 Luke 选择 OP-2 方案 A:配置为空或解析后一项不剩时隐藏实体站组件;手机号、OTP、协议均通过后点击 Login / Register,显示 §5 既有的「没有可选实体站」Toast 并留在原页。同步更新 §4 与 AC13,OP-2 结案;本版正式进入评审。
v1.18 2026-09-10 依 Luke 确认补齐 §3 注册提交时的实体站复核与失败闭环:§5 新增「所选实体站不可用」提示;不存在、已禁用、未在当前品牌配置统一处理;补 AC18~AC21。同批复查修正按钮高亮对 OTP 的描述,补回 §1 既有必填、红星、资料类型与名称溢出规则,以及 §4 配置描述栏与格式坏值;另将空配置的既有呈现差异列为 OP-2。
v1.17 2026-09-09 新增「原型视觉清单」:BO 无图片或图片占位;Client 登记现行注册页的 Logo 与 Banner 视觉槽位,数量与 Html_Client_v1.29 的 data-visual-id 实作集合对齐。证据为 client:更新4_Regis+Login_注册登录配置化、需求原文第七节的位置不变与 L0 ④ 不做顶部轮播图的范围边界。本轮只建立数量契约,不新增图片,不改业务口径。
v1.16 2026-09-05 🆕 新增 §2.1.7:接口不按状态过滤,禁用中的也照样下发(需求原文 第二节 2.3 逐字「后端不按状态过滤——配置里有的,禁用的也照样下发。这也是现况」)。
🔴 这一条先前只是「推得出来」、没写成规格:本档写了「前端不再过滤」(§2.2)、也写了「配置里没有的接口不下发」(§2.1.1),唯独没写「接口对状态不过滤」。
🔴 炸点:开发在后端补一道状态过滤 ⇒ 禁用中的到不了前端 ⇒ G1 当场破,画面回到现在这样、选项数凑不到 5,这个需求等於没做。
触发源:外审预筛判 PARTIAL。⚠️ 复验那一层前两轮都判 DONE,是预筛抓到的。
⚠️ 既有条文一个字未改,全部是新增;红线、AC、文案表原样。资讯图表不重出,只把它核到的版本改成 v1.16。
v1.15 2026-09-05 🔴 §3.4.9 整段改写 + §3.4 B 段「验证码已过期」那一列的触发条件跟着改。
改前写「填的验证码本身对得上,但已超过有效期」,那个写法比实况窄:它漏了「没按过 Send」那一半,也没讲冷却与有效期是同一件事。
🔴 实况:Send 的冷却时间与验证码的有效期是同一个计时器,画面上没有倒计时。⇒ 「已过期」的判定只有一种:没按过 Send,或那个计时器已经跑完,两件事同一个结果。
🔴 同批写明顺序:先判过期、再判对错 —— 计时器跑完之后后端那一组已经作废,「对不对」无从判起。
🔴 同批写明一个反面做法:不要把冷却与有效期拆成两个时间。拆开会出现「还在冷却、但验证码已过期」这种中间状态,本平台没有那个状态;而玩家看到的提示语只有一句,对不上就成了查不出来的偶发问题。
触发源:Luke 2026-09-05 当场说明(我在原型里拿一个约定码演这一条,他纠正「重点不是那个数字」)。
⚠️ 规格口径其余部分未改;文案逐字、AC、四条红线、§2 各条原样。原型 v1.28 同批跟上。资讯图表不重出,只把它核到的版本改成 v1.15。
v1.14 2026-09-05 🔴 §1 实现导航表两格改写,与 v1.13 同一类 —— 摘要写着旧口径 / 说过头,正文不是那样:
① 「渲染下拉」那一格写「这是本需求的全部内容」,而 L0 ④「本期做」列的是好几件(默认选中、按钮条件、坏 ID、重复 ID)。改成「核心那一件」并指回 L0 ④。
② 「按钮能不能按」那一格写「不加的话…按下去没反应」。原意是描述不做这个需求会怎样,但与 §2.5.3/AC16「点得下去、点了出 Toast」并排读会被当成打架。改成把「不加」与「加了之後」两种情形分开写。
③ §4 表格底下那一句「§3.2 那两条是唯一的后端改动」与表格里那一格逐字重复,删掉那一句;结论留在表格那一格里,一个字未减。
触发源:v1.13 定稿前逐行通读(CLAUDE.md §五)。不是外审抓的 —— 外审两轮抓的是 L0,这两处在 §1。
⚠️ 规格口径一条未改,改的是导航表的措辞;v1.10~v1.13 那几批改动全部原样。资讯图表不重出,只把它核到的版本改成 v1.14。
v1.13 2026-09-05 🔴 L0 ④ 两格改写,都是「摘要还写着旧口径、正文早就改了」。
① 「只新增一句文案」那一格:末句原写「未选实体站走既有的『必填未填就把按钮关掉』」,而 §2.5.3 与 AC16 写的是「按钮视觉置灰、但点得下去,点了出 Toast」——正面对撞。那句是 需求原文 5.5 的旧口径,本档 v1.2(2026-08-28)就推翻了,L0 没跟着改。⇒ 改写成指向 §2.5.3 / AC16,并写明 B 段那 6 条是既有、不重做。
② 「不改注册流程的其他任何一段」那一格:「全部照旧」补成「行为全部照旧」,并写明「照旧」管的是行为、不是这份档的字(§3.4 B 段依线上截图更正过文案逐字)。
🔴 炸点:开发只读 L0 就实作,会把按钮做成 disabled —— disabled 不派发点击事件 ⇒ AC16 那句 Toast 永远出不来,而画面看起来完全正常。这与 C-031 是同一个洞的另一处。
触发源:v1.12 送外审,这一条被判 PARTIAL。
⚠️ 规格口径一条未改,改的是 L0 摘要的措辞;v1.10~v1.12 那几批改动全部原样。资讯图表不重出,只把它核到的版本改成 v1.13。
v1.12 2026-09-05 🔴 L0 ① 那句「本需求只改前端…后端不动」改写。原写法是无条件的,而同一节「本期做」第 4 点写着「配置里查不到的实体站 ID 怎么处置(这一项在后端)」、§4 也写着「唯一的后端改动是 §3.2 那两条防呆」——同一份档里三处对不上。
⇒ 那一句收窄成「显示这条链路只改前端」,底下补一句写明 §3.2 那两条防呆在后端、是本需求唯一的后端改动、可以单独排期。
🔴 炸点:开发只读 L0 就排期,会把那两条防呆整个漏掉 —— 而它们是「坏 ID 不会自己消失」的唯一防线(§3.2)。
触发源:v1.11 送外审,这一条被判 PARTIAL。
⚠️ 规格口径一条未改,改的是 L0 那句话的射程;v1.11 补的那 7 件与 v1.10 的文案改动全部原样。资讯图表不重出,只把它核到的版本改成 v1.12。
v1.11 2026-09-05 补上 需求原文 有、这份档一直没落规格的几件,全部照 需求原文 逐条对齐,没有一件是新发明的:
① 新增 §2.1.6:位置不变——实体站下拉排在 OTP 验证码 之后、Login / Register 按钮之前,页面其他元素的相对顺序一并不变(需求原文 第七节第 1 点)。
② §2.2.4 补上数据类型 Enum;新增 §2.2.5:必填的红星 * 显示在 label 文字前,沿用注册页其他必填栏位的既有做法(需求原文 5.4、第七节第 2 点)。
③ 新增 §3.1.3:全部禁用时收起态那行字不是选中值——此时没有任何一项被选中,不进提交、也不满足 §2.5 的实体站条件(需求原文 5.3)。先前只写了「显示第一项的名字」,没写死「那不等于选中」,读起来像已经有默认值了。
④ L0 ④ 新增一列:不做实体站的新增、改名、改 ID、删除(需求原文 第三节第 6 点)。先前只写「不改 实体站管理」,没把这四件列出来。
⑤ L0 ④「不改注册提交时的后端复核」那一列改写成**「不重做」,并写明那道校验现在就已经有了(需求原文 第三节第 3 点逐字「本次不重做、也不许顺手拿掉」)。原写法与 §4「后端唯一改动」并排读会像是自相矛盾。
⑥ L0 ④ 报表那一列的「十余张」改成 13 张(需求原文 第三节第 12 点的实数),并补上「一条都不过滤」。
⑦ §4「后端要不要动」那一格由「不用」改成
「显示这条链路不用动」**,并把「唯一的后端改动是 §3.2 那两条防呆」收进同一格。
触发源:v1.10 送外审预筛。
⚠️ 四条红线、AC 全表、§3.4 文案表与 §2.5 各条未改;v1.10 那一批文案改动原样保留。资讯图表不重出,只把它核到的版本改成 v1.11。
v1.10 2026-09-05 🔴 §3.4 B 段三件事,全部依 Luke 2026-09-05 当日裁定「照截图」:
① 手机号格式错误那一句照线上截图逐字更正(改前 The phone number format is incorrect),差异逐项见 §3.4.7。
② 补两条既有提示语:协议勾选框未勾(Please agree to the privacy policy)与验证码已过期(Expired verification code,please resent.)。这两句同批收进平台通用文案库 ⇒ 本档标 ↪,中英两句逐字照抄。
③ Verification code sent successfully 补标 ↪——它 2026-08-31 就进了平台通用文案库,本档从那时起一直漏标。
🔴 ② 推翻了本档三处既有条文:§2.5.2、§2.5.4 与 AC17 都写着「协议没勾一律不出 Toast、静默置灰」,而线上实况是出这一句。三处同批把「协议」从静默名单里拆出来,手机号 / OTP 两项维持静默。
⚠️ 这不是本需求新做的行为——是本档先前把平台既有行为写错了,本轮更正。同一类错 §3.4.5 已经犯过一次(把线上跑着的文案判成「拟稿、未实现」)。
🆕 新增 §3.4.7(手机号那句的逐字差异)、§3.4.8(协议那句的射程)、§3.4.9(过期与填错是两句、各管各的)。
⚠️ 四条红线、AC 条数、§2 其余各条与 §3 其余各节未改;AC17 只改「协议」那一项的字。资讯图表不重出(图上没有任何一句提示语的原文),只把它核到的版本改成 v1.10。
v1.9 2026-09-04 L0 ④「明确不做」表新增两列,都是 需求原文 有、这份档从 v1.0 到 v1.8 一直没落的:
① 不做顶部轮播图(需求原文 第三节第 9 点逐字「不做顶部轮播图。那是另一个需求」)。
② 不反查「这个实体站正被哪个平台配着」(需求原文 第三节第 11 点:实体站管理 禁用时不检查、不提醒,既有解耦设计)。§3.1.1 原本只写「刻意解耦」,没把这条边界写成「不做」。
触发源:外审。
⚠️ 规格口径其余部分未改,四条红线、17 条 AC、§3.4 文案表、§2 全节原样。
v1.8 2026-09-04 新增 §3.4.6:写明 B 段「验证码错误」那一条的触发条件在本页只有一半触发得到。
触发源:原型送外审,被判 CONTRADICTED —— §3.4 B 段写触发条件是「验证码不足 6 位或错误」,而 §2.5.4 与 AC17 写死「OTP 未满足时一律不出 Toast」。这两条在本档内部自相矛盾,原型照 §2.5.4 做(未满 6 位静默),於是与 §3.4 对不上。
处置:B 段那四条是「沿用既有、一个字都不改」(§3.4 导语),所以不动它的字,改用一条新段落写明射程。
同批拿掉 §3.4.5 行首那个 🆕 前缀:它挡在四级编号前面,编号连续性的检查看不到那一条(新增 3.4.6 才让这个洞现形)。那一段的字一个都没动。
⚠️ 其余既有条文一个字未改,只有新增;原型不必改。
v1.7 2026-09-04 再补两件 需求原文 有、这份档没落规格的:
① 新增 §2.1.5:这条配置的实体站 ID 用英文逗号分隔(需求原文 第二节 5、以及第一节第 2 点)。先前只在 §2.3.1 举了 2,3,1 这个例,没有把分隔符本身写成规格——照例子推得出来,但开发不该靠推。
② L0 ④ 明确不做表新增一列:不做「绑定后可编辑」,玩家选定的实体站整个生命周期不可编辑(需求原文 第一节第 1 点、第七节)。
⚠️ 同批更正 v1.6 版本记录里一句不实的话:v1.6 写「既有条文一个字未改」,那是错的——§4「后端要不要动」那一格加了一个指向 §2.2.4 的交叉引用。那一格的结论没变,但确实动了字。
v1.6 2026-09-04 补上 需求原文 有、这份档一直没落规格的四件,全部照 需求原文 逐条对齐,没有一件是新发明的:
① 新增 §2.1.4:注册可选实体站列表 两个品牌各填各的、不共用一份(需求原文 1.3)。
② 新增 §2.2.4:接口每一项带 id/name/status,status 值域 1 = 启用、0 = 禁用(需求原文 第二节 2、3 点)。
③ 新增 §3.2.4:配置描述栏放 ID 与名称对照表,沿用既有、不新增维护要求(需求原文 第六节)。
④ L0 ④ 明确不做表新增一列:不新增后台权限点(需求原文 第八节)。
🔴 需求原文 第九节的「时间基准 UTC+8」刻意不写进本档:平台是单一时区,时区换算与时区防呆一律不必写;而本需求也没有任何按时间判定的行为。
触发源:v1.5 送外审,这几件被判 MISSING / PARTIAL。再上一轮外审把它们并成两列判了 DONE,那是漏判——逐条 grep 过 v1.5,一件都查不到。
⚠️ 既有条文一个字未改,全部是新增;红线、AC、文案表原样。
v1.5 2026-09-04 §2.5 的引言补上「本条同时推翻 需求原文 5.5」,并指向 C-031。
触发源:本档送外审,需求原文 5.5 逐字写「任一条不满足,按钮置灰禁用」,与 §2.5.3 正面对撞。这份档没写错——v1.2(2026-08-28)已经改过了;洞在两份档互相指不到对方:开发照 需求原文 做成 disabled,disabled 不派发点击事件 ⇒ AC16 那句 Toast 永远出不来,而画面看起来完全正常。
⚠️ 规格口径一个字未改,加的只是一条指标;需求原文 5.5 同批加了推翻注记、原句保留。
⚠️ 资讯图表不重出(ruling:R-192):图上关於按钮的两处本来就写着改後的行为,脚本只把 SPEC_UPTO 改成 v1.5。
v1.4 2026-09-02 🔴 §3.4 B 段「验证码错误」照线上截图逐字更正(Luke 2026-09-02 逐字「照截图」):Incorrect verification code, please resend → Incorrect verification code,please resent.,差三处(逗号后空格 / resend vs resent / 结尾句点)。
🆕 新增 3.4.5 写明差异、出处与「两句各管各的流程」。
⚠️ 同批推翻一句先前的判断:先前内部曾判这句是「拟稿、未实现」,那是错的——它真的在线上跑。C-028 同日结清。
⚠️ 中文对照维持原样(截图只给英文);原型 icon 由 📐 改 ✅。规格口径一条未改。
v1.3 2026-08-28 文案表拆成两段(§3.4):本次新增 1 条 + 沿用既有 4 条(原型要画,故列出,本次一个字都不改);AC16 补「其余三项未满足时一句 Toast 都不出」的反例,新增 AC17。资讯图表改引上传后的网址。
v1.2 2026-08-28 一项都选不中时:下拉收起改为显示第一项的名字并置灰(原为显示那句文案),那句文案改为按主按钮时以 Toast 呈现(§3.4);Login / Register 由「置灰禁用」改为**「置灰但点得下去」**(§2.5)——🔴 这一条推翻平台通用 UI 规则,射程只限「没选到启用中的实体站」这一项。AC6 改写、新增 AC16。
v1.1 2026-08-28 全部禁用时改为照配置顺序显示全部,并新增一句「一项都选不中」的文案(🆕 §3.4);AC6 扩为含这两件;§2.4.3、§2.5.2、§3.1、L0 ④ 四处随之改写(原写「不新增提示语」已不成立)。待确认 2 → 1 项(OP-2 结案)。
v1.0 2026-08-28 初版。注册页实体站下拉由「过滤掉禁用的」改为「显示依配置、可选依状态」(§2);默认选中改为第一个启用中的(§2.4);注册按钮高亮条件加一项(§2.5);补配置里查不到 ID 与重复 ID 的处置(§3.2、§3.3)。红线 4 条 / 验收 15 条 / 待确认 2 项。
目录

L0 · 框架层

注册可选实体站展示 · 一页式资讯图表

① 一句话需求

注册页实体站下拉的两个判断必须分开:

规则
显示范围 由各品牌的 注册可选实体站列表 决定
是否可选 由 实体站管理 的启用/禁用状态决定

现行前端会过滤禁用实体站。本次取消过滤:配置中的禁用站仍显示,但置灰且不可选。PAGCOR 因此能在下拉看到至少 5 个实体站;尚未完成实地审查的站先显示,审查完成前不可选。

② 术语写死表

词 本文唯一含义
显示 这一项出现在下拉中,由 注册可选实体站列表 决定
可选 这一项能否被选中,由 实体站管理 的状态决定
置灰 看得见,但点不下去、不会成为选中值

③ 全局红线表

# 不变量 破了会怎样 验证
G1 配置里有的实体站全部显示,禁用中的也不许过滤 选项又只剩已启用站,无法满足监管展示要求 AC1 AC2
G2 提交的实体站必须存在、已启用,且仍在当前品牌配置中;前后端都不得绕过 玩家可能绑定不可用或未开放的实体站 AC3 AC9 AC18 AC19
G3 默认值只能是第一个启用中的实体站 页面会预选一个无法提交的值 AC5 AC6
G4 显示顺序严格按照配置顺序,禁用项留在原位 运营失去唯一的排序控制手段 AC7 AC8

④ 范围

本期做

  1. 注册页与推广注册页不再过滤禁用实体站(§1、§2)。
  2. 启用项可选;禁用项置灰且不可选(§2、G2)。
  3. 默认选中第一个启用项,并调整注册按钮条件(§2、§3)。
  4. 后台保存配置时拒绝不存在的 ID;运行时遇到坏 ID 只跳过该项(§4)。
  5. 重复 ID 去重并保留第一次出现的位置(§4、AC10)。
  6. 注册提交时复核实体站,并补齐失败后的前端处理与提示(§3、AC9)。

本期不做

  • 不改取列表接口、实体站管理、后台建号页(添加下级号、增加股东)与 默认实体站 配置。
  • 不改实体站的新增、改名、ID、删除规则,也不开放玩家重新绑定。
  • 不改注册流程的 OTP、KYC、NDRP、人工审核等既有行为;§3 只补齐既有实体站提交复核的输入条件与失败出口。
  • 不影响已绑定玩家;13 张报表与 用户注册日志 仍可显示、筛选已禁用实体站。
  • 不新增权限点、不做顶部轮播图、不反查某实体站被哪些品牌配置。
  • 「至少显示 5 个」由运营配置保证,系统不写死最小数量,也不负责自动补值。
  • 除 §5 的两条实体站提示外,不新增或改写其他文案。

L1 · 完整规格

1. 数据来源与作用域

1.1 配置位置:Backoffice ▸ 网站管理 ▸ 基本配置 ▸ 运营参数 ▸ 注册可选实体站列表。BRAND_A 与 BRAND_B 各自维护一份,实体站 ID 以半角逗号分隔,顺序就是前端显示顺序。

1.2 实体站的 ID、名称与状态以 运营管理 ▸ 实体站管理 为唯一来源。注册侧不保存本地清单、不维护 ID 与名称映射。

1.3 取列表接口继续回传配置中的全部实体站,禁用中的也回传。每项包含:

字段 规则
id 实体站 ID
name 显示名称
status 1=启用,0=禁用

接口结构不变;后端不得按状态过滤。

1.4 规则同时适用于注册登录页与推广注册页。实体站下拉仍位于 OTP 之后、Login / Register 之前。

1.5 既有显示不变:实体站为必填的 Enum,取值来自接口,红星在 label 前;收起态名称过长显示 …,展开态自动换行显示全名。

2. 显示、可选与顺序

条件 是否显示 是否可选
ID 在配置中,状态启用 显示 可选
ID 在配置中,状态禁用 显示并置灰 不可选
ID 不在配置中 不显示 不适用

2.1 前端不得按状态过滤或改写接口回传的实体站名称。

2.2 顺序严格按照配置字符串。禁用项留在原位置,不置顶、不下沉、不另行排序。

2.3 默认选中配置顺序中第一个启用项。没有启用项时,不产生选中值。收起态仍显示第一项名称并使用置灰样式;该名称不得进入提交资料。

3. 注册按钮

3.1 按钮高亮必须同时满足:手机号格式通过、OTP 已填满 6 位、协议已勾选、已选中一个启用中的实体站。OTP 是否过期或正确,在点击后依 §3.2 判定。

3.2 任一条件不满足时,按钮使用置灰样式,但不可直接设为无法接收点击事件;点击后的判定顺序为:

手机号 → OTP → 协议 → 实体站

判定 结果
手机号未满足 静默拦截
OTP 不足 6 位 静默拦截
OTP 已满 6 位,但没按过 Send 或计时器已结束 显示 §5 的「验证码已过期」
OTP 已满 6 位、计时器有效,但与后端记录不符 显示 §5 的「验证码错误」
协议未勾选 显示 §5 的「协议未勾选」
未选中启用实体站 显示 §5 的「没有可选实体站」

命中后立即停止,不继续检查后面的项目。OTP 先判过期,再判内容是否正确;冷却时间与有效期使用同一个计时器。

3.3 四项均通过后才发起注册。后端以提交当下的资料复核实体站 ID,必须同时满足:

  • ID 存在。
  • 状态为启用。
  • ID 仍在当前品牌的 注册可选实体站列表 中。

任一项不满足,统一返回「实体站不可用」。不得向前端区分不存在、已禁用或未配置。整笔注册失败,不建立账号,也不写入实体站绑定。

3.4 前端收到「实体站不可用」后:留在注册页,保留手机号、OTP 与协议状态,清除实体站选择并重新取列表。这次异常刷新不自动选择默认项,玩家必须重新选择。

  • 刷新后仍有启用项:显示 §5 的「所选实体站不可用」。
  • 刷新后没有启用项:显示 §5 的「没有可选实体站」。
  • 重新取列表失败:沿用注册页既有的网络错误处理。

4. 配置的空值、坏值与重复值

情形 处置
配置为空,或解析后一项不剩 隐藏实体站组件;前三项通过后点击注册,显示「没有可选实体站」Toast
配置中全部为禁用项 全部照顺序显示并置灰;不产生选中值
配置片段不是纯数字,或使用全形逗号 后台保存失败并指出错误片段;运行时只跳过该片段
后台保存不存在的 ID 保存失败,并指出问题 ID
运行时遇到不存在的 ID 只跳过该项,其余照常下发
同一个 ID 重复出现 去重,只保留第一次出现的位置

4.1 保存校验与运行时兜底都要保留;一个坏 ID 不得使整份配置失效。

4.2 不另设条数上限或最小数量校验,只受配置字段既有长度限制。PAGCOR 的 5 项按去重后实际显示数量计算。

4.3 后台可保存空配置或全部禁用的配置;运营负责确保至少有一个启用项。

4.4 配置描述栏沿用既有的 ID 与名称对照表;实体站管理 是唯一来源,两边不一致时以它为准。

本节的「运行时」只指配置解析。注册提交时收到的异常 ID 依 §3.3 处理,不得静默跳过后继续注册。

5. 文案

原型出现的提示语必须能在本表找到逐字出处。↪ 为平台通用文案,✅ 为本模块线上文案,📐 为本 PRD 拟稿;图标不是文案的一部分。

范围 场景 本页触发条件 来源 英文文案(上线基准) 中文对照 结果
本次新增 没有可选实体站 前三项通过,但配置为空、解析后一项不剩、没有选中启用项;或提交失败后刷新列表已无启用项 📐 No gaming venue is available at the moment. Please try again later. 目前暂无可选的实体站,请稍后再试。 Toast;留在原页
本次新增 所选实体站不可用 后端返回「实体站不可用」,刷新后仍有启用项 📐 The selected gaming venue is currently unavailable. Please select another venue. 所选实体站目前不可用,请重新选择。 Toast;清除选择并留在原页
沿用 手机号格式错误 点击 Send 时不是 09 开头的 11 位纯数字 ✅ mobile phone number format is incorrect 手机号格式不正确 Toast;留在原页
沿用 验证码发送成功 手机号格式通过,Send 成功 ↪ Verification code sent successfully 验证码发送成功 Toast;开始计时
沿用 验证码错误 OTP 已满 6 位、计时器有效,但与后端记录不符 ✅ Incorrect verification code,please resent. 验证码有误,请重新发送 Toast;留在原页
沿用 验证码已过期 OTP 已满 6 位,但没按过 Send 或计时器已结束 ↪ Expired verification code,please resent. 验证码已过期,请重新发送 Toast;留在原页
沿用 协议未勾选 前两项通过,但协议未勾选,点击 Login / Register ↪ Please agree to the privacy policy 请先同意隐私政策 Toast;留在原页
沿用 注册成功 四项校验通过并完成注册 ✅ Registration successful 注册成功 Toast;进入登录态首页

本需求新增前两条,其余六条不重做。两条实体站提示都不得说明 ID 不存在、已禁用、未配置或尚未通过 PAGCOR 审查。

6. 生效与存量

  • 配置或实体站状态保存后,下一次取列表即使用新值;注册侧不缓存。
  • 状态变更后,新进入页面的选项同步变为可选或置灰;既有绑定不变。
  • 玩家选中后、提交前若配置或状态改变,以提交当下的后端复核结果为准。
  • 报表仍可检索已禁用的实体站资料。

7. 待确认项

# 待确认 影响 期限
OP-1 禁用项的灰阶、游标与点击回馈 不影响业务规则,但 UI 稿确认前无法定稿呈现 开发前

附录 A:容易漏的验收点

只列反直觉或易漏场景;常规注册流程、版面与通用表单行为不重复列出。

# P 验收点
AC1 P0 配置有 5 个 ID,其中 2 个禁用:下拉显示 5 项,不是 3 项(G1)
AC2 P0 某站未配置但状态启用:下拉不显示它(G1)
AC3 P0 禁用项看得见,但点不下去、选不中(G2)
AC5 P0 顺序为「禁用 → 启用 → 启用」:默认选中第二项(G3)
AC6 P0 全部禁用:全部照顺序显示并置灰;收起态可显示第一项名称,但没有选中值(G3)
AC16 P0 承 AC6,点击 Login / Register:按钮能接收点击并显示 §5 的 Toast
AC17 P0 手机号未满足或 OTP 不足 6 位时静默;OTP 过期、OTP 错误与协议未勾分别显示 §5 的既有提示
AC7 P0 配置 2,3,1:下拉顺序也是 2,3,1(G4)
AC8 P0 禁用项位于配置中间:画面仍留在中间(G4)
AC10 P1 配置 1,1,2:只显示 1,2,1 保留第一次的位置
AC11 P0 运行时遇到一个不存在的 ID:只跳过它,其余正常显示
AC12 P0 后台保存不存在的 ID:保存失败并指出问题 ID
AC13 P1 配置为空或解析后一项不剩:隐藏实体站组件;前三项通过后点击注册,显示「没有可选实体站」并留在原页
AC22 P1 配置含非纯数字片段或全形逗号:后台保存失败;存量运行时只跳过错误片段,其余照常显示
AC9 P0 绕过前端提交禁用站 ID:整笔注册失败、不建立账号或绑定;前端依 §3.4 处理(G2)
AC18 P0 绕过前端提交不存在的 ID:结果与 AC9 完全相同,不透露 ID 是否存在(G2)
AC19 P0 提交存在且启用、但不在当前品牌配置中的 ID:结果与 AC9 完全相同(G2)
AC20 P0 选中后、提交前实体站被禁用或移出配置:以后端提交当下状态为准;刷新后仍有启用项时清除选择并显示「所选实体站不可用」
AC21 P0 承 AC20,刷新后已无启用项:显示「没有可选实体站」
AC14 P0 已绑定实体站后来被禁用:既有绑定与报表检索不受影响
AC15 P1 状态从禁用改启用:下一次取列表立即可选,无注册侧缓存

附录 B:原型视觉清单(默认折叠)

原型视觉清单

视觉 ID 载体 用途 证据
VIS-BO-NONE BO 本需求没有 BO 图片或图片占位 §4
VIS-CLIENT-001 Client 注册页既有 Logo 槽位 client:更新4_Regis+Login_注册登录配置化
VIS-CLIENT-002 Client 注册页既有 Banner 槽位;不是本需求新增 client:更新4_Regis+Login_注册登录配置化

文档版本:v1.19 | 日期: 2026-09-11 | 作者: Luke | 文档状态:进行中