88 lines
2.3 KiB
TypeScript
88 lines
2.3 KiB
TypeScript
import axios from 'axios';
|
|
|
|
const API_BASE_URL = import.meta.env.VITE_API_BASE_URL || '';
|
|
|
|
// 权限相关类型定义
|
|
export interface Permission {
|
|
id?: number;
|
|
parentId?: number;
|
|
permissionCode: string;
|
|
permissionName: string;
|
|
type?: string;
|
|
path?: string;
|
|
method?: string;
|
|
icon?: string;
|
|
component?: string;
|
|
description?: string;
|
|
sortOrder?: number;
|
|
status?: number;
|
|
createTime?: string;
|
|
updateTime?: string;
|
|
children?: Permission[];
|
|
}
|
|
|
|
/**
|
|
* 获取所有权限列表
|
|
*/
|
|
export const getAllPermissions = async (): Promise<Permission[]> => {
|
|
const response = await axios.get(`${API_BASE_URL}/api/permissions`);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 获取权限树形结构
|
|
*/
|
|
export const getPermissionTree = async (): Promise<Permission[]> => {
|
|
const response = await axios.get(`${API_BASE_URL}/api/permissions/tree`);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 根据ID获取权限
|
|
*/
|
|
export const getPermissionById = async (id: number): Promise<Permission> => {
|
|
const response = await axios.get(`${API_BASE_URL}/api/permissions/${id}`);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 根据用户ID获取权限列表
|
|
*/
|
|
export const getPermissionsByUserId = async (userId: number): Promise<Permission[]> => {
|
|
const response = await axios.get(`${API_BASE_URL}/api/permissions/user/${userId}`);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 根据用户ID获取权限代码列表
|
|
*/
|
|
export const getPermissionCodesByUserId = async (userId: number): Promise<string[]> => {
|
|
const response = await axios.get(`${API_BASE_URL}/api/permissions/user/${userId}/codes`);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 创建权限
|
|
*/
|
|
export const createPermission = async (permission: Permission): Promise<Permission> => {
|
|
const response = await axios.post(`${API_BASE_URL}/api/permissions`, permission);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 更新权限
|
|
*/
|
|
export const updatePermission = async (id: number, permission: Partial<Permission>): Promise<boolean> => {
|
|
const response = await axios.put(`${API_BASE_URL}/api/permissions/${id}`, permission);
|
|
return response.data.data;
|
|
};
|
|
|
|
/**
|
|
* 删除权限
|
|
*/
|
|
export const deletePermission = async (id: number): Promise<boolean> => {
|
|
const response = await axios.delete(`${API_BASE_URL}/api/permissions/${id}`);
|
|
return response.data.data;
|
|
};
|
|
|