一个轻量级(真的吗?)、跨平台的移动端 OA 前端解决方案。支持平台取决于Flutter。
🇨🇳 简体中文 | 🇺🇸 English
⚠️ 截图展示的 UI 样式可能不代表最新版本,实际界面以项目代码为准。
| 项目 | 仓库 | 说明 |
|---|---|---|
| 前端 | dream-oa | 本项目 |
| 后端 | dream-oa-api | .NET 后端服务 |
目前项目处于起步阶段,已实现以下功能:
- 用户认证:支持账号密码登录、Token 自动刷新。
- 打卡:上下班打卡、打卡信息展示。
- 审批流程:发起请假/加班申请,操作审批,查看我的申请。
- 个性化:多语言支持 (中文/英文)。
计划中功能:全局状态控制、自定义表单。
- Framework: Flutter 3.35.5 (Dart 3.9.2)
- State Management: Built-in setState
- Network: Dio 5.9.2
- Local Storage: SharedPreferences
- UI Components: 日历组件:flutter_calendar_carousel
作者开发环境
- Flutter SDK >= 3.35.5
- Dart SDK >= 3.9.2
- 克隆项目
git clone https://github.com/DREAMDREAM66/dream-oa.git cd dream-oa - 依赖与环境
# 下载依赖 flutter pub get # 可以运行flutter doctor检测运行环境是否完备 flutter doctor
- 配置
在项目根目录新建.env文件
.env 文件包含敏感信息,已加入 .gitignore,不会上传到仓库。# 写入后端接口地址 API_BASE_URL=https://your-api-domain.com/api - 编译运行
flutter run # 或者在指定设备运行 flutter run -d <设备ID>
- 应用图标
本项目采用flutter_launcher_icons包来生成图标,你可以进行以下操作将图标更改为你喜欢的:- 将你的图标源文件(oa_icon.png, 推荐1024x1024)放入assets/icons/目录。
- 在项目目录下运行
flutter pub run flutter_launcher_icons - 请求接口
本项目向后端请求的接口都在utils/api_client.dart下定义,你可以修改为你的APIfinal response = await dioClient.dio.get('/Common/current-time');
Fork 本项目后,编译 iOS 前需要修改以下配置:
-
用 Xcode 打开项目
open ios/Runner.xcworkspace
-
修改 Bundle Identifier
- 选择左侧
Runner项目 - 进入
Signing & Capabilities标签页 - 将
com.xcql.dreamoa改为你的唯一标识符(如com.yourname.yourapp)
- 选择左侧
-
选择开发者 Team
- 在同一页面的
Team下拉菜单中选择你的开发者账号
- 在同一页面的
-
编译运行
flutter run
💡 提示:Android 编译无需额外配置,直接
flutter build apk即可。
作者是刚接触开源世界的个人练习生,欢迎大家在各个角度提出宝贵的建议
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 新建 Feat_xxx 分支
- 提交代码
- 新建 Pull Request
本项目采用 MIT 许可证 开源。
简单来说:你可以自由使用、修改和商用,但请保留原作者版权声明。
详见 LICENSE 文件。








