feat: add user management features including user creation, editing, and role management

- Implemented user API functions for fetching, creating, updating, and managing users.
- Created a UsersPage component for displaying and managing users with search and pagination.
- Added types for user data and mutation payloads.
- Introduced a LegacyRouteRedirect component for handling legacy routes.
- Defined settings-related types for better type safety in settings management.
This commit is contained in:
ryan
2026-03-11 15:40:41 +08:00
parent 13cc880f67
commit 4f8970ff5c
30 changed files with 2577 additions and 99 deletions
@@ -1,10 +1,5 @@
import { ModulePageSkeleton } from '@/features/shared/components/module-page-skeleton';
import { FilesPage } from '@/features/files/components/files-page';
export default function FilesPage() {
return (
<ModulePageSkeleton
title='文件管理'
description='阶段 4 将在此接入文件列表、下载与管理交互。'
/>
);
export default function FilesRoute() {
return <FilesPage />;
}
+1 -1
View File
@@ -6,7 +6,7 @@ export default function DashboardPage() {
<div className='space-y-6'>
<PageHeader
title='ATSFlare 管理端迁移进度'
description='新版前端已完成认证与框架层迁移,当前进入阶段 3,优先接入核心业务模块。'
description='新版前端已完成认证、核心链路与阶段 4 边缘模块迁移,当前可继续推进联调与回归。'
/>
<DashboardOverview />
</div>
@@ -1,10 +1,5 @@
import { ModulePageSkeleton } from '@/features/shared/components/module-page-skeleton';
import { SettingsPage } from '@/features/settings/components/settings-page';
export default function SettingsPage() {
return (
<ModulePageSkeleton
title='设置'
description='阶段 4 将在此接入系统设置、运维设置与个人设置重组。'
/>
);
export default function SettingsRoute() {
return <SettingsPage />;
}
@@ -1,10 +1,5 @@
import { ModulePageSkeleton } from '@/features/shared/components/module-page-skeleton';
import { UsersPage } from '@/features/users/components/users-page';
export default function UsersPage() {
return (
<ModulePageSkeleton
title='用户管理'
description='阶段 4 将在此接入用户列表、角色管理与搜索体验。'
/>
);
export default function UsersRoute() {
return <UsersPage />;
}
@@ -0,0 +1,5 @@
import { AboutPage } from '@/features/about/components/about-page';
export default function AboutRoute() {
return <AboutPage />;
}
+5
View File
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacyFileRoute() {
return <LegacyRouteRedirect href='/files' />;
}
+5
View File
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacySettingRoute() {
return <LegacyRouteRedirect href='/settings' />;
}
+5
View File
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacyAddUserRoute() {
return <LegacyRouteRedirect href='/users' />;
}
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacyEditUserRoute() {
return <LegacyRouteRedirect href='/users' />;
}
+5
View File
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacyEditCurrentUserRoute() {
return <LegacyRouteRedirect href='/users' />;
}
+5
View File
@@ -0,0 +1,5 @@
import { LegacyRouteRedirect } from '@/features/shared/components/legacy-route-redirect';
export default function LegacyUserRoute() {
return <LegacyRouteRedirect href='/users' />;
}