2
0
فهرست منبع

✨ feat(admin): add file management feature

- add uuid package dependency for unique file identifiers
- add file management menu item with icon
- add files route configuration
- add FilesPage component for file management interface
yourname 6 ماه پیش
والد
کامیت
cbaf151fdf
4فایلهای تغییر یافته به همراه18 افزوده شده و 0 حذف شده
  1. 1 0
      package.json
  2. 3 0
      pnpm-lock.yaml
  3. 8 0
      src/client/admin/menu.tsx
  4. 6 0
      src/client/admin/routes.tsx

+ 1 - 0
package.json

@@ -88,6 +88,7 @@
     "tailwind-merge": "^3.3.1",
     "tw-animate-css": "^1.3.7",
     "typeorm": "^0.3.25",
+    "uuid": "^11.1.0",
     "vaul": "^1.1.2",
     "vod-js-sdk-v6": "1.7.1-beta.1",
     "zod": "^4.0.17"

+ 3 - 0
pnpm-lock.yaml

@@ -233,6 +233,9 @@ importers:
       typeorm:
         specifier: ^0.3.25
         version: 0.3.25(ioredis@5.6.1)(mysql2@3.14.2)(reflect-metadata@0.2.2)
+      uuid:
+        specifier: ^11.1.0
+        version: 11.1.0
       vaul:
         specifier: ^1.1.2
         version: 1.1.2(@types/react-dom@19.1.6(@types/react@19.1.8))(@types/react@19.1.8)(react-dom@19.1.0(react@19.1.0))(react@19.1.0)

+ 8 - 0
src/client/admin/menu.tsx

@@ -13,6 +13,7 @@ import {
   CodeOutlined,
   CalendarOutlined,
 } from '@ant-design/icons';
+import { File } from 'lucide-react';
 
 export interface MenuItem {
   key: string;
@@ -90,6 +91,13 @@ export const useMenu = () => {
       path: '/admin/users',
       permission: 'user:manage'
     },
+    {
+      key: 'files',
+      label: '文件管理',
+      icon: <File className="h-4 w-4" />,
+      path: '/admin/files',
+      permission: 'file:manage'
+    },
     {
       key: 'classroom-data',
       label: '教室数据管理',

+ 6 - 0
src/client/admin/routes.tsx

@@ -12,6 +12,7 @@ import { StockDataPage } from './pages/StockDataPage';
 import { StockXunlianCodesPage } from './pages/StockXunlianCodesPage';
 import { DateNotesPage } from './pages/DateNotesPage';
 import { LoginPage } from './pages/Login';
+import { FilesPage } from './pages/Files';
 
 export const router = createBrowserRouter([
   {
@@ -44,6 +45,11 @@ export const router = createBrowserRouter([
         element: <UsersPage />,
         errorElement: <ErrorPage />
       },
+      {
+        path: 'files',
+        element: <FilesPage />,
+        errorElement: <ErrorPage />
+      },
       {
         path: 'classroom-data',
         element: <ClassroomDataPage />,