移动端 HRM
友情提示
本文讲解 yudao 移动端(uni-app 版)的 HRM 系统,重点说清楚两件事:HRM 模块已经提供手机端、当前支持的主要功能。
- 仓库:https://github.com/yudaocode/yudao-ui-admin-uniapp (opens new window),基于
uni-app+Vue3+wot-ui实现,支持 H5、微信小程序等多端。 - 后端:复用 PC 端同一套
yudao-module-hrm模块与/hrm/**接口,移动端只是换了一层 UI。
# 1. 移动端功能
移动端按「管理端 + 员工端」两条线组织,菜单分组与 PC 端保持一致:
- 工作台:HR 工作台、团队工作台。
- 组织与员工:组织架构、员工档案、员工设置。
- 招聘管理:候选人、招聘职位、招聘渠道、淘汰原因。
- 考勤管理:打卡记录、请假记录、月度汇总、考勤组设置、节假日设置。
- 社保管理:社保表、社保方案。
- 薪资管理:月度工资表、历史工资表、薪资档案、发放记录,以及薪资组、计税规则、计薪设置、工资表设置、调薪模板等配置。
- 绩效管理:KPI 考核、绩效档案、考核指标模板、考核结果设置。
- HRM 员工端:个人工作台、我的档案、我的社保、我的工资条、打卡、考勤报表、KPI 考核、我的绩效档案。

其中打卡是移动端独有的功能,PC 端员工端只能查看打卡记录,详见下一节。
# 2. 员工打卡
对应 [HRM 人力资源 -> HRM 员工端 -> 打卡] 菜单,页面在 pages-hrm/portal/attendance/clock/ 目录,由 HrmPortalAttendanceClockController 提供接口(/hrm/portal/attendance/clock)。
页面底部分「打卡」和「统计」两个页签:前者由 clock-panel.vue 完成当日打卡,后者由 statistics-panel.vue 展示本月考勤汇总。

# 2.1 打卡流程
进入页面时调用 get-detail 获取当日打卡详情:所属考勤组、班次时点、是否休息日、考勤组配置的打卡地点与 WiFi、当日打卡时间线,以及下一次该打的卡(上班还是下班)。
点击打卡按钮后,前端先做设备校验,再调用 create 提交,请求体携带定位地址、经纬度和 WiFi 的 ssid、mac。打卡成功后刷新时间线,写入的记录 source_type = 1(手机端)。
按钮文案会跟着 nextClock.buttonStatus 变化,区分正常打卡、迟到打卡、早退打卡和更新打卡;休息日则提示「今日休息,无需打卡」。
# 2.2 定位与 WiFi 校验
校验规则来自考勤组的开关,两者可以同时开启:
- 定位打卡(
open_point_card):读取当前定位,按考勤组配置的经纬度和radius半径逐个比对,只要落在任一地点范围内即视为有效;否则提示「当前不在考勤范围」。 - WiFi 打卡(
open_wifi_card):读取当前连接的 WiFi,MAC 或 SSID 命中任一配置项即可,比对时会去掉 SSID 两端的引号、忽略 MAC 的分隔符和大小写。
考勤组的定位、WiFi 配置详见 《【考勤】考勤管理》。
WiFi 打卡的端限制
读取 WiFi 信息依赖运行环境:H5 端无法获取 WiFi,此时页面会提示「当前端不支持读取 WiFi,请使用支持的 App 或微信小程序打卡」。因此启用了 WiFi 打卡的企业,需要引导员工用 App 或小程序,不要只发 H5 链接。
其它与 PC 端的差异
除打卡外,部分重编排类操作仍建议在 PC 端完成,例如工资表在线编辑、工资条模板的分类拖拽。
# 3. 启动与发布
- 启动:参考 《快速启动【前端】》 文档的「1.4 Vue3 + uni-app 版本」小节。
- 发布:参考 《运行发布》 文档。
启动完成后,在工作台选择「HRM 人力资源」即可进入。
别忘了先开启 HRM 模块
移动端复用后端同一套接口,因此 《功能开启》 里的模块启用和 SQL 导入同样是前提;菜单可见性也由 hrm:** 权限控制。
# 4. 代码位置
- 页面:
src/pages-hrm/、src/pages-statistics/hrm/ - 接口:
src/api/hrm/ - 菜单:
src/pages/index/menu.json的hrm分组