Преглед на файлове

♻️ refactor(users): use DataScopeType enum instead of raw string values

- import DataScopeType enum in client and server files
- replace string enum literals with DataScopeType enum in user API schemas
- update example value to use enum in create user API schema
yourname преди 7 месеца
родител
ревизия
e12012b1d2
променени са 3 файла, в които са добавени 6 реда и са изтрити 3 реда
  1. 1 0
      src/client/admin/pages/Users.tsx
  2. 2 1
      src/server/api/users/[id]/put.ts
  3. 3 2
      src/server/api/users/post.ts

+ 1 - 0
src/client/admin/pages/Users.tsx

@@ -8,6 +8,7 @@ import dayjs from 'dayjs';
 import { roleClient, userClient } from '@/client/api';
 import RoleSelect from '@/client/admin/components/RoleSelect';
 import type { InferResponseType, InferRequestType } from 'hono/client';
+import { DataScopeType } from '@/server/modules/departments/department.enum';
 
 type UserListResponse = InferResponseType<typeof userClient.$get, 200>;
 type RoleListResponse = InferResponseType<typeof roleClient.$get, 200>;

+ 2 - 1
src/server/api/users/[id]/put.ts

@@ -6,6 +6,7 @@ import { ErrorSchema } from '@/server/utils/errorHandler';
 import { AppDataSource } from '@/server/data-source';
 import { AuthContext } from '@/server/types/context';
 import { UserSchema } from '@/server/modules/users/user.entity';
+import { DataScopeType } from '@/server/modules/departments/department.entity';
 
 const userService = new UserService(AppDataSource);
 
@@ -28,7 +29,7 @@ const UpdateUserSchema = z.object({
   isDisabled: UserSchema.shape.isDisabled.optional(),
   isDeleted: UserSchema.shape.isDeleted.optional(),
   defaultDepartmentId: z.number().int().positive().nullable().optional(),
-  dataScopeType: z.enum(['PERSONAL', 'DEPARTMENT', 'SUB_DEPARTMENT', 'COMPANY', 'CUSTOM']).optional(),
+  dataScopeType: z.nativeEnum(DataScopeType).optional(),
   roleIds: z.array(z.number().int().positive()).optional().openapi({
     description: '角色ID列表',
     example: [1, 2]

+ 3 - 2
src/server/api/users/post.ts

@@ -6,6 +6,7 @@ import { ErrorSchema } from '../../utils/errorHandler';
 import { AppDataSource } from '../../data-source';
 import { AuthContext } from '../../types/context';
 import { UserSchema } from '@/server/modules/users/user.entity';
+import { DataScopeType } from '@/server/modules/departments/department.entity';
 
 const userService = new UserService(AppDataSource);
 
@@ -31,9 +32,9 @@ const CreateUserSchema = UserSchema.omit({
     description: '默认部门ID',
     example: 1
   }),
-  dataScopeType: z.enum(['PERSONAL', 'DEPARTMENT', 'SUB_DEPARTMENT', 'COMPANY', 'CUSTOM']).optional().openapi({
+  dataScopeType: z.nativeEnum(DataScopeType).optional().openapi({
     description: '数据范围类型',
-    example: 'PERSONAL'
+    example: DataScopeType.PERSONAL
   }),
 })