1. 项目背景及简介
智机通是一个面向工程机械场景的全场景一体化管理平台。后端采用 Spring Boot 提供 RESTful API,前端分为 uni-app 移动端和 Vue 3 管理后台,覆盖考勤打卡、设备保养、任务激励、薪资核算、假勤审批等完整业务链路。
项目采用三端分离架构:移动端(moveAppPub)、管理后台(move-adminPub)、后端 API(move-apiPub),通过统一接口规范实现多端协同。
2. 目标客户
全栈/后端开发者:学习 Spring Boot + MyBatis 工程实践
前端开发者:参考 uni-app 跨端 + Vue 3 管理后台架构
技术负责人:了解垂直行业 SaaS 的技术选型思路
二次开发者:基于开源代码快速搭建行业解决方案
3. 平台定位
开源的工程机械行业数字化参考实现。提供从数据库设计、API 接口、前端页面到部署文档的完整技术栈,可作为二次开发的基础框架。
4. 平台技术
层级 | 技术栈 | 版本 |
|---|---|---|
移动端 | uni-app + Vue 2 + TuniaoUI + vue-i18n | Vue 2 |
管理后台 | Vue 3.2 + Vue Router 4 + Element Plus + Pinia 3 + ECharts | Vue CLI 5 |
后端 | Spring Boot + MyBatis + MySQL + Druid | Boot 2.6.2 |
鉴权 | JWT(java-jwt / jjwt)+ TokenHandlerInterceptor | - |
文档 | Springfox 3 + Knife4j 3.0.3 | - |
架构设计亮点:
统一响应协议:
Return(code/msg/data/maxPage)约定,多端对接零歧义灵活入参:
@RequestBody JSONObject减少 DTO 膨胀上下文路径规范:
server.servlet.context-path=/seaHouseApi,前后端路径约定清晰角色权限分流:侧栏按
roleId过滤路由,队长端有独立菜单和审核能力增量脚本管理:
resources/sql按功能拆分 DDL,支持灰度上线
5. 平台核心功能
考勤闭环:打卡 → 异常处理 → OT/中直 → 汇总 → 工资条,全链路数据贯通
假勤体系:请假/年假在线申请,队长移动端预审 + 管理员后台终审,年假余额可配置
设备保养:设备模板 → 保养计划 → 执行记录 → 上报追溯
积分激励:积分规则 → 积分记录 → 兑换 → 抽奖,提升机手参与度
审核风控:队长审核打卡自动排除本人,从机制上杜绝自审
6. 平台独特优势
三端分离清晰:移动端、管理端、后端独立工程,团队协作无冲突
跨端发布能力:uni-app 一套代码覆盖 iOS/Android/小程序/H5
权限粒度到菜单:队长角色独立路由,
DuiUsers绑定队长—队员关系大文件支持:500MB 级别 multipart 配置,现场照片/文档上传无忧
扩展能力预留:阿里云 OSS、微信公众号 SDK、高德地图加载器即插即用
7. 平台安装使用
# 1. 数据库初始化 mysql -u root -p < init.sql # 按需执行增量脚本 mysql -u root -p < sql/annual_leave.sql # 2. 后端启动 cd move-apiPub mvn clean package java -jar target/move-apiPub.jar # 接口地址:http://localhost:端口/seaHouseApi/ # 3. 管理后台 cd move-adminPub npm install npm run dev # 4. 移动端 cd moveAppPub # HBuilderX 运行或 uni-app CLI 构建接口调用示例:
// 管理后台请求封装(utils/request.js) import axios from'axios' import { ElMessage } from'element-plus' const service = axios.create({ baseURL: import.meta.env.VITE_APP_BASE_URL, timeout: 10000 }) service.interceptors.request.use(config => { config.headers['Authorization'] = `Bearer ${getToken()}` return config }) service.interceptors.response.use( response => { const res = response.data if (res.code !== 200) { ElMessage.error(res.msg || '请求失败') returnPromise.reject(newError(res.msg)) } return res.data }, error => { if (error.response?.status === 401) { // 未授权,跳转登录 window.location.href = '/login' } returnPromise.reject(error) } )8. 应用场景及案例说明
场景1:技术团队选型参考——Spring Boot + MyBatis 的标准工程实践
场景2:uni-app 跨端开发学习——一套代码覆盖 App/小程序/H5
场景3:二次开发基座——在现有功能上扩展行业定制需求
场景4:前后端分离教学——统一响应协议 + JWT 鉴权的完整实现
总结
智机通的技术架构不追求炫技,而是用成熟稳定的技术栈解决真实的行业问题。Spring Boot 做后端、uni-app 做移动端、Vue 3 做管理后台,加上清晰的增量脚本管理和统一接口规范,构成了一套可落地的工程实践。对于想学习全栈开发或做行业 SaaS 的开发者,这是一个很好的参考项目。
建议从后端 API 开始阅读源码,理解Return统一响应格式和 JWT 拦截器设计,再对比管理端和移动端的请求封装,体会多端协同的设计思路。