AGILE TEAM
Skip to content

移动端 H5 — 概览 & 技术选型

项目简介

Robot H5 是基于 Vue 3.5 + Vite 7 + TypeScript 的企业级移动端 H5 应用框架,采用 Apple HIG Liquid Glass 设计语言,遵循 Linear 现代工具美学。项目内置权限体系、主题系统、原生桥接能力,可同时运行于移动浏览器、钉钉/微信 WebView、原生 App 内嵌等多端场景。

项目仓库

Robot_H5 — 与 PC 端 Robot_Admin 共用后端网关,前端独立部署。支持 standalone(独立运行)integrated(mbase 子应用) 双模式。


技术栈总览

核心框架

方向技术选型版本
框架Vue 3 Composition API^3.5.21
构建工具Vite 7^7.1.5
语言TypeScript~5.9.2
路由Vue Router 4^4.5.1
状态管理Pinia 3 + persistedstate^3.0.3
UI 组件库Vant 4(自动导入)^4.9.14
样式方案UnoCSS + SCSS + CSS @layer^66.5.1
图表ECharts 6^6.0.0
图标Iconify (Phosphor + Material)5.0.0
工具库VueUse^13.9.0
HTTPAxios(MAxios 封装)
Mockvite-plugin-mock + MockJS

基础能力包

说明
@miracle-web/utilsHTTP 请求封装(MAxios)、AES 加密、自定义指令
@robot-h5/coreH5 通用能力包 — 拍照/定位/扫码/NFC/文件上传下载/签名/录音/蓝牙/离线存储等 15 个 Hooks
@robot-admin/git-standardsGit 提交规范(commitizen + commitlint)
@vant/touch-emulator桌面端触摸模拟,开发调试用

开发工具链

工具版本用途
pnpm>=10.0.0包管理器(preinstall 强制锁定)
Node.js>=20.0.0运行时
ESLint 1010.2.0Flat Config 代码检查
vue-tsc^3.0.7Vue TS 类型检查(构建前强制执行)
Husky 9 + lint-staged9.1.7 / 16.4.0Git Hooks + 暂存区 lint
Commitizen + Commitlint4.3.1 / 20.5.0交互式规范提交
vite-plugin-mock^2.9.8开发阶段 Mock 数据

构建 & 部署

方向配置
部署平台Vercel / Nginx
构建压缩esbuild(生产自动 drop console/debugger)+ Gzip
移动端适配postcss-mobile-forever(px → vw 自动转换,基准 375px)
代码分割vendor-vue / vendor-vant / vendor-echarts 三路分包
CSS 层级@layer base, components, utilities 级联控制
Sourcemap生产关闭

五大模块

底部 TabBar 提供 5 大功能模块,覆盖开发全流程:

Tab模块说明
🏠 首页Dashboard问候语 + 快捷入口 + 每日金句 + 核心能力卡片
📦 组件组件中心16 个交互示例 + 开发工具(暗黑模式 / Eruda)
📋 模板模板中心10 大业务领域模板入口
⚡ 能力能力中心15 个 @robot-h5/core 设备能力 Hook 可交互演示
👤 我的个人中心账号设置 / 主题外观 / 关于 / 退出登录

组件中心(16 个示例)

示例路由亮点
主题设置/themeSetting暗黑/跟随系统、主题色、字体缩放、动画开关
状态缓存/keepAliveDemokeep-alive 计数器 + 表单 + 生命周期日志
404 页面/404Liquid Glass 毛玻璃动画
自定义指令/directivesv-long-press、v-ripple 等
SVG 图标/svgIcon本地 SVG + Iconify 在线图标
UnoCSS 样式/unoCss原子 CSS 能力展示
滚动位置缓存/scrollCache返回页面自动恢复滚动位置
下拉刷新列表/pullRefreshListCPullRefreshList 组件封装
渲染性能优化/requestAnimationFramerAF 动画帧对比
弹出层组合/popupDemoActionSheet / Popup 5 方位 / Dialog
手势交互/gestureDemoSwipeCell 删除、长按菜单、多按钮滑动
骨架屏/skeletonDemo基础骨架、商品卡片、联系人列表
表单验证/formDemoC_Form 异步校验、动态规则、多步骤表单
表格组件/tableDemoC_Table 虚拟滚动、排序、多选
客户档案/customerArchive完整 CRUD 业务模板
ECharts 图表/chart折线/饼图/仪表盘可视化

模板中心(10 大领域)

领域代码说明
客户管理CRM客户档案 / 跟进记录 / 商机
设备巡检INSPECT巡检计划 / 故障报修 / 备件
物流配送LOGISTICS运单 / 签收 / 轨迹
合同管理CONTRACT合同模板 / 审批流 / 归档
安全管理SAFETY隐患排查 / 应急预案
能源管理ENERGY能耗监控 / 碳排放
视频监控VIDEO实时流 / 回放 / AI 告警
质量管理QUALITY质检记录 / 不良追溯
营销活动MARKETING活动管理 / 优惠券 / 推送
运维管理OPS工单系统 / 值班排班

能力中心(15 个 Hook 演示)

分类Hooks说明
📸 影像采集useCamera · useVideoRecorder · useAudioRecorder拍照/录像/录音 + 实时预览
📍 定位扫描useLocation · useQrScanner · useNfcGPS 定位 + 二维码 + NFC
📁 文件处理useFileUpload · useFileDownload · useFilePreview分片上传 + 下载 + 预览
⚙️ 系统能力useBluetooth · useOfflineStorage · usePushNotification · usePermission蓝牙 / 离线 / 推送 / 权限
✨ 创意工具useSignature · useWatermark手写签名 + 图片水印

环境配置

环境文件Mock模式用途
开发.env.development开启standalone本地开发调试(Mock 数据)
SIT 测试.env.test关闭standalone对接测试环境后端
UAT 预发布.env.uat关闭standalone预发布验证
生产.env.production关闭standalone正式上线
集成模式.env.integrated关闭integrated作为 mbase 子应用构建
演示.env.vercel开启standaloneVercel 静态演示站

双模式运行机制

项目支持两种运行模式,通过 VITE_APP_MODE 环境变量切换:

维度standalone(默认)integrated
登录独立登录页从 mbase 获取 Token
部署路径/robot-h5//mbase/robot-h5/
网关自有后端网关共用 mbase 网关
权限完整权限体系权限由 mbase 统一管控

服务架构

┌─────────────┐     /api/*      ┌──────────────────────┐
│  Robot H5   │ ──────────────► │  后端网关             │ ──► 各微服务
│  (前端 SPA) │                 │  172.28.99.172:9000   │
└─────────────┘                 └──────────────────────┘
  • 单一网关:前端只对接一个后端地址,复用 PC 端已有微服务
  • Token 统一:登录获取,MAxios 拦截器自动携带,401 自动跳转登录
  • 权限同步:PC 端管理系统创建应用 robot-h5 并绑定菜单权限,H5 端动态获取
  • HTTP 重试:自动重试 2 次(间隔 1s),GET 请求加时间戳防缓存

权限体系

架构流程

打开 H5

无 Token → 登录页 → 获取 Token

GetUserInfo + loadPermissions(appId='robot-h5')

解析菜单树 → allowedPaths + buttonPermissions + tabBarMenus

路由守卫校验 → TabBar 动态渲染

菜单类型

menuType说明示例
D目录(TabBar 容器)底部导航分组
M菜单(页面路由)/dashboard、/order
B按钮(权限点)order:add、order:edit

权限校验方式

  • 路由级:路由守卫 isRouteAllowed(path) 校验访问权限
  • 按钮级v-permission="'order:add'" 指令 或 usePermission().hasPermission() Hook
  • TabBar 动态渲染:优先使用权限接口返回的菜单,兜底使用本地路由定义
  • 降级策略:权限数据为空时默认放行(Mock / 未对接场景不白屏)

设计系统

设计语言

Apple HIG Liquid Glass + Linear 现代工具美学,核心原则:克制、层次、一致、呼吸

颜色令牌(亮/暗双模式)

令牌亮色暗色用途
--ds-bg#FFFFFF#000000主背景
--ds-bg-secondary#F5F5F7#1C1C1E次级背景
--ds-surface#FFFFFF#1C1C1E浮层背景
--ds-text-primary#1D1D1F#F5F5F7主文字
--ds-text-secondary#6E6E73#98989D辅助文字
--ds-accent#0071E3#0A84FF品牌强调色
--ds-glass-bgrgba(255,255,255,0.52)rgba(30,30,35,0.68)毛玻璃背景
--ds-glass-blur40px40px毛玻璃模糊值

CSS @layer 优先级体系

@layer base         ← UnoCSS preflight(reset),最低
@layer components   ← 组件 SCSS(vite.config.ts 自动包裹),中
@layer utilities    ← UnoCSS 工具类(flex / mb-4),最高

排版 & 间距

  • 字号梯度:11 / 12 / 13 / 14 / 15 / 16 / 17 / 20 / 22 / 28 / 34 px
  • 间距(4px 网格):4 / 8 / 12 / 16 / 20 / 24 / 32 / 40 / 48 / 64
  • 圆角:sm(8px) / md(12px) / lg(16px) / xl(20px) / full(9999px)

全局组件

9 个全局组件,统一 C_ 前缀命名,通过 unplugin-vue-components 自动注册:

组件用途
<CNavBar>导航栏
<CIcon>UnoCSS 图标封装
<CSvgIcon>自定义 SVG 图标
<CPullRefreshList>下拉刷新 + 无限滚动
<C_Form>配置式表单(支持异步校验、动态规则)
<C_Table>移动端卡片式表格(虚拟滚动、排序、多选)
<C_Logo>品牌标识
<C_VirtualStatusBar>桌面端虚拟状态栏
<C_WebSite>WebView 容器

快速开始

bash
# 环境要求
node >= 20.0.0
pnpm >= 10.0.0

# 安装依赖
pnpm install

# 本地开发(Mock 模式)
pnpm dev

# 集成模式调试
pnpm dev:integrated

# 类型检查
pnpm type-check

# 构建各环境
pnpm build:test       # SIT
pnpm build:uat        # UAT
pnpm build:prod       # 生产
pnpm build:integrated # mbase 子应用

默认账号admin / 123456


版块导航

You may not distribute, modify, or sell this software without permission.