|
|
@@ -1,9 +1,10 @@
|
|
|
import React, { useState, useMemo, useCallback } from 'react';
|
|
|
import { useQuery } from '@tanstack/react-query';
|
|
|
import { format } from 'date-fns';
|
|
|
-import { Plus, Search, Edit, Trash2, Filter, X, Building2 } from 'lucide-react';
|
|
|
+import { Plus, Search, Edit, Trash2, Filter, X } from 'lucide-react';
|
|
|
import { userClient, userClientManager } from '../api/userClient';
|
|
|
import type { InferRequestType, InferResponseType } from 'hono/client';
|
|
|
+import { z } from 'zod';
|
|
|
import { Button } from '@d8d/shared-ui-components/components/ui/button';
|
|
|
import { Input } from '@d8d/shared-ui-components/components/ui/input';
|
|
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@d8d/shared-ui-components/components/ui/card';
|
|
|
@@ -16,7 +17,7 @@ import { zodResolver } from '@hookform/resolvers/zod';
|
|
|
import { toast } from 'sonner';
|
|
|
import { Skeleton } from '@d8d/shared-ui-components/components/ui/skeleton';
|
|
|
import { Switch } from '@d8d/shared-ui-components/components/ui/switch';
|
|
|
-import { CreateUserDto, UpdateUserDto } from '@d8d/user-module-mt/schemas';
|
|
|
+import { CreateUserDtoMt, UpdateUserDtoMt, RoleSchemaMt } from '@d8d/user-module-mt/schemas';
|
|
|
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@d8d/shared-ui-components/components/ui/select';
|
|
|
import { Popover, PopoverContent, PopoverTrigger } from '@d8d/shared-ui-components/components/ui/popover';
|
|
|
import { Calendar } from '@d8d/shared-ui-components/components/ui/calendar';
|
|
|
@@ -29,11 +30,17 @@ type UpdateUserRequest = InferRequestType<typeof userClient[':id']['$put']>['jso
|
|
|
type UserResponse = InferResponseType<typeof userClient.index.$get, 200>['data'][0];
|
|
|
|
|
|
// 直接使用后端定义的 schema
|
|
|
-const createUserFormSchema = CreateUserDto;
|
|
|
-const updateUserFormSchema = UpdateUserDto;
|
|
|
+const createUserFormSchema = CreateUserDtoMt;
|
|
|
+const updateUserFormSchema = UpdateUserDtoMt;
|
|
|
|
|
|
type CreateUserFormData = CreateUserRequest;
|
|
|
type UpdateUserFormData = UpdateUserRequest;
|
|
|
+// 适配后端返回的字符串日期格式
|
|
|
+type Role = Omit<z.infer<typeof RoleSchemaMt>, 'createdAt' | 'updatedAt'> & {
|
|
|
+ createdAt: string;
|
|
|
+ updatedAt: string;
|
|
|
+};
|
|
|
+
|
|
|
|
|
|
export const UserManagement = () => {
|
|
|
const [searchParams, setSearchParams] = useState({
|