feat(v2): 纠偏第三批——深色导航、三模块独立入口与轨迹复盘
覆盖 AC-53/54/55(BR-50)。审计 P1-2「新界面未接入、原落地页与导航未改」 由此关闭:导航改为原型 token 的深色壳,三个模块各有独立路由与入口。 界面: - navigation.css:导航改用原型 token(nav.bg #102B27 / active #244D41 / muted #B1C6BE),身份选择器在深色底上改用 dark 变体(否则白底白字); 工作区画布保持浅色 #f5f7f9——"深色导航+浅色工作区"是两件事。 保留可读性守卫锁定的两条规则(导航项 min-height:42px/font-size:14px、 身份选择器 min-height:42px),原有 7 项守卫全部继续通过。 - AgentNav:品牌改为「兴邦金租/智审工作台」,加「业务工作区」分组标签, 三个模块入口(AI 预审 / 历史经验加工 / 轨迹复盘)指向各自路由; 权限仍按角色裁剪,身份仍来自服务端。 - 新增 /prescreen-workbench(AI 预审)、/trajectory-center(轨迹复盘)两个模块路由; / 从旧聊天落地页改为业务工作区首页,呈现三个模块入口;原落地页内容保留在 /assistant,没有被删掉(AC-53 要求的是不再"只保留"旧布局)。 - TrajectoryPanel:消费既有只读轨迹端点,失败/跳过步骤照常列出并带错误码, 成本缺失显示"未记录(不填 0)",并展示服务端对轨迹范围的说明; 会议结果只读展示(录入属第四批)。 复用而非复制:三个模块路由都 import 既有的 PrescreenPanel / ImportBatchPanel / ExperienceCenter,没有在路由里再写一份实现。 守卫:新增 module-shell-ui(已登记 verify.py,共 13 项检查),机械核对 深色 token、三入口存在、已合并旧页仍为重定向、按角色裁剪、 ?project= 上下文与不硬编码项目 id、轨迹面板不渲染推理字段, 并做前后端路径一致性断言(界面调用的端点必须真的在后端声明过)。 深色底对比度按 WCAG 公式在守卫内**实算**(阈值 AA 4.5:1,实测最低 8.37:1), 不在文档里声称"应该够清楚"。 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
@media(max-width:760px){.ra-heading{flex-wrap:wrap}.ra-heading>.ra-button{white-space:nowrap;min-width:128px}.ra-heading>div{flex-basis:100%}}
|
||||
.ra-rule-row,.ra-review-row{padding:20px 0;border-bottom:1px solid #dfe5e9;margin-bottom:18px}.ra-review-row h3{font-weight:600;font-size:15px}.ra-rule-row .ra-field{margin-bottom:12px}
|
||||
.ra-alignment{margin:24px 0}.ra-alignment h3{font-size:14px;font-weight:600;margin-bottom:18px}
|
||||
.xb-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.xb-project-card{text-align:left;border:1px solid #dfe7e2;background:#fff;border-radius:10px;padding:22px;cursor:pointer;color:#334b3a}.xb-project-card:hover{border-color:#82ad91;box-shadow:0 7px 24px rgba(32,92,59,.08)}.xb-project-card>span{font-size:10px;color:#34805a;background:#e8f4ec;padding:4px 7px;border-radius:12px}.xb-project-card h2{font-size:17px;margin:18px 0 8px}.xb-project-card p{font-size:11px;color:#829087}.xb-project-card footer{display:flex;align-items:center;gap:10px;border-top:1px solid #edf1ee;margin-top:20px;padding-top:15px}.xb-project-card footer small{margin-left:auto}.xb-back{border:0;background:transparent;color:#47755a;cursor:pointer;margin-bottom:22px}.xb-tabs{display:flex;gap:4px;border-bottom:1px solid #dfe6e1;margin-bottom:22px;overflow:auto}.xb-tabs button{border:0;background:transparent;padding:13px 17px;color:#788a7e;white-space:nowrap;cursor:pointer}.xb-tabs button.active{color:#17633f;border-bottom:2px solid #17633f}.xb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.xb-cards article,.xb-panel{background:#fff;border:1px solid #e0e7e2;border-radius:8px;padding:22px}.xb-cards b,.xb-cards small{display:block;color:#829087;font-size:11px}.xb-cards strong{display:block;color:#225f41;font-size:25px;margin:15px 0}.xb-panel{max-width:920px}.xb-panel h2{font-size:18px;margin-bottom:18px}.xb-panel>p{font-size:12px;color:#687b6e;line-height:1.8;margin-bottom:18px}.xb-finding{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid #edf1ee}.xb-finding:last-of-type{margin-bottom:20px}.xb-finding b{font-size:13px}.xb-finding p{font-size:12px;margin:7px 0;color:#627367}.xb-finding small{font-size:10px;color:#94a097}.xb-status{height:23px;white-space:nowrap;font-size:10px;color:#a05e19;background:#fff2df;padding:5px 8px;border-radius:12px}.xb-status.ok{color:#29734c;background:#e6f4eb}.xb-compare{display:flex;align-items:center;gap:20px;margin-top:24px;padding:22px;background:#f3f8f4;border-radius:8px}.xb-compare strong{font-size:27px;color:#276947}.xb-compare small{margin-left:auto;max-width:260px;color:#7b887f}.xb-report{margin-top:20px;border-top:1px solid #e3e9e5;padding-top:20px}.xb-report>small{color:#a36d2d}.xb-report article{margin-top:18px}.xb-report h3{font-size:14px;margin-bottom:8px}.xb-report pre{white-space:pre-wrap;font:12px/1.8 Arial,"Microsoft YaHei",sans-serif;color:#53645a}@media(max-width:760px){.xb-cards{grid-template-columns:1fr}.xb-compare{align-items:flex-start;flex-wrap:wrap}.xb-compare small{margin-left:0;width:100%}}
|
||||
.xb-project-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}.xb-project-card{text-align:left;border:1px solid #dfe7e2;background:#fff;border-radius:10px;padding:22px;cursor:pointer;color:#334b3a;display:block;text-decoration:none}.xb-project-card:hover{border-color:#82ad91;box-shadow:0 7px 24px rgba(32,92,59,.08)}.xb-project-card>span{font-size:10px;color:#34805a;background:#e8f4ec;padding:4px 7px;border-radius:12px}.xb-project-card h2{font-size:17px;margin:18px 0 8px}.xb-project-card p{font-size:11px;color:#829087}.xb-project-card footer{display:flex;align-items:center;gap:10px;border-top:1px solid #edf1ee;margin-top:20px;padding-top:15px}.xb-project-card footer small{margin-left:auto}.xb-back{border:0;background:transparent;color:#47755a;cursor:pointer;margin-bottom:22px}.xb-tabs{display:flex;gap:4px;border-bottom:1px solid #dfe6e1;margin-bottom:22px;overflow:auto}.xb-tabs button{border:0;background:transparent;padding:13px 17px;color:#788a7e;white-space:nowrap;cursor:pointer}.xb-tabs button.active{color:#17633f;border-bottom:2px solid #17633f}.xb-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.xb-cards article,.xb-panel{background:#fff;border:1px solid #e0e7e2;border-radius:8px;padding:22px}.xb-cards b,.xb-cards small{display:block;color:#829087;font-size:11px}.xb-cards strong{display:block;color:#225f41;font-size:25px;margin:15px 0}.xb-panel{max-width:920px}.xb-panel h2{font-size:18px;margin-bottom:18px}.xb-panel>p{font-size:12px;color:#687b6e;line-height:1.8;margin-bottom:18px}.xb-finding{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid #edf1ee}.xb-finding:last-of-type{margin-bottom:20px}.xb-finding b{font-size:13px}.xb-finding p{font-size:12px;margin:7px 0;color:#627367}.xb-finding small{font-size:10px;color:#94a097}.xb-status{height:23px;white-space:nowrap;font-size:10px;color:#a05e19;background:#fff2df;padding:5px 8px;border-radius:12px}.xb-status.ok{color:#29734c;background:#e6f4eb}.xb-compare{display:flex;align-items:center;gap:20px;margin-top:24px;padding:22px;background:#f3f8f4;border-radius:8px}.xb-compare strong{font-size:27px;color:#276947}.xb-compare small{margin-left:auto;max-width:260px;color:#7b887f}.xb-report{margin-top:20px;border-top:1px solid #e3e9e5;padding-top:20px}.xb-report>small{color:#a36d2d}.xb-report article{margin-top:18px}.xb-report h3{font-size:14px;margin-bottom:8px}.xb-report pre{white-space:pre-wrap;font:12px/1.8 Arial,"Microsoft YaHei",sans-serif;color:#53645a}@media(max-width:760px){.xb-cards{grid-template-columns:1fr}.xb-compare{align-items:flex-start;flex-wrap:wrap}.xb-compare small{margin-left:0;width:100%}}
|
||||
.xb-wide{max-width:none;margin-top:20px}.xb-task{background:#fff;border:1px solid #dfe6e1;border-radius:8px;padding:20px;margin:15px 0 22px}.xb-task .ra-field{margin-bottom:12px}.xb-task small{display:block;color:#66776d;margin-top:12px}.xb-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:14px 0}.xb-actions input,.xb-actions select,.xb-panel>select,.xb-report>select{background:#fff;border:1px solid #dbe1e7;border-radius:5px;padding:9px 11px;font-size:12px;max-width:100%}.xb-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin-top:20px}.xb-grow{flex:1;min-width:0}.xb-panel pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:450px;overflow:auto;font:12px/1.7 Consolas,"Microsoft YaHei",monospace;background:#f6f8f7;padding:14px;margin:10px 0}.xb-panel details{font-size:12px;line-height:1.8;margin:12px 0}.xb-panel summary{cursor:pointer;color:#345e49}.xb-panel h3{font-size:15px;font-weight:600;margin:20px 0 12px}.xb-panel p{font-size:12px;line-height:1.8;overflow-wrap:anywhere;margin:8px 0}.xb-panel a{color:#17634c;text-decoration:underline}.xb-step{border-bottom:1px solid #e5ece7;padding:10px 0}.xb-warning{color:#9a5a16}.xb-document{border-top:1px solid #dfe6e1;margin-top:20px;padding-top:12px}.xb-section-text{width:100%;min-height:170px;border:1px solid #dbe1e7;padding:14px;font:13px/1.8 Arial,"Microsoft YaHei",sans-serif;border-radius:5px;resize:vertical}.xb-section-text:disabled{color:#526258;background:#f5f7f5}.xb-scenario{border-top:1px solid #e5ece7;padding:15px 0}.xb-finding{flex-wrap:wrap}.xb-finding small{overflow-wrap:anywhere}.xb-config-list .xb-finding>div{flex:1;min-width:250px}@media(max-width:760px){.xb-form-grid{grid-template-columns:1fr}.xb-task{padding:14px}}
|
||||
.xb-role-banner{display:inline-flex;margin-bottom:12px;padding:6px 9px;border-radius:999px;background:#e7f3eb;color:#17633f;font-size:10px;font-weight:700}.xb-role-banner.role-reviewer{background:#eef0fb;color:#4c5f9c}.xb-role-banner.role-admin{background:#f4efe5;color:#836226}.xb-next{margin-top:16px;padding:12px;background:#f4f8f5;border-radius:7px}.xb-next small{display:block;color:#8a978f;font-size:9px;margin-bottom:5px}.xb-next b{font-size:11px;color:#306348}.xb-tabs a{padding:13px 17px;color:#17633f;font-size:12px;white-space:nowrap}.xb-time-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.xb-time-heading p{font-size:11px;color:#7c8d83}.xb-time-heading .ra-button{color:#fff;text-decoration:none}.xb-timeline{position:relative;margin-top:24px}.xb-timeline:before{content:"";position:absolute;left:7px;top:7px;bottom:7px;width:1px;background:#d9e6de}.xb-timeline article{display:grid;grid-template-columns:15px 1fr auto;gap:15px;align-items:start;padding:0 0 24px}.xb-timeline article>i{width:15px;height:15px;border-radius:50%;background:#3bc58a;border:4px solid #e1f3ea;z-index:1}.xb-timeline article>i.category-queue{background:#7388e6;border-color:#e5e8fa}.xb-timeline article>i.category-external_wait{background:#e5a251;border-color:#faecd8}.xb-timeline article>i.category-system{background:#46aeca;border-color:#dff2f7}.xb-timeline article b{font-size:12px}.xb-timeline article p{font-size:11px;color:#687b70;margin:5px 0}.xb-timeline article small{font-size:9px;color:#9aa59e}.xb-timeline article strong{font-size:12px;color:#2d684a}@media(max-width:760px){.xb-time-heading{align-items:flex-start;flex-direction:column}.xb-timeline article{grid-template-columns:15px 1fr}.xb-timeline article>strong{grid-column:2}}
|
||||
.xb-metric-card{position:relative;text-align:left;background:#fff;border:1px solid #e0e7e2;border-radius:8px;padding:22px;cursor:pointer;color:inherit}.xb-metric-card:hover{border-color:#69a27f;box-shadow:0 8px 24px rgba(33,87,57,.09)}.xb-metric-card svg{position:absolute;right:18px;bottom:18px;color:#28704a}.xb-project-card:disabled{opacity:.68;cursor:wait}.xb-review-clock{display:grid;grid-template-columns:1fr auto;gap:5px 12px;margin:16px 0;padding:14px;border-radius:8px;background:#f3f0fb;border-left:3px solid #6678c8}.xb-review-clock small,.xb-review-clock span{font-size:10px;color:#6e7185}.xb-review-clock b{font-size:11px;color:#30395f}.xb-review-clock strong{font-size:14px;color:#4c5f9c}.xb-review-clock span{text-align:right}.xb-claim-gate{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#f2f1fb;border-color:#d9d9ee}.xb-claim-gate b,.xb-claim-gate small{display:block}.xb-claim-gate small{margin-top:6px}.xb-step-business{border:1px solid #e0e8e3;border-radius:9px;padding:0!important;margin:12px 0!important;overflow:hidden}.xb-step-business>summary{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;background:#f5f9f6;list-style:none}.xb-step-business.attention>summary{background:#fff8ef}.xb-step-business>summary span,.xb-step-business>summary small{display:block}.xb-step-business>summary small{margin-top:4px;color:#7a8a80}.xb-step-business>summary strong{font-size:11px;color:#28704a}.xb-step-content{padding:16px 18px}.xb-ai-answer{padding:13px 15px;border-radius:7px;background:#eef7f2}.xb-business-checks article{display:flex;align-items:flex-start;gap:13px;padding:13px 0;border-bottom:1px solid #edf1ee}.xb-business-checks article>div{flex:1}.xb-business-checks p{margin:3px 0}.xb-business-checks small{color:#75877c}.xb-result{display:inline-flex;align-items:center;justify-content:center;min-width:66px;padding:5px 8px;border-radius:999px;font-size:10px;font-weight:700;background:#e7f3eb;color:#26704a}.xb-result.result-issue,.xb-result.result-error{background:#fde9e5;color:#a34838}.xb-result.result-unknown{background:#fff0d8;color:#98601c}.xb-result.result-not_applicable{background:#eef0f1;color:#66716a}.xb-issue-card{margin:16px 0;padding:20px;border:1px solid #dfe7e2;border-radius:10px;background:#fff}.xb-issue-card>header{display:flex;align-items:flex-start;gap:13px}.xb-issue-card h3{margin:2px 0 4px}.xb-issue-card>header small{color:#7b8b81}.xb-chain{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin:17px 0;background:#dde7e1;border:1px solid #dde7e1;border-radius:8px;overflow:hidden}.xb-chain section{padding:14px;background:#f8faf9}.xb-chain section>small{display:block;margin-bottom:10px;color:#5d7768;font-weight:700}.xb-chain p{margin:0 0 7px}.xb-chain p b,.xb-chain p span{display:block}.xb-chain p span{margin-top:4px;color:#6e7d74}.xb-chain .missing{color:#a06422}.xb-solution{display:flex;align-items:center;gap:14px;padding:14px 16px;background:#edf7f1;border-left:3px solid #35a36d;border-radius:7px}.xb-solution small{color:#56816a}.xb-solution b{font-size:12px}.xb-saved-decision{padding:10px 13px!important;background:#f2f1fb;color:#4c5f9c!important;border-radius:7px}.xb-review-final{display:flex;align-items:center;gap:12px;margin-top:22px;padding:17px;border-radius:9px;background:#edf7f1}.xb-review-final>div{display:flex;align-items:center;gap:10px;margin-right:auto}.xb-review-final span,.xb-review-final small{display:block}.xb-review-final small{margin-top:4px;color:#6a7c71}.xb-review-opinion{max-width:560px}.xb-audit{margin-top:18px}.xb-history-counts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:15px 0}.xb-history-counts button{display:grid;grid-template-columns:auto 1fr auto;gap:8px;text-align:left;padding:14px;border:1px solid #e2e9e4;border-radius:8px;background:#f8faf9;color:#40584a;cursor:pointer}.xb-history-counts button:hover{border-color:#82ad91}.xb-history-counts strong,.xb-history-counts small{display:block}.xb-history-counts strong{font-size:20px;color:#216844}.xb-history-counts small{grid-column:2/-1;margin-top:5px;color:#718278}.xb-event-list{display:grid;gap:8px}.xb-event-list a{display:grid;grid-template-columns:auto 1fr auto;gap:12px;text-align:left;padding:12px 14px;border:1px solid #e4eae6;border-radius:7px;background:#fff;color:#43574a!important;text-decoration:none!important;cursor:pointer}.xb-event-list a:hover{background:#f4f8f5}.xb-event-list span,.xb-event-list small{display:block}.xb-event-list small{margin-top:3px;color:#829087}@media(max-width:760px){.xb-chain{grid-template-columns:1fr}.xb-review-final,.xb-claim-gate{align-items:stretch;flex-direction:column}.xb-history-counts{grid-template-columns:1fr 1fr}.xb-event-list a{grid-template-columns:auto 1fr auto}}
|
||||
|
||||
Reference in New Issue
Block a user