学生端 / 个人中心
周策 老师
Prototype

学生端 · 个人中心

校验学生资料、账号切换和退出流程。

设计视口: 375 x 812 · 当前缩放: 100% · 左右分栏: 拖动中线调整
Page PRD

个人中心

当前文档: prds/作业管理模块/student/s_profile.md

当前对照重点: 个人中心
Review Hint

左侧现在支持三种演示模式: 默认按设计稿完整缩放、按宽度铺满、以及 100% 原始尺寸滚动查看。 右侧默认读取当前页面对应的页面级 PRD,而不是整本总 PRD;改页面时,直接同步维护这个页面文档即可。

个人中心

页面元信息

  • 终端:学生端
  • Astro 路由:/student/profile
  • 原始 HTML:s_profile.html
  • 来源章节:4.4.10
  • 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。

视觉描述

  • 原型引用:产出文档/作业管理模块/原型图/s_profile.html
  • 页面为学生端底部导航我的Tab承接页,整体采用移动端纵向单列布局,自上而下固定包含状态栏个人头卡基础信息卡绑定信息卡操作列表底部导航栏6个区域;页面不设置顶部标题栏和返回按钮,回到作业列表统一依赖底部作业Tab。参见 R96。
  • 个人头卡使用品牌蓝底,左侧为圆形头像占位,右侧上下展示学生姓名和副文案;副文案用于拼接班级与学号,如六年级(2)班 · S20260301。头卡不展示学校全称、手机号、微信状态等冗余字段。
  • 基础信息卡为白底圆角卡片,按行展示姓名学校班级学号4个只读字段;左侧为灰色标签,右侧为深色字段值,不展示箭头,不支持点击进入详情页。
  • 绑定信息卡为独立白底圆角卡片,按行展示手机号微信绑定2项信息;手机号在主页摘要区以脱敏形式展示,如138****5678;微信绑定状态使用右侧状态标签展示,已绑定为绿色标签,未绑定为灰色标签。参见 R18、R97。
  • 操作列表位于页面中下部,为三行独立可点击行:编辑个人信息切换账号退出登录;前两项为常规深色文字,退出登录使用危险态红色文案;每行右侧固定展示箭头图标。
  • 页面内还包含 3 类浮层/子页面:
    • 退出登录确认弹窗:居中白底对话框,包含标题、说明文案、取消退出登录两个按钮。
    • 切换账号底部Sheet:自底部上滑的抽屉层,包含标题、关闭按钮、当前账号项、其他家庭账号项、添加或注册新账号入口和底部取消按钮。
    • 编辑个人信息全屏页:从右向左滑入的全屏子页,顶部固定白色栏,左侧取消、中间标题编辑个人信息、右侧保存;内容区包含黄色说明文案、只读基础信息组和可编辑联系方式组。
  • 编辑个人信息全屏页中的表单布局遵循原型:基础信息区 4 行只读输入框,可编辑区 2 行输入框,分别为家长手机号联系地址;主页面不展示联系地址摘要,联系地址仅在编辑页内查看与回显。参见 R97。
  • 底部导航栏固定保留两项:左侧作业、右侧我的;当前页我的为激活态,作业为未激活态。页面不保留历史原型中的首页Tab。参见 R72、R96。
  • 页面需补齐 4 类界面状态:首屏资料骨架屏、个人资料加载失败态、切换账号Sheet无可切换账号空态、正常展示态。

功能描述

  • 业务规则:R18、R19、R53、R72、R73、R96、R97、R98、R99。
  • 页面入口与来源参数:
    • 正式入口:学生在 s_homework_list.html 点击底部导航我的进入本页,需透传 source_page=s_homework_list&homeworkTab={当前顶部页签}&subTab={当前纸质教辅子页签}&personalStatus={当前个性化筛选}。参见 4.4.3。
    • 原型兼容:当前原型使用 sourcePage=list 透传来源;正式实现统一使用 source_page=s_homework_list,前端需兼容读取 sourcePage=list 并归一化为 source_page=s_homework_list
    • 兼容直达:若学生通过收藏、历史缓存或外部调试链接直接打开本页且缺少来源参数,本页仍允许正常展示;点击底部作业Tab时按默认路径返回 s_homework_list.html?homeworkTab=paper&subTab=library。参见 R96。
    • URL 参数归一化规则:
      • source_page 仅接受 s_homework_list,兼容值 list 统一映射为 s_homework_list;其他值按 s_homework_list 处理。
      • homeworkTab 仅接受 paper / personal,非法值默认回落为 paper
      • subTab 仅接受 my,其他值默认回落为 library
      • personalStatus 未传时默认按 all 保存返回上下文。
  • 页面初始化与上下文维护:
    • 页面首次进入时,先请求当前登录学生的个人资料摘要接口,成功后渲染头卡、基础信息卡和绑定信息卡;资料未返回前展示骨架屏,不得沿用上一账号缓存直接渲染,避免串号。参见 R18、R98。
    • 页面需维护 s_profile_context,至少保存 source_pagehomeworkTabsubTabpersonalStatusupdated_at;作业列表的滚动位置和分页信息仍由 s_homework_list_context 维护,本页只负责把来源参数透传回列表页。参见 R73、R96。
    • 点击切换账号时,再请求家庭账号列表接口;列表返回前,Sheet正文展示局部 Loading,不阻塞主页面其他信息展示。

页面分区与控件交互

  • 本页按个人头卡基础信息卡绑定信息卡操作列表退出登录确认弹窗切换账号底部Sheet编辑个人信息全屏页底部导航栏8个交互分区展开说明。

个人头卡

区域/控件展示规则交互与系统行为
学生头像占位始终展示优先展示当前学生头像;未配置头像时,以学生姓名首字生成圆形头像占位。当前版本头像只读,不支持上传、裁剪或删除。参见 R97。
学生姓名始终展示展示当前登录学生姓名;超长时单行省略,不换行撑高头卡。
副文案有班级或学号时展示班级 · 学号 拼接;若仅有一项,则只展示已有字段,不补多余分隔符。副文案只读,不可点击。

基础信息卡

区域/控件展示规则交互与系统行为
姓名始终展示展示学生实名信息;字段值只读,不支持复制、编辑或跳转。
学校始终展示展示所属学校全称;字段值只读。
班级始终展示展示当前归属班级,如 六年级(2)班;字段值只读。
学号始终展示展示学校下发学号,如 S20260301;字段值只读。
  • 基础信息卡的 4 个字段均由学籍/教务系统下发,学生端不提供改名、改班、改学号入口;若数据错误,需通过说明文案引导联系教师或学校管理员修正。参见 R19、R97。

绑定信息卡

区域/控件展示规则交互与系统行为
手机号始终展示主页摘要固定展示脱敏号码,如 138****5678;若当前无可联系手机号,则显示 未填写。该行只读,不支持在主页直接点击拨号或编辑。参见 R18。
微信绑定 状态标签始终展示根据绑定状态展示 已绑定未绑定已绑定 为绿色标签,未绑定 为灰色标签。当前版本仅展示状态,不提供手动绑定、解绑入口。参见 R97。

操作列表

区域/控件展示规则交互与系统行为
编辑个人信息始终展示点击后从右侧打开编辑个人信息全屏页;主页面保持在背景层,不发生页面路由跳转。
切换账号始终展示点击后打开切换账号底部Sheet并请求家庭账号列表;当前页资料保持不变,直到底部Sheet内确认切换到其他账号。
退出登录始终展示,危险态红色文案点击后打开退出登录确认弹窗;未确认前不清除任何缓存。参见 R99。

退出登录确认弹窗

区域/控件展示规则交互与系统行为
遮罩层弹窗打开时展示点击遮罩关闭弹窗,返回个人中心页;不清理任何 Token、缓存或表单输入。参见 R99。
标题弹窗打开时始终展示固定文案为退出登录
说明文案弹窗打开时始终展示固定说明当前操作会退出当前账号并返回登录页,需提醒重新登录后才能继续查看作业与个人信息。
取消弹窗打开时始终展示关闭弹窗,停留在个人中心页。
退出登录弹窗打开时始终展示点击后调用退出登录接口;成功后清理本地 Token 与当前账号缓存,跳转 s_login.html。若请求处理中,按钮文案切为 退出中... 且按钮置灰防重。参见 R99。

弹窗规格:退出登录确认弹窗

要素内容
触发条件点击操作列表 退出登录
标题退出登录
正文退出后将返回登录页,需重新登录后才能继续查看作业与个人信息。
主按钮退出登录 → 清理当前账号 Token 与本地缓存,跳转 s_login.html
次按钮取消 → 关闭弹窗,停留当前页
[x]关闭无独立 X 按钮;点击遮罩等同于取消

切换账号底部Sheet

区域/控件展示规则交互与系统行为
遮罩层Sheet 打开时展示点击遮罩关闭 Sheet,返回个人中心页,不切换账号。
标题 切换账号Sheet 打开时始终展示固定文案,不追加账号数量。
右上角关闭按钮Sheet 打开时始终展示点击后关闭 Sheet,不切换账号。
当前账号项家庭账号列表加载成功后始终排在首位展示当前学生头像、姓名、班级/学校摘要,右侧固定显示 当前账号 标签;该行不可点击,不触发切换。参见 R98。
其他家庭账号项存在已绑定其他学生账号时逐行展示点击某个目标账号后,调用切换账号接口;请求期间仅目标行进入 切换中... 状态,其他账号行、添加或注册新账号取消按钮全部禁用防重。切换成功后清理当前账号本地缓存并跳转 s_homework_list.html?homeworkTab=paper&subTab=library,不继承上一账号的页签、筛选、滚动和本地表单草稿。参见 R98。
添加或注册新账号始终展示点击后清理当前登录态并跳转 s_login.html,用于登录新学生账号;该入口不直接创建账号资料页,不在本页内完成注册流程。
取消始终展示关闭 Sheet,不切换账号。
  • 若当前账号没有其他可切换的家庭账号,Sheet 仍需展示当前账号项和添加或注册新账号入口,同时在账号列表区域展示空态文案 暂无其他可切换账号

弹层规格:切换账号底部Sheet

要素内容
触发条件点击操作列表 切换账号
标题切换账号
正文展示当前账号、其他家庭账号列表、添加或注册新账号入口
主按钮无统一主按钮;点击目标账号行立即执行切换
次按钮取消 → 关闭 Sheet,停留当前页
[x]关闭右上角 X 或点击遮罩,均仅关闭 Sheet

编辑个人信息全屏页

区域/控件展示规则交互与系统行为
左上角 取消全屏页打开时始终展示关闭全屏页并回到个人中心主页面;本次未保存修改全部丢弃,不做自动草稿保存,不弹“是否放弃修改”二次确认,保持与原型一致。
页面标题 编辑个人信息全屏页打开时始终展示固定文案,不随字段内容变化。
右上角 保存全屏页打开时始终展示点击后校验并提交可编辑字段;请求处理中按钮文案变为 保存中... 并禁用防重。保存成功后关闭全屏页,返回个人中心主页面,并 Toast 提示 保存成功。即使可编辑字段未发生变化,也按成功保存处理,不额外提示“未修改内容”。
黄色说明文案全屏页打开时始终展示固定说明:姓名、学校、班级、学号来自学校系统,当前页面仅支持补充联系方式;如基础信息有误需联系教师或学校管理员处理。
只读基础信息区全屏页打开时始终展示按 4 行只读输入框展示 姓名 / 学校 / 班级 / 学号;输入框禁用,只作回显,不可编辑。
可编辑联系方式区全屏页打开时始终展示固定包含 家长手机号联系地址 2 个字段;保存请求仅提交这 2 个字段。

表单字段规格:编辑个人信息全屏页

字段名控件类型必填校验规则
姓名禁用输入框(Input, disabled)只读回显,不参与保存请求。
学校禁用输入框(Input, disabled)只读回显,不参与保存请求。
班级禁用输入框(Input, disabled)只读回显,不参与保存请求。
学号禁用输入框(Input, disabled)只读回显,不参与保存请求。
家长手机号手机号输入框(Input[type=tel])允许为空;如填写,必须为 11 位中国大陆手机号;编辑页展示完整号码,主页摘要回到脱敏展示。
联系地址单行输入框(Input)允许为空;最多 100 字;支持中文、英文、数字和常见地址符号;不支持换行。
  • 数据保留与回退策略:
    • 全屏编辑页仅在当前打开会话内保留本地输入值;点击取消后直接丢弃本次未保存内容,不写入本地缓存。
    • 保存成功后,主页面仅刷新与摘要相关的字段:头像/姓名/学校/班级/学号保持不变,手机号摘要按最新保存值重新脱敏展示;联系地址继续只在编辑页中回显,不在主页面新增展示行。参见 R97。

底部导航栏

区域/控件展示规则交互与系统行为
作业始终展示,未激活态点击后按来源参数回到 s_homework_list.html:1)homeworkTab=personal 时返回 s_homework_list.html?homeworkTab=personal&personalStatus={当前 personalStatus};2)其他情况返回 s_homework_list.html?homeworkTab=paper&subTab={当前 subTab}。若来源参数缺失或非法,则默认返回 s_homework_list.html?homeworkTab=paper&subTab=library。参见 R73、R96。
我的始终展示,当前页激活态固定高亮,不响应重复点击刷新。

文案和按钮状态变化

  • 头卡与基础信息卡中的姓名、学校、班级、学号始终为只读文案,不随编辑行为进入可改状态。
  • 主页摘要区手机号固定使用脱敏文案;进入编辑页后同一手机号改为完整可编辑值;保存成功回到主页后再次恢复脱敏。
  • 微信绑定状态仅有两种视觉:已绑定绿标签、未绑定灰标签;当前版本不出现去绑定重新绑定解绑按钮。
  • 操作列表中退出登录固定使用危险态红色文案;编辑个人信息切换账号为常规态深色文案。
  • 切换账号Sheet 中,当前账号项右侧固定展示 当前账号 标签且不可点击;其他账号项默认无标签,点击后进入 切换中... 加载态;切换成功后不返回本页,直接进入新账号默认作业列表。参见 R98。
  • 编辑个人信息全屏页顶部按钮状态固定为:左侧取消灰色弱化按钮,右侧保存蓝色主按钮;保存请求处理中,保存按钮切换为 保存中... 并禁用。
  • 退出登录确认弹窗中,取消为灰色次按钮,退出登录为红色主按钮;请求处理中主按钮切换为 退出中... 并禁用。
  • 页面本身无顶部返回文案、无右上角更多菜单、无分享按钮、无二维码展示,保持个人中心简洁单页结构。参见 R96。

页面跳转和返回逻辑

  • s_homework_list.html 点击底部我的进入本页后,作业列表页自身需保留离开前的 homeworkTab / subTab / personalStatus / scroll_top 上下文;本页返回列表时只透传必要页签参数,滚动恢复由 s_homework_list_context 承接。参见 R73、R96。
  • 本页主页面无顶部返回箭头;用户返回作业列表的正式入口只有底部导航作业Tab。
  • 点击编辑个人信息后进入全屏子页:
    • 点击取消返回个人中心主页面,不跳转到作业列表。
    • 点击保存成功后返回个人中心主页面,不跳转到作业列表。
  • 点击切换账号后打开底部Sheet:
    • 点击遮罩、右上角关闭按钮或底部取消,都仅关闭 Sheet,停留当前页。
    • 点击当前账号行不发生跳转,也不关闭 Sheet。
    • 点击其他家庭账号行后,直接切换到目标账号默认作业列表 s_homework_list.html?homeworkTab=paper&subTab=library,不返回当前页,也不继承旧账号上下文。参见 R98。
    • 点击添加或注册新账号后跳转 s_login.html;新账号登录成功后按 R72 进入默认作业列表。
  • 点击退出登录后打开确认弹窗:
    • 点击取消或遮罩,仅关闭弹窗。
    • 点击退出登录成功后跳转 s_login.html;重新登录后按 R72 进入默认作业列表。参见 R99。

批量操作范围

  • 本页不支持批量编辑联系方式、不支持批量切换多个账号、不支持批量退出登录。
  • 切换账号Sheet 一次只允许选中 1 个目标账号执行切换;其他账号不会被同时处理。
  • 编辑个人信息一次提交只作用于当前登录学生账号的 家长手机号联系地址,不会批量修改家庭内其他账号的联系方式。参见 R53、R97。

异常描述

异常场景处理方式
页面首次加载个人资料失败页面主体展示错误态和 重试 按钮;底部导航仍保留可用。点击 重试 重新请求个人资料摘要接口。
source_pagehomeworkTabsubTabpersonalStatus 参数缺失或非法本页正常展示;点击底部作业Tab时按默认路径返回 s_homework_list.html?homeworkTab=paper&subTab=library。参见 R96。
手机号为空主页面手机号展示 未填写;进入编辑页后手机号输入框为空,不阻塞页面使用。
手机号格式错误点击保存后不发起保存请求;手机号输入框下方展示错误提示 请输入正确的11位手机号,页面停留编辑页。
联系地址超长点击保存后不发起保存请求;联系地址输入框下方提示 联系地址最多100字,页面停留编辑页。
联系方式保存失败或网络异常编辑页保持打开并保留当前输入值,Toast 提示 保存失败,请稍后重试;不回写主页摘要。
微信绑定状态接口返回为空或超时微信绑定一行展示 --,不显示错误弹窗;下次进入页面或下拉刷新时重新获取。
家庭账号列表加载失败底部Sheet正文展示 账号列表加载失败重试 按钮;点击遮罩、关闭按钮或取消仍可退出 Sheet。
无其他家庭账号可切换底部Sheet展示当前账号项和空态文案 暂无其他可切换账号;保留 添加或注册新账号 入口。
目标家庭账号无权限、已解绑或切换接口返回失败停留在当前 Sheet,Toast 提示 账号切换失败,请稍后重试该账号暂不可切换;不清理当前账号缓存,不跳转。
退出登录接口失败停留在确认弹窗,Toast 提示 退出失败,请稍后重试;不清理当前账号缓存。
登录态失效任一资料查询、保存、切换账号、退出登录接口返回登录失效时,Toast 提示 登录已失效,请重新登录,随后跳转 s_login.html

数据需求

  • 接口:
    • 学生个人资料摘要接口:
      • 根据当前登录学生身份返回头像、姓名、学校、班级、学号、脱敏手机号、完整家长手机号、联系地址、微信绑定状态。
    • 联系方式保存接口:
      • 保存当前学生账号的 parent_mobilecontact_address
    • 家庭账号列表接口:
      • 返回当前账号、其他已绑定家庭账号及其基础摘要,用于渲染切换账号 Sheet。
    • 切换账号接口:
      • 根据目标账号 ID 返回新的登录态或切换结果;成功后前端需清理旧账号缓存并进入新账号默认作业列表。参见 R98。
    • 退出登录接口:
      • 服务端注销当前登录态;成功后前端清理本地 Token 与缓存并跳转登录页。参见 R99。
  • 请求参数:
    • 页面初始化:source_pagehomeworkTabsubTabpersonalStatus
    • 个人资料摘要:无需显式传学生 ID,以当前登录态识别
    • 联系方式保存:parent_mobilecontact_address
    • 家庭账号列表:无需显式传当前学生 ID,以当前登录态识别
    • 切换账号:target_account_idsource_page=s_profile
    • 退出登录:source_page=s_profile
  • 返回字段建议:
    • 个人资料摘要:
      • student_id
      • student_name
      • student_avatar
      • school_name
      • class_name
      • student_no
      • mobile_masked
      • parent_mobile
      • contact_address
      • wechat_bind_status
      • wechat_bind_text
    • 家庭账号列表:
      • current_account_id
      • accounts[].account_id
      • accounts[].student_name
      • accounts[].student_avatar
      • accounts[].school_name
      • accounts[].class_name
      • accounts[].is_current
      • accounts[].is_switchable
    • 切换账号结果:
      • target_account_id
      • target_student_id
      • token 或等价登录态凭证
      • switch_result
    • 退出登录结果:
      • logout_result
  • 字段约束:
    • wechat_bind_status 至少支持 bound / unbound / unknown;前端分别映射为 已绑定 / 未绑定 / --
    • mobile_masked 仅用于主页摘要展示;parent_mobile 仅用于编辑页回显和保存,不得直接在主页展示完整号码。参见 R18。
    • 家庭账号列表中的 is_current=true 项必须唯一且排在第一位;当前账号项不可点击切换。参见 R98。
    • 切换账号成功后,前端至少清理 tokens_homework_list_contexts_history_contexts_submit_contexts_ai_grading_contexts_homework_report_contexts_profile_context 以及当前账号下的本地草稿/上传恢复缓存,避免新旧账号数据串用。参见 R18、R98。
    • 退出登录成功后,清理范围与切换账号一致,但不生成新的账号上下文。参见 R99。
  • 页面状态缓存:
    • s_profile_context 至少保存 source_pagehomeworkTabsubTabpersonalStatusupdated_at,用于底部作业Tab回跳时还原来源页签参数。
    • 编辑页不额外落本地草稿缓存;可编辑字段仅在当前全屏页打开期间保存在内存态,取消即丢弃。参见 R97。
  • 埋点:
    • student_profile_view
      • 触发时机:个人中心主页面加载完成
      • 关键参数:source_pagehomeworkTabsubTabpersonalStatus
    • student_profile_edit_open
      • 触发时机:点击 编辑个人信息
      • 关键参数:source_page
    • student_profile_save_click
      • 触发时机:点击编辑页 保存
      • 关键参数:has_mobilehas_addresssource_page
    • student_profile_save_result
      • 触发时机:联系方式保存成功或失败
      • 关键参数:resulterror_code
    • student_profile_switch_sheet_open
      • 触发时机:点击 切换账号
      • 关键参数:source_page
    • student_profile_switch_account_click
      • 触发时机:点击某个可切换家庭账号
      • 关键参数:target_account_idis_current=false
    • student_profile_switch_account_result
      • 触发时机:账号切换成功或失败
      • 关键参数:target_account_idresulterror_code
    • student_profile_add_account_click
      • 触发时机:点击 添加或注册新账号
      • 关键参数:source_page
    • student_profile_logout_dialog_open
      • 触发时机:点击 退出登录
      • 关键参数:source_page
    • student_profile_logout_confirm
      • 触发时机:点击弹窗 退出登录
      • 关键参数:source_page
    • student_profile_logout_result
      • 触发时机:退出登录成功或失败
      • 关键参数:resulterror_code
    • student_profile_back_to_homework
      • 触发时机:点击底部 作业Tab离开个人中心
      • 关键参数:homeworkTabsubTabpersonalStatushit_context_restore

当前这页已经是“原型 + 页面 PRD”评审工作台。跨页面规则请维护在总览 / 全局规则文档,页面细节请直接维护右侧页面 PRD。
Review Workspace - Prototype + Page PRD