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.

240 lines
9.2 KiB
Markdown

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 通用功能
> 模块编码common
> 端侧:小程序
> 关联文档01-模块划分.md §5.2、02-功能清单-小程序端.md §1、03-业务流转逻辑-小程序端.md §1&10、05-接口规范.md §2、06-项目技术要求.md §4.1
## 功能概览
| 项目 | 说明 |
|------|------|
| 菜单名称 | 通用功能 |
| 子菜单 | 快捷登录、个人信息、消息通知、数据补录申请、版本更新提示、通讯录 |
| 功能编号 | MP-C-01 ~ MP-C-06 |
| 权限编码 | —(通用功能,登录即可用) |
## 页面清单
### 页面1登录页
- **页面路径**`/pages/login/index`
- **页面元素**
- 微信授权登录按钮获取openid
- 手机号绑定按钮(微信获取手机号组件)
- 用户协议与隐私政策链接
- 版本号展示
- **界面布局**
- 顶部应用Logo + 系统名称
- 中部:微信一键登录按钮(大按钮,居中)
- 底部:版本号 + 协议链接
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 微信一键登录 | — | 触发wx.login()获取code后端换openid |
| 获取手机号 | — | 微信获取手机号组件,绑定手机号 |
### 页面2工作台首页
- **页面路径**`/pages/workbench/index`
- **页面元素**
- 用户头像 + 姓名 + 角色
- 功能入口网格(根据角色动态渲染)
- 消息通知红点提示
- 今日关键指标简卡
- **查询条件**:无
- **列表字段**:无
- **界面布局**
- 顶部:用户信息栏(头像 + 姓名 + 角色 + 消息入口)
- 中部功能入口网格2列×N行按角色动态显示
- 维修人员:我的工单、消息通知
- 巡检人员:今日巡检、异常上报
- 保洁人员:今日保洁、异常反馈
- 主管:工单分配、审批中心、统计概览
- 管理员:报修管理、巡检管理、保洁管理、考勤管理、评价管理、组织架构
- 底部底部Tab栏工作台、消息、我的
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 各功能入口 | 按角色 | 根据权限集动态显示/隐藏 |
### 页面3个人信息页
- **页面路径**`/pages/profile/index`
- **页面元素**
- 头像(可点击查看大图)
- 姓名(只读)
- 手机号(脱敏显示,可修改)
- 所属物业公司(只读)
- 所属班组(只读)
- 角色信息(只读)
- 退出登录按钮
- **查询条件**:无
- **列表字段**:无
- **界面布局**
- 顶部:头像(居中,大尺寸)
- 中部信息列表Label + Value形式
- 底部:退出登录按钮(红色文字)
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 修改手机号 | — | 弹出微信获取手机号组件 |
| 退出登录 | — | 清除本地token跳转登录页 |
### 页面4消息通知列表
- **页面路径**`/pages/message/list`
- **页面元素**
- 消息分类Tab全部 / 工单 / 审批 / 系统)
- 消息列表
- 未读标记红点
- 全部标记已读按钮
- **查询条件**
| 条件 | 类型 | 说明 |
|------|------|------|
| 分类 | Tab切换 | 全部/工单/审批/系统 |
- **列表字段**
| 字段 | 说明 |
|------|------|
| 消息标题 | 通知标题 |
| 消息摘要 | 内容前30字 |
| 消息时间 | 相对时间(如"5分钟前" |
| 已读标记 | 红点显示未读 |
| 消息类型图标 | 不同类型不同图标 |
- **界面布局**
- 顶部分类Tab
- 中部:消息列表(左图标 + 中标题摘要 + 右时间 + 未读红点)
- 底部:全部标记已读按钮
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 全部标记已读 | — | 将所有未读消息标为已读 |
| 点击消息 | — | 跳转到对应业务详情页 |
### 页面5数据补录申请页
- **页面路径**`/pages/supplement/apply`
- **页面元素**
- 补录模块选择(报修/巡检/保洁/考勤)
- 补录原因(下拉选择:蓝牙失灵/定位失败/系统异常/其他)
- 补录说明多行文本最多200字
- 证明材料上传照片最多3张
- 补录数据表单(根据选择的模块动态渲染)
- **查询条件**:无
- **列表字段**:无
- **界面布局**
- 顶部:补录模块选择(下拉选择器)
- 中部:补录原因 + 说明 + 上传证明
- 下部:补录数据表单(动态)
- 底部:提交按钮
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 提交申请 | — | 提交补录申请,等待主管审核 |
### 页面6通讯录页
- **页面路径**`/pages/contacts/index`
- **页面元素**
- 搜索框
- 按班组分组显示联系人
- 联系人信息卡片
- **查询条件**
| 条件 | 类型 | 说明 |
|------|------|------|
| 搜索关键词 | 输入框 | 按姓名/手机号搜索 |
- **列表字段**
| 字段 | 说明 |
|------|------|
| 头像 | 联系人头像 |
| 姓名 | 联系人姓名 |
| 角色 | 联系人角色 |
| 手机号 | 脱敏显示,点击可拨打 |
| 班组 | 所属班组 |
- **界面布局**
- 顶部:搜索框
- 中部:按班组分组的联系人列表
- 班组标题(灰色背景)
- 联系人卡片(左头像 + 中姓名角色 + 右手机号图标)
- **操作按钮**
| 按钮 | 权限 | 说明 |
|------|------|------|
| 拨打电话 | — | 点击手机号直接拨打 |
### 页面7版本更新提示弹窗
- **页面路径**:弹窗组件(非独立页面)
- **页面元素**
- 新版本号
- 更新内容说明
- 更新/取消按钮(小版本)
- 强制更新按钮(大版本)
- **界面布局**
- 居中弹窗
- 顶部:版本号
- 中部:更新说明
- 底部:操作按钮
## 需求追溯
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|------------|----------|----------|----------|----------|
| MP-C-01 | 快捷登录 | 02-小程序端 §1 | 登录成功→加载权限集→渲染工作台 | 权限管理(角色分配) |
| MP-C-02 | 个人信息 | 02-小程序端 §1 | 修改手机号→更新sys_user | 通讯录 |
| MP-C-03 | 消息通知 | 02-小程序端 §1 | 点击消息→跳转业务详情 | 各业务模块(推送触发) |
| MP-C-04 | 数据补录申请 | 02-小程序端 §1 | 提交→触发补录审核→主管审批 | 各模块补录审核 |
| MP-C-05 | 版本更新提示 | 02-小程序端 §1 | 小版本→提示更新;大版本→强制更新 | 超管系统配置(版本管理) |
| MP-C-06 | 通讯录 | 02-小程序端 §1 | 点击拨打→调起手机拨号 | 组织架构(班组/人员) |
## 业务规则
1. **登录规则**03-业务流转逻辑-小程序端 §1
- 首次登录微信授权获取openid → 绑定手机号 → 系统匹配物业公司+人员信息
- 匹配成功:创建账号,进入工作台
- 匹配失败:提示"未找到关联信息,请联系管理员",无法使用
- 再次登录读取本地token → 有效则直接进入 → 无效则openid静默登录
2. **权限加载规则**01-模块划分.md §5.3
- 登录后获取角色及权限集(四级粒度)
- 根据权限动态渲染:可见菜单项、页面内可见功能点、功能点可用动作、数据范围(行级隔离)
3. **Token管理**06-项目技术要求.md §4.1
- 小程序端存本地Storage2小时过期
- Token失效自动使用openid静默登录刷新token
4. **版本更新规则**03-业务流转逻辑-小程序端 §10
- 启动时调用后台接口获取最新版本号 + 最低兼容版本
- 版本一致:正常使用
- 小版本更新(兼容):提示"发现新版本,是否更新?",用户可取消
- 大版本更新(不兼容):强制更新,引导前往微信更新小程序
- SDK依赖校验启动时校验蓝牙SDK、微信SDK等关键依赖版本
5. **消息通知规则**01-模块划分.md §7
- 通知场景:新工单、催单、审批、完工、异常上报等
- 通知方式:小程序推送
- 点击消息跳转对应业务详情
6. **数据补录规则**06-项目技术要求.md §4.5
- 补录数据必须标记 `is_supplement=true`
- 补录申请需主管审核Web+小程序均可)
- 补录日志单独记录
## 状态流转
### 登录状态流转
```
未登录 ──[微信授权]──▶ 获取openid ──[绑定手机号]──▶ 匹配人员信息
┌───匹配成功───┐ ┌───匹配失败───┐
│ │ │ │
创建账号 提示联系管理员
进入工作台 无法使用
```
### 补录申请状态流转
```
草稿 ──[提交]──▶ 待审核 ──[主管通过]──▶ 已通过(数据补录生效)
└──[主管驳回]──▶ 已驳回(通知申请人)
```