Files
cunkebao_v3/SuperAdmin/lib/admin-api.ts
2025-04-10 16:34:02 +08:00

133 lines
2.7 KiB
TypeScript

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<T> {
list: T[];
total: number;
page: number;
limit: number;
}
/**
* 管理员登录
* @param account 账号
* @param password 密码
* @returns 登录结果
*/
export async function login(
account: string,
password: string
): Promise<ApiResponse<{
id: number;
name: string;
account: string;
token: string;
}>> {
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<ApiResponse<PaginatedResponse<Administrator>>> {
// 构建查询参数
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<ApiResponse<AdministratorDetail>> {
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<ApiResponse<null>> {
return apiRequest('/administrator/update', 'POST', {
id,
...data
});
}
/**
* 添加管理员
* @param data 管理员数据
* @returns 添加结果
*/
export async function addAdministrator(
data: {
username: string;
name: string;
password: string;
permissionIds?: number[];
}
): Promise<ApiResponse<null>> {
return apiRequest('/administrator/add', 'POST', data);
}
/**
* 删除管理员
* @param id 管理员ID
* @returns 删除结果
*/
export async function deleteAdministrator(id: number | string): Promise<ApiResponse<null>> {
return apiRequest('/administrator/delete', 'POST', { id });
}