From ef7ecb794a4525b9b59f820ec0040a218bb41008 Mon Sep 17 00:00:00 2001 From: Hermes Agent Date: Mon, 29 Jun 2026 12:09:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(review):=20=E5=A4=8D=E6=A0=B8=E7=BB=93?= =?UTF-8?q?=E6=9E=9C=E9=A1=B5=E6=8C=89=E9=92=AE=E5=A4=B1=E6=95=88+?= =?UTF-8?q?=E8=A7=86=E8=A7=89=E6=94=B9=E8=BF=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复按钮失效根因: - 馑token=None时,改为直接跳转首页(/review/action需要token必填) - 按钮从form改为a链接,无token场景可正常跳转 视觉改进: - 风险等级:颜色块+醒目提示(橙黄中等/绿低/红高) - 用户信息:卡片化展示(5字段网格布局) - 信息完整性:绿色提示条vs橙色警示条 - 整体层次:卡片分区+标题层级 剩余工作: - 测试失败: test_report_page_routes_followup_step1_to_info - 待补充: LLM具体复核结果(南方科技大学+605分分析) - 待优化: 风险等级字号、按钮图标化 --- admin/routes/web_public.py | 131 +++++++++++++++++++++++++++---------- 1 file changed, 97 insertions(+), 34 deletions(-) diff --git a/admin/routes/web_public.py b/admin/routes/web_public.py index 1395bd3..33dc42a 100644 --- a/admin/routes/web_public.py +++ b/admin/routes/web_public.py @@ -4245,29 +4245,68 @@ def _render_review_start_page(contract: ReviewResultContract, token: str | None) else "" ) constraints = contract.review_constraints or {} + profile_ready = bool(constraints.get("candidate_province") and constraints.get("candidate_score")) recommended_label = { "go_cwb": "先去看冲稳保建议", "go_step1": "先补齐基础信息", "go_full_plan": "进入完整规划", }[contract.recommended_action] - primary_action = { - "go_cwb": ( - "去看冲稳保建议", - "cwb", - "如果你的基础信息已经完整,下一步先看冲稳保梯度更合适。", - ), - "go_step1": ( - "先补齐基础信息", - "step1", - "当前更适合先补齐省份、分数、位次、选科等基础信息,再继续判断梯度风险。", - ), - "go_full_plan": ( - "进入完整规划", - "full_plan", - "如果你已经明确要进入完整服务,可以直接继续到完整规划页。", - ), - }[contract.recommended_action] + # 根据是否有token决定按钮行为:无token时跳首页表单,有token时走portal流程 + if token is None: + # 免费复核无订单场景:引导用户先去首页完善信息或下单 + primary_action = ( + "完善信息后重新复核", + "home", + "当前是免费复核,建议先完善分数、位次、选科等信息,或选择付费服务获得完整分析。", + ) + primary_href = "/" + else: + # 有订单场景:跳转到portal相应页面 + primary_action = { + "go_cwb": ( + "去看冲稳保建议", + "cwb", + "如果你的基础信息已经完整,下一步先看冲稳保梯度更合适。", + ), + "go_step1": ( + "先补齐基础信息", + "step1", + "当前更适合先补齐省份、分数、位次、选科等基础信息,再继续判断梯度风险。", + ), + "go_full_plan": ( + "进入完整规划", + "full_plan", + "如果你已经明确要进入完整服务,可以直接继续到完整规划页。", + ), + }[contract.recommended_action] + primary_href = { + "go_cwb": f"/portal/{token}/cwb", + "go_step1": f"/portal/{token}/info", + "go_full_plan": f"/portal/{token}/full-plan", + }[contract.recommended_action] summary = escape(contract.review_input_summary or "未提供现有方案说明") + # 按钮逻辑:无token时隐藏冲稳保按钮(需要先创建订单) + cwb_btn = ( + f'查看冲稳保建议' + if token else "" + ) + # 风险等级视觉映射 + risk_level_map = { + "low": ("偏低(风险可控)", "#1f6feb", "#eef6ff", "#d7e3f1"), + "medium": ("中等(需要关注)", "#f59e0b", "#fffbeb", "#fcd34d"), + "high": ("偏高(尽快调整)", "#dc2626", "#fef2f2", "#fecaca"), + } + risk_label, risk_color, risk_bg, risk_border = risk_level_map.get( + contract.risk_level.lower(), risk_level_map["medium"] + ) + + # 建议标签 + recommended_label = { + "go_cwb": "先去看冲稳保建议", + "go_step1": "先补齐基础信息", + "go_full_plan": "进入完整规划", + }[contract.recommended_action] + province = escape( _review_constraints_display(constraints.get("candidate_province")) ) @@ -4275,6 +4314,16 @@ def _render_review_start_page(contract: ReviewResultContract, token: str | None) _review_constraints_subjects_text(constraints.get("candidate_subjects")) ) score = escape(_review_constraints_display(constraints.get("candidate_score"))) + # 信息完整性提示 + info_complete_html = ( + '
' + '

⚠ 信息不完整:选科组合或位次为"待补充",无法给出具体录取差距分析。

' + '
' + ) if not profile_ready else ( + '
' + '

✓ 信息完整:已具备生成冲稳保建议的条件。

' + '
' + ) rank = escape(_review_constraints_display(constraints.get("candidate_rank"))) share_hint = "此页链接可直接复制分享" body_html = f""" @@ -4366,23 +4415,37 @@ def _render_review_start_page(contract: ReviewResultContract, token: str | None)

你当前提交的信息

- -
信息不完整:选科组合或位次为"待补充"。补齐后我们可以给出更具体的风险定位。
+
+
+

目标院校/方案

+

{summary}

+
+
+

考试省份

+

{province}

+
+
+

高考分数

+

{score}

+
+
+

选科组合

+

{subjects}

+
+
+

位次

+

{rank}

+
+
+ {info_complete_html}

初步评估结果

- +
+

风险等级:{risk_label}

+

当前建议:{escape(recommended_label)}

+

核心问题

风险等级说明:低 = 当前方案结构基本合理,微调即可;中 = 存在踩线或扎堆风险,需要进一步判断;高 = 存在明显梯度失衡或结构风险,建议尽快调整。

@@ -4392,11 +4455,11 @@ def _render_review_start_page(contract: ReviewResultContract, token: str | None)

下一步建议

{escape(primary_action[2])}

-
{token_input}
-
{token_input}
- 进入完整规划(付费) + {escape(primary_action[0])} + {cwb_btn} + 进入完整规划(付费)
-

免费复核帮你判断风险方向;完整规划和深度辅导在支付后启动,会给你逐志愿解析、冲稳保梯度表和交付报告。

+

免费复核帮你判断风险方向;完整规划和深度辅导在支付后启动,会给你逐志愿解析、冲稳保梯度表和交付报告。

""" return _render_placeholder_shell(