时间显示到秒 & 表格之间的跳转页面

This commit is contained in:
Eamon
2026-05-13 14:57:27 +08:00
parent bc29a025b0
commit 284b0d6afe
25 changed files with 442 additions and 240 deletions

View File

@@ -3,7 +3,7 @@
import { zodResolver } from "@hookform/resolvers/zod"
import { format } from "date-fns"
import { useRouter } from "next/navigation"
import { Suspense, useCallback, useState } from "react"
import { Suspense, useCallback } from "react"
import { Controller, useForm } from "react-hook-form"
import { z } from "zod"
import { getPageCusts } from "@/actions/cust"
@@ -82,9 +82,8 @@ const filterSchema = z
type FormValues = z.infer<typeof filterSchema>
export default function CustPage() {
const [filters, setFilters] = useState<FilterValues>({})
const router = useRouter()
const { control, handleSubmit, reset } = useForm<FormValues>({
const { control, handleSubmit, reset, getValues } = useForm<FormValues>({
resolver: zodResolver(filterSchema),
defaultValues: {
account: "",
@@ -97,21 +96,27 @@ export default function CustPage() {
})
const fetchUsers = useCallback(
(page: number, size: number) => getPageCusts({ page, size, ...filters }),
[filters],
(page: number, size: number) => {
const result: FilterValues = {}
const filters = getValues()
if (filters.account?.trim()) result.account = filters.account.trim()
if (filters.name?.trim()) result.name = filters.name.trim()
if (filters.identified && filters.identified !== "all")
result.identified = filters.identified === "1"
if (filters.enabled && filters.enabled !== "all")
result.enabled = filters.enabled === "1"
if (filters.created_at_start)
result.created_at_start = new Date(filters.created_at_start)
if (filters.created_at_end)
result.created_at_end = new Date(filters.created_at_end)
return getPageCusts({ page, size, ...result })
},
[getValues],
)
const table = useDataTable<User>(fetchUsers)
const onFilter = handleSubmit(data => {
const result: FilterValues = {}
if (data.account?.trim()) result.account = data.account.trim()
if (data.name?.trim()) result.name = data.name.trim()
if (data.identified && data.identified !== "all")
result.identified = data.identified === "1"
if (data.enabled && data.enabled !== "all")
result.enabled = data.enabled === "1"
setFilters(result)
const onFilter = handleSubmit(() => {
table.pagination.onPageChange(1)
})
@@ -219,8 +224,14 @@ export default function CustPage() {
type="button"
variant="outline"
onClick={() => {
reset()
setFilters({})
reset({
account: "",
name: "",
identified: "all",
enabled: "all",
created_at_start: "",
created_at_end: "",
})
table.pagination.onPageChange(1)
}}
>
@@ -240,7 +251,10 @@ export default function CustPage() {
header: "创建时间",
accessorKey: "created_at",
cell: ({ row }) =>
format(new Date(row.original.created_at), "yyyy-MM-dd HH:mm"),
format(
new Date(row.original.created_at),
"yyyy-MM-dd HH:mm:ss",
),
},
// { header: "邮箱", accessorKey: "email" },
{
@@ -311,7 +325,7 @@ export default function CustPage() {
row.original.last_login
? format(
new Date(row.original.last_login),
"yyyy-MM-dd HH:mm",
"yyyy-MM-dd HH:mm:ss",
)
: "",
},