# B-5-loading · 下载 · 文件生成中

产品：英语默写AI版 · 交付 0.12.3 · 日期 2026-10-13 · 模块：默写单-教材默写单与打印

功能规格：[B-5-loading.function.json](B-5-loading.function.json)
原型设计：[B-5-loading.prototype.html](B-5-loading.prototype.html)

## 职责与进入条件

选择练习卷/答案卷和文件格式后导出；显示本次文件数与扣次数，提供微信分享或本地打开。

from：B-4：生成/配置成功；B-6：用原配置再印；preconditions：拥有配置/所选词或历史记录；真正文件是否已经生成及生成节点待确认。；rule_status：confirmed；source：原 UE B-5/B-6；用户已确认历史来源保留。

## 界面元素

- id：B-5.backdrop；type：surface；label：遮罩与纸卷预览；description：原下载弹层背景；点遮罩可关闭。；rule_status：confirmed

- id：B-5.back；type：button；label：返回/关闭；description：配置来源回 B-4；历史来源回 B-6，按确认来源动态。；rule_status：confirmed

- id：B-5.content；type：segmented-control；label：练习卷 / 答案卷 / 两份都要；description：源3内容选择。；rule_status：confirmed

- id：B-5.format；type：segmented-control；label：PDF / Word / 长图；description：源3格式；Word一期与长图多页策略待确认。；rule_status：confirmed

- id：B-5.explanation；type：text；label：PDF打印效果最好 · Word可改 · 长图可发群；description：源说明是使用建议，不能证明真实渲染能力。；rule_status：confirmed

- id：B-5.share；type：button；label：微信分享；description：真实系统分享调用待接入，完成后留本页。；rule_status：confirmed

- id：B-5.open；type：button；label：本地打开；description：真实系统预览待接入，返回留本页。；rule_status：confirmed

- id：B-5.quota；type：status；label：剩余出单次数；description：源余量2与不限次数为演示/权益文案，精确计次待确认。；rule_status：pending

- id：B-5.vip；type：button；label：会员不限次 / 去开通；description：源横幅→E-2，价格、完整权益与支付不在本模块。；rule_status：confirmed

## 数据与来源

- name：出题服务；data：按内容/格式输出文件；contract_status：pending

- name：当前任务或原历史配置；data：词表；版式/方向/标题/顺序；contract_status：pending

- name：会员与当日额度状态；data：权益/剩余额度；contract_status：pending

- name：系统分享/预览能力；data：文件交付及系统调用结果；contract_status：pending

## 字段建议（尚非服务契约）

- id：contentSelection；type：enum；description：practice/answer/both 仅字段建议。；rule_status：proposed；contract_status：pending

- id：fileFormat；type：enum；description：pdf/word/image，Word一期未定。；rule_status：proposed；contract_status：pending

- id：returnRoute；type：string；description：B-4/B-6 来源，由用户确认历史保持。；rule_status：proposed；contract_status：pending

- id：generationTaskContext；type：object；description：建议识别任务/重复导出，尚非 API。；rule_status：proposed；contract_status：pending

- id：exportStatus；type：enum；description：建议 ready/exporting/error；演示不证明文件存在。；rule_status：proposed；contract_status：pending

- id：remainingQuota；type：integer|null；description：真实计次契约未定。；rule_status：proposed；contract_status：pending

- id：draftContext；type：object；description：建议用教材ID、范围ID隔离单元/词条/顺序/配置/滚动草稿；不作为API字段；rule_status：proposed；contract_status：pending

- id：expectedFileCount；type：integer；description：PDF/Word双卷1文件；图片按每卷实际页数求和；rule_status：proposed；contract_status：pending

- id：generationResults；type：object[]；description：建议逐文件记录成功/失败与计次结果；多图片部分成功仅计成功文件；重试失败文件按新增成功数扣次；rule_status：proposed；contract_status：pending

## 页面状态

- id：ready；description：选择下载内容与格式；rule_status：confirmed

- id：exporting；description：文件生成中；rule_status：proposed

- id：export-error；description：文件生成失败；rule_status：proposed

- id：share-cancelled；description：分享已取消；rule_status：proposed

- id：open-error；description：本地打开失败；rule_status：proposed

## 可切换演示状态

- id：exporting；label：文件生成中；scope：prototype_only

- id：ready；label：选择下载内容与格式；scope：prototype_only

- id：export-error；label：文件生成失败；scope：prototype_only

- id：share-cancelled；label：分享已取消；scope：prototype_only

- id：open-error；label：本地打开失败；scope：prototype_only

- id：quota-zero；label：免费次数用完；scope：prototype_only

## 交互 B-5-I-01：切换内容/格式

- 触发：切换内容/格式

- 条件：三种格式均保留；Word/PDF双卷合成一个文件，图片每页一张

- 反馈：更新内容、格式、预计文件数及本次计次，不立即生成或扣次

- 跳转目标：B-5

- 携带数据：内容；格式

- 规则确认程度：confirmed

- 来源：原UE选项与用户2026-10-12导出确认

- 预览能力：选中态可切换，未知文件能力不冒称已输出。

## 交互 B-5-I-02：点击微信分享

- 触发：点击微信分享

- 条件：可用次数足够且文件成功生成

- 反馈：按成功文件数扣次，随后调用系统分享或预览；返回留本页；再次导出重新计次

- 跳转目标：B-5

- 携带数据：输出文件；分享结果概念

- 规则确认程度：confirmed

- 来源：原UE终点操作与用户2026-10-12按成功文件数计次

- 预览能力：模拟生成状态与本地演示次数变化，不创建真实文件、不调用真实系统服务

## 交互 B-5-I-03：点击本地打开

- 触发：点击本地打开

- 条件：可用次数足够且文件成功生成

- 反馈：按成功文件数扣次，随后调用系统分享或预览；返回留本页；再次导出重新计次

- 跳转目标：B-5

- 携带数据：输出文件

- 规则确认程度：confirmed

- 来源：原UE终点操作与用户2026-10-12按成功文件数计次

- 预览能力：模拟生成状态与本地演示次数变化，不创建真实文件、不调用真实系统服务

## 交互 B-5-I-04：点返回/遮罩

- 触发：点返回/遮罩

- 条件：配置或历史来源明确

- 反馈：回实际进入来源，不丢配置/历史上下文

- 跳转目标：entry.returnRoute：B-4 / B-6

- 携带数据：returnRoute；配置上下文

- 规则确认程度：confirmed

- 来源：源默认 B-4；用户 2026-10-11 确认从历史再印返回 B-6。

- 预览能力：配置关闭回 B-4，历史再印关闭回 B-6；保存选择为建议。

## 交互 B-5-I-05：点击会员横幅

- 触发：点击会员横幅

- 条件：用户主动选择开通

- 反馈：进入会员权益购买

- 跳转目标：E-2

- 携带数据：origin=B-5

- 规则确认程度：confirmed

- 来源：原 UE 横幅→E-2。

- 预览能力：E-2明确边界，不编价格/支付结果。

## 交互 B-5-I-06：导出失败/余量为零

- 触发：导出失败/余量为零

- 条件：生成失败，或本次成功文件所需次数超过余量

- 反馈：生成失败不扣次数并保留选项；余量不足时展示本次需次数并禁止导出，可调整内容格式或主动开通会员

- 跳转目标：B-5 / E-2（待确认）

- 携带数据：

- 规则确认程度：proposed

- 来源：不扣失败文件已确认；余量不足提示和拦截设计为建议

- 预览能力：生成错误/次数不足可切换，重试回可导出态；会员页为边界

## 返回与保留

destination：B-4 / B-6（按 returnRoute）；rule_status：confirmed；preserve：建议保留内容/格式、任务配置；历史回 B-6 保留分类位置。；source：源 B-5 默认回 B-4；用户2026-10-11确认历史来源动态返回。；prototype_behavior：分享/打开只是选择动作，本页仍在；返回真实来源而非固定 B-4。

## 验收

- id：B-5-AC-01；given：配置来源/历史来源；when：关闭弹层；then：分别回 B-4/B-6。；rule_status：confirmed

- id：B-5-AC-02；given：真实文件已可用；when：调用分享/本地打开；then：系统动作后仍留 B-5。；rule_status：confirmed

- id：B-5-AC-03；given：离线预览；when：点击两个动作；then：只有本地选择反馈，不宣称文件生成/分享成功。；rule_status：proposed

- given：预览选中数为0；when：点击下一步；then：按钮禁用，不能进入空词表生成流程；rule_status：proposed

- given：从下一步返回；when：回本页；then：同一教材与范围保持草稿；不同范围重新核对；rule_status：proposed

- given：网络或音源失败；when：重试或返回；then：保留可恢复数据，不伪造成功结果；rule_status：proposed

- given：选择PDF或Word且两份都要；when：成功导出；then：合成1个文件并扣1次；rule_status：confirmed

- given：图片共N页；when：N个图片文件成功生成；then：扣N次，失败文件不扣；rule_status：confirmed

- given：文件成功生成；when：分享取消或系统预览失败；then：保持本页，已经生成的文件按数量计次；rule_status：confirmed

## 原材料待确认

- id：B-5-P-03；question：余量0在哪里拦，横幅话术如何？；rule_status：pending；source：原待确认。

## 补充未定义事项

- id：B-5-U-03；question：系统面板无微信、取消、预览失败分别反馈什么？；rule_status：pending；source：源未给。

- id：B-5-U-04；question：输出文件缓存/有效期/重试/跨设备取得如何？；rule_status：pending；source：源未给。

- question：多图片部分成功时建议展示逐文件结果、只重试失败文件；每个新增成功文件计1次，已成功文件不在同一次请求重试中重复生成。；rule_status：proposed；source：按成功文件数计次已确认；具体批次/重试服务契约待定

- question：不同端额度同步、请求去重与计次对账由真实服务保证，接口契约待提供。；rule_status：pending

## 实现边界

## 原型限制

## 能力与接入限制

prototype：仅演示目录选择、词表、版式和输出状态；没有真实出题、文件、支付、分享、音频或二维码服务。；预览词库为示意数据：Unit2六词沿用UE，其余演示词为界面测试样例；不代表正式教材词库、词数或版次。；新增详细状态、版式规则和草稿策略为设计建议；业务更改等待用户确认。；专题、自建与补词已接入；默写单记录、会员和词库纠错属于后续模块。；implementation：真实服务接口、鉴权、任务、额度、会员和系统调用契约未提供。；具体字段/状态名及本地持久化方式均为实现建议。；原型不证明真实文件、音频、扫码批改、正确额度或跨来源成长统计已实现。

## 预览宿主与产品 UI

手机外壳、项目导航、演示状态选择器、页面说明、页面编号与前后页导航属于预览宿主。产品实现包含屏幕内的业务 UI，状态栏与手势条由目标系统承载。原型仅操作本地示例状态，不发送真实短信，不执行真实认证；首页统计与教研目录为示例，不保存用户档案到服务端。
