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

184 lines
19 KiB
Markdown
Raw Normal View History

# 原型04—10页面改造与跳转方案
版本:1.0。日期:2026-09-24。依据:[原型图](原型.jpg)、[开发文档](开发文档.md)、[数据契约](需求与评估结果数据契约.md)。本轮用户明确要求补齐04—10页面并随后进入产品匹配开发;此前“对比/PDF另行排期”的范围限制,自本方案起由下列正式任务覆盖。
## 1. 范围与落地原则
- 04、05是同一产品匹配详情的不同判定状态,06是同一详情页的产品信息栏;复用现有product/product,不机械新增三个页面。
- 07产品对比、10下一步行动新增两个融资分包页面。当前pages.json仍注册25页,实施后目标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 | 待开发;现有公共详情不含个性化解释 |
| 05 其他银行不推荐解释 | 同一页面,ineligible或unknown状态 | 不符条件与待核实项分组;已满足部分称“已满足条件”;查看资料/询问AI,不建议直接申请 | PRODUCT-004 | 待开发;服务端判定决定状态,不接受URL指定“推荐” |
| 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 | 自填报告已有;三栏/产品/PDF待开发 |
| 10 下一步行动 | 新增next-step/next-step | 准备申请、查看已保存报告、下载PDF、优化资料、咨询AI、回首页;依结果决定可用行动 | REPORT-006 | 新增任务,未开始 |
### 03 匹配列表入口(必要配套)
1. 入口必须携带assessmentId。无编号时引导选择历史评估或开始评估,不能展示固定产品。
2. 默认eligible最多三条;“查看更多”读取同一冻结结果分页。独立提供“条件不符”“待核实”分组及各组真实计数。
3. matching=unavailable时说明尚未执行,completed且零候选说明已执行但没有候选,failed从任务状态页展示;三者不可共用“完善资料再试”。
4. 卡片进入产品解释栏;“加入对比”不触发卡片跳转。选择限2—3项,切换评估清空选择,仅在当前页面内存保留。
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及报告摘要引用。当前库尚无这两列,本轮不迁移;已有普通会话两列为NULL,新增归属索引/约束需先检查历史数据,不复用或覆盖正式评估的analysis_context。
- chatId恢复时以服务端已保存上下文为准;URL与会话上下文冲突拒绝,不静默改绑定。失效上下文提示重新选择,不能回答成另一份报告。
### 09 报告三栏与PDF
- 评估概况:冻结需求、完整度、三种准备状态、来源与生成时间、核验边界;不显示B+或审批概率。
- 匹配结果:复用03的摘要与状态,最多三个候选、全部结果入口和产品解释跳转;没有候选时仍可查看不符/待核实原因。
- 改善建议:由准备依据、已保存AI建议和产品证据组成;建议展示关联字段/产品,不保证改善后获批。没有依据时明确暂无额外建议,不凑三项。
- 顶部下载PDF,底部“重新评估/下一步行动”;继续提供历史入口。三栏切换不触发新分析,刷新保留tab并重新读取本人报告。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必填、ID去重后仍须2—3项;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 | 计划新增 | 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中文分页、长理由、无产品、历史下架、大字号/横向表格需要独立证据。