21 KiB
管理员小程序功能
模块编码:property-manager 端侧:微信小程序 关联文档:01-模块划分.md(v4.0)、02-功能清单-小程序端.md(§9)、03-业务流转逻辑-小程序端.md(§9)、05-接口规范.md(§9)、06-项目技术要求.md 强制规范遵循
07-前端界面开发规范.md
功能概览
| 项目 | 说明 |
|---|---|
| 菜单名称 | 管理工作台 |
| 子菜单 | 报修管理 / 巡检管理 / 保洁管理 / 考勤管理 / 评价管理 / 组织架构查看 |
| 功能编号 | MP-PM-01 ~ MP-PM-06 |
| 权限编码 | repair:list:、inspection::、cleaning::、attendance::、evaluation:list:、org:team:view |
说明:管理员小程序功能是物业公司管理员/主管在小程序端的简化版管理功能,与Web端功能对应但功能简化。所有数据与Web端同一数据源,操作实时同步。
页面清单
页面1:报修管理
- 页面路径:
/pages/manager/repair - 适用角色:物业管理员/主管
- 页面元素:
- 工单统计卡片(待分配/处理中/待验收/已完成)
- 工单列表
- 工单分配操作
- 工单流转操作
- 查询条件:
- 状态筛选(全部/待分配/处理中/待验收/已完成)
- 日期筛选
- 类型筛选
- 关键词搜索
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 工单编号 | 文本 | 报修工单号 |
| 报修类型 | 标签 | 报修分类 |
| 报修描述 | 文本 | 问题描述摘要 |
| 报修人 | 文本 | 提交人姓名 |
| 状态 | 标签 | 待分配/处理中/待验收/已完成 |
| 创建时间 | 时间 | 工单创建时间 |
- 界面布局:
- 顶部:统计数字横向排列
- 中部:筛选条件 + 工单卡片列表
- 底部:操作按钮
- 操作按钮:
- 「分配」→ 分配工单到班组/人员(权限:repair:list:assign)
- 「查看详情」→ 查看工单详情
- 「审批延期」→ 审批维修人员延期申请(权限:repair:detail:approve)
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-01 | 报修管理 | 02-小程序端 §9 | 通知维修人员 | 在线报修(Web端) |
交互流程要求
-
页面加载流程:进入页面 → 并行调用:统计卡片数据 + 工单列表(默认全部状态)
-
筛选交互:选择状态/日期/类型 → 触发列表刷新;搜索框输入 → 回车或点击搜索
-
分配操作:点击"分配"→ 弹出人员选择弹窗(按班组筛选)→ 选择人员 → 确认 → 调用API → 成功提示 → 推送通知维修人员
-
查看详情:点击工单卡片 → 跳转工单详情页
-
审批延期:点击"审批延期"→ 弹窗展示延期原因 → 同意/拒绝 → API调用 → 通知申请人
-
异常处理:分配失败提示;网络离线提示
-
权限控制:无分配权限 → "分配"按钮不显示;无审批权限 → "审批延期"不显示
-
[H1]防重复请求
- 分配操作:点击"分配"后按钮 disabled + loading态,API返回后恢复
- 审批延期操作:点击后弹窗底部确认按钮 disabled + loading
- 筛选切换:状态/日期切换时 abort 上一次列表请求再发新的
- 下拉刷新:refreshing 标志位防止重复触发
-
[H2]超时与加载反馈
- 统计卡片+列表查询 timeout=15秒
- 分配/审批操作 timeout=30秒
- 超过3秒 wx.showLoading({ title: '加载中', mask: true })
- 超时 → wx.showToast({ icon: 'none', title: '请求超时' }) + 重试按钮
-
[H3]操作确认机制
- 分配确认:选择人员后 uni.showModal({ content: '确定将工单分配给{人员姓名}?', success: res => { if(res.confirm) ... } })
- 审批延期同意:uni.showModal({ content: '确定同意该延期申请?', ... })
- 审批延期拒绝:必须填写拒绝原因(弹窗内输入框)
-
[H8]操作结果反馈
- 分配成功:wx.showToast({ icon: 'success', title: '分配成功' }) + 刷新列表
- 操作失败:wx.showToast({ icon: 'none', title: errMsg })
- 网络异常:wx.showModal({ title: '提示', content: '网络连接异常', confirmText: '重试' })
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 页面容器 | scroll-view | scroll-y, refresher-enabled, @scrolltolower |
| 统计卡片 | view | class="stat-card", v-for, horizontal scroll |
| 状态筛选 | uni-segmented-control | :values="['全部','待分配','处理中','待验收','已完成']" |
| 工单列表 | view | v-for, class="order-card" |
| 状态标签 | uni-tag | :type按状态变化 |
| 分配按钮 | button | size="mini", type="primary" |
| 人员选择弹窗 | uni-popup | type="bottom" |
| 人员列表 | radio-group | v-for |
校验规则
无表单校验
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 统计卡片:横向滚动
- 工单卡片:全宽
- 触摸区域:按钮≥44px
页面2:巡检管理
- 页面路径:
/pages/manager/inspection - 适用角色:物业管理员/主管
- 页面元素:
- 巡检统计卡片(今日任务/已完成/异常)
- 巡检看板(人员执行状态)
- 巡检记录列表
- 异常记录查看
- 查询条件:
- 日期筛选
- 状态筛选
- 人员筛选
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 计划名称 | 文本 | 巡检计划名称 |
| 执行人 | 文本 | 巡检人员姓名 |
| 区域 | 文本 | 巡检区域 |
| 状态 | 标签 | 待执行/进行中/已完成 |
| 异常数 | 数字 | 发现异常数量 |
- 界面布局:
- 顶部:统计数字 + 看板缩略
- 中部:巡检记录卡片列表
- 底部:无操作栏
- 操作按钮:
- 「查看详情」→ 查看巡检记录详情
- 「审核补录」→ 审核巡检补录申请(权限:inspection:supplement:approve)
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-02 | 巡检管理 | 02-小程序端 §9 | 无 | 巡检管理(Web端) |
交互流程要求
- 页面加载流程:进入页面 → 并行加载统计卡片 + 巡检记录列表
- 筛选交互:选择日期/状态/人员 → 触发列表刷新
- 查看详情:点击记录卡片 → 跳转巡检详情页
- 审核补录:点击"审核补录"→ 弹窗展示补录原因+证据 → 同意/拒绝 → API调用 → 通知申请人
- 异常处理:数据加载失败显示重试;网络离线提示
- 权限控制:无补录审核权限 → "审核补录"按钮不显示
- [H1]防重复请求
- 筛选操作点击后 disabled + loading态,API返回后恢复
- 审核补录操作点击后 disabled + loading态
- 使用 pending 标志位去重,页面卸载时 onUnload 必须 abort 未完成请求(wx.requestTask.abort())
- [H2]超时与加载反馈
- GET列表查询 timeout=15秒;POST/PUT/DELETE写操作 timeout=30秒
- 超时 → wx.showToast({icon:'none', title:'请求超时,请检查网络后重试'})
- 加载>2秒显示 wx.showLoading
- [H3]操作确认机制(有不可逆操作时)
- 审核补录: wx.showModal 确认
- [H8]操作结果反馈
- 成功: wx.showToast({icon:'success', duration:2000})
- 失败: wx.showToast({icon:'none'}) 需手动关闭
- 网络/离线: 异常提示+重试按钮
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 页面容器 | scroll-view | scroll-y, refresher-enabled |
| 统计卡片 | view | class="stat-card", v-for |
| 巡检记录列表 | view | v-for, class="inspection-card" |
| 状态标签 | uni-tag | 待执行:type="info", 进行中:type="primary", 已完成:type="success" |
| 审核补录弹窗 | uni-popup | type="bottom" |
| 同意/拒绝按钮 | button | 同意:type="primary", 拒绝:type="warn" |
校验规则
无
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 统计卡片横向排列
- 记录卡片全宽
- 按钮触摸区≥44px
页面3:保洁管理
- 页面路径:
/pages/manager/cleaning - 适用角色:物业管理员/主管
- 页面元素:
- 保洁统计卡片(今日任务/已完成/超时)
- 保洁任务列表
- 排班查看
- 抽查操作
- 查询条件:
- 日期筛选
- 区域筛选
- 状态筛选
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 任务名称 | 文本 | 保洁区域+类型 |
| 执行人 | 文本 | 保洁人员姓名 |
| 区域 | 文本 | 保洁区域 |
| 状态 | 标签 | 待执行/进行中/待抽查/已完成 |
| 抽查结果 | 标签 | 合格/不合格/待抽查 |
- 界面布局:
- 顶部:统计数字
- 中部:任务卡片列表
- 底部:抽查操作按钮
- 操作按钮:
- 「抽查」→ 标记抽查合格/不合格(权限:cleaning:spot-check:approve)
- 「审核补录」→ 审核保洁补录申请(权限:cleaning:supplement:approve)
- 「查看详情」→ 查看任务详情
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-03 | 保洁管理 | 02-小程序端 §9 | 不合格时重新生成任务 | 保洁管理(Web端) |
交互流程要求
-
页面加载:进入页面 → 加载统计卡片 + 保洁任务列表
-
抽查操作:点击"抽查"→ 弹窗选择合格/不合格 → 提交 → 不合格时系统自动重新生成任务
-
审核补录:同巡检补录审核流程
-
异常处理:抽查提交失败提示;不合格重新生成任务失败提示
-
[H1]防重复请求
- 抽查操作:点击"抽查"后按钮 disabled + 弹窗确认按钮 loading
- 审核补录:同上
- 筛选切换时 abort 上次请求
-
[H2]超时与加载反馈
- 列表查询 timeout=15秒;抽查/审核操作 timeout=30秒
-
3秒 wx.showLoading;超时提示+重试
-
[H3]操作确认机制
- 抽查不合格:uni.showModal({ content: '确定标记为不合格?系统将自动重新生成任务', ... })
- 抽查合格:uni.showModal({ content: '确定标记为合格?', ... })
-
[H8]操作结果反馈
- 成功:wx.showToast({ icon: 'success' }) + 刷新
- 失败:wx.showToast({ icon: 'none', title: errMsg })
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 抽查弹窗 | uni-popup | type="bottom" |
| 合格/不合格 | radio-group | 合格/不合格 |
| 抽查结果标签 | uni-tag | 合格:type="success", 不合格:type="error", 待抽查:type="info" |
校验规则
无
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 触摸区域≥44px
页面4:考勤管理
- 页面路径:
/pages/manager/attendance - 适用角色:物业管理员/主管
- 页面元素:
- 今日出勤统计卡片(应到/实到/缺勤/异常)
- 考勤记录列表
- 异常申诉审核
- 查询条件:
- 日期筛选
- 班组筛选
- 状态筛选(正常/迟到/早退/缺卡/异常)
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 姓名 | 文本 | 员工姓名 |
| 班组 | 文本 | 所属班组 |
| 上班时间 | 时间 | 上班打卡时间 |
| 下班时间 | 时间 | 下班打卡时间 |
| 状态 | 标签 | 正常/迟到/早退/缺卡 |
| 打卡方式 | 标签 | 蓝牙/手动/补录 |
- 界面布局:
- 顶部:统计数字
- 中部:考勤记录列表
- 底部:审核操作按钮
- 操作按钮:
- 「审核申诉」→ 审核打卡异常申诉(权限:attendance:appeal:approve)
- 「审核补录」→ 审核考勤补录(权限:attendance:supplement:approve)
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-04 | 考勤管理 | 02-小程序端 §9 | 补录打卡记录 | 考勤打卡(Web端) |
交互流程要求
-
页面加载:进入页面 → 加载今日出勤统计 + 考勤记录列表
-
审核申诉:点击"审核申诉"→ 弹窗展示申诉原因+证据 → 同意/拒绝 → API调用
-
审核补录:同上补录审核流程
-
异常处理:审核失败提示
-
[H1]防重复请求
- 审核申诉/补录:操作按钮点击后 disabled + loading
- 筛选切换 abort 上次请求
-
[H2]超时与加载反馈
- 列表查询 timeout=15秒;审核操作 timeout=30秒
-
3秒 wx.showLoading;超时提示+重试
-
[H3]操作确认机制
- 审核通过:uni.showModal({ content: '确定同意该申诉/补录?', ... })
- 审核拒绝:uni.showModal + 必填拒绝原因
-
[H8]操作结果反馈
- 成功:wx.showToast({ icon: 'success' }) + 刷新
- 失败:wx.showToast({ icon: 'none', title: errMsg })
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 统计卡片 | view | class="stat-card" |
| 状态标签 | uni-tag | 正常:type="success", 迟到:type="warning", 早退:type="warning", 缺卡:type="error" |
| 打卡方式标签 | uni-tag | 蓝牙:type="primary", 手动:type="info", 补录:type="warning" |
| 审核弹窗 | uni-popup | type="bottom" |
校验规则
无
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 触摸区域≥44px
页面5:评价管理
- 页面路径:
/pages/manager/evaluation - 适用角色:物业管理员/主管
- 页面元素:
- 评价统计卡片(总评价数/平均分/待回复)
- 评价列表
- 回复操作
- 查询条件:
- 评分筛选(全部/好评/中评/差评)
- 回复状态筛选(全部/待回复/已回复)
- 时间筛选
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 工单编号 | 文本 | 关联工单号 |
| 评分 | 数字 | 1~5分 |
| 评价内容 | 文本 | 留言摘要 |
| 评价时间 | 时间 | 提交评价时间 |
| 回复状态 | 标签 | 已回复/未回复 |
- 界面布局:
- 顶部:统计数字 + 平均分显示
- 中部:评价卡片列表
- 底部:回复操作
- 操作按钮:
- 「回复」→ 回复评价(权限:evaluation:list:update)
- 「查看详情」→ 查看评价详情
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-05 | 评价管理 | 02-小程序端 §9 | 通知报修人 | 服务评价(Web端) |
交互流程要求
-
页面加载:进入页面 → 加载评价统计 + 评价列表
-
回复操作:点击"回复"→ 弹窗输入回复内容 → 提交 → API调用 → 成功后通知报修人
-
查看详情:点击评价卡片 → 跳转评价详情页
-
异常处理:回复失败提示
-
[H1]防重复请求
- 回复操作:点击"回复"后按钮 disabled + 弹窗提交按钮 loading
- 筛选切换 abort 上次请求
-
[H2]超时与加载反馈
- 列表查询 timeout=15秒;回复提交 timeout=30秒
-
3秒 wx.showLoading;超时提示+重试
-
[H8]操作结果反馈
- 回复成功:wx.showToast({ icon: 'success', title: '回复成功' }) + 刷新
- 回复失败:wx.showToast({ icon: 'none', title: errMsg })
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 评分展示 | uni-rate | :size=16, :readonly=true |
| 回复状态标签 | uni-tag | 已回复:type="success", 未回复:type="warning" |
| 回复弹窗 | uni-popup | type="bottom" |
| 回复输入 | uni-easyinput | type="textarea", maxlength=200 |
校验规则
| 字段 | 规则 | 错误提示 |
|---|---|---|
| 回复内容 | 必填, 最大200字符 | "请输入回复内容" |
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 触摸区域≥44px
页面6:组织架构查看
- 页面路径:
/pages/manager/org - 适用角色:物业管理员/主管
- 页面元素:
- 班组列表
- 班组成员查看
- 人员基本信息查看
- 查询条件:
- 班组筛选
- 关键词搜索(姓名/职位)
- 列表字段:
| 字段 | 类型 | 说明 |
|---|---|---|
| 班组名称 | 文本 | 班组名 |
| 班组长 | 文本 | 负责人姓名 |
| 人数 | 数字 | 班组人数 |
| 技能标签 | 标签组 | 班组主要技能 |
- 界面布局:
- 顶部:搜索框 + 筛选
- 中部:班组卡片列表 → 点击展开成员列表
- 底部:无操作栏
- 操作按钮:
- 「查看班组」→ 展开班组成员列表
- 「查看人员」→ 查看人员详情
- 「拨打电话」→ 调用手机拨号功能
数据来源:与Web端组织架构同一数据源
需求追溯:
| 功能点编号 | 功能名称 | 文档来源 | 后续服务 | 关联功能 |
|---|---|---|---|---|
| MP-PM-06 | 组织架构查看 | 02-小程序端 §9 | 无 | 组织架构(Web端) |
交互流程要求
- 页面加载:进入页面 → 调用API加载班组列表
- 查看班组:点击班组卡片 → 展开班组成员列表(手风琴模式,同时只展开一个)
- 查看人员:点击人员 → 跳转人员详情页(姓名、职位、电话、技能标签)
- 拨打电话:点击"拨打电话"→ 调用
uni.makePhoneCall→ 拨号 - 搜索:输入关键词 → 实时筛选班组/人员
- 异常处理:拨号失败(无电话号码)→ 提示"该人员未设置联系电话"
前端硬性约束
- H1 防重复提交:
- 搜索/筛选请求使用 pending 标志位去重,避免频繁触发 API 调用。
- 页面卸载时(
onUnload)必须abort未完成的请求。- H2 超时处理:
- 班组列表(GET)接口超时 15秒;超过 3 秒未响应展示 loading 动画。
- 搜索防抖处理(300ms),避免高频输入触发过多请求。
- H8 操作反馈:
- 数据加载成功
uni.showToast({ icon: 'success', duration: 2000 }),拨号失败icon: 'none'提示具体原因。
组件规范
| 元素 | 组件 | 配置参数 |
|---|---|---|
| 搜索框 | uni-easyinput | placeholder="搜索姓名/职位", clearable |
| 班组卡片 | uni-card | :isFull=true, @click="toggleExpand" |
| 展开收起 | uni-icons | type="bottom"/"top" |
| 成员列表 | view | v-for, v-show="expanded" |
| 技能标签 | uni-tag | v-for, type="primary", size="mini" |
| 拨打电话按钮 | button | size="mini", type="primary", @click="makePhoneCall" |
校验规则
无
响应式布局
- 适配机型:iPhone SE ~ iPad mini
- 班组卡片全宽
- 成员列表全宽
- 触摸区域≥44px
业务规则
- 数据同步:管理员小程序端与Web端同一数据源,操作实时同步
- 功能简化:小程序端为简化版管理功能,完整管理操作在Web端进行
- 权限继承:管理员小程序端的权限与Web端角色权限一致,通过四级权限体系控制
- 双端审批:以下审批场景支持Web+小程序双端操作:
- 工单延期审批 ✅
- 工单分配 ✅
- 工单验收 ✅
- 打卡异常审核 ✅
- 数据补录审核 ✅
- 保洁抽查 ✅
- 仅限物业端审批:合同审批、合同变更审批、合同续签审批、付款确认、定标审批仅Web端(医院账号)
- 推送通知:审批待办通过微信小程序推送通知管理员
- 操作日志:所有管理操作记录审计日志
状态流转
管理员小程序端的状态流转与Web端一致,具体参见各模块文档:
- 报修工单流转 → 参见02-功能清单-物业公司/01-在线报修.md
- 巡检任务流转 → 参见02-功能清单-物业公司/02-巡检管理.md
- 保洁任务流转 → 参见02-功能清单-物业公司/03-保洁管理.md
双端审批对照表
| 审批场景 | Web端 | 小程序端 | 审批角色 |
|---|---|---|---|
| 工单延期审批 | ✅ | ✅ | 物业(主管) |
| 工单分配 | ✅ | ✅ | 物业(主管) |
| 工单验收 | ✅ | ✅ | 物业(主管/报修人) |
| 合同审批 | ✅ | — | 医院账号(仅Web端) |
| 合同变更审批 | ✅ | — | 医院账号(仅Web端) |
| 合同续签审批 | ✅ | — | 医院账号(仅Web端) |
| 付款确认 | ✅ | — | 医院账号(仅Web端) |
| 定标审批 | ✅ | — | 医院账号(仅Web端) |
| 打卡异常审核 | ✅ | ✅ | 物业(主管) |
| 数据补录审核 | ✅ | ✅ | 物业(主管) |
| 保洁抽查 | ✅ | ✅ | 物业(主管) |