时间显示到秒 & 表格之间的跳转页面
This commit is contained in:
@@ -1,19 +1,15 @@
|
||||
"use client"
|
||||
import { zodResolver } from "@hookform/resolvers/zod"
|
||||
import { format } from "date-fns"
|
||||
import { Suspense, useCallback, useState } from "react"
|
||||
import { useRouter, useSearchParams } from "next/navigation"
|
||||
import { Suspense, useCallback } from "react"
|
||||
import { Controller, useForm } from "react-hook-form"
|
||||
import z from "zod"
|
||||
import { getPageBalance } from "@/actions/balance"
|
||||
import { DataTable, useDataTable } from "@/components/data-table"
|
||||
import { Page } from "@/components/page"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import {
|
||||
Field,
|
||||
FieldError,
|
||||
FieldGroup,
|
||||
FieldLabel,
|
||||
} from "@/components/ui/field"
|
||||
import { Field, FieldError, FieldLabel } from "@/components/ui/field"
|
||||
import { Input } from "@/components/ui/input"
|
||||
import type { Balance } from "@/models/balance"
|
||||
|
||||
@@ -51,12 +47,14 @@ const filterSchema = z
|
||||
type FormValues = z.infer<typeof filterSchema>
|
||||
|
||||
export default function BalancePage() {
|
||||
const [filters, setFilters] = useState<FilterValues>({})
|
||||
const { control, handleSubmit, reset } = useForm<FormValues>({
|
||||
const searchParams = useSearchParams()
|
||||
const billNo = searchParams.get("bill_no")
|
||||
const router = useRouter()
|
||||
const { control, handleSubmit, reset, getValues } = useForm<FormValues>({
|
||||
resolver: zodResolver(filterSchema),
|
||||
defaultValues: {
|
||||
phone: "",
|
||||
bill_no: "",
|
||||
bill_no: billNo || "",
|
||||
admin_id: "",
|
||||
created_at_start: "",
|
||||
created_at_end: "",
|
||||
@@ -64,21 +62,23 @@ export default function BalancePage() {
|
||||
})
|
||||
|
||||
const fetchUsers = useCallback(
|
||||
(page: number, size: number) => getPageBalance({ page, size, ...filters }),
|
||||
[filters],
|
||||
(page: number, size: number) => {
|
||||
const result: FilterValues = {}
|
||||
const filters = getValues()
|
||||
if (filters.phone?.trim()) result.user_phone = filters.phone.trim()
|
||||
if (filters.bill_no?.trim()) result.bill_no = filters.bill_no.trim()
|
||||
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 getPageBalance({ page, size, ...result })
|
||||
},
|
||||
[getValues],
|
||||
)
|
||||
|
||||
const table = useDataTable<Balance>(fetchUsers)
|
||||
|
||||
const onFilter = handleSubmit(data => {
|
||||
const result: FilterValues = {}
|
||||
if (data.phone?.trim()) result.user_phone = data.phone.trim()
|
||||
if (data.bill_no?.trim()) result.bill_no = data.bill_no.trim()
|
||||
if (data.created_at_start)
|
||||
result.created_at_start = new Date(data.created_at_start)
|
||||
if (data.created_at_end)
|
||||
result.created_at_end = new Date(data.created_at_end)
|
||||
setFilters(result)
|
||||
const onFilter = handleSubmit(() => {
|
||||
table.pagination.onPageChange(1)
|
||||
})
|
||||
|
||||
@@ -148,8 +148,14 @@ export default function BalancePage() {
|
||||
type="button"
|
||||
variant="outline"
|
||||
onClick={() => {
|
||||
reset()
|
||||
setFilters({})
|
||||
reset({
|
||||
phone: "",
|
||||
bill_no: "",
|
||||
admin_id: "",
|
||||
created_at_start: "",
|
||||
created_at_end: "",
|
||||
})
|
||||
router.replace("./balance")
|
||||
table.pagination.onPageChange(1)
|
||||
}}
|
||||
>
|
||||
@@ -218,7 +224,10 @@ export default function BalancePage() {
|
||||
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",
|
||||
),
|
||||
},
|
||||
]}
|
||||
/>
|
||||
|
||||
Reference in New Issue
Block a user