Flutter人力资源管理插件beetlehr_sdk的使用
Flutter人力资源管理插件beetlehr_sdk的使用
简介
The BeetleHR SDK Flutter 是一个强大的软件开发工具包,允许开发者将 BeetleHR 的功能集成到他们的 Flutter 应用程序中。BeetleHR 是一个人力资源管理平台,提供了多种与员工管理相关的功能,例如考勤跟踪、请假管理和员工绩效评估。本文档将指导您如何在 Flutter 项目中集成和使用 BeetleHR SDK。
功能
以下是我们的 SDK 提供的所有功能,利用它们可以简化您的开发过程。
服务器
- ✅ 从指定端点获取服务器状态
员工认证
- ✅ 使用电子邮件和密码登录
- ✅ 使用电子邮件重置密码
员工档案
- ✅ 获取员工档案信息
- ✅ 更新员工档案
员工考勤
- ✅ 获取考勤概览
- ✅ 上传考勤图片
- ✅ 获取考勤记录
- ✅ 检查分支机构
- ✅ 获取考勤详情
- ✅ 检查打卡接受状态
- ✅ 打卡考勤
- ✅ 获取排班信息
- ✅ 检查接受打卡考勤
- ✅ 获取排班日志
- ✅ 获取打卡按钮类型
- ✅ 同步考勤数据
- ✅ 上传考勤图片
- ✅ 取消考勤记录
- ✅ 处理休息时间
- ✅ 检查休息时间设置
员工通知
- ✅ 获取公告板数据
- ✅ 根据指定参数获取所有审批请求
- ✅ 获取审批请求详情
- ✅ 使用提供的 [body] 和 [id] 批准请求
- ✅ 拒绝请求并返回响应
- ✅ 获取通知数据并返回响应
- ✅ 根据 [id] 获取通知详情
- ✅ 根据姓名过滤参数获取员工数据
员工薪资
- ✅ 获取薪资列表
- ✅ 获取薪资详情
- ✅ 获取节日津贴(THR)薪资列表
- ✅ 获取节日津贴(THR)薪资详情
BeetleHR SDK 版本
注意:已更新到带有新功能的新版本 SDK。
文档
开始使用
添加依赖
您可以在 pubspec.yaml
文件中添加 beetlehr_sdk 或使用以下命令以最新稳定版本添加 beetlehr_sdk 作为依赖项:
flutter pub add beetlehr_sdk
如果您想直接从 GitHub 获取 SDK,可以在 pubspec.yaml
中添加如下内容:
dependencies:
flutter:
sdk: flutter
beetlehr_sdk:
git:
url: https://github.com/kodingworks/beetlehr_sdk.git
ref: master # 分支名称
初始化客户端
在使用 SDK 的功能之前,请确保初始化客户端。您可以使用依赖注入(DI),例如 get_it
包。这样就无需每次都初始化客户端。以下是一个初始化示例:
BeetleHRClient client = BeetleHRClient(
'https://demo.beetlehr.com/api/v1',
isLog: true,
);
简单使用示例
以下是如何使用电子邮件和密码进行登录的示例。您不需要手动保存令牌,因为该包已经帮助保存了它。但我们仍然会从登录结果中返回令牌,以便您可以用于其他目的。以下是示例代码:
void login() async {
try {
final client = BeetleHRClient(
'https://demo.beetlehr.com/api/v1',
isLog: true,
);
final result = await client.loginWithEmail(
email: 'email@email.com',
password: 'password',
);
print(result.meta); // 返回元数据
print(result.token); // 返回字符串
print(result.user); // 返回用户模型
} catch (e) {
print('Something went wrong!');
}
}
错误处理
以下是可能抛出的异常和失败情况:
名称 | 项目 |
---|---|
异常 | ServerException |
GeneralServerException | |
TimeOutServerException | |
NotFoundServerException | |
UnAuthenticationServerException | |
UnAuthorizeServerException | |
InternalServerException | |
失败 | CodeFailure |
ServerFailure |
社区与讨论组
您可以通过 Telegram 群组加入我们: Telegram Group
贡献
如果您希望贡献并加入我们的社区,非常欢迎!请注意,在提交拉取请求时,请务必清楚地编写提交消息。当您贡献代码时,最好模仿现有的 BeetleHR 代码模式。
许可证
BeetleHR SDK 是在 MIT 许可证 下发布的。
完整示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用程序中使用 BeetleHR SDK 进行登录:
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
// 初始化 BeetleHR 客户端。
final client = BeetleHRClient(
'https://demo.beetlehr.com/api/v1',
isLog: true,
);
/// 应用程序根部件。
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
useMaterial3: true,
),
home: const HomePage(),
);
}
}
/// 应用程序主页面。
class HomePage extends StatefulWidget {
const HomePage({Key? key}) : super(key: key);
[@override](/user/override)
State<HomePage> createState() => _HomePageState();
}
class _HomePageState extends State<HomePage> {
final TextEditingController emailController = TextEditingController();
final TextEditingController passwordController = TextEditingController();
[@override](/user/override)
void initState() {
super.initState();
// 检查用户是否已认证。
checkAuth();
}
/// 检查用户是否已认证。
void checkAuth() async {
final result = await client.checkToken();
await Future.delayed(const Duration(seconds: 1));
if (result) {
// 如果用户已认证,导航到主页面。
navigate();
}
}
/// 导航到主页面。
void navigate() {
Navigator.pushAndRemoveUntil(
context,
MaterialPageRoute(
builder: (context) => const MainPage(),
),
(route) => false,
);
}
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: const Text('登录')),
body: ListView(
padding: const EdgeInsets.all(16),
children: [
TextFormField(
controller: emailController,
decoration: const InputDecoration(hintText: '请输入您的邮箱'),
keyboardType: TextInputType.emailAddress,
onChanged: (v) {
setState(() {});
},
),
const SizedBox(height: 16),
TextFormField(
controller: passwordController,
decoration: const InputDecoration(hintText: '请输入您的密码'),
keyboardType: TextInputType.visiblePassword,
onChanged: (v) {
setState(() {});
},
),
const SizedBox(height: 42),
ElevatedButton(
onPressed: () {
if (emailController.text.isEmpty) {
notify('请先输入邮箱!');
} else if (passwordController.text.isEmpty) {
notify('请先输入密码!');
} else if (passwordController.text.isNotEmpty &&
emailController.text.isNotEmpty) {
// 提交登录表单。
submit();
}
},
child: const Text('登录'),
)
],
),
);
}
/// 提交登录表单。
void submit() async {
try {
final result = await client.loginWithEmail(
email: emailController.text,
password: passwordController.text,
);
if (result.meta?.success == true) {
// 如果登录成功,导航到主页面。
navigate();
} else {
// 如果登录失败,显示错误消息。
notify(result.meta?.message ?? '发生错误!');
}
} catch (e) {
// 如果登录过程中发生错误,显示通用错误消息。
notify('发生错误!');
}
}
/// 显示通知栏。
void notify(String message) {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text(message)),
);
}
}
/// 已认证页面。
class MainPage extends StatelessWidget {
const MainPage({Key? key}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return const Scaffold(
body: Center(child: Text('已认证')),
);
}
}
更多关于Flutter人力资源管理插件beetlehr_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter人力资源管理插件beetlehr_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
beetlehr_sdk
是一个用于人力资源管理的 Flutter 插件,通常用于集成企业的人力资源管理功能,如考勤、审批、员工信息管理等。以下是如何在 Flutter 项目中使用 beetlehr_sdk
的基本步骤。
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 beetlehr_sdk
的依赖。
dependencies:
flutter:
sdk: flutter
beetlehr_sdk: ^1.0.0 # 请根据实际情况使用最新版本
然后运行 flutter pub get
来获取依赖。
2. 初始化 SDK
在使用 beetlehr_sdk
之前,你需要在应用的启动时初始化 SDK。通常可以在 main.dart
文件中进行初始化。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化 BeetleHR SDK
await BeetleHR.init(
appId: 'your_app_id',
appSecret: 'your_app_secret',
baseUrl: 'https://api.example.com', // 替换为实际的 API 地址
);
runApp(MyApp());
}
3. 登录与鉴权
通常,用户需要登录后才能使用人力资源管理功能。你可以使用 beetlehr_sdk
提供的登录方法。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
Future<void> login() async {
try {
final response = await BeetleHR.login(
username: 'user@example.com',
password: 'password',
);
print('Login successful: ${response.token}');
} catch (e) {
print('Login failed: $e');
}
}
4. 获取员工信息
登录成功后,你可以获取当前登录用户的信息。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
Future<void> getEmployeeInfo() async {
try {
final employee = await BeetleHR.getEmployeeInfo();
print('Employee Info: ${employee.name}, ${employee.email}');
} catch (e) {
print('Failed to get employee info: $e');
}
}
5. 考勤打卡
beetlehr_sdk
通常也支持考勤打卡功能。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
Future<void> punchIn() async {
try {
final response = await BeetleHR.punchIn(latitude: 37.7749, longitude: -122.4194);
print('Punch in successful: ${response.message}');
} catch (e) {
print('Punch in failed: $e');
}
}
6. 获取考勤记录
你还可以获取用户的考勤记录。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
Future<void> getAttendanceRecords() async {
try {
final records = await BeetleHR.getAttendanceRecords(startDate: '2023-01-01', endDate: '2023-12-31');
for (var record in records) {
print('Date: ${record.date}, Status: ${record.status}');
}
} catch (e) {
print('Failed to get attendance records: $e');
}
}
7. 处理异常
在使用 SDK 的过程中,可能会遇到各种异常,比如网络问题、鉴权失败等。你应该妥善处理这些异常。
try {
// 调用 SDK 的方法
} catch (e) {
print('An error occurred: $e');
}
8. 注销登录
当用户退出应用时,可以调用注销方法。
import 'package:beetlehr_sdk/beetlehr_sdk.dart';
Future<void> logout() async {
try {
await BeetleHR.logout();
print('Logout successful');
} catch (e) {
print('Logout failed: $e');
}
}
9. 其他功能
beetlehr_sdk
可能还提供了其他功能,如审批流程、请假申请等。你可以根据实际需求调用相应的 API。
10. 注意事项
- 确保在使用 SDK 之前已经正确初始化。
- 处理网络请求时,考虑网络异常和超时情况。
- 根据实际业务需求,合理使用 SDK 提供的功能。
参考文档
建议查阅 beetlehr_sdk
的官方文档,以获取更详细的使用说明和 API 参考。
// 示例代码仅供参考,实际使用时请根据 SDK 的文档进行调整。