import { apiRequest, ApiResponse } from './api-utils'; // 管理员接口数据类型定义 export interface Administrator { id: number; username: string; name: string; role: string; status: number; createdAt: string; lastLogin: string; permissions: string[]; } // 管理员详情接口 export interface AdministratorDetail { id: number; username: string; name: string; authId: number; roleName: string; status: number; createdAt: string; lastLogin: string; permissions: string[]; } // 分页响应数据类型 export interface PaginatedResponse { list: T[]; total: number; page: number; limit: number; } /** * 管理员登录 * @param account 账号 * @param password 密码 * @returns 登录结果 */ export async function login( account: string, password: string ): Promise> { return apiRequest('/auth/login', 'POST', { account, password }); } /** * 获取管理员列表 * @param page 页码 * @param limit 每页数量 * @param keyword 搜索关键词 * @returns 管理员列表 */ export async function getAdministrators( page: number = 1, limit: number = 10, keyword: string = '' ): Promise>> { // 构建查询参数 const params = new URLSearchParams(); params.append('page', page.toString()); params.append('limit', limit.toString()); if (keyword) { params.append('keyword', keyword); } return apiRequest(`/administrator/list?${params.toString()}`); } /** * 获取管理员详情 * @param id 管理员ID * @returns 管理员详情 */ export async function getAdministratorDetail(id: number | string): Promise> { return apiRequest(`/administrator/detail/${id}`); } /** * 更新管理员信息 * @param id 管理员ID * @param data 更新的数据 * @returns 更新结果 */ export async function updateAdministrator( id: number | string, data: { username: string; name: string; password?: string; permissionIds?: number[]; } ): Promise> { return apiRequest('/administrator/update', 'POST', { id, ...data }); } /** * 添加管理员 * @param data 管理员数据 * @returns 添加结果 */ export async function addAdministrator( data: { username: string; name: string; password: string; permissionIds?: number[]; } ): Promise> { return apiRequest('/administrator/add', 'POST', data); } /** * 删除管理员 * @param id 管理员ID * @returns 删除结果 */ export async function deleteAdministrator(id: number | string): Promise> { return apiRequest('/administrator/delete', 'POST', { id }); }