# 结果总览页面前端设计文档 **日期**: 2026-03-19 **模块**: 初核项目详情 - 结果总览 **作者**: Codex **状态**: 已批准 ## 概述 本文档用于沉淀 `结果总览` 页面的前端设计方案。设计依据为原型图 `assets/结果总览.png`,目标是在现有项目详情页壳子内,完成结果总览内容区的高保真静态页面设计。 本次设计只覆盖前端内容展示,不包含真实接口接入、后端数据结构设计,也不扩展原型图之外的业务流程。 ## 设计范围 ### 包含内容 - 沿用现有项目详情页外层壳子,仅替换 `结果总览` 内容区 - 高保真还原原型图中的页面结构与视觉层级 - 覆盖以下页面状态: - 主展示态 - 空数据态 - 加载态 - 输出适合当前 Vue 2 + Element UI 项目的组件拆分方案 ### 不包含内容 - 不改造项目详情页顶部标题区和页签导航 - 不接入真实接口 - 不新增原型图之外的弹窗、跳转或额外交互流程 - 不补充兜底、降级或兼容性扩展方案 ## 当前上下文 当前 `结果总览` 入口组件为: - `ruoyi-ui/src/views/ccdiProject/components/detail/PreliminaryCheck.vue` 当前文件仍为占位实现,仅显示“结果总览功能开发中...”。项目详情页通过 `detail.vue` 中的动态组件切换机制挂载该组件,因此本次设计应保持入口文件与挂载方式不变,在 `PreliminaryCheck.vue` 内完成页面编排。 ## 设计原则 ### 1. 高保真复刻原型 - 信息分区、模块顺序、表格结构、操作位尽量按原型图呈现 - 不主动重排信息架构 - 不将总览页改造成 tab 页或多路由页 ### 2. 只覆盖内容区 - 页面仍运行在现有项目详情页中 - 标题、返回按钮、顶部页签继续沿用现有实现 - 本设计只负责 `结果总览` 区域的视觉和结构 ### 3. 视觉不受现有默认样式约束 - 页面可独立定制浅灰背景、白色卡片、强调色、标签色和表格视觉 - 允许在 Element UI 基础上增加定制样式,以接近原型观感 - 但仍应优先复用现有组件能力,避免引入新 UI 依赖 ### 4. 保持最短实现路径 - 页面以本地 mock 数据驱动 - 组件拆分服务于结构清晰和后续接口替换,不做额外抽象 - 所有设计均面向当前单页目标,不外扩到其他业务页面 ## 页面信息架构 页面采用纵向长页面布局,自上而下分为 4 个独立分析区块: ### 1. 风险总览 页面顶部显示标题行与右侧操作位,下方展示统计卡片组。该区域用于快速传达项目风险总体情况,是用户进入页面后的第一视觉焦点。 建议保留原型中的以下展示元素: - 页面标题 - 右侧操作按钮 - 统计卡片横排 - 关键指标数值与状态色 ### 2. 风险人员 该区域分为上下两个子块: - 风险人员总览 - 中高风险人员 TOP10 两个子块均使用卡片包裹表格,右上角保留操作位,表格行尾保留“查看详情”。上半块用于展示命中名单概况,下半块用于强调重点对象排行。 ### 3. 风险模型 该区域同样分为上下两个子块: - 模型预警次数统计 - 命中模型涉及人员列表 上半块使用模型摘要卡方式展示不同模型的命中次数、涉及人数及操作位;下半块使用筛选条 + 表格 + 分页的结构,展示命中模型下的相关人员。 ### 4. 风险明细 该区域分为上下两个子块: - 涉险交易明细 - 异常账户人员信息 两块均使用表格呈现,保留原型中金额颜色区分、标签展示及操作列结构,用于支撑用户从总览继续查看具体风险明细。 ## 布局设计 ### 整体布局 - 内容区使用浅灰背景,形成与顶部详情壳子的视觉分层 - 每个大区块使用独立白色卡片承载 - 区块之间保持稳定纵向间距 - 每个区块内部遵循“标题栏 / 操作区 / 主体内容区”的统一结构 ### 统计卡布局 - 统计卡采用单行横排布局 - 每个卡片包含图标、指标名、数值与辅助说明 - 卡片高度统一,避免因字数不同导致顶部基线不齐 ### 表格区布局 - 表格上方统一保留区块标题与操作入口 - 多个表格区之间不做复杂嵌套,保持纵向串联 - 分页控件右下对齐,贴近原型阅读习惯 ### 筛选区布局 - 风险模型区的筛选条位于表格上方 - 使用紧凑型筛选布局,避免筛选器喧宾夺主 - 筛选组件与原型字段顺序保持一致 ## 页面状态设计 ### 主展示态 主展示态为默认呈现状态,页面所有区块均展示样例数据。 展示要求: - 顶部统计卡显示明确数值 - 风险人员榜单显示表格数据、操作列和分页 - 风险模型区显示模型卡、筛选条、表格和分页 - 风险明细区显示交易和账户人员两块表格 - 所有按钮、筛选项、分页在视觉上完整可见 允许在静态页面阶段增加本地假交互,例如: - 分页切换 - 筛选条件切换 - 标签激活态切换 但不延伸为真实接口调用流程。 ### 空数据态 空数据态采用“按区块独立判空”的方式,而不是整页统一空态。 规则如下: - 顶部统计卡无数据时显示 `0` - 表格区无数据时显示统一空态占位 - 模型卡无数据时显示空卡容器或空文案 - 某一个区块为空时,不影响其他区块正常展示 该方案更符合总览页特性,也更贴合未来真实数据场景。 ### 加载态 加载态采用分区块骨架屏,不使用整页单一 loading。 表现形式建议如下: - 统计区显示若干骨架卡 - 表格区显示表头 + 多行骨架内容 - 模型卡显示矩形骨架块 - 页面外层布局保持稳定,避免内容闪动和大幅位移 ## 交互边界 本次设计只定义页面展示交互,不扩展原型图外的业务逻辑。 允许保留的交互: - 操作按钮视觉态 - 表格行 hover - 标签高亮 - 分页切换 - 本地筛选联动 不纳入本次设计的内容: - 真实导出流程 - 详情弹窗流程 - 权限控制 - 接口错误处理流 - 原型未体现的补充说明区或辅助引导区 ## 组件拆分方案 为保持当前挂载结构稳定,同时避免单文件过大,建议采用“页面编排组件 + 区块组件 + 本地 mock 文件”的组织方式。 ### 1. 页面入口组件 文件: - `ruoyi-ui/src/views/ccdiProject/components/detail/PreliminaryCheck.vue` 职责: - 作为结果总览主容器 - 管理主展示态、空数据态、加载态 - 组织各区块组件顺序 - 注入 mock 数据 - 控制整体布局与分区间距 ### 2. 顶部总览组件 建议新增组件,例如: - `OverviewStats.vue` 职责: - 渲染页面标题行 - 渲染右侧操作区 - 渲染统计卡片组 - 封装统计卡的颜色、图标、数字样式 ### 3. 风险人员区组件 建议新增组件,例如: - `RiskPeopleSection.vue` 职责: - 渲染风险人员总览表格 - 渲染中高风险人员 TOP10 表格 - 统一处理区块标题、表格操作列与分页布局 ### 4. 风险模型区组件 建议新增组件,例如: - `RiskModelSection.vue` 职责: - 渲染模型摘要卡 - 渲染筛选区 - 渲染命中模型涉及人员表格 - 处理本地 mock 筛选态与分页态 ### 5. 风险明细区组件 建议新增组件,例如: - `RiskDetailSection.vue` 职责: - 渲染涉险交易明细表 - 渲染异常账户人员信息表 - 统一金额颜色、标签样式、操作列表现 ### 6. 本地 mock 数据文件 建议新增本地数据文件,例如: - `preliminaryCheck.mock.js` 职责: - 提供主展示态示例数据 - 提供空数据态示例数据 - 提供分页与筛选的前端假数据源 ## 样式设计要点 ### 色彩 - 页面背景:浅灰 - 卡片背景:白色 - 主强调色:延续原型中的蓝色体系 - 风险等级:通过标签色或数值色体现差异 - 金额正负值:使用不同颜色区分 ### 卡片 - 卡片圆角和阴影适度增强,贴近原型 - 统计卡和区块卡在视觉层级上区分,但不出现风格割裂 ### 表格 - 表头背景、行间距、操作列色值贴近原型 - 重要数值和状态信息优先通过颜色和字重建立层级 - 避免默认 Element UI 表格样式直接裸用 ### 响应策略 - 优先保证桌面端呈现接近原型 - 内容宽度随当前详情页内容区域自适应 - 不在本次设计中扩展移动端重构方案 ## 数据组织建议 虽然当前为静态前端页面,但为了后续实现平滑接入真实数据,建议按区块组织 mock 数据: - `summary`: 顶部指标卡数据 - `riskPeople`: 风险人员总览与 TOP10 数据 - `riskModels`: 模型摘要卡与模型命中人员数据 - `riskDetails`: 涉险交易与异常账户人员数据 每个区块都应具备: - `loading` - `isEmpty` - `list` - `pagination` 这样在后续切换真实接口时,可以保持组件入参结构基本稳定。 ## 测试关注点 本次设计阶段建议后续实现时至少验证以下内容: 1. `结果总览` 页签进入后,内容区正常替换占位页 2. 主展示态下 4 个区块顺序、标题、内容与原型一致 3. 空数据态只影响对应区块,不影响其他区块展示 4. 加载态使用骨架屏,且不会导致页面结构跳变 5. 自定义样式不会破坏当前项目详情页外层结构 ## 文件落点建议 本设计对应的主要实现文件建议包括: - `ruoyi-ui/src/views/ccdiProject/components/detail/PreliminaryCheck.vue` - `ruoyi-ui/src/views/ccdiProject/components/detail/OverviewStats.vue` - `ruoyi-ui/src/views/ccdiProject/components/detail/RiskPeopleSection.vue` - `ruoyi-ui/src/views/ccdiProject/components/detail/RiskModelSection.vue` - `ruoyi-ui/src/views/ccdiProject/components/detail/RiskDetailSection.vue` - `ruoyi-ui/src/views/ccdiProject/components/detail/preliminaryCheck.mock.js` ## 结论 本方案采用“原型分块复刻”的最短路径设计:保留现有项目详情页壳子,仅重做 `结果总览` 内容区,按原型拆分为风险总览、风险人员、风险模型、风险明细四大区块,并覆盖主展示态、空数据态、加载态。 该设计满足以下目标: - 高保真还原原型 - 不引入原型外流程 - 适配当前 Vue 2 + Element UI 项目结构 - 便于后续从静态展示平滑过渡到真实接口实现