From 5c299387301a99f189bfa3573ec69c3dee5b8607 Mon Sep 17 00:00:00 2001 From: tone <3341154833@qq.com> Date: Mon, 12 May 2025 12:18:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=89=8D=E7=AB=AF=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E4=BF=AE=E6=94=B9user=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/admin/dto/admin-user/update.dto.ts | 2 +- .../app/console/(with-menu)/user/page.tsx | 31 ++++++++++++++----- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/tone-page-server/src/admin/dto/admin-user/update.dto.ts b/tone-page-server/src/admin/dto/admin-user/update.dto.ts index 994b9f4..25c0d1a 100644 --- a/tone-page-server/src/admin/dto/admin-user/update.dto.ts +++ b/tone-page-server/src/admin/dto/admin-user/update.dto.ts @@ -1,4 +1,4 @@ -import { IsEmail, IsOptional, IsString, Length, Matches, ValidateIf } from "class-validator"; +import { IsEmail, IsOptional, IsString, Length, Matches } from "class-validator"; export class UpdateDto { @IsString({ message: '用户名不得为空' }) diff --git a/tone-page-web/app/console/(with-menu)/user/page.tsx b/tone-page-web/app/console/(with-menu)/user/page.tsx index d901b55..78745e1 100644 --- a/tone-page-web/app/console/(with-menu)/user/page.tsx +++ b/tone-page-web/app/console/(with-menu)/user/page.tsx @@ -6,12 +6,30 @@ import { TooltipContent, TooltipProvider, TooltipTrigger, Tooltip } from "@/comp import { useUserList } from "@/hooks/admin/user/use-user-list"; import { useState } from "react"; import { UserInfoEditor } from "./components/user-info-editor"; +import { User } from "@/lib/types/user"; export default function Page() { - const { users, isLoading, error, total, page, pageSize } = useUserList(); + const { users, isLoading, error, total, page, pageSize, mutate } = useUserList(); const [editorUserId, setEditorUserId] = useState(""); + const handleUserUpdate = async (newUser: User) => { + await mutate( + (data) => { + if (!data) return data; + return { + ...data, + items: data.items.map((user) => + user.userId === newUser.userId ? newUser : user + ), + }; + }, + { + revalidate: false, + } + ) + } + return ( <>