From bca2f96bf34888b41d7be67d846b1a331f33184a Mon Sep 17 00:00:00 2001 From: Eamon <17516219072@163.com> Date: Fri, 15 May 2026 16:54:58 +0800 Subject: [PATCH] =?UTF-8?q?IP=E7=AE=A1=E7=90=86=E6=97=B6=E9=97=B4=E7=AD=9B?= =?UTF-8?q?=E9=80=89=E7=B2=BE=E7=A1=AE=E5=88=B0=E7=A7=92=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E8=BF=87=E6=9C=9F=E7=AD=9B=E9=80=89=E5=92=8C=E6=98=BE=E7=A4=BA?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E6=97=B6=E9=97=B4=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/actions/channel.ts | 1 + src/app/(root)/balance/page.tsx | 4 +- src/app/(root)/batch/page.tsx | 4 +- src/app/(root)/billing/page.tsx | 4 +- src/app/(root)/channel/page.tsx | 72 +++++++++++++++++++++++++-------- src/app/(root)/cust/page.tsx | 5 +-- src/app/(root)/trade/page.tsx | 4 +- src/models/channel.ts | 1 + 8 files changed, 68 insertions(+), 27 deletions(-) diff --git a/src/actions/channel.ts b/src/actions/channel.ts index b469cd8..d5bbaf3 100644 --- a/src/actions/channel.ts +++ b/src/actions/channel.ts @@ -13,6 +13,7 @@ export async function getPageChannel(params: { node_ip?: string expired_at_start?: Date expired_at_end?: Date + expired?: boolean }) { return callByUser>("/api/admin/channel/page", params) } diff --git a/src/app/(root)/balance/page.tsx b/src/app/(root)/balance/page.tsx index f689e5e..ac6ee03 100644 --- a/src/app/(root)/balance/page.tsx +++ b/src/app/(root)/balance/page.tsx @@ -124,7 +124,7 @@ export default function BalancePage() { className="w-40 flex-none" > 开始时间 - + {fieldState.error?.message} )} @@ -138,7 +138,7 @@ export default function BalancePage() { className="w-40 flex-none" > 结束时间 - + {fieldState.error?.message} )} diff --git a/src/app/(root)/batch/page.tsx b/src/app/(root)/batch/page.tsx index 25d6941..7c3014e 100644 --- a/src/app/(root)/batch/page.tsx +++ b/src/app/(root)/batch/page.tsx @@ -215,7 +215,7 @@ export default function BatchPage() { className="w-40 flex-none" > 开始时间 - + {fieldState.error?.message} )} @@ -230,7 +230,7 @@ export default function BatchPage() { className="w-40 flex-none" > 结束时间 - + {fieldState.error?.message} )} diff --git a/src/app/(root)/billing/page.tsx b/src/app/(root)/billing/page.tsx index 2731e00..33b8536 100644 --- a/src/app/(root)/billing/page.tsx +++ b/src/app/(root)/billing/page.tsx @@ -315,7 +315,7 @@ export default function BillingPage() { className="w-40 flex-none" > 开始时间 - + {fieldState.error?.message} )} @@ -330,7 +330,7 @@ export default function BillingPage() { className="w-40 flex-none" > 结束时间 - + {fieldState.error?.message} )} diff --git a/src/app/(root)/channel/page.tsx b/src/app/(root)/channel/page.tsx index 003be2d..425daa3 100644 --- a/src/app/(root)/channel/page.tsx +++ b/src/app/(root)/channel/page.tsx @@ -11,13 +11,15 @@ import { DataTable, useDataTable } from "@/components/data-table" import { Page } from "@/components/page" import { Badge } from "@/components/ui/badge" 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 { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select" import type { Channel } from "@/models/channel" type FilterValues = { @@ -29,6 +31,7 @@ type FilterValues = { node_ip?: string expired_at_start?: Date expired_at_end?: Date + expired?: boolean } const filterSchema = z @@ -41,6 +44,7 @@ const filterSchema = z node_ip: z.string().optional(), expired_at_start: z.string().optional(), expired_at_end: z.string().optional(), + expired: z.enum(["all", "expired", "not_expired"]).optional(), }) .superRefine((data, ctx) => { if (data.expired_at_start && data.expired_at_end) { @@ -81,6 +85,7 @@ export default function ChannelPage() { node_ip: "", expired_at_start: "", expired_at_end: "", + expired: "all", }, }) @@ -100,6 +105,13 @@ export default function ChannelPage() { result.expired_at_start = new Date(filters.expired_at_start) if (filters.expired_at_end) result.expired_at_end = new Date(filters.expired_at_end) + if (filters.expired) { + if (filters.expired === "expired") { + result.expired = true + } else if (filters.expired === "not_expired") { + result.expired = false + } + } return getPageChannel({ page, size, ...result }) }) @@ -110,7 +122,7 @@ export default function ChannelPage() { return (
-
+
( 开始时间 - + {fieldState.error?.message} )} @@ -215,17 +227,37 @@ export default function ChannelPage() { render={({ field, fieldState }) => ( 结束时间 - + + {fieldState.error?.message} + + )} + /> + ( + + 是否过期 + {fieldState.error?.message} )} /> -
- - - +
@@ -296,7 +328,6 @@ export default function ChannelPage() { header: "节点", accessorFn: row => row.ip || row.edge_ref || row.edge_id, }, - { header: "自动配置", cell: ({ row }) => { @@ -361,6 +392,15 @@ export default function ChannelPage() { ) }, }, + { + header: "提取时间", + accessorKey: "created_at", + cell: ({ row }) => + format( + new Date(row.original.created_at), + "yyyy-MM-dd HH:mm:ss", + ), + }, { header: "过期时间", accessorKey: "expired_at", diff --git a/src/app/(root)/cust/page.tsx b/src/app/(root)/cust/page.tsx index 0ef51f7..53b811b 100644 --- a/src/app/(root)/cust/page.tsx +++ b/src/app/(root)/cust/page.tsx @@ -206,7 +206,7 @@ export default function CustPage() { render={({ field, fieldState }) => ( 开始时间 - + {fieldState.error?.message} )} @@ -218,7 +218,7 @@ export default function CustPage() { render={({ field, fieldState }) => ( 结束时间 - + {fieldState.error?.message} )} @@ -262,7 +262,6 @@ export default function CustPage() { "yyyy-MM-dd HH:mm:ss", ), }, - // { header: "邮箱", accessorKey: "email" }, { header: "客户来源", accessorKey: "source", diff --git a/src/app/(root)/trade/page.tsx b/src/app/(root)/trade/page.tsx index 93cc8a2..4abc584 100644 --- a/src/app/(root)/trade/page.tsx +++ b/src/app/(root)/trade/page.tsx @@ -208,7 +208,7 @@ export default function TradePage() { render={({ field, fieldState }) => ( 开始时间 - + {fieldState.error?.message} )} @@ -220,7 +220,7 @@ export default function TradePage() { render={({ field, fieldState }) => ( 结束时间 - + {fieldState.error?.message} )} diff --git a/src/models/channel.ts b/src/models/channel.ts index b076338..986a6db 100644 --- a/src/models/channel.ts +++ b/src/models/channel.ts @@ -20,4 +20,5 @@ export type Channel = { ip: string user?: User resource?: Resource + time?: Date }