|
|
# 统计报表
|
|
|
|
|
|
> 模块编码:statistics
|
|
|
> 端侧:Web专属(仅医院账号)
|
|
|
> 关联文档:01-模块划分 §4.5 / 02-功能清单-医院 §5 / 03-业务流转逻辑-医院 §5 / 05-接口规范 §9.2
|
|
|
> 强制规范遵循 `07-前端界面开发规范.md`
|
|
|
|
|
|
## 功能概览
|
|
|
|
|
|
| 项目 | 说明 |
|
|
|
|------|------|
|
|
|
| 菜单名称 | 统计报表 |
|
|
|
| 子菜单 | 报修统计、巡检统计、保洁统计、评价统计、合同统计、招标统计、综合看板、自定义报表 |
|
|
|
| 功能编号 | HO-ST-01 ~ HO-ST-08 |
|
|
|
| 权限编码前缀 | statistics:repair:* / statistics:inspection:* / statistics:cleaning:* / statistics:evaluation:* / statistics:contract:* / statistics:bidding:* / statistics:dashboard:* / statistics:custom:* |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面1:报修统计页(只读)
|
|
|
|
|
|
**页面编号**:HO-ST-01-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/repair
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 | 数据来源 |
|
|
|
|------|------|----------|
|
|
|
| 总工单数 | 统计时间段内工单总数 | 物业报修数据(只读) |
|
|
|
| 各状态分布 | 待分配/处理中/已完成/已关闭 | 物业报修数据 |
|
|
|
| 完成率 | 已完成/总数 | 物业报修数据 |
|
|
|
| 平均处理时长 | 从分配到完工的平均时间 | 物业报修数据 |
|
|
|
| 紧急工单占比 | 紧急工单/总数 | 物业报修数据 |
|
|
|
| 各班组工单量 | 按班组统计工单数 | 物业报修数据 |
|
|
|
|
|
|
### 操作权限
|
|
|
|
|
|
| 操作 | 权限 | 说明 |
|
|
|
|------|------|------|
|
|
|
| 查看 | statistics:repair:view | 仅查看,不可导出 |
|
|
|
| 导出 | ❌ 不支持 | 业务数据报表仅查看(来源:03-医院 §5) |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用报修统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表;支持按物业公司筛选
|
|
|
3. **表单填写与提交流程**:不适用(只读页面,不支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:图表支持交互(饼图hover显示各状态数量,柱状图hover显示各班组工单量,折线图hover显示趋势数据)
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围/物业公司筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:仅查看权限,无导出按钮;无查看权限时隐藏整个页面内容
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | 切换时间范围/物业公司筛选加载数据期间显示loading状态(skeleton)并禁用筛选控件;防止重复请求 |
|
|
|
| **H2** | 请求超时 | **强制** | GET统计请求设置**30s超时**(统计报表类接口数据量大,使用30s档位) |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为只读统计页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 无`statistics:repair:view`权限时隐藏整个页面或展示无权提示;物业公司筛选下拉仅展示有权限的数据范围 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为只读统计页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页不支持导出且无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 数据加载成功后silent刷新图表和卡片;API失败时在对应区域展示错误状态而非全局toast;网络异常时展示重试按钮 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 物业公司筛选 | el-select | placeholder="请选择物业公司",clearable,filterable |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历6个指标,每个el-card shadow="hover" |
|
|
|
| 各状态分布图 | echarts | 饼图,:data=各状态数量,tooltip,legend,color预设配色 |
|
|
|
| 各班组工单量图 | echarts | 柱状图,:xAxis=班组,:yAxis=工单数,tooltip |
|
|
|
| 完成率/紧急占比 | echarts | 仪表盘图/环形图,tooltip |
|
|
|
| 平均处理时长 | echarts | 折线图(时间趋势),:xAxis=时间,:yAxis=小时 |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片3×2网格,图表区2列布局(饼图+柱状图并排),下方折线图全宽 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片3×2网格,图表区上下排列,ECharts图表宽度100% |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×3网格,所有图表纵向堆叠,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面2:巡检统计页(只读)
|
|
|
|
|
|
**页面编号**:HO-ST-02-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/inspection
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 |
|
|
|
|------|------|
|
|
|
| 总巡检任务数 | — |
|
|
|
| 完成率 | — |
|
|
|
| 异常率 | — |
|
|
|
| 蓝牙打卡率 | — |
|
|
|
| 补录率 | — |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用巡检统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表
|
|
|
3. **表单填写与提交流程**:不适用(只读页面,不支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:图表支持交互(饼图hover显示完成/异常分布,柱状图hover显示各区域巡检量)
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:仅查看权限,无导出按钮
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历5个指标 |
|
|
|
| 完成率/异常率图 | echarts | 饼图/环形图,:data=完成/异常分布 |
|
|
|
| 蓝牙打卡率/补录率图 | echarts | 柱状图,:xAxis=时间段,:yAxis=百分比 |
|
|
|
| 巡检趋势图 | echarts | 折线图,:xAxis=时间,:yAxis=任务数 |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片横排5列,图表区2列布局 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片3+2排列,图表区上下排列 |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×3网格,所有图表纵向堆叠,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面3:保洁统计页(只读)
|
|
|
|
|
|
**页面编号**:HO-ST-03-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/cleaning
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 |
|
|
|
|------|------|
|
|
|
| 总保洁任务数 | — |
|
|
|
| 完成率 | — |
|
|
|
| 超时率 | — |
|
|
|
| 抽查合格率 | — |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用保洁统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表
|
|
|
3. **表单填写与提交流程**:不适用(只读页面,不支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:图表支持交互(柱状图hover显示各区域保洁完成量,折线图hover显示超时率趋势)
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:仅查看权限,无导出按钮
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历4个指标 |
|
|
|
| 完成率/超时率图 | echarts | 饼图/环形图,:data=完成/超时分布 |
|
|
|
| 抽查合格率图 | echarts | 仪表盘图,:min=0,:max=100 |
|
|
|
| 各区域保洁量图 | echarts | 柱状图,:xAxis=区域,:yAxis=任务数 |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片横排4列,图表区2列布局 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片2×2排列,图表区上下排列 |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×2网格,所有图表纵向堆叠,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面4:评价统计页(只读)
|
|
|
|
|
|
**页面编号**:HO-ST-04-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/evaluation
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 |
|
|
|
|------|------|
|
|
|
| 总评价数 | 本医院发起的评价 |
|
|
|
| 平均评分 | — |
|
|
|
| 各物业公司评分对比 | — |
|
|
|
| 低评分占比 | — |
|
|
|
| 物业回复率 | — |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用评价统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表;支持按物业公司筛选
|
|
|
3. **表单填写与提交流程**:不适用(只读页面,不支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:图表支持交互(柱状图hover显示各物业公司评分,饼图hover显示星级分布,折线图hover显示评分趋势)
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围/物业公司筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:仅查看权限,无导出按钮
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | 切换时间范围/物业公司筛选加载数据期间显示loading状态(skeleton)并禁用筛选控件;防止重复请求 |
|
|
|
| **H2** | 请求超时 | **强制** | GET统计请求设置**30s超时**(统计报表类接口数据量大,使用30s档位) |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为只读统计页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 无`statistics:evaluation:view`权限时隐藏整个页面或展示无权提示;物业公司筛选仅展示有权限范围 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为只读统计页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页不支持导出且无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 数据加载成功后silent刷新图表和卡片;API失败时在对应区域展示错误状态;网络异常时展示重试按钮 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 物业公司筛选 | el-select | placeholder="请选择物业公司",clearable,filterable |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历5个指标 |
|
|
|
| 各物业公司评分对比图 | echarts | 柱状图,:xAxis=物业公司,:yAxis=评分,color预设配色 |
|
|
|
| 星级分布图 | echarts | 饼图,:data=各星级占比,tooltip,legend |
|
|
|
| 评分趋势图 | echarts | 折线图,:xAxis=时间,:yAxis=平均分,dataZoom |
|
|
|
| 低评分占比图 | echarts | 环形图,:data=低评分/正常占比 |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片横排5列,柱状图与饼图左右并排,折线图全宽 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片3+2排列,所有图表上下排列 |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×3网格,所有图表纵向堆叠,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面5:合同统计页(可导出)
|
|
|
|
|
|
**页面编号**:HO-ST-05-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/contract
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 | 数据来源 |
|
|
|
|------|------|----------|
|
|
|
| 合同总数 | — | 本系统合同数据 |
|
|
|
| 合同总金额 | — | 本系统合同数据 |
|
|
|
| 履约率 | 已完成付款/合同金额 | 本系统合同数据 |
|
|
|
| 各物业合同分布 | 按物业公司统计 | 本系统合同数据 |
|
|
|
| 付款完成率 | 已付款节点/总节点 | 本系统合同数据 |
|
|
|
| 即将到期合同 | 30天内到期的合同 | 本系统合同数据 |
|
|
|
|
|
|
### 操作权限
|
|
|
|
|
|
| 操作 | 权限 | 说明 |
|
|
|
|------|------|------|
|
|
|
| 查看 | statistics:contract:view | — |
|
|
|
| 导出 | statistics:contract:export | 合同统计可导出(来源:03-医院 §5) |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用合同统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表;支持按物业公司筛选
|
|
|
3. **表单填写与提交流程**:不适用(只读查看,但支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:点击"导出" → 选择导出格式(Excel/PDF)→ 调用导出API → 下载文件
|
|
|
5. **行内操作流程**:图表支持交互;点击"导出"按钮下载报表
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;导出失败提示"导出失败,请重试";无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围/物业公司筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:有导出权限显示"导出"按钮;无导出权限隐藏
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | 切换时间范围/物业公司筛选加载数据期间显示loading状态(skeleton)并禁用筛选控件;**导出期间显示loading并禁用"导出"按钮**,防止重复点击重复下载 |
|
|
|
| **H2** | 请求超时 | **强制** | GET统计请求设置**30s超时**(统计报表类接口数据量大);**POST导出请求设置60s超时**(导出文件可能较大) |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为只读统计+导出页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 无`statistics:contract:view`权限时隐藏整个页面或展示无权提示;有`statistics:contract:export`权限才显示"导出"按钮及格式选择下拉 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为只读统计页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页为下载导出场景,无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 数据加载成功后silent刷新图表和卡片;**导出成功后显示success提示(2s)并触发浏览器下载**;导出失败显示error提示(duration=0)含重试选项;网络异常时展示重试按钮 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 物业公司筛选 | el-select | placeholder="请选择物业公司",clearable,filterable |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历6个指标 |
|
|
|
| 各物业合同分布图 | echarts | 柱状图,:xAxis=物业公司,:yAxis=合同数/金额,tooltip |
|
|
|
| 合同金额趋势图 | echarts | 折线图,:xAxis=时间,:yAxis=金额,dataZoom |
|
|
|
| 付款完成率图 | echarts | 环形图/仪表盘图 |
|
|
|
| 到期预警列表 | el-table | stripe,border,:data=即将到期合同 |
|
|
|
| 导出按钮 | el-button | type="success",icon="Download",@click导出 |
|
|
|
| 导出格式选择 | el-dropdown | 触发导出,:options="[{label: 'Excel'}, {label: 'PDF'}]" |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片3×2网格,柱状图与折线图左右并排,到期预警列表全宽 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片3×2网格,图表上下排列,到期预警列表全宽 |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×3网格,所有图表纵向堆叠,到期预警列表隐藏次要列,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面6:招标统计页(可导出)
|
|
|
|
|
|
**页面编号**:HO-ST-06-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/bidding
|
|
|
|
|
|
### 统计指标
|
|
|
|
|
|
| 指标 | 说明 |
|
|
|
|------|------|
|
|
|
| 招标项目数 | — |
|
|
|
| 中标率 | — |
|
|
|
| 平均招标周期 | 从发布到定标的天数 |
|
|
|
| 成本对比 | 预算 vs 中标金额 |
|
|
|
| 各标段中标情况 | — |
|
|
|
|
|
|
### 操作权限
|
|
|
|
|
|
| 操作 | 权限 | 说明 |
|
|
|
|------|------|------|
|
|
|
| 查看 | statistics:bidding:view | — |
|
|
|
| 导出 | statistics:bidding:export | 招标统计可导出 |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载本月数据 → 调用招标统计API → 渲染统计卡片 + 图表
|
|
|
2. **查询/筛选交互流程**:选择时间范围(本月/本季度/本年/自定义)→ 刷新统计数据和图表
|
|
|
3. **表单填写与提交流程**:不适用(只读查看,但支持导出)
|
|
|
4. **弹窗/抽屉交互流程**:点击"导出" → 选择导出格式(Excel/PDF)→ 调用导出API → 下载文件
|
|
|
5. **行内操作流程**:图表支持交互;成本对比图hover显示预算vs中标金额详情
|
|
|
6. **异常与错误处理**:API请求失败显示el-message错误提示;导出失败提示"导出失败,请重试";无数据时图表显示"暂无数据"
|
|
|
7. **联动/级联交互**:时间范围筛选后所有统计卡片和图表同步刷新
|
|
|
8. **权限控制交互表现**:有导出权限显示"导出"按钮;无导出权限隐藏
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | 切换时间范围加载数据期间显示loading状态(skeleton)并禁用时间选择控件;**导出期间显示loading并禁用"导出"按钮**,防止重复点击重复下载 |
|
|
|
| **H2** | 请求超时 | **强制** | GET统计请求设置**30s超时**(统计报表类接口数据量大);**POST导出请求设置60s超时**(导出文件可能较大) |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为只读统计+导出页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 无`statistics:bidding:view`权限时隐藏整个页面或展示无权提示;有`statistics:bidding:export`权限才显示"导出"按钮及格式选择下拉 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为只读统计页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页为下载导出场景,无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 数据加载成功后silent刷新图表和卡片;**导出成功后显示success提示(2s)并触发浏览器下载**;导出失败显示error提示(duration=0)含重试选项;网络异常时展示重试按钮 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 本月/本季度/本年/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 统计卡片区 | el-row + el-col | :gutter=20,v-for遍历5个指标 |
|
|
|
| 成本对比图 | echarts | 柱状图(分组),:xAxis=标段,两组数据:预算/中标金额,tooltip |
|
|
|
| 各标段中标情况图 | echarts | 饼图/柱状图,:data=各标段中标状态 |
|
|
|
| 招标周期趋势图 | echarts | 折线图,:xAxis=项目,:yAxis=天数,tooltip |
|
|
|
| 导出按钮 | el-button | type="success",icon="Download",@click导出 |
|
|
|
| 导出格式选择 | el-dropdown | 触发导出,:options="[{label: 'Excel'}, {label: 'PDF'}]" |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 统计卡片横排5列,成本对比图与中标情况图左右并排,周期趋势图全宽 |
|
|
|
| 1024-1279px(Pad横屏) | 统计卡片3+2排列,所有图表上下排列 |
|
|
|
| 768-1023px(Pad竖屏) | 统计卡片2×3网格,所有图表纵向堆叠,ECharts图表宽度100%,高度250px,支持手势缩放 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面7:综合看板页
|
|
|
|
|
|
**页面编号**:HO-ST-07-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/dashboard
|
|
|
|
|
|
### 界面布局
|
|
|
|
|
|
```
|
|
|
┌──────────────────────────────────────────────────────────────────┐
|
|
|
│ [面包屑] 统计报表 > 综合看板 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ [时间选择] 今天 / 本周 / 本月 / 自定义 │
|
|
|
├──────────────────────────────────────────────────────────────────┤
|
|
|
│ ┌───────────────── 服务数据(只读) ──────────────────┐ │
|
|
|
│ │ 报修完成率 巡检完成率 保洁完成率 评价均分 │ │
|
|
|
│ │ 69% 92% 85% 4.2 │ │
|
|
|
│ └────────────────────────────────────────────────────┘ │
|
|
|
│ ┌───────────────── 合同/招标数据 ──────────────────┐ │
|
|
|
│ │ 活跃合同 付款完成率 招标项目 即将到期合同 │ │
|
|
|
│ │ 12 78% 3 2 │ │
|
|
|
│ └────────────────────────────────────────────────────┘ │
|
|
|
└──────────────────────────────────────────────────────────────────┘
|
|
|
```
|
|
|
|
|
|
### 数据来源
|
|
|
|
|
|
- 服务数据:物业公司业务数据(只读)
|
|
|
- 合同/招标数据:本系统数据
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 默认加载"今天"数据 → 并行调用各模块统计API → 渲染统计卡片
|
|
|
2. **查询/筛选交互流程**:选择时间范围(今天/本周/本月/自定义)→ 刷新所有看板数据
|
|
|
3. **表单填写与提交流程**:不适用(只读看板)
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:点击各统计卡片可跳转对应统计详情页(如点击"报修完成率"跳转报修统计页)
|
|
|
6. **异常与错误处理**:部分模块API失败时仅该模块显示"数据加载失败",其他模块正常展示;全部失败显示"看板数据加载失败"
|
|
|
7. **联动/级联交互**:时间范围切换后所有模块数据同步刷新
|
|
|
8. **权限控制交互表现**:无查看权限的模块对应卡片灰显或隐藏
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | 切换时间范围刷新数据期间显示loading状态(skeleton)并禁用时间选择控件;各模块并行加载时防止重复请求;卡片点击跳转防抖处理 |
|
|
|
| **H2** | 请求超时 | **强制** | 各模块GET统计请求均设置**30s超时**(综合看板涉及多模块并行调用,使用30s档位) |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为只读综合看板页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | 强制(不适用) | 本页无编辑表单,不涉及脏数据检测 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 各统计卡片根据用户权限动态显隐或灰显;无某模块权限时该区域展示"暂无数据访问权";整体无看板权限时隐藏页面内容 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为只读看板页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 各模块独立加载反馈,成功则silent渲染;**部分模块失败仅在该卡片区域展示错误状态,不影响其他正常模块**;全部失败时展示全局错误提示+重试按钮 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 时间选择 | el-radio-group | 今天/本周/本月/自定义,@change刷新数据 |
|
|
|
| 自定义日期 | el-date-picker | type="daterange",v-if="自定义" |
|
|
|
| 服务数据卡片组 | el-card | shadow="hover",:gutter=20,4个指标(报修完成率/巡检完成率/保洁完成率/评价均分),@click跳转详情 |
|
|
|
| 合同/招标数据卡片组 | el-card | shadow="hover",:gutter=20,4个指标(活跃合同/付款完成率/招标项目/即将到期合同),@click跳转详情 |
|
|
|
| 数值展示 | el-statistic | :precision=1(均分)/ 0(其他),prefix/suffix图标 |
|
|
|
| 加载状态 | el-skeleton | :loading=数据加载中,animated |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 自定义日期范围 | 结束日期≥开始日期 | 结束日期不能早于开始日期 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 两组卡片各横排4列,整体2行布局 |
|
|
|
| 1024-1279px(Pad横屏) | 两组卡片各2×2网格,整体2行布局 |
|
|
|
| 768-1023px(Pad竖屏) | 所有卡片纵向堆叠(8行1列),支持手势下拉刷新,卡片宽度100%,高度自适应 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 页面8:自定义报表页
|
|
|
|
|
|
**页面编号**:HO-ST-08-P01
|
|
|
**端侧归属**:Web专属
|
|
|
**页面路径**:/statistics/custom
|
|
|
|
|
|
### 配置选项
|
|
|
|
|
|
| 配置项 | 说明 |
|
|
|
|--------|------|
|
|
|
| 数据源 | 报修/巡检/保洁/评价(只读) + 合同/招标(可导出) |
|
|
|
| 维度 | 时间/物业公司/区域/类型 |
|
|
|
| 指标 | 数量/完成率/金额/评分... |
|
|
|
| 时间范围 | 自定义 |
|
|
|
|
|
|
### 操作权限
|
|
|
|
|
|
| 操作 | 权限 | 说明 |
|
|
|
|------|------|------|
|
|
|
| 生成报表 | statistics:custom:view | — |
|
|
|
| 导出 | statistics:custom:export | 合同/招标相关数据可导出,业务数据仅查看 |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
1. **页面加载流程**:进入页面 → 渲染报表配置表单(数据源/维度/指标/时间范围选择)
|
|
|
2. **查询/筛选交互流程**:选择数据源 → 联动加载可选维度和指标 → 选择维度和指标 → 选择时间范围
|
|
|
3. **表单填写与提交流程**:配置报表参数 → 点击"生成报表" → 调用自定义报表API → 渲染图表/表格 → (合同/招标数据)点击"导出"下载报表
|
|
|
4. **弹窗/抽屉交互流程**:不适用
|
|
|
5. **行内操作流程**:报表结果支持图表交互(hover查看数据点);表格数据支持排序
|
|
|
6. **异常与错误处理**:未选择数据源时"生成报表"按钮禁用;生成失败显示el-message错误提示;业务数据导出时提示"业务数据仅查看,不支持导出"
|
|
|
7. **联动/级联交互**:数据源选择→联动可选维度和指标;选择"报修/巡检/保洁/评价"数据源时隐藏导出按钮;选择"合同/招标"数据源时显示导出按钮
|
|
|
8. **权限控制交互表现**:有导出权限且选择合同/招标数据源时显示"导出"按钮;业务数据源始终不显示导出
|
|
|
|
|
|
### 前端硬性约束
|
|
|
|
|
|
> 以下为本页面必须遵守的前端交互与体验硬性约束(H=Hard Constraint)。
|
|
|
|
|
|
| 编号 | 约束项 | 级别 | 本页要求 |
|
|
|
|------|--------|------|----------|
|
|
|
| **H1** | 防重复提交 | **强制** | "生成报表"期间显示loading状态并禁用"生成报表"按钮;切换数据源/维度/指标联动加载期间禁用相关控件;**导出期间显示loading并禁用"导出"按钮** |
|
|
|
| **H2** | 请求超时 | **强制** | GET加载维度/指标选项15s超时;GET/POST生成报表请求**30s超时**;**POST导出请求设置60s超时** |
|
|
|
| **H3** | 操作确认 | 强制(不适用) | 本页为报表配置+查看页面,无删除/停用等危险操作,不涉及 |
|
|
|
| **H4** | 脏数据保护 | **强制** | 用户配置了报表参数但未点"生成报表"即离开页面时,若已有已生成的报表结果则标记isDirty=true,触发beforeunload离开拦截确认 |
|
|
|
| **H5** | 权限隔离表现 | 建议 | 无`statistics:custom:view`权限时隐藏整个配置表单区;有`statistics:custom:export`权限且选择合同/招标数据源才显示导出按钮;业务数据源始终不显示导出入口 |
|
|
|
| **H6** | 批量操作限制 | 建议(不适用) | 本页为单次报表生成页面,无批量操作,不涉及 |
|
|
|
| **H7** | 文件上传约束 | 建议(不适用) | 本页为报表生成+导出下载场景,无文件上传功能,不涉及 |
|
|
|
| **H8** | 反馈规范 | 建议 | 生成报表成功后silent渲染图表/表格;**业务数据源尝试导出时显示warning提示"业务数据仅查看,不支持导出"(duration=0)**;合同/招标导出成功显示success(2s)并触发下载;失败显示error(duration=0)+重试 |
|
|
|
|
|
|
### 组件规范
|
|
|
|
|
|
| 元素 | 组件 | 配置参数 |
|
|
|
|------|------|----------|
|
|
|
| 数据源选择 | el-select | placeholder="请选择数据源",@change联动维度/指标,options: 报修/巡检/保洁/评价/合同/招标 |
|
|
|
| 维度选择 | el-checkbox-group | v-for遍历可选维度,@change联动指标 |
|
|
|
| 指标选择 | el-checkbox-group | v-for遍历可选指标 |
|
|
|
| 时间范围 | el-date-picker | type="daterange",start-placeholder="开始日期",end-placeholder="结束日期" |
|
|
|
| 生成报表按钮 | el-button | type="primary",icon="DataAnalysis",:disabled="未选择数据源" |
|
|
|
| 导出按钮 | el-button | type="success",icon="Download",v-if="数据源=合同/招标" |
|
|
|
| 报表图表区 | echarts | 根据配置动态渲染,:resize自适应容器 |
|
|
|
| 报表表格区 | el-table | :data=报表数据,stripe,border,sortable |
|
|
|
| 空状态 | el-empty | description="请选择数据源和指标后生成报表" |
|
|
|
|
|
|
### 校验规则
|
|
|
|
|
|
| 字段 | 规则 | 错误提示 |
|
|
|
|------|------|----------|
|
|
|
| 数据源 | required | 请选择数据源 |
|
|
|
| 维度 | required,至少选1项 | 请至少选择一个维度 |
|
|
|
| 指标 | required,至少选1项 | 请至少选择一个指标 |
|
|
|
| 时间范围 | required | 请选择时间范围 |
|
|
|
|
|
|
### 响应式布局
|
|
|
|
|
|
| 断点 | 布局调整 |
|
|
|
|------|----------|
|
|
|
| ≥1280px(桌面端) | 配置区左侧,报表结果区右侧,宽度比3:7 |
|
|
|
| 1024-1279px(Pad横屏) | 配置区上方,报表结果区下方,全宽展示 |
|
|
|
| 768-1023px(Pad竖屏) | 配置区上方折叠为el-collapse,报表结果区下方全宽,ECharts图表宽度100%,高度250px,表格横向滚动 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## 需求追溯
|
|
|
|
|
|
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|
|
|
|------------|----------|----------|----------|----------|
|
|
|
| HO-ST-01 | 报修统计 | 02-医院 §5 / 03-医院 §5 | — | 物业报修统计(数据来源) |
|
|
|
| HO-ST-02 | 巡检统计 | 02-医院 §5 / 03-医院 §5 | — | 物业巡检统计(数据来源) |
|
|
|
| HO-ST-03 | 保洁统计 | 02-医院 §5 / 03-医院 §5 | — | 物业保洁统计(数据来源) |
|
|
|
| HO-ST-04 | 评价统计 | 02-医院 §5 / 03-医院 §5 | — | 物业评价统计(数据来源) |
|
|
|
| HO-ST-05 | 合同统计 | 02-医院 §5 / 03-医院 §5 | — | 合同管理(数据来源) |
|
|
|
| HO-ST-06 | 招标统计 | 02-医院 §5 / 03-医院 §5 | — | 招标管理(数据来源) |
|
|
|
| HO-ST-07 | 综合看板 | 02-医院 §5 | — | 全部模块(数据来源) |
|
|
|
| HO-ST-08 | 自定义报表 | 02-医院 §5 | — | 全部模块(数据来源) |
|
|
|
|
|
|
## 业务规则
|
|
|
|
|
|
1. **业务数据报表只读**:报修/巡检/保洁/评价统计仅查看,不支持导出(来源:03-医院 §5)
|
|
|
2. **合同/招标报表可导出**:合同和招标统计支持导出Excel/PDF(来源:03-医院 §5)
|
|
|
3. **数据来源**:业务数据来源于物业公司日常数据(只读),合同/招标数据来源于本系统(来源:03-医院 §5)
|
|
|
4. **数据范围**:仅查看为本医院服务的物业公司的数据(来源:01 §1.3)
|
|
|
5. **时间维度**:支持天/周/月/年/自定义时间段(来源:02-医院 §5)
|