feat: restore settings routes for admin modules

This commit is contained in:
wren
2026-04-29 18:39:45 +08:00
parent 1b67358e5b
commit 790b9566e1
3 changed files with 15 additions and 13 deletions
+4 -4
View File
@@ -271,7 +271,7 @@ export async function getRoleDetail(roleId: number): Promise<RoleInfo | null> {
export async function getRoutes(): Promise<RouteInfo[]> { export async function getRoutes(): Promise<RouteInfo[]> {
try { try {
// 调用后端API获取当前用户的路由(provincial_admin应该有所有路由权限) // 调用后端API获取当前用户的路由(provincial_admin应该有所有路由权限)
const response = await get<any>('/rbac/user/routes'); const response = await get<any>('/api/rbac/user/routes');
if (response.error) { if (response.error) {
console.error('❌ [getRoutes] API调用失败:', response.error); console.error('❌ [getRoutes] API调用失败:', response.error);
@@ -375,7 +375,7 @@ export async function getAllRoutes(
export async function getRoleRoutePermissions(roleId: number): Promise<RoleRoutePermission[]> { export async function getRoleRoutePermissions(roleId: number): Promise<RoleRoutePermission[]> {
try { try {
// 使用 axios-client 的 get 函数调用真实后端API // 使用 axios-client 的 get 函数调用真实后端API
const response = await get<any>(`/rbac/roles/${roleId}/routes`); const response = await get<any>(`/api/rbac/roles/${roleId}/routes`);
if (response.error) { if (response.error) {
throw new Error(response.error); throw new Error(response.error);
@@ -417,7 +417,7 @@ export async function getRoleRoutesWithPermissions(roleId: number): Promise<{
selectedPermissionIds: number[]; selectedPermissionIds: number[];
}> { }> {
try { try {
const response = await get<any>(`/rbac/roles/${roleId}/routes`); const response = await get<any>(`/api/rbac/roles/${roleId}/routes`);
if (response.error) { if (response.error) {
throw new Error(response.error); throw new Error(response.error);
@@ -566,7 +566,7 @@ export async function updateRoleRoutePermissions(
): Promise<{ success: boolean; message: string; code?: number }> { ): Promise<{ success: boolean; message: string; code?: number }> {
try { try {
// 使用 axios-client 的 put 函数调用真实后端API // 使用 axios-client 的 put 函数调用真实后端API
const response = await put<any>(`/rbac/roles/${roleId}/routes`, { const response = await put<any>(`/api/rbac/roles/${roleId}/routes`, {
route_ids: routeIds, route_ids: routeIds,
permission: 'RW' permission: 'RW'
}); });
+4 -1
View File
@@ -2,7 +2,10 @@ export const MINIMAL_MENU_PREFIXES = [
'/home', '/home',
'/chat-with-llm', '/chat-with-llm',
'/files', '/files',
'/documents' '/documents',
'/settings',
'/entry-modules',
'/role-permissions'
] as const; ] as const;
export const MINIMAL_HOME_TARGETS = [ export const MINIMAL_HOME_TARGETS = [
+7 -8
View File
@@ -6,14 +6,13 @@ import { Modal } from "~/components/ui/Modal";
import { toastService } from "~/components/ui/Toast"; import { toastService } from "~/components/ui/Toast";
import { import {
getRoles, getRoles,
getRoutes, getAllRoutes,
getRoleRoutePermissions, getRoleRoutePermissions,
updateRoleRoutePermissions, updateRoleRoutePermissions,
getRoleRoutesWithPermissions, getRoleRoutesWithPermissions,
saveRoleApiPermissions, saveRoleApiPermissions,
getRolePermissions, getRolePermissions,
getRoleUsers, getRoleUsers,
getAllUsers,
getUsersWithRoles, getUsersWithRoles,
assignUserRoles, assignUserRoles,
createRole, createRole,
@@ -75,14 +74,14 @@ export async function clientLoader({ request }: ClientLoaderFunctionArgs) {
try { try {
const [roles, routes, users] = await Promise.all([ const [roles, routes, users] = await Promise.all([
getRoles(), getRoles(),
getRoutes(), getAllRoutes(),
getAllUsers() getUsersWithRoles()
]); ]);
return { return {
roles, roles,
routes, routes,
users users: users.items || []
}; };
} catch (error) { } catch (error) {
console.error("加载数据失败:", error); console.error("加载数据失败:", error);
@@ -1047,15 +1046,15 @@ export default function RolePermissions() {
const [rolesData, routesData, usersData] = await Promise.all([ const [rolesData, routesData, usersData] = await Promise.all([
getRoles(), getRoles(),
getRoutes(), getAllRoutes(),
getAllUsers() getUsersWithRoles()
]); ]);
// v3.3: 角色列表对所有人可见(不过滤) // v3.3: 角色列表对所有人可见(不过滤)
const filteredRoles = rolesData; const filteredRoles = rolesData;
// v3.3: 根据用户地区过滤可见的用户列表 // v3.3: 根据用户地区过滤可见的用户列表
const filteredUsers = usersData; const filteredUsers = usersData.items || [];
// let filteredUsers = usersData; // let filteredUsers = usersData;
// if (isCityAdmin && currentUserArea) { // if (isCityAdmin && currentUserArea) {
// // 市级管理员只能看到同地区的用户(使用 area 字段) // // 市级管理员只能看到同地区的用户(使用 area 字段)