学生端 / 作业列表
周策 老师
Prototype

学生端 · 作业列表

校验作业列表分区、状态和入口一致性。

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

作业列表

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

当前对照重点: 作业列表
Review Hint

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

作业列表

页面元信息

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

视觉描述

  • 原型引用:产出文档/作业管理模块/原型图/s_homework_list.html
  • 本页为学生登录后的默认首屏页面,整体由 顶部作业类型切换区主内容区底部悬浮快捷操作区底部导航区 四部分构成;不再保留独立 首页 页面,也不在底部导航展示 首页
  • 顶部为两项分段切换控件 纸质教辅作业个性化作业。两个按钮样式互斥,当前版本默认高亮 纸质教辅作业;未选中项为白底灰字,选中项为浅灰底深色字。
  • 当顶部切换到 纸质教辅作业 时,内容区顶部展示二级子页签 作业库我的作业,右侧保留 搜索 图标和 筛选 入口文本图标。纸质教辅卡片沿用既有教辅展示样式:左侧书封、右侧书名/出版社/配套教材/日期、卡片底部动作区。
  • 当顶部切换到 个性化作业 时,内容区顶部展示横向状态筛选胶囊 全部 / 待提交 / 待批改 / 已完成。下方为个性化作业卡片流,卡片包含 学科色块标题状态标签来源标签题数备注发布日期、可选 评级 以及底部动作区。
  • 下载入口设计方案按本期优化方案落地,不直接采用原型中的右上角悬浮小圆形图标:
    • 统一改为卡片内容区下方的独立次级按钮,按钮文案明确为 下载教辅PDF下载作业PDF,左侧带下载图标。
    • 按钮高度不低于 44px,左右边距与卡片内容对齐,点击热区覆盖整个按钮区域,便于学生、家长及教师辅导场景下单手点击。
    • 按钮与下方业务动作区分层展示,避免与 查看分析 / 批改结果 / 查看详情 抢占同一点击区域。
  • 页面底部悬浮快捷操作区样式参考 tm_list.html:左侧 提交记录 为描边按钮,右侧 提交作业 为品牌主按钮;二者为页面级入口,不绑定当前卡片。
  • 页面底部导航当前仅保留两项:作业我的作业 为当前激活态,我的 跳转 s_profile.html;不再展示 首页
  • 页面需补齐 4 类界面状态:首屏骨架屏、空态、筛选无结果态、列表触底加载反馈态。

功能描述

  • 页面入口:
    • 学生在 s_login.html 登录成功后直接进入 s_homework_list.html?homeworkTab=paper&subTab=library
    • 学生在 s_submit.htmls_history.htmls_homework_report.htmls_ai_grading.htmls_profile.html 返回时回流本页。
    • 若命中旧版 s_home.html,系统完成兼容跳转后最终也进入本页。
  • 页面权限与数据范围:
    • 仅返回当前登录学生本人可见的作业,不展示同班同学数据,不展示教师、家长或其他学生的提交记录、分数、作答图片。
    • 个性化作业卡片严禁展示教材名称、教材版本、出版社等教辅字段;纸质教辅区域沿用既有教辅信息展示逻辑。
  • 页面初始化与上下文恢复:
    • 首次进入且无历史上下文时,默认高亮 纸质教辅作业,并默认打开 作业库;仅当用户主动切换到 个性化作业 后,才记录个性化状态筛选值。
    • 页面需维护 s_homework_list_context,至少包含 homework_tabpaper_sub_tabpersonal_statuspage_noscroll_topsource_pageupdated_at
    • 若 URL 透传 homeworkTabsubTabpersonalStatus,则优先按 URL 还原;若参数缺失,再回退到 s_homework_list_context;若上下文也缺失,再使用默认值。
    • 从本页进入 s_submit.htmls_history.htmls_homework_report.htmls_ai_grading.htmls_profile.html 时,必须透传当前 homeworkTab / subTab / personalStatus,用于返回时恢复原页签、原筛选和滚动位置。

顶部作业类型切换区

区域/控件展示规则交互与系统行为
纸质教辅作业始终展示;未选中时白底灰字点击后切换 homework_tab=paper,页面滚动回顶部,内容区显示纸质教辅二级子页签。
个性化作业始终展示;首次进入默认未选中点击后切换 homework_tab=personal,页面滚动回顶部,内容区显示个性化作业状态筛选条与个性化作业列表。
分段按钮状态两项互斥同一时刻只允许 1 个页签为激活态;切换时立即写入 s_homework_list_context.homework_tab
页签切换后的上下文恢复按页签分别保存paper 页签保留最近一次 subTabpersonal 页签保留最近一次 personalStatus;两套上下文互不覆盖。

纸质教辅作业区(存量链路,当前仅定义本页承接关系)

  • 本区沿用既有纸质教辅作业链路,本轮不重新定义纸质教辅搜索、筛选、详情页等完整业务,只在 s_homework_list.html 中明确切换、展示与返回规则。
  • 列表加载策略:
    • 作业库我的作业 各自独立分页,首屏各加载 10 张卡片,触底继续加载下一页 10 条。
    • 切换 作业库 / 我的作业 时重置为各自第 1 页并滚动到顶部。
区域/字段/按钮展示规则交互与系统行为
作业库 子页签homework_tab=paper 时展示点击后高亮 作业库,展示推荐教辅列表。
我的作业 子页签homework_tab=paper 时展示点击后高亮 我的作业,展示已关联到学生的纸质教辅作业。
搜索 图标homework_tab=paper 时展示当前仅保留视觉占位;点击后 Toast 提示 搜索功能规划中,不打开新页面。
筛选 图标 + 文案homework_tab=paper 时展示当前仅保留视觉占位;点击后 Toast 提示 筛选功能规划中,不弹出筛选面板。
教辅封面/书名/出版社/教材版本/日期纸质教辅卡片固定展示仅用于识别当前教辅,不可点击跳转。
查看详情作业库 卡片展示当前不进入正式页面链路;点击后 Toast 提示 查看详情页待接入,不跳转。参见 R13。
查看分析我的作业 中已生成分析结果的卡片展示点击进入 s_homework_report.html?from=list&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=paper&subTab=my;返回时恢复 paper + my 上下文。
下载教辅PDF作业库我的作业 卡片均展示为独立按钮点击后直接触发 PDF 下载;按钮状态按 下载中... -> 下载完成 切换;失败时 Toast 下载失败,请稍后重试
推荐标识/既有提醒标识沿用存量教辅逻辑本轮不新增新的判定口径;若后端返回既有推荐标识或提醒标识,按既有纸质教辅规则渲染,不改变本页跳转逻辑。

个性化作业区(本期重点)

  • 列表加载策略:
    • 首屏加载 10 张个性化作业卡片,触底继续加载下一页 10 条。
    • 切换状态筛选后重置 page_no=1、滚动到顶部,并重新请求当前筛选结果。
    • 加载中展示卡片骨架屏;触底加载失败时在列表底部展示 加载失败,点击重试,保留已加载内容。

个性化作业状态筛选条

区域/控件展示规则交互与系统行为
全部默认选中点击后展示全部个性化作业卡片。
待提交始终展示点击后仅展示 status=pending_submit 的卡片。
待批改始终展示点击后仅展示 status=pending_grade 的卡片。
已完成始终展示点击后仅展示 status=done 的卡片。
筛选状态四项单选互斥同一时间仅允许 1 个状态筛选生效;点击后立即刷新列表并写入 s_homework_list_context.personal_status

个性化作业卡片区

区域/字段/按钮展示规则交互与系统行为
学科色块每张卡片固定展示使用学科色块 + 学科文字展示,如 语文 / 数学 / 英语;仅作识别,不可点击。
作业标题每张卡片固定展示标题最多展示 2 行,超出省略。
状态标签每张卡片固定展示仅允许 待提交 / 待批改 / 已完成 三种状态;对应蓝/灰/绿视觉样式。
教研院 来源标签仅当 source_type=research_institute 时展示展示在题数信息左侧,作为来源标识,不可点击。
共X题每张卡片固定展示展示题量摘要,不展示教材页码、出版社等字段。
备注文案remark 有值时展示允许展示 2 行,超出省略;无备注时该区域整体不占位。
发布日期每张卡片固定展示展示格式固定为 YYYY-MM-DD 发布
评级:A 等评级字段status=donerating 有值时展示展示在发布日期右侧;无评级时不占位。
下载作业PDF每张卡片固定展示为独立次级按钮点击后直接下载当前个性化作业 PDF;点击时按钮进入 下载中... 禁用态,成功后恢复默认态并 Toast 下载完成,失败后恢复默认态并 Toast 下载失败,请稍后重试;点击时必须阻断卡片其他交互。
卡片主体点击默认不开放整卡跳转学生点击卡片正文区域不触发页面跳转,避免与下载、查看分析、批改结果产生误触。
批改结果status=pending_gradestatus=done 时展示点击进入 s_ai_grading.html,并透传 hwKeyrecordIdgradingStatusfrom=listhomeworkTab=personalpersonalStatus={当前筛选}pending_grade 进入待批改查看态,done 进入教师批改结果查看态。
查看分析仅当 status=doneanalysis_ready=true 时展示点击进入 s_homework_report.html?from=personal&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=personal&personalStatus=done;返回时恢复 个性化作业 + 已完成 上下文。
  • 个性化作业状态与动作绑定规则:
    • 待提交
      • 卡片展示 下载作业PDF,不展示 查看分析批改结果
      • 学生如需提交,统一通过页面底部 提交作业 进入 s_submit.html 再选择作业,不在卡片内额外放置 去提交 按钮。
    • 待批改
      • 卡片展示 下载作业PDF批改结果
      • 批改结果 打开的是待批改查看态,用于查看本次提交记录与当前批改进度,不显示最终评级。
    • 已完成
      • 卡片展示 下载作业PDF查看分析批改结果
      • 查看分析批改结果 并列展示;若报告尚未生成,则 查看分析 不展示可点击态,避免出现空跳转。

底部悬浮快捷操作区

区域/控件展示规则交互与系统行为
提交记录始终展示为描边按钮页面级快捷入口,不绑定当前卡片;点击进入 s_history.html?homeworkTab={当前顶部页签}&subTab={当前纸质教辅子页签}&personalStatus={当前个性化筛选}&source_page=s_homework_list
提交作业始终展示为品牌主按钮页面级快捷入口,不绑定当前卡片;点击进入 s_submit.html?tab={当前顶部页签}&source_page=s_homework_list&homeworkTab={当前顶部页签}&subTab={当前纸质教辅子页签}&personalStatus={当前个性化筛选}
按钮可见性不随列表空态变化即使当前页签无数据、筛选无结果,也不隐藏 提交记录提交作业
  • 提交记录 设计说明(参考 tm_list.html):
    • 保持页面级固定入口,而不是放入每张卡片内,避免学生误以为提交记录只属于某一张卡片。
    • 返回本页时必须恢复离开前的顶部分段、筛选条件和滚动位置。
  • 提交作业 设计说明:
    • 保持页面级固定入口,学生始终通过统一提交页完成拍照与上传,不直接在卡片内发起提交。
    • 当顶部页签为 个性化作业 时,提交页默认打开个性化作业提交态;当顶部页签为 纸质教辅作业 时,默认打开纸质教辅提交态。

底部导航区

区域/控件展示规则交互与系统行为
作业当前页固定激活态高亮显示,不响应重复点击刷新。
我的始终展示点击进入 s_profile.html?source_page=s_homework_list&homeworkTab={当前顶部页签}&subTab={当前纸质教辅子页签}&personalStatus={当前个性化筛选};返回时恢复本页上下文。

页面跳转与返回逻辑

  • 个性化作业 点击 查看分析
    • 进入 s_homework_report.html?from=personal&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=personal&personalStatus={当前筛选}
    • 返回时回到 s_homework_list.html?homeworkTab=personal&personalStatus={当前筛选}
  • 个性化作业 点击 批改结果
    • 进入 s_ai_grading.html?from=list&hwKey={hw_key}&recordId={record_id}&gradingStatus={grading_status}&homeworkTab=personal&personalStatus={当前筛选}
    • 返回时回到 s_homework_list.html?homeworkTab=personal&personalStatus={当前筛选};若从批改结果页再切到提交记录,则按 s_ai_grading.html 的来源逻辑进入 s_history.html
  • 纸质教辅作业 -> 我的作业 点击 查看分析
    • 进入 s_homework_report.html?from=list&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=paper&subTab=my
    • 返回时回到 s_homework_list.html?homeworkTab=paper&subTab=my
  • 从本页点击 提交记录提交作业
    • 进入目标页前必须写入 s_homework_list_context
    • 目标页返回时优先读取 URL 参数恢复,参数缺失时再读取 s_homework_list_context

批量操作范围

  • 本页不支持作业卡片多选,不提供批量下载、批量提交、批量删除、批量标记已读能力。

  • 纸质教辅二级子页签切换、个性化状态筛选仅影响当前列表结果集展示,不修改任何作业、提交、批改业务数据。

  • 提交记录提交作业 为页面级快捷入口,作用范围是“当前学生账号”,不是“当前选中卡片”。

  • 业务规则:R13、R18、R72、R73、R74、R75、R76、R77。

异常描述

异常场景处理方式
页面初始化失败(列表接口超时、500、网络异常)展示整页错误态,提供 重试 按钮;保留最近一次 s_homework_list_context,重试成功后恢复原上下文。
当前学生无任何作业展示空态 暂无作业,同时保留底部 提交记录提交作业我的 入口。
个性化状态筛选无结果在卡片区展示局部空态 当前筛选下暂无作业;不自动回退到 全部,不清空当前筛选。
纸质教辅 搜索 / 筛选 点击Toast 提示 功能规划中;不跳转、不弹窗、不清空当前列表。
查看详情 点击Toast 提示 查看详情页待接入;不跳转。
查看分析 时报告未生成或参数缺失Toast 提示 作业分析暂未生成未找到对应作业分析;停留在当前页,不清空当前上下文。
批改结果recordId 缺失或结果未生成Toast 提示 暂未找到批改结果;停留在当前页。
下载失败Toast 提示 下载失败,请稍后重试;下载按钮恢复默认态,可再次点击。
返回本页时上下文缺失以默认值恢复:homeworkTab=papersubTab=library;页面滚动定位到顶部。
学生登录态失效Toast 提示 登录已失效,请重新登录,跳转 s_login.html;重新登录后回到 s_homework_list.html?homeworkTab=paper&subTab=library

数据需求

  • 接口建议:
    • 学生作业列表接口:
      • homework_tab=paper|personal 返回列表。
      • homework_tab=paper 时,支持 sub_tab=library|my
      • homework_tab=personal 时,支持 status=all|pending_submit|pending_grade|done
    • 下载接口:
      • 根据 homework_id + homework_type 返回可下载 PDF 的临时地址 download_url
    • 上下文恢复无需单独接口,依赖 URL 参数 + 本地缓存。
  • 请求参数建议:
    • 公共参数:student_idhomework_tabpage_nopage_sizesource_page
    • 纸质教辅补充参数:sub_tab
    • 个性化作业补充参数:status
  • 返回字段建议:
    • 纸质教辅卡片:
      • homework_id
      • homework_type=paper
      • hw_key
      • book_info
      • book_name
      • publisher_name
      • edition_name
      • publish_date
      • cover_style
      • is_recommended
      • analysis_ready
      • download_url
    • 个性化作业卡片:
      • homework_id
      • homework_type=personal
      • subject_code
      • subject_name
      • homework_name
      • hw_key
      • book_info
      • question_count
      • remark
      • publish_time
      • status
      • source_type
      • rating
      • analysis_ready
      • grading_status
      • record_id
      • download_url
  • 字段约束:
    • status 枚举固定为 pending_submit / pending_grade / done
    • grading_status 至少兼容 pending / ai_graded / teacher_graded,与 s_ai_grading.html 对齐。
    • 个性化作业数据响应中即使历史字段带回 publisher_nameedition_nameteaching_aid_name,前端也不得在本页展示。参见 R75。
  • 本地状态缓存:
    • s_homework_list_context:保存 homework_tabpaper_sub_tabpersonal_statuspage_noscroll_topupdated_at
    • 当从本页跳转到 s_submit.htmls_history.htmls_homework_report.htmls_ai_grading.htmls_profile.html 时,需先更新该缓存。
  • 埋点:
    • student_homework_list_view
      • 触发时机:页面加载完成时
      • 关键参数:homework_tabsub_tabpersonal_statussource_page
    • student_homework_tab_click
      • 触发时机:点击顶部 纸质教辅作业 / 个性化作业
      • 关键参数:from_tabto_tab
    • student_homework_paper_subtab_click
      • 触发时机:点击 作业库 / 我的作业
      • 关键参数:sub_tab
    • student_homework_personal_filter_click
      • 触发时机:点击个性化状态筛选
      • 关键参数:status
    • student_homework_download_click
      • 触发时机:点击 下载教辅PDF / 下载作业PDF
      • 关键参数:homework_idhomework_typestatus
    • student_homework_download_result
      • 触发时机:下载成功或失败时
      • 关键参数:homework_idhomework_typeresult
    • student_homework_analysis_click
      • 触发时机:点击 查看分析
      • 关键参数:homework_idhomework_typefrom_tab
    • student_homework_grading_result_click
      • 触发时机:点击 批改结果
      • 关键参数:homework_idrecord_idgrading_status
    • student_homework_history_click
      • 触发时机:点击页面级 提交记录
      • 关键参数:homework_tabsub_tabpersonal_status
    • student_homework_submit_click
      • 触发时机:点击页面级 提交作业
      • 关键参数:homework_tabsub_tabpersonal_status
    • student_homework_placeholder_click
      • 触发时机:点击纸质教辅 查看详情搜索筛选 等占位入口时
      • 关键参数:placeholder_type
当前这页已经是“原型 + 页面 PRD”评审工作台。跨页面规则请维护在总览 / 全局规则文档,页面细节请直接维护右侧页面 PRD。
Review Workspace - Prototype + Page PRD