fix: 1. 全局axios添加formData文件上传的检测,删除Content-Type让axios自动检测。

2. 完善入口模块管理的接口的对接。
3. 完善角色权限管理的接口对接和测试。
4. 完善主页的入口模块的图标的显示和图片的显示。
This commit is contained in:
2025-11-29 19:37:29 +08:00
parent 5600de413f
commit fb67f138dc
11 changed files with 290 additions and 164 deletions
+29 -7
View File
@@ -450,7 +450,9 @@ export async function saveRoleApiPermissions(
data_scope: 'ALL'
}));
const response = await post<any>(`/api/v3/rbac/roles/${roleId}/permissions`, {
// v3.4: 使用文档规范的API路径(查询参数方式)
const response = await post<any>('/api/v3/rbac/role-permissions', {
role_id: roleId,
permissions,
replace: true // 替换模式:先删除现有权限,再插入新权限
});
@@ -621,8 +623,10 @@ export async function getAllUsers(params?: {
if (params?.page_size) queryParams.page_size = params.page_size;
if (params?.username) queryParams.search = params.username;
// 使用 axios-client 的 get 函数,会自动添加 baseURL 和 Authorization
const response = await get<any>('/admin/users/users', queryParams);
// v3.3: 使用标准 RBAC API,后端会自动根据用户角色进行地区过滤
// 省级管理员: 返回所有地区用户
// 市级管理员: 只返回同地区用户
const response = await get<any>('/api/v2/users', queryParams);
if (response.error) {
throw new Error(response.error);
@@ -643,6 +647,8 @@ export async function getAllUsers(params?: {
}
}
console.log('获取的用户列表', users )
const userList = users.map(user => ({
id: user.user_id || user.id, // 优先使用 user_id,兼容不同的后端响应格式
@@ -685,6 +691,15 @@ export async function assignUserRoles(
throw new Error(response.error);
}
// v3.4: 检查后端返回的code200表示成功)
if (response.data && response.data.code && response.data.code !== 200) {
// 后端返回错误,如权限不足(403)等
return {
success: false,
message: response.data.message || '分配失败'
};
}
// 后端响应格式: { code: 200, message: "角色分配成功", data: { user_id, roles: [...] } }
let message = '用户角色分配成功';
if (response.data && response.data.message) {
@@ -995,7 +1010,10 @@ export async function getRolePermissions(roleId: number): Promise<RolePermission
try {
const { get } = await import('~/api/axios-client');
const response = await get<any>(`/api/v3/rbac/roles/${roleId}/permissions`);
// v3.4: 使用文档规范的API路径(查询参数方式)
const response = await get<any>('/api/v3/rbac/role-permissions', {
role_id: roleId
});
if (response.error) {
throw new Error(response.error);
@@ -1039,7 +1057,9 @@ export async function assignPermissionsToRole(
replace = false
): Promise<{ success: boolean; message: string }> {
try {
const response = await post<any>(`${RBAC_API_BASE}/roles/${roleId}/permissions`, {
// v3.4: 使用文档规范的API路径(查询参数方式)
const response = await post<any>(`${RBAC_API_BASE}/role-permissions`, {
role_id: roleId,
permissions: permissions.map(p => ({
permission_id: p.permission_id,
grant_type: p.grant_type || 'GRANT',
@@ -1072,8 +1092,9 @@ export async function updateRolePermission(
config: Partial<RolePermissionConfig>
): Promise<{ success: boolean; message: string }> {
try {
// v3.4: 使用文档规范的API路径(查询参数方式)
const response = await put<any>(
`${RBAC_API_BASE}/roles/${roleId}/permissions/${permissionId}`,
`${RBAC_API_BASE}/role-permissions?role_id=${roleId}&permission_id=${permissionId}`,
config
);
handleApiResponse<any>(response);
@@ -1098,7 +1119,8 @@ export async function revokeRolePermission(
permissionId: number
): Promise<{ success: boolean; message: string }> {
try {
const response = await del<any>(`${RBAC_API_BASE}/roles/${roleId}/permissions/${permissionId}`);
// v3.4: 使用文档规范的API路径(查询参数方式)
const response = await del<any>(`${RBAC_API_BASE}/role-permissions?role_id=${roleId}&permission_id=${permissionId}`);
handleApiResponse<any>(response);
return { success: true, message: '权限移除成功' };