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

统计概览功能

模块编码statistics 端侧:微信小程序 关联文档01-模块划分.mdv4.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端

交互流程要求

  1. 页面加载流程:进入页面 → 调用API加载今日统计数据 → 渲染指标卡片 + 趋势图

  2. 时间切换:点击"今日/本周"切换标签 → 重新请求对应时间范围数据 → 刷新卡片和图表

  3. 按角色显示:管理员看到全部指标卡片;主管仅看到管辖模块指标

  4. 异常处理:数据加载失败 → 显示"数据加载失败,点击重试";网络离线 → 显示上次缓存数据+离线标识

  5. 权限控制:无统计权限 → 不显示对应指标卡片

  6. [H1]防重复请求

    • 今日/本周时间切换按钮点击后立即 disabled + wx.showLoading({title:'加载中'})API返回后恢复
    • 切换期间再次点击无效pending标志位去重
    • 页面卸载时 onUnload 中 abort 未完成的请求
  7. [H2]超时与加载反馈

    • 统计数据查询 API timeout=30秒统计报表档位
    • 超过3秒未响应时显示 wx.showLoading 提示
    • 超时后提示"请求超时,请检查网络后重试"+ 提供"重试"按钮
  8. [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端

交互流程要求

  1. 页面加载流程:进入页面 → 调用API加载个人本周绩效数据 → 渲染指标卡片 + 趋势图
  2. 时间切换:点击"本周/本月"切换 → 重新请求 → 刷新
  3. 异常处理:数据加载失败 → 显示重试提示;无数据 → 显示"暂无绩效数据"

前端硬性约束

  • 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

业务规则

  1. 数据实时性:统计数据基于各业务模块实时数据计算
  2. 权限隔离:管理员/主管看到团队指标,员工仅看到个人绩效
  3. 简版展示小程序端为简版概览详细报表在Web端查看
  4. 时间范围:支持今日/本周切换,个人绩效支持本周/本月
  5. 趋势图展示近7天数据趋势辅助快速判断
  6. 出勤率计算:出勤率 = 实际出勤人数 / 应出勤人数 × 100%
  7. 数据来源汇总
指标 数据来源
工单数/待处理/已完成 报修模块工单数据
巡检任务数/已完成/异常 巡检模块任务数据
保洁任务数/已完成/超时 保洁模块任务数据
出勤率 考勤模块打卡数据
个人评分 评价模块评分数据

状态流转

本模块为纯展示功能,无状态流转。