移动端概览
两个项目都包含独立的 ruoyi-fastapi-app。它不是 Web 管理端的响应式页面,而是一套基于 uni-app 的移动应用源码,可构建 H5、微信等小程序和 App;两套移动端调用与 Web 管理端相同的 FastAPI 登录、用户、字典和业务接口。
一套业务协议,两套实现
| 层次 | 两套移动端共用 | 必须按版本实现 |
|---|---|---|
| 后端协议 | 登录、验证码、用户资料、权限字符、业务响应和传输加密协议 | 无 |
| 页面模型 | pages.json、TabBar、页面栈、登录白名单和 uni API | SFC 脚本写法与状态访问 |
| 请求能力 | uni.request、Bearer Token、策略/公钥缓存、错误归一化 | User Store 调用入口 |
| 设备能力 | 图片选择、Canvas 裁剪、uni.uploadFile、WebView | Store 更新和组件语法 |
| 构建发布 | H5、小程序、App 的平台配置和验收目标 | Vite / Vue CLI、pnpm / Yarn、Tailwind 构建插件 |
Vue 3 移动端使用 Vite、组合式 API 和 Pinia;Vue 2 移动端使用 Vue CLI、Options API 和 Vuex。页面路径、后端 API 和多数模板结构相近,但两套构建配置、包管理命令和依赖目录不能混用。
应用进入可用状态的过程
- uni-app 运行入口创建应用,安装目标版本的 Store 和
$tab、$auth、$modal插件。 App.vue在onLaunch初始化应用配置;H5 同时检查本地是否存在 Token。- 首个页面和后续页面由
src/pages.json静态注册,不从后端菜单动态生成。 src/permission.js拦截navigateTo、redirectTo、reLaunch和switchTab,未登录访问受保护页面时回到登录页。- 登录页获取验证码并提交凭据,User Store 将 Token 写入
App-Token本地存储。 - 登录成功后请求
/getInfo,持久化用户 ID、名称、头像、角色和权限,再重启页面栈进入首页。 - 业务 API 通过统一请求层附加 Bearer Token,并按后端策略处理请求、响应加密和错误。
页面跳转拦截负责交互流程,后端鉴权负责真实安全边界。即使页面入口不可见或跳转被阻止,接口仍必须校验登录、功能权限和数据范围。
文档地图
| 模块 | 解决的问题 | 入口 |
|---|---|---|
| 认识移动端 | 代码放在哪里、选择哪个版本 | 工程结构与代码归属、版本选择与实现差异 |
| 运行时基础 | 后端地址、页面跳转、登录请求和用户状态怎样协作 | 后端地址与平台清单、页面与登录拦截、请求、认证与传输加密、用户状态、权限与字典 |
| 页面与设备能力 | 怎样开发业务页、上传图片和承载网页 | 开发一个移动端页面、上传、图片与 WebView |
| Vue 3 实现 | createSSRApp、Pinia、Vite 与 Tailwind | Vue 3 实现概览 |
| Vue 2 实现 | 根 Vue 实例、Vuex、Vue CLI 与 Tailwind | Vue 2 实现概览 |
| 构建发布 | 怎样交付 H5、小程序与 App,失败时怎样定位 | H5、小程序与 App 发布、移动端故障排查 |
按任务阅读
| 当前任务 | 推荐路径 |
|---|---|
| 第一次运行移动端 | 选择版本 → 对应版本的本地运行 → 后端地址与平台清单 |
| 登录页能打开但请求失败 | 后端地址与平台清单 → 请求、认证与传输加密 → 故障排查 |
| 新增一个业务功能 | 工程结构 → 开发一个移动端页面 → 页面与登录拦截 → 用户状态与权限 |
| 接入头像或附件 | 上传、图片与 WebView → 请求、认证与传输加密 |
| 样式在小程序中异常 | 对应版本的构建与样式专题 → 故障排查 |
| 准备正式发布 | 后端地址与平台清单 → 对应版本构建专题 → H5、小程序与 App 发布 |
当前能力边界
当前源码注册登录、注册、首页、工作台、个人中心、资料编辑、密码、设置、协议、WebView 和文本查看等页面。工作台中多数业务入口仍由页面本身声明,并非 Web 管理端的后端动态菜单;新增移动业务需要显式新增页面、API 与入口。
尚未启动共用后端时,先完成初始化共用后端。

