|
|
# 统计概览功能
|
|
|
|
|
|
> 模块编码: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端) |
|
|
|
|
|
|
### 交互流程要求
|
|
|
|
|
|
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. **数据来源汇总**:
|
|
|
|
|
|
| 指标 | 数据来源 |
|
|
|
|------|----------|
|
|
|
| 工单数/待处理/已完成 | 报修模块工单数据 |
|
|
|
| 巡检任务数/已完成/异常 | 巡检模块任务数据 |
|
|
|
| 保洁任务数/已完成/超时 | 保洁模块任务数据 |
|
|
|
| 出勤率 | 考勤模块打卡数据 |
|
|
|
| 个人评分 | 评价模块评分数据 |
|
|
|
|
|
|
## 状态流转
|
|
|
|
|
|
本模块为纯展示功能,无状态流转。
|