V4.6.6 · 发布交付版
用户于 2026-10-10 授权同步 Git → Nexus。当前版本包含首页双栏登录弹窗、原有拖动验证恢复、单一《用户协议》入口及合并 Word 正文;保留已确认微信与账号管理流程。源码、单文件和 ZIP 同步覆盖原路径。下方旧版本中“本地待评审、未发布、两份协议”等表述属于历史阶段,当前以本节和 V4.6.6 协议合并说明为准。发布结果与来源提交见本任务回填。
V4.6.6 · 协议入口合并
现行入口统一为《用户协议》:登录、注册、微信登录共用一处勾选入口,首页页脚亦只保留用户协议。账号安全规则与隐私政策已包含在同一份《前海玖麦用户协议》中,不再展示独立《账号规则》。阅读弹层与 agreements/前海玖麦用户协议.docx 正文逐段一致;未改写已生成的正式 Word 内容。
未勾选提示为“请先阅读并同意用户协议”。打开或关闭协议不自动勾选,不提交表单,输入保留。拖动验证、验证码、登录、注册和微信绑定业务顺序不变。本版仅本地更新,未提交 Git 或发布 Nexus。下文旧版本中提到的“两份协议/缺失规则清单”属于历史记录,现行交付以本节为准。
V4.6 双栏修订:桌面登录弹窗采用左侧品牌与原首页素材、右侧登录/注册操作的布局。密码、验证码、微信三种登录方式及既有流程保留。窄屏收起装饰栏;协议模块紧随当前表单或二维码操作区,随内容共同滚动。三种登录方式共用“欢迎回来”、说明及切换栏;微信二维码在切换栏下方展示,标签统一为纯文字。
九米 AI · V4.6 · 2026-10-10 · 本地待评审版
微信登录与账号管理 · 前端交付稿
保留已确认的页面、字段和业务顺序,将流程改为同一份账号与绑定数据驱动的连续操作。页面本身包含提示、校验、加载、失败反馈与返回路径,无需选择预置场景或步骤指导条推动。
本版等待用户评审,未提交 Git,未更新 Nexus。所有账号、验证码和微信结果均为模拟,不发送短信、不调用微信服务。“扫码成功”按钮只用于本地走查,正式微信授权不因此取消手机确认。
本次改变与保留项
- 移除场景大厅、步骤引导条、一键填表和隐藏旧场景配置。默认展示平台原首页并打开登录弹窗;已有会话时直接恢复首页。关闭弹窗可浏览首页,再从登录、注册或创作入口打开。
- 注册、绑定、解绑和改名写入同一份本地数据,退出再登录、刷新、前后台切换保持一致。
- 注册后未确认用户名,刷新恢复该阶段;已注册但未绑定,重新授权后只重试绑定。
- 模拟服务只选择扫码微信、提供消息回执及故障响应,展开时为产品页面预留空间。
- 不新增注册字段,不提前确认用户名,不合并或覆盖账号,不新增运营/超管解绑和后台修改绑定。
连续验收路径
初始账号:13800000000 / Demo123! 为小麦账号(普通会员 + VDOIT管理),已绑定微信昵称“小麦同学”;13700000000 / Demo123! 为未绑定备用账号。“海风同学”微信未关联。发送验证码后,顶部模拟服务消息条显示246810。
- 微信登录 → 扫码成功 → 小麦账号首页 → 头像 → 账号设置,查看微信昵称。
- 更换 → 获取当前手机号验证码 → 验证并解绑 → 在模拟服务选择海风同学 → 收起工具 → 扫码成功,回账号弹窗看到新昵称。
- 退出 → 扫描海风同学 → 登录同一账号。刷新再打开我的账号,绑定不变。
- 退出 → 扫描已解绑的小麦同学 → 注册新账号 → 填写另一个手机号、验证码、密码 → 注册成功后确认用户名 → 绑定并进首页。
- 退出再扫描小麦同学,直接登录新账号。退出新账号,用小麦账号登录,从头像菜单进入玖麦管理后台,核对前台关系。
- 用备用账号登录,在我的账号尝试绑定已关联微信,看到冲突;回原账号验证解绑,再回备用账号绑定。全程不重置数据。
业务数据随操作改变,不按场景自动还原。需要重新验收初始关系时,在模拟服务 → 本地数据明确重置并确认;刷新不等同重置。
入口、主操作、返回路径与状态
| 页面/场景 | 入口 | 主操作与返回 | 反馈及结果 |
|---|
| 登录页 | 首页登录弹窗内,密码 / 验证码 / 微信同级切换;保留登录与注册切换。 | 原字段验证后登录,成功进入首页。切换方式取消未完成微信请求。 | 密码错误、手机号格式错误、验证码未获取/错误/过期显示当前表单错误。 |
| 微信二维码 | 微信登录页签;或我的账号 → 绑定。 | 扫码、手机授权、等待结果。保留已批准的“扫码成功”模拟回调快捷按钮。 | 等待扫码 → 等待手机确认 → 验证身份 → 直接登录或未关联引导。 |
| 已关联微信 | 微信授权成功,查到关联账号。 | 直接登录该账号,不再要求输入其他账号密码。 | 取消/拒绝/过期/失败可重试,不改变已有绑定。 |
| 未关联 · 已有账号 | 授权成功但未关联;默认绑定已有账号。 | 短信或密码验证,一次提交完成绑定并登录;取消本次微信登录可返回。 | 目标账号已绑定其他微信时拒绝覆盖,提示到我的账号处理。未注册手机号可转注册。 |
| 未关联 · 注册 | 未关联引导 → 注册新账号。 | 手机号、验证码、至少6位密码、可选邀请码。提交注册成功后才确认用户名。 | 重复手机号转已有账号;注册失败不创建账号。邀请码沿用现有校验与权益,不在本地杜撰规则。 |
| 注册后的用户名确认 | 普通注册或微信路径注册成功。 | 系统名字 / 随机名字 / 自定义名字 → 确认。普通注册进首页;微信路径继续绑定。 | 名字1–20字,保存失败可重试。刷新保留已建立账号和待确认阶段,不重复注册。 |
| 绑定未完成 | 账号已验证或注册成功,绑定服务失败。 | 重试绑定或先进入平台,稍后在我的账号绑定。账号管理路径保留弹窗上下文。 | 账号保留。授权过期先重新扫码;重试不重复创建账号。 |
| 首页 | 登录成功,恢复原首页首屏与顶栏。 | 头像 → 账号设置 / 退出登录。 | 退出只清除会话,账号和已生效绑定保留。其他首页工具不在本包复制。 |
| 我的账号 | 首页头像 → 账号设置。 | 原会员、姓名、手机、邮箱、密码、保存布局不变;联系方式新增微信项。 | 未绑定显示绑定;已绑定显示昵称、更换、解绑。无昵称不误报未绑定。 |
| 登录后绑定 | 我的账号 → 绑定。 | 在账号管理弹窗中扫码授权,直接关联当前登录账号。 | 取消回原账号;该微信属于其他账号则显示冲突,当前账号及关系保持不变。 |
| 解绑 | 我的账号 → 解绑。 | 发送验证码到当前手机号 → 验证并解绑 → 返回账号、绑定新微信或退出。 | 错码、过期、失败、验证前取消不改变绑定。解绑成功后仍能用手机号登录。 |
| 换绑 | 我的账号 → 更换。 | 沿用已确认顺序:验证当前手机 → 解绑旧微信 → 扫码绑定新微信。 | 验证解绑前取消保留旧绑定;旧微信已解绑后取消/失败,保持未绑定,不暗中恢复旧微信。 |
| 手机验证条件不足 | 历史账户没有已验证手机号。 | 沿用原身份与联系方式中的手机绑定/验证入口,完成后再解绑。 | 不是新注册步骤。默认测试账号均已验证,不添加虚构账号类型。 |
| 无法接收短信 | 解绑验证页 → 无法接收短信。 | 恢复当前手机号收信后重试;可返回验证或我的账号。 | 绑定保持;不添加绕过验证、超管代改或运营补偿。 |
| 绑定冲突 | 已登录绑定时微信属于他人;或提交时关系已变化。 | 到原账号的我的账号验证解绑,再回目标账号绑定。 | 不合并、不覆盖;与微信登录已关联账号直接登录严格区分。 |
| 用户台账 | 小麦账号登录 → 头像菜单 → 玖麦管理后台 → 用户台账。会员等级与管理身份独立显示。 | 原用户表格展开详情/窄屏卡片,只读展示微信绑定和昵称。 | 已绑定/未绑定/加载中/读取失败重试/字段暂不可用/昵称暂不可用。不显示微信号或内部身份ID。 |
| 会话失效 | 模拟服务返回登录过期。 | 回密码登录重新验证。 | 清除未完成授权与验证码,保留账号及生效关系,不自动提升权限。 |
异常与数据后果
| 异常 | 页面恢复方式 | 数据承诺 |
| 扫码取消 / 拒绝 / 过期 / 授权失败 | 重新扫码或授权,也可切其他登录方式。 | 关系不变。本页表单草稿保留;刷新不保存未提交凭证。 |
| 网络中断 / 微信服务不可用 | 返回当前步骤重试或重试微信入口。 | 模拟失败发生在生效前,不假装成功。 |
| 短信发送失败 / 错码 / 过期 | 重新获取或输入。 | 不注册、绑定或解绑。验证码绑定手机号和用途,不可跨用途使用。 |
| 注册完成但绑定失败 | 重试绑定,或先进入平台稍后绑定;授权过期则重扫。 | 保留已创建账号,不重复注册。 |
| 解绑提交失败 | 原验证页重试或返回账号。 | 原关系不变。仅解绑成功后进入新微信绑定。 |
| 快速切换 / 请求中取消 | 回所选方式或原账号页。 | 作废旧异步回调,取消后不能继续修改数据或跳页。 |
| 后台信息缺失 / 读取失败 | 重试读取;缺昵称单独显示。 | 读取失败不能被当作未绑定。 |
源码依据与范围
保留已核对并获认可的 master 基线:登录、首页、我的账号 9462798;后台 fb22fed49354d0c01288e78765ec228267d7747e。本轮核对了本地 jmai-web 登录成功回调与用户名确认顺序、留存的 ProfileSettingsDialog、身份联系方式及用户台账。未修改 vdoit 产品仓库,未借交付升级引入其他业务改动。
微信展示授权昵称,不是微信号。实际服务端唯一性与事务约束需接入后端,本版沿用已确认的“不覆盖、不合并”冲突处理,不扩展多账号或多微信规则。手机号验证条件不足沿用现有历史账号兼容逻辑。
首页其他工具及后台新建/删除/会员/角色功能不在本次扩展范围,后台非本次操作保持禁用。登录目标参数保留安全站内路径;本包只提供原首页首屏与账号管理,其他工具页不复制或伪造,生产由原路由系统返回目标页面。
V4.6 · 小麦账号管理入口
小麦账号同时具有普通会员等级与VDOIT管理身份。顶栏分别显示两种标识,头像菜单按 master 显示“账号设置 → 玖麦管理后台 → 退出登录”。后台侧栏显示当前小麦账号,可返回前台继续使用同一会话,也可退出登录。
后台仍沿用已完成的用户台账视图,只读显示微信绑定。备用账号、新注册普通账号不显示管理入口。已移除模拟服务中的超管跳转,仅在已进入后台时提供读取失败等测试响应。升级已有本地数据只补充小麦的管理身份,不重置姓名、手机号、密码或微信关系。
本次已通过既有GitHub权限读取master:fb22fed49354d0c01288e78765ec228267d7747e,核对 jmai-web/src/components/header.tsx 与 jmai-web/src/app/admin/layout.tsx;使用 administration、administrationLabel、foundationAdmin 区分管理身份,会员等级另行展示。源码菜单目标为/admin,本次范围内打开既有用户台账,不新建管理概览。真实后台权限仍由原系统校验。
V4.6 首页登录弹窗与协议
2026年10月10日重新读取远程 master:69262ad0daed5e36f936649e9aa64b8677880a95。核对首页、登录、短信注册、顶栏、我的账号、帮助页、全局 CSS 和按钮/输入组件。交互参考美图设计室:首页作为背景、居中弹窗、主动同意协议(登录标签已按后续确认统一为纯文字);保留玖麦的橙色、圆角、字体和三种登录方式。
| 入口与状态 | 操作与返回 | 业务结果 |
| 访客首页 | 首次打开显示登录弹窗;关闭/Esc后继续浏览;顶部登录、注册及创作入口可再次打开。 | 关闭作废未完成异步请求和微信授权;已创建账号及已生效关系不回滚。账号已注册但名字未确认时可继续完善。 |
| 登录与注册 | 密码、验证码、微信同级切换;注册字段和校验顺序不变。 | 协议未勾选时阻止登录/注册提交及模拟微信授权,显示“请先阅读并同意用户协议和账号规则”;不清空输入。 |
| 阅读协议 | 《用户协议》《账号规则》打开可滚动阅读层,关闭或“返回继续操作”回原位置。 | 不自动勾选;不重新提交表单;输入保留。页脚亦可阅读。正文标记评审稿,无正式生效日期。 |
| 注册成功 | 先显示用户名确认;微信注册在确认后绑定。 | 无新增注册字段、手机号复验或重复确认绑定。已关联微信仍直接登录。 |
| 已登录账号管理 | 头像 → 账号设置 → 绑定/解绑/更换;超管仍从小麦头像菜单进入。 | 沿用上一版业务状态和同一份模拟数据。解绑仍验证当前手机号,更换仍先解绑再绑定。 |
协议数据源为 legal-content.json,构建时嵌入 Demo;create-legal-docs.py 用同一数据生成两份可编辑 Word 评审稿和独立缺失规则清单。协议正文不含未确认事项;两份协议不替代尚待确认的隐私政策。
附件《综合服务平台用户服务协议》前十页与后五页分属两套合同,争议解决和责任上限不一致;未擅自选择或移植。外贸报关、对公收款、催收、自动续期、AI商用权利、注销期限及充值退款等未确认内容均单列。
生产接入继续使用现有认证、验证码风控、服务端权限和微信官方授权。本地“扫码成功”仅模拟已完成授权;不取消微信真实手机确认。正式上线还需定稿协议、隐私披露及版本同意记录,不把本地勾选当作签约凭证。
V4.6.4 · 账号组件源码核对
本轮重新获取 limbayme/vdoit 的远程 master,提交 749dd90c8426667235e21e2d0e993778340d075f。从该提交读取 Header、ProfileSettingsDialog、IdentityContactSettings、globals.css、Tailwind 配置、Button/Input、登录页、短信组件及管理后台布局/用户页。
| 范围 | 本次修正或核对 |
|---|
| 右上角账号菜单 | 按 Header 恢复 36px 按钮、28px 头像、208px 下拉层;14px 菜单字体、16px 线性图标、皇冠/箭头、角色与会员徽章、外部点击关闭。修复无效描边颜色。补充 Escape 收起。 |
| 我的账号 | 按 ProfileSettingsDialog 补齐独立管理身份栏,对齐标题、输入框及按钮间距;按共享联系方式组件对齐图标、行布局、状态色。微信新增行及原验证/解绑流程保留。 |
| 登录和注册 | 保留用户明确确认的首页双栏弹窗、三种纯文字登录方式、二维码标题及跟随内容的协议。这些是本次设计变更,不应回退成 master 的独立登录页。未借本轮核对修改注册顺序、验证码或授权业务规则。 |
| 管理后台 | 核对用户台账与管理身份入口,验证从小麦菜单进入及返回前台;微信绑定信息保持只读。未扩展运营解绑或其他后台编辑。 |
工程接入应直接复用项目 Header、ProfileSettingsDialog 和共享身份组件。本 HTML 是本地模拟适配版,未包含真实余额、通知、认证等平台接口;不能据此宣称整个产品与线上逐像素一致。源码记录见 admin-menu-source-reference.json,核验见 verification-v46.json。本轮未更新 Git 或 Nexus。
V4.6.5 · 原有认证流程恢复与差异核对
核对基准:2026-10-10 已读取并留存的 master 提交 749dd90c8426667235e21e2d0e993778340d075f。本次 fresh fetch 两次连接重置,GitHub 连接器返回 404,未声称已取得更新的远程版本。身份后端 routes.py/service.py 取自本机只读副本,Git blob 哈希分别与该提交的 010d8d80cbcf6d31d57eaaf4f27f27a33f0c35bd、272fe80531c6347103a240aebcbcee04053493a2 完全一致。
| 范围 / 原源码 | 恢复的行为 |
| 密码登录 / login/page.tsx、tencent-captcha.ts | 提交 → 拖动人机验证 → 通过后才认证账号密码 → 登录成功。取消、失败不得认证;重试重新验证。微信绑定已有账号的密码入口复用同一顺序。 |
| 短信登录与注册 / sms-auth-card.tsx、identity/routes.py | 获取验证码 → 手机格式校验 → 人机验证 → 校验手机号与用途 → 发送成功后开始 60 秒冷却。未注册手机号不能获取登录短信,已注册手机号不能获取注册短信。验证码提交不再重复弹出人机验证。号码/验证码去首尾空格;输入上限恢复 8 位,本地短信仍使用六位测试码。 |
| 我的账号 / 共享 IdentityContactSettings | 手机号验证发送短信前做人机验证;微信解绑/更换复用短信验证,不绕过该步骤。邮箱发送保留 60 秒冷却、不同新邮箱及唯一性检查;邮箱不额外增加人机验证。 |
| 注册用户名 / RanchWelcomeName | 注册成功才进入名字确认。随机换名和编辑只改页面草稿,最终确认成功才写入账号;保存失败保留原名字。微信注册在名字确认后继续绑定。 |
| 我的账号 / ProfileSettingsDialog | 已有密码修改须填写并校验当前密码;无密码账号首次设置不要求旧密码。保存失败不修改名字或密码。会员文案优先使用服务返回 membershipLabel。 |
| 入口参数 / login/page.tsx | 恢复 mode=register、invite / invite_code 自动带入并转大写、error 回显。取消自加的四项返回目标白名单,保留安全站内目标(拒绝协议相对地址);本包只记录目标,其他产品页由正式路由承接,不伪造工具页面。 |
| 账号状态 / identity/service.py | 停用账号不能通过密码或短信认证。短信登录成功恢复手机号已验证状态。邀请码传入模拟注册数据,不虚构奖励结算。 |
拖动验证页面和状态
入口:密码提交、短信获取。主操作:拖动滑块使图标进入虚线框,松开后自动验证;方向键及回车可操作。位置错误留在弹层重试;刷新生成新题;模拟题 90 秒后过期,刷新后重试;关闭或 Esc 回原表单,保留输入。切换页面或关闭登录使旧请求失效,旧验证结果不能产生登录、短信或绑定。
本地 mock-captcha.js 仅提供交互替身,不具备安全认证能力。真实项目必须继续调用原 requestTencentCaptcha(),将 captcha_ticket 和 captcha_randstr 交由服务端验证;腾讯动态题型、风控结果和过期规则由官方服务决定,不以本地题替换腾讯 SDK。未连接真实腾讯、微信或短信服务,未读取 Secret。
保留已明确确认的改动:首页双栏登录弹窗、三种文字标签、跟随表单的协议、已绑定微信直接登录、未绑定注册/验证已有账号、手机号解绑/换绑、小麦管理入口与超管只读微信信息。未恢复 master 旧的自动创建微信账号路径,因为这部分已按用户确认改为先注册或验证已有账号。保留上述变更不意味着可删除既有人机验证。
未扩展的范围:真实短信频控、邀请权益、草粒奖励、服务端会话和其他平台工具继续由现有系统负责;本包不新增这些业务规则。此前流程说明未写出人机验证的步骤已由本节明确补正。本次只更新本地前端及交付包,未提交 Git、未发布 Nexus。