1. 登录返回总公司,分公司,部门信息。

2. 修改角色权限管理的分配用户的数据渲染和接口。
3. 交叉评查任务的创建的组织架构组件的重构。
This commit is contained in:
2026-01-21 10:04:04 +08:00
parent 9951f16e50
commit b97d0e1a0b
12 changed files with 1348 additions and 14006 deletions
+89 -1
View File
@@ -111,7 +111,16 @@ export interface RoleRoutePermission {
}
/**
* 用户信息
* 用户角色信息(用于用户列表中的角色显示)
*/
export interface UserRoleInfo {
role_id: number;
role_key: string;
role_name: string;
}
/**
* 用户信息(v3.4: 增加角色信息)
*/
export interface UserInfo {
id: number;
@@ -123,6 +132,10 @@ export interface UserInfo {
ou_name: string; // 部门名称,用于组织显示(部门级别)
status: number;
is_leader: boolean;
// v3.4: 用户角色信息(从 /api/v3/rbac/users 返回)
roles?: UserRoleInfo[];
tenant_name?: string; // 租户名称(多租户场景)
dep_name?: string; // 部门名称(多租户场景)
}
/**
@@ -664,6 +677,7 @@ export async function getRoleUsers(
/**
* 获取所有用户列表
* @param params 查询参数
* @deprecated 请使用 getUsersWithRoles 替代
*/
export async function getAllUsers(params?: {
page?: number;
@@ -726,6 +740,80 @@ export async function getAllUsers(params?: {
}
}
/**
* v3.4: 获取用户列表(含角色信息)
* 使用统一的 /api/v3/rbac/users 接口,一次性获取用户和角色信息
* @param params 查询参数
*/
export async function getUsersWithRoles(params?: {
page?: number;
page_size?: number;
area?: string;
nick_name?: string;
}): Promise<{
total: number;
page: number;
page_size: number;
items: UserInfo[];
}> {
try {
const queryParams: Record<string, any> = {};
if (params?.page) queryParams.page = params.page;
if (params?.page_size) queryParams.page_size = params.page_size;
if (params?.area) queryParams.area = params.area;
if (params?.nick_name) queryParams.nick_name = params.nick_name;
const response = await get<any>('/api/v3/rbac/users', queryParams);
if (response.error) {
throw new Error(response.error);
}
// 后端响应格式: { code: 200, message: "success", data: { total, page, page_size, items: [...] } }
let data: any;
if (response.data?.data) {
data = response.data.data;
} else if (response.data?.code === 200 && response.data) {
data = response.data;
} else {
data = response.data;
}
// console.log('获取的用户列表', data )
const items: UserInfo[] = (data.items || []).map((user: any) => ({
id: user.id,
username: user.username,
nick_name: user.nick_name,
phone_number: user.phone_number || '',
email: user.email || '',
area: user.area || '',
ou_name: user.ou_name,
ou_id: user.ou_id,
status: user.status || 0,
is_leader: user.is_leader || false,
roles: user.roles || [],
dep_name: user.dep_name,
tenant_name: user.tenant_name
}));
return {
total: data.total || 0,
page: data.page || 1,
page_size: data.page_size || 50,
items
};
} catch (error) {
console.error('❌ [getUsersWithRoles] 获取用户列表失败:', error);
return {
total: 0,
page: 1,
page_size: 50,
items: []
};
}
}
/**
* 为用户分配角色
* @param userId 用户ID