You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7.3 KiB
7.3 KiB
统计概览功能
模块编码:statistics 端侧:微信小程序 关联文档:01-模块划分.md(v4.0)、02-功能清单-小程序端.md(§8)、03-业务流转逻辑-小程序端.md(§8)、05-接口规范.md(§9)、06-项目技术要求.md 强制规范遵循
07-前端界面开发规范.md
功能概览
| 项目 | 说明 |
|---|---|
| 菜单名称 | 统计概览 |
| 子菜单 | 简版统计概览 / 个人绩效统计 |
| 功能编号 | MP-ST-01 ~ MP-ST-02 |
| 权限编码 | statistics:{module}:* |
页面清单
页面1:简版统计概览
- 页面路径:
/pages/statistics/overview - 适用角色:管理员/主管
- 页面元素:
- 今日/本周切换标签
- 关键指标卡片组
- 简版趋势图
- 查询条件:
- 时间范围切换(今日/本周)
- 列表字段:无(概览卡片模式)
- 界面布局:
- 顶部:今日/本周切换标签
- 中部:四组指标卡片
- 报修:今日工单数 / 待处理 / 已完成
- 巡检:今日任务数 / 已完成 / 异常
- 保洁:今日任务数 / 已完成 / 超时
- 考勤:今日出勤率
- 底部:简版趋势折线图(近7天工单量)
- 操作按钮:
- 无(纯展示页面,详细数据在Web端查看)
数据来源:物业公司各业务模块实时数据
按角色权限显示:
- 全局管理员:显示全部指标
- 主管:仅显示所管辖模块的指标
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-ST-01 | 简版统计概览 | 02-小程序端 §8 | 无 | 统计报表(Web端) |
交互流程要求
-
页面加载流程:进入页面 → 调用API加载今日统计数据 → 渲染指标卡片 + 趋势图
-
时间切换:点击"今日/本周"切换标签 → 重新请求对应时间范围数据 → 刷新卡片和图表
-
按角色显示:管理员看到全部指标卡片;主管仅看到管辖模块指标
-
异常处理:数据加载失败 → 显示"数据加载失败,点击重试";网络离线 → 显示上次缓存数据+离线标识
-
权限控制:无统计权限 → 不显示对应指标卡片
-
[H1]防重复请求
- 今日/本周时间切换按钮点击后立即 disabled + wx.showLoading({title:'加载中'});API返回后恢复
- 切换期间再次点击无效(pending标志位去重)
- 页面卸载时 onUnload 中 abort 未完成的请求
-
[H2]超时与加载反馈
- 统计数据查询 API timeout=30秒(统计报表档位)
- 超过3秒未响应时显示 wx.showLoading 提示
- 超时后提示"请求超时,请检查网络后重试"+ 提供"重试"按钮
-
[H8]操作结果反馈
- 数据加载成功:wx.showToast({ title: '刷新成功', icon: 'success', duration: 2000 })
- 加载失败:wx.showToast({ title: errMsg, icon: 'none', duration: 3000 })
- 网络离线:显示缓存数据 + uni-icons type="warning" + "当前为离线模式"提示条
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 页面容器 | scroll-view | scroll-y, :refresher-enabled, @refresherrefresh |
| 切换标签 | uni-segmented-control | :current, :values="['今日','本周']" |
| 指标卡片 | view | class="stat-card", v-for |
| 指标数值 | text | class="stat-value", font-size=28px |
| 趋势图 | qiun-data-charts | type="line", :chartData |
| 下拉刷新 | scroll-view | refresher-enabled, @refresherrefresh |
校验规则
无表单校验(纯展示页面)
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 指标卡片:竖屏2列,横屏4列
- 趋势图:全宽自适应
- 触摸区域:卡片点击区域≥44px
页面2:个人绩效统计
- 页面路径:
/pages/statistics/personal - 适用角色:员工
- 页面元素:
- 个人关键指标卡片
- 绩效评分展示
- 近期趋势图
- 查询条件:
- 时间范围选择(本周/本月)
- 列表字段:无(概览卡片模式)
- 界面布局:
- 顶部:时间范围选择
- 中部:绩效指标卡片
- 工单量:已完成工单数 / 平均处理时长
- 评分:平均评分 / 评价数
- 考勤:出勤天数 / 迟到次数
- 底部:近期绩效趋势图
- 操作按钮:
- 无(纯展示页面)
数据来源:
- 报修模块工单数据
- 评价模块评分数据
- 考勤模块打卡数据
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-ST-02 | 个人绩效统计 | 02-小程序端 §8 | 无 | 统计报表(Web端) |
交互流程要求
- 页面加载流程:进入页面 → 调用API加载个人本周绩效数据 → 渲染指标卡片 + 趋势图
- 时间切换:点击"本周/本月"切换 → 重新请求 → 刷新
- 异常处理:数据加载失败 → 显示重试提示;无数据 → 显示"暂无绩效数据"
前端硬性约束
- H1 防重复提交:
- 时间切换操作在请求期间必须设置
loading状态 + 切换标签disabled,防止重复点击触发多次请求。- 使用 pending 标志位对同一请求进行去重,确保请求完成前不发出相同新请求。
- 页面卸载时(
onUnload)必须abort未完成的请求,避免无效回调。- H2 超时处理:
- 绩效统计数据接口请求超时时间设置为 30秒;超过 3 秒未响应时必须展示 loading 动画提示。
- 超时后给出明确错误提示并提供"重试"按钮。
- H8 操作反馈:
- 加载成功使用
uni.showToast({ title: '加载成功', icon: 'success', duration: 2000 }),2 秒自动消失。- 错误反馈使用
icon: 'none',需手动关闭或短时自动消失。
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 页面容器 | scroll-view | scroll-y, refresher-enabled |
| 时间切换 | uni-segmented-control | :values="['本周','本月']" |
| 绩效卡片 | view | class="stat-card" |
| 评分展示 | uni-rate | :size=20, :readonly=true |
| 趋势图 | qiun-data-charts | type="line" |
校验规则
无表单校验(纯展示页面)
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 绩效卡片:竖屏2列,横屏3列
- 触摸区域:≥44px
业务规则
- 数据实时性:统计数据基于各业务模块实时数据计算
- 权限隔离:管理员/主管看到团队指标,员工仅看到个人绩效
- 简版展示:小程序端为简版概览,详细报表在Web端查看
- 时间范围:支持今日/本周切换,个人绩效支持本周/本月
- 趋势图:展示近7天数据趋势,辅助快速判断
- 出勤率计算:出勤率 = 实际出勤人数 / 应出勤人数 × 100%
- 数据来源汇总:
| 指标 | 数据来源 |
|---|---|
| 工单数/待处理/已完成 | 报修模块工单数据 |
| 巡检任务数/已完成/异常 | 巡检模块任务数据 |
| 保洁任务数/已完成/超时 | 保洁模块任务数据 |
| 出勤率 | 考勤模块打卡数据 |
| 个人评分 | 评价模块评分数据 |
状态流转
本模块为纯展示功能,无状态流转。