118 lines
3.1 KiB
TypeScript
118 lines
3.1 KiB
TypeScript
// 员工管理服务 - 处理员工相关的数据操作
|
|
import { EmployeeInfo } from '../types';
|
|
|
|
import apiService from './apiService';
|
|
|
|
/**
|
|
* 员工管理服务类
|
|
* 提供员工信息的增删改查功能
|
|
*/
|
|
class EmployeeService {
|
|
|
|
/**
|
|
* 构造函数
|
|
*/
|
|
constructor() {
|
|
// 不再使用模拟数据
|
|
}
|
|
|
|
/**
|
|
* 获取所有员工列表
|
|
* @returns 员工信息数组
|
|
*/
|
|
async getEmployees(): Promise<EmployeeInfo[]> {
|
|
try {
|
|
return await apiService.getEmployees();
|
|
} catch (error) {
|
|
console.error('获取员工列表失败:', error);
|
|
// API调用失败时返回空数组
|
|
return [];
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 添加新员工
|
|
* @param employeeInfo 员工信息
|
|
* @returns 添加的员工信息
|
|
*/
|
|
async addEmployee(employeeInfo: { name: string; phone: string; role: string }): Promise<EmployeeInfo> {
|
|
try {
|
|
return await apiService.addEmployee(employeeInfo);
|
|
} catch (error) {
|
|
console.error('添加员工失败:', error);
|
|
throw new Error('添加员工失败,请稍后重试');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 删除员工
|
|
* @param employeeId 员工ID
|
|
* @returns 删除结果
|
|
*/
|
|
async deleteEmployee(employeeId: number): Promise<{ success: boolean; message?: string }> {
|
|
try {
|
|
return await apiService.deleteEmployee(employeeId);
|
|
} catch (error) {
|
|
console.error('删除员工失败:', error);
|
|
return {
|
|
success: false,
|
|
message: '删除员工失败,请稍后重试'
|
|
};
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 更新员工信息
|
|
* @param employeeId 员工ID
|
|
* @param employeeInfo 员工信息
|
|
* @returns 更新后的员工信息
|
|
*/
|
|
async updateEmployee(employeeId: number, employeeInfo: { name?: string; phone?: string; role?: string }): Promise<EmployeeInfo> {
|
|
try {
|
|
return await apiService.updateEmployee(employeeId, employeeInfo);
|
|
} catch (error) {
|
|
console.error('更新员工信息失败:', error);
|
|
throw new Error('更新员工信息失败,请稍后重试');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 根据手机号查找员工
|
|
* @param phone 手机号
|
|
* @returns 员工信息或null
|
|
*/
|
|
async findEmployeeByPhone(phone: string): Promise<EmployeeInfo | null> {
|
|
const employees = await this.getEmployees();
|
|
return employees.find(emp => emp.phone === phone) || null;
|
|
}
|
|
|
|
/**
|
|
* 验证员工信息(用于注册时检查)
|
|
* @param name 姓名
|
|
* @param phone 手机号
|
|
* @returns 验证结果
|
|
*/
|
|
async validateEmployee(name: string, phone: string): Promise<{ success: boolean; message?: string; employee?: EmployeeInfo }> {
|
|
const employees = await this.getEmployees();
|
|
const employee = employees.find(emp => emp.name === name && emp.phone === phone);
|
|
|
|
if (employee) {
|
|
return {
|
|
success: true,
|
|
message: '员工信息验证成功',
|
|
employee
|
|
};
|
|
} else {
|
|
return {
|
|
success: false,
|
|
message: '员工信息不存在,请联系管理员添加'
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 员工管理服务单例实例
|
|
* 导出供应用程序全局使用
|
|
*/
|
|
export default new EmployeeService(); |