Files
airz-uniapp/docs/原型04-10页面改造与跳转方案.md
T

226 lines
26 KiB
Markdown
Raw Normal View History

# 原型04—10页面改造与跳转方案
版本:1.8。日期:2026-09-30。依据:[原型图](原型.jpg)、[开发文档](开发文档.md)、[数据契约](需求与评估结果数据契约.md)。本轮用户明确要求补齐04—10页面并随后进入产品匹配开发;此前“对比/PDF另行排期”的范围限制,自本方案起由下列正式任务覆盖。
2026-09-30最新覆盖:修改/新建与版本存储以[评估版本与最新资料](评估版本与最新资料.md)为准。09再次按原型还原为白底、顶部PDF、简洁状态区/摘要/编号改善项、固定底部重新评估;原下文中“重新评估一律空白新建”仅为历史,当前主按钮回填并修改同记录,独立新建在报告信息中提供。
同日产品展示更新:当前六条产品统一正常业务名称、机构和资料,03—10及PDF不展示环境标签,来源引用显示“产品规则档案”;匹配条件、参数和冻结结论保持。下文“明确标注演示”的要求已被用户最新要求覆盖。正式产品数据已同步,源码发布状态见[开发进度0.36](开发进度.md)。
## 1. 范围与落地原则
- 04、05是同一产品匹配详情的不同判定状态,06是同一详情页的产品信息栏;复用现有product/product,不机械新增三个页面。
- 07产品对比、10下一步行动新增两个融资分包页面。compare与next-step均已注册,当前pages.json共27页。
- 08复用assistant/assistant;09复用report/report并改为“评估概况/匹配结果/改善建议”。03匹配列表作为04—10的必要入口一并改造。
- 保留蓝白主色、卡片、银行标识、正反理由分组和清晰底部行动区。数据必须来自本人本次评估;原型的92%/B+不作为默认值。
- 首版使用既有三态准入:符合已知条件、条件不符、待核实。score=null,不展示匹配百分比;稳定顺序采用productId升序并注明不代表优劣。真实评分、运营优先级另发版本化策略。
- 推荐依据和注意事项各默认最多三条,有多少显示多少;其余可展开。阻断条件不能被截断后丢失,不能把产品一般优势当作个人推荐依据。
- 申请范围仍是资料准备与引导,按钮使用“准备申请”;不接银行申请、不提交资料、不宣称受理成功。保存报告表示已保存至本人历史,PDF导出是额外下载能力。
- 不恢复草稿,也不编辑历史评估。重新评估进入空白个人/企业表单;提交后获得新的assessmentId,旧报告不变。
## 2. 逐页改造清单
| 原型 | 页面实现 | 页面内容与行为 | 任务 | 当前状态 |
| --- | --- | --- | --- | --- |
| 04 单家银行AI解释 | product/product,tab=explanation,eligible状态 | 银行/产品名、条件判定、已满足条件、注意事项、证据来源、AI解释、对比/准备申请 | PRODUCT-004 | 布局按原型还原;逐条DeepSeek解释/持久任务/失败重试本地验证通过;准备入口已接10,真实产品/平台待验收 |
| 05 其他银行不推荐解释 | 同一页面,ineligible或unknown状态 | 不符条件与待核实项分组;已满足部分称“已满足条件”;查看资料/询问AI,不建议直接申请 | PRODUCT-004 | 已接不符/待核实、逐条解释和证据;AI咨询已接08上下文;服务端判定决定状态 |
| 06 产品详情 | product/product,tab=details或conditions | 额度/期限/年化利率范围、还款方式、材料、渠道、适用对象、来源及版本;独立显示当前可用性 | PRODUCT-003、PRODUCT-004 | 已接三栏、公共/历史双模式及当前可用性;真实机构资料待录入 |
| 07 同类产品对比 | 新增compare/compare | 同一评估2—3个产品列式对比,首列指标固定,移动端横向滚动;条件判定、金额/利率/期限、材料、差异依据 | PRODUCT-005 | 基础完成,本地联调通过;真实产品及平台待验收 |
| 08 AI助手延伸问答 | assistant/assistant | 本次评估及选定产品上下文卡、按实际判定生成快捷问题、持久会话、分页、重试、返回报告/产品 | CHAT-001—004 | 页面已有;持久上下文/异步问答/分页重试已本地联调,真实语义与真机待验收 |
| 09 我的融资报告 | report/report | 三栏内容、资料准备状态、完整度、最多三个候选及查看更多、改善项、PDF下载、重新评估、下一步行动 | REPORT-004、REPORT-005 | 三栏/历史候选/改善证据基础已联调;行动入口已接10,PDF普通H5基础完成,跨浏览器/真机待验收 |
| 10 下一步行动 | 新增next-step/next-step | 准备申请、查看已保存报告、下载PDF、优化资料、咨询AI、回首页;依结果决定可用行动 | REPORT-006 | 本地联调完成,38项H5检查与Android/微信编译通过;真实产品与平台待验收 |
### 03 匹配列表入口(必要配套)
1. 入口必须携带assessmentId。无编号时引导选择历史评估或开始评估,不能展示固定产品。
2. 默认eligible最多三条;“查看更多”读取同一冻结结果分页。独立提供“条件不符”“待核实”分组及各组真实计数。
3. matching=unavailable时说明尚未执行,completed且零候选说明已执行但没有候选,failed从任务状态页展示;三者不可共用“完善资料再试”。
4. 卡片进入产品解释栏;“加入对比”不触发卡片跳转。选择限2—3项,选择ID仅在同一账户会话/评估的内存保留,跨页通过productIds传递;切换评估或会话清空内存选择,对比刷新按URL重新鉴权。
5. 没有评分时移除当前score百分比和按score排序;金额和利率使用范围。金额、利率排序若后续提供,只改变展示顺序,不改历史rank。
### 04/05/06 产品详情的两种模式
**本次评估模式:** assessmentId、productId均存在,读取匹配详情快照。顶部三栏“AI解释/产品详情/申请条件”,默认AI解释;不符和待核实项展示明确状态及原因。未核验信息旁标来源。解释失败保留确定性理由,提示AI解释暂不可用,不导致整个页面空白。
**公共产品模式:** 只有productId(兼容旧id),读取当前产品接口;只显示产品详情/申请条件,没有个人理由、排名或匹配程度。评估上下文请求404/失败时禁止静默退回公共模式。
产品快照中的额度/利率/期限保持评估时版本。读取时发现当前产品下架/过期,另加状态条并禁用准备申请;查询当前状态失败也不能假定可用。允许查看历史解释、参与带状态标识的历史对比或咨询AI。
金额以万元范围展示,期限以月、年化利率以百分比范围展示。缺还款方式/审批时长/渠道等资料时显示“未提供”,不得采用原型示例值。银行Logo只使用已提供或可合法使用的真实素材;缺失时用文字简称或既有通用机构图标,不生造银行标志。
“准备申请”仅当eligible且currentAvailability=available时进入10的准备区域;“查看同类产品对比”进入07并保留当前产品选择;“我有疑问,咨询AI”进入08,展示上下文而不自动发送消息或调用模型。
### 07 产品对比
- 按productIds顺序展示2—3项,使用同一assessmentId的冻结详情。每列显示判定与当前可用状态;不同状态可对比,但不符/待核实列不出现申请按钮。
- 对比行包括需求覆盖结果、额度范围、期限范围、年化利率范围、适用对象、已满足/不符/待核实条件、还款方式、材料、渠道和来源。相同单位、缺失标记统一。
- “回到本次匹配”返回已有结果,不重跑模型;“重新评估需求”另行进入空白表单,绝不把返回结果伪装为重新匹配。
- 只选1项则展示补选入口;超过3项、重复ID、混入别的评估产品均明确拦截。任一详情读取失败时指出具体列并重试,不把剩余产品当完整对比。
- H5刷新从URL中的ID集合恢复并重新鉴权,不能仅依赖上页内存。手机横向滚动可见列标题;桌面并列展示,文字与币种不裁切。
### 08 带上下文的AI助手
- 有assessmentId时,只使用本人已成功报告和指定产品的冻结理由;可不指定产品、指定单项或指定对比的2—3项。
- 快捷问题按实际状态生成,例如“这些条件为什么符合”“哪些条件不满足”“还需要核实哪些资料”“两项产品有哪些差异”;无匹配时不出现“为什么推荐这家银行”。
- 输入问题后由用户发送;仅打开页面不创建模型请求。失败重试保持消息requestId,切换账号清理页面内容。
- 普通会话继续使用scene=assistant,assessment_id=NULL;CHAT-001已增量迁移新增context_assessment_id及context_data,前者保存本人评估引用,后者保存产品ID及报告摘要引用。2026-09-28已获用户授权完成两列、归属索引/外键及场景约束迁移;原有记录新增列为NULL,不复用或覆盖正式评估的analysis_context。
- chatId恢复时以服务端已保存上下文为准;URL与会话上下文冲突拒绝,不静默改绑定。失效上下文提示重新选择,不能回答成另一份报告。
### 09 报告三栏与PDF
- 评估概况首屏:浅绿/浅黄真实准备状态区、一段已保存摘要、最多三项实际改善建议,橙红圆形编号。详细完整度、事实、准备依据和核验边界移到“查看完整报告”;不显示B+或审批概率。v3取消采集的融资需求不出现在页面。
- 匹配结果:复用03的摘要与状态,最多三个候选、全部结果入口和产品解释跳转;没有候选时仍可查看不符/待核实原因。
- 改善建议:由准备依据、已保存AI建议和产品证据组成;建议展示关联字段/产品,不保证改善后获批。没有依据时明确暂无额外建议,不凑三项。
- 顶栏下载PDF,底部固定“重新评估”;下一步行动/咨询AI为辅助入口,日期/版本/独立新建/历史入口在报告信息中。小程序标题和PDF避让胶囊,底部保留安全区。三栏切换不触发新分析,刷新保留tab和revisionId并重新读取本人报告。v1报告保留兼容提示,不补造v2指标。
- PDF从已保存报告及产品快照生成,不重跑DeepSeek或按现价替换历史值。包括需求、概况、匹配状态/候选、理由、建议、版本、生成时间和免责声明;不导出身份证、手机号、自由用途说明等身份内容。
- H5首版采用鉴权流式下载,无公开永久链接,不新增报告或导出表。需要的中文字体/PDF引擎在REPORT-005实施时做依赖评估并锁定;缺引擎返回明确不可用,不能发空PDF。
- 用户主动下载时才生成文件;PDF失败允许重试,不影响已保存报告。微信内浏览器受限时给出可执行提示,不显示虚假下载成功;下载后本地文件由用户自行保管。
### 10 下一步行动
| 行动 | 可用条件 | 实际行为 |
| --- | --- | --- |
| 准备申请 | 已选择本次eligible产品且当前可用;未选时先回匹配列表选择 | 在本页准备区域展示产品、材料、来源和机构办理说明;不收集并提交申请 |
| 查看已保存报告 | 本人成功报告 | 返回09,说明报告已在历史中保存,无需重复保存 |
| 下载PDF | REPORT-005能力可用 | 调用同一鉴权导出;错误保留页面状态 |
| 优化资料/重新评估 | 本人报告可读 | 先解释需要完善的字段,点击后清空当前流程内存,进入同类型空白表单;旧记录不可编辑 |
| 咨询AI | CHAT真实接口可用 | 进入08并携带当前评估及可选产品;不自动发消息 |
| 回首页 | 始终可用 | reLaunch首页,不丢失已保存的历史 |
不能申请时仍能看报告、优化资料或咨询;不展示假成功、假跳转或尚未接通的银行按钮。提供真实机构外链前需产品资料有来源且按渠道允许范围处理,首版不默认加入外链申请。
## 3. 路由、参数与返回规则
以下路由统一以 `/packages/finance/` 开头。ID为正整数十进制字符串,不携带手机号、Token、完整报告JSON或自由文本问题。
| 页面 | 路径和查询参数 | 校验与默认 |
| --- | --- | --- |
| 03 | matches/matches?assessmentId=A&group=eligible | A必填;group允许eligible/ineligible/unknown,默认eligible |
| 04/05/06 | product/product?assessmentId=A&productId=P&tab=explanation&from=matches | tab为explanation/details/conditions;带A必须读匹配快照;无A默认details;旧id仅作productId兼容,冲突时拒绝 |
| 07 | compare/compare?assessmentId=A&productIds=P1,P2,P3 | A必填,正式对比2—3项;重复ID直接报错,不静默去重;0/1项仅补选状态;不能跨评估 |
| 08 | assistant/assistant?assessmentId=A&productIds=P1,P2&chatId=C&from=compare | A可选;productIds要求A;chatId可选且归属/上下文需一致;从首页进入允许无评估的普通问答 |
| 09 | report/report?assessmentId=A&tab=overview | tab为overview/matches/improvements,默认overview;v1能力不足时解释原因 |
| 10 | next-step/next-step?assessmentId=A&productId=P&section=prepare | A必填,P可选;section为actions/prepare,默认actions;无P的prepare引导选择,不猜测产品 |
`from`仅接受matches/product/compare/report/next-step/archive等白名单枚举,用于返回体验;禁止接受任意returnUrl。优先navigateBack返回原页面及滚动位置;冷启动/刷新后无前页时:产品/对比→本次匹配,助手→本次报告(无A则首页),10→本次报告,报告→历史。鉴权失效转登录,仅保留白名单页面与ID参数,重新登录后必须再校验归属;跨账户404不可自动切换到最新评估。
```mermaid
flowchart TD
A[提交评估] --> B[分析状态与重试]
B -->|成功| R[09 报告 overview]
R -->|匹配结果| L[03 本次匹配列表]
L -->|符合已知条件| P[04 产品解释]
L -->|条件不符或待核实| N[05 原因解释]
P <-->|切换栏| D[06 产品详情与条件]
N <-->|切换栏| D
L -->|选择2至3项| C[07 产品对比]
P --> C
C -->|查看某项| P
P --> Q[08 AI助手]
N --> Q
C --> Q
R --> Q
R --> S[10 下一步行动]
P -->|符合且当前可用| S
S -->|查看已保存报告| R
S -->|咨询| Q
R --> F[鉴权PDF下载]
S --> F
R -->|重新评估| A2[空白表单→新评估]
S -->|优化资料| A2
```
图中的04/05/06为同一路由的内容状态;对比返回某项时必须依据服务端判定进入04或05,不能因来自对比页统一标成推荐。
## 4. 接口与数据依赖
| 接口 | 状态 | 用途与约束 |
| --- | --- | --- |
| GET /api/v1/assessments/:id/status | 已实现 | 状态/重试边界,不把queued当模型运行 |
| GET /api/v1/assessments/:id/report | 已实现自填v1/v2 | 09/10真实来源;产品区块随匹配扩展,不回填旧报告 |
| GET /api/v1/assessments/:id/matches | 已实现 | 03/09,三态分页、默认limit=3;既有契约字段不变 |
| GET /api/v1/assessments/:id/matches/:productId | 已实现 | 04/05/06,以及07每次最多读取三项;本人成功记录、本次冻结产品,404不得回退公共数据 |
| GET /api/v1/products/:id | 已实现,会员Bearer | 06公共模式;不含个人判定及理由,当前资料与历史快照分开 |
| POST /api/v1/assistant/chats | 已实现,见助手契约 | contextAssessmentId:string或null、contextProductIds:string[]、requestId;服务端校验同一评估和产品快照,不接客户端报告正文 |
| GET/POST /api/v1/assistant/chats/:id/messages | 已实现,见助手契约 | 08消息分页、提交与幂等;上下文由会话固定 |
| GET /api/v1/assessments/:id/report.pdf | 已实现,REPORT-005待验收 | Bearer鉴权;成功application/pdf,Content-Disposition安全文件名、no-store;401/404/409/503为JSON错误;失败不生成报告或调用模型 |
PDF接口owner校验先于渲染,未完成返回409 REPORT_NOT_READY,格式不支持409 REPORT_FORMAT_UNAVAILABLE,能力不可用503 REPORT_EXPORT_UNAVAILABLE。仅由受控模板渲染,用户文本转义,禁止任意HTML/外部图片URL触发文件或网络读取。客户端按状态码和Content-Type区分PDF与JSON,不把错误响应另存为PDF。
对比首版复用详情接口,最多三个并行请求,全部绑定相同assessmentId及冻结结果版本;不新增对比表或通用批量查询接口。10由报告和产品结果组合,不新增贷款申请表或申请状态。
## 5. 开发顺序、编号与工作量
| 次序 | 交付 | 任务 | 门槛 |
| --- | --- | --- | --- |
| 1 | 本文及规则口径;纯规则计算基础 | PRODUCT-001、PRODUCT-002 | 使用既有契约,不需要真实产品,不连接生产匹配 |
| 2 | 产品发布预检、字段/来源/规则、真实产品录入与公共查询 | PRODUCT-003 | 可先开发校验与后台;真实发布依DEC-PRODUCT |
| 3 | 冻结目录/规则、匹配聚合排序、证据模板、任务接入和读取API | PRODUCT-002、REPORT-002/003 | 与现有报告事务、重试快照兼容;空目录仍unavailable |
| 4 | 03及04/05/06页面、单产品解释失败降级 | PRODUCT-004 | API和真实快照可读取;合成测试与正式数据分离 |
| 5 | 07对比及09三栏 | PRODUCT-005、REPORT-004 | 同评估ID/同快照语义、历史不变 |
| 6 | 08真实问答、10完整行动入口 | CHAT-001—004、REPORT-006 | 无真实能力时不伪造问答或申请 |
| 7 | 09/10 PDF导出、整体导航和渠道验收 | REPORT-005、RELEASE-001/002 | 中文分页、鉴权、手机导出能力验证 |
新增稳定任务三个,保留旧60个编号,不重排:PRODUCT-005(对比,1.5—2.5人日)、REPORT-005(PDF,2.5—4人日)、REPORT-006(下一步行动,1—2人日)。合计新增5—8.5工程人日;原69—117是历史基线,不是当前剩余工期。原有任务扩展的页面/接口工作在实施前复估,不用这三项增量虚构整体完工日期。任务主台账与开发文档同步为63项。
## 6. 图片与视觉资源约定
用户指定生成方式:`C:\Users\JUN\Desktop\img2-right.py`。已检查其参数与流程:本地参考图转data URI→异步提交→按task_id轮询→下载输出;支持--prompt、--model、--resolution、--size、可重复--image、--output、--poll-interval及--timeout。凭据由脚本现有私密配置机制读取,文档和仓库不复制密钥。
| 位置 | 方案 |
| --- | --- |
| 银行标识 | 使用真实授权素材或文字简称,不使用生成图片伪造银行Logo |
| 理由序号、tab、表格、完整度图、PDF/行动图标 | 复用AppIcon及组件实现,保持文字可访问和可复制 |
| AI助手头像 | 优先复用现有机器人素材;确需新姿态/统一风格时用指定脚本、现有素材作参考 |
| 无候选/尚未匹配等空状态插图 | 页面实施时确认确需位图再用指定脚本;不把错误说明或数据数字烧进图片 |
本轮不生成图片、不调用生图服务。后续生成先用合成内容/现有公共视觉素材,不上传用户评估资料;输出放对应分包static目录并核对分辨率、透明边缘、实际包体和H5/小程序显示。脚本属于用户本机工具,不复制其私密配置到项目,也不覆盖脚本。
## 7. 验收清单
- 04—10均有入口、返回和冷启动兜底;手机返回/刷新不丢assessmentId,不跳到其他评估。
- 推荐/不符/未知按服务端状态展示,理由不足不补造、全部阻断依据可查看,解释失败仍有规则理由。
- 07金额范围精确转万元,缺值不同于0,最多三列;下架产品保留历史并显示当前不可用。
- 08上下文归属检查、快捷问题与结果一致、打开页面不自动发问;跨账户/失效上下文不串会话。
- 09三栏刷新、旧v1兼容、无匹配/零候选区分;下载PDF与屏幕冻结数据一致,401/错误不能保存成PDF。
- 10没有银行申请提交;优化资料只创建新评估,历史和原报告不变;无草稿恢复。
- 真实产品/渠道未就绪时只使用合成样例验证,不发布示例产品,不把原型中的固定排名与等级当实际结果。
- 普通手机H5、桌面H5、微信内浏览器分别记录;PDF中文分页、长理由、无产品、历史下架、大字号/横向表格需要独立证据。
## 8. 2026-09-24 本轮落地与剩余边界
03列表与04/05/06三栏已使用正式只读API,报告提供入口;卡片不使用模拟百分比,未知与不符单列。公共模式不展示个人匹配,带assessmentId始终读取本人快照,失败不降级。单产品AI解释暂为not_requested;“查看资料准备说明”只切到条件栏,10页尚未创建。已验证手机/桌面、刷新同一评估、三态详情、公共资料、无ID引导及越权。
当前返回会重新读取首屏,不保证保留原滚动位置;group/tab按URL初始参数恢复,栏内切换尚不写URL;登录失效返回登录但尚无原路恢复。from尚不参与导航决策,不接收returnUrl。后续按第3节完善导航体验。07对比、08上下文助手、09三栏/PDF、10行动保持未开始/待开发,不将基础接入等同全04—10验收。
## 7. 2026-09-28 原型07实施记录
compare/compare已注册,当前26页。列表加入对比阻止卡片冒泡;最多选择3项且保留顺序,可跨三态分组选择;详情带本次选择进入对比。补选/返回匹配带原ID集合,详情返回优先navigateBack,冷启动from=compare返回同次对比,其他来源回本次匹配;from按白名单校验。列表返回首屏及登录后自动原路恢复仍待完善。
每列读取本人冻结详情并校验assessmentId/产品ID;列间比较resultVersion、catalogSnapshotId、ruleVersion、orderingPolicyVersion。版本冲突、404和网络失败都不会补用公共资料;单列可重试,不完整结果明确提示。重复或超过3项、非法ID不发请求。0/1项提供补选,移除通过redirectTo替换URL,刷新不恢复已移除的ID。
首列在横向滚动区外固定;各行等高,长文本/表头内部纵向滚动,避免错行和长标题遮挡。桌面列宽扩展到可用空间;App保留受支持的rpx尺寸。金额仍精确转万元,缺失范围显示未提供;状态和三类理由直接来自规则结果,无新增评分或AI生成解释。
本地验证和剩余边界见[开发进度6.16](开发进度.md)。07基础不代表08上下文助手、09报告三栏/PDF、10行动页完成。
## 9. 2026-09-28 原型09三栏实施记录
report/report的overview/matches/improvements已接现有报告与匹配只读接口。切栏使用redirectTo更新URL,刷新重新鉴权,读取失败不跳最新评估;概况不提前请求产品。完整度进度条只用已保存百分比;生成时间按客户端当地时间展示,无时间标“未记录”;旧v1不補造需求或评分。没有候选与未执行匹配分别提示。
匹配栏默认eligible前3项,改善栏分别读取ineligible/unknown前3项,各有完整列表和产品详情入口,不把摘要当全部结果。关联产品证据直接展示规则理由、字段值和来源;AI改善文字保留报告中的字段/准备依据标签。读取时核对报告与列表的版本、目录标识及三态统计,异常保留其他可用区块并单独重试。
“重新评估”选择主体后清空流程内存进入空白表单,历史报告不编辑。PDF、下一步行动及上下文问答按钮待对应能力完成后接入。26页、63任务编号和历史估时不变;REPORT-004整体保持开发中,具体验证/剩余边界见[开发进度6.17](开发进度.md)。
## 8. 2026-09-28 原型04/05还原记录
- 已实现:白底、紧凑机构头部、状态标签、三栏蓝色选中线、绿色/橙色编号、理由标题和灰色解释、双按钮底栏。将重复“资料尚需核验”从长标题移至说明和证据,避免窄屏标题折断;全部原始证据仍可展开。
- 数据差异:无匹配百分比;只展示有依据的真实数量,不凑三正三反;不符/未知产品的绿色标题使用“已满足的条件”;机构资料尚为明确标注的演示数据,使用通用图标。
- 操作差异:立即申请暂用“查看资料准备”,只切申请条件栏;05的咨询按钮待08上下文问答完成后接入,当前为可用的产品对比入口。生成AI解释为独立明确点击,成功后逐条补充且重新打开不重复生成。
- 栏目切换替换当前路由,保留assessmentId/productId/productIds/from;刷新停留原栏,退出页面停止轮询并清理个人数据。默认每三秒读状态,最多六十次,失败或停止后可手动重新查询;不发起新模型任务。
- 视觉/功能验证:Chromium 390×844、390×1000、1280×900;参考图原始单页约220×568像素,已查看原图和放大局部,并用接近其纵横比的390×1000屏幕检查。记录见开发进度6.18,不代表微信内浏览器或真机验收。
2026-09-28原型08实施补充:创建/详情/历史/上下文预览和消息API、重试序号及迁移恢复以[上下文AI助手开发契约](上下文AI助手开发契约.md)为准。CHAT-001—003本地联调后待验收,CHAT-004真实语义/生产容量仍开发中。
### 2026-09-28 PDF落地补充
09顶部与10页共用鉴权下载组件,服务端内存生成并输出二进制,无公开文件。Dompdf3.1.6及Noto Sans SC中文字体独立锁定;逐字段脱敏、转义和远程读取禁用。普通H5真实下载,微信内/原生/小程序提示使用普通浏览器。29项模板、20项HTTP、24项受控浏览器检查通过,平台/容量待验收;详见进度6.21。