Files
WXProgram/miniprogram/services/employeeService.ts

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();