From d2d6c1709c1bb496838467d9507d2a4d6dd8d91f Mon Sep 17 00:00:00 2001
From: Eamon-meng <17516219072@163.com>
Date: Fri, 13 Mar 2026 18:12:22 +0800
Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9A=84=E5=A5=97=E9=A4=90=E6=96=B0?=
=?UTF-8?q?=E5=A2=9E=E7=8A=B6=E6=80=81=E7=AD=9B=E9=80=89=E5=AD=97=E6=AE=B5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/actions/resource.ts | 2 ++
src/app/admin/resources/_components/filter.tsx | 17 ++++++++++++++++-
src/app/admin/resources/_components/list.tsx | 8 +++++++-
src/app/admin/resources/_components/utils.tsx | 5 +++++
4 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/src/actions/resource.ts b/src/actions/resource.ts
index e92fc9d..d2c9319 100644
--- a/src/actions/resource.ts
+++ b/src/actions/resource.ts
@@ -24,6 +24,7 @@ export async function listResourceShort(props: {
size: number
resource_no?: string
type?: number
+ status?: number
create_after?: Date
create_before?: Date
expire_after?: Date
@@ -37,6 +38,7 @@ export async function listResourceLong(props: {
size: number
resource_no?: string
type?: number
+ status?: number
create_after?: Date
create_before?: Date
expire_after?: Date
diff --git a/src/app/admin/resources/_components/filter.tsx b/src/app/admin/resources/_components/filter.tsx
index d7f9723..a4d2b25 100644
--- a/src/app/admin/resources/_components/filter.tsx
+++ b/src/app/admin/resources/_components/filter.tsx
@@ -12,6 +12,7 @@ import {Eraser, Search} from 'lucide-react'
export interface ResourceFilterValues {
resource_no: string
type: 'expire' | 'quota' | 'all'
+ status: '0' | '1' | '2'
create_after?: Date
create_before?: Date
expire_after?: Date
@@ -41,13 +42,27 @@ export default function ResourceFilter({form, onSubmit, onReset}: ResourceFilter
- 全部
+ 全部
包时
包量
)}
+ 状态}>
+ {({field}) => (
+
+ )}
+
diff --git a/src/app/admin/resources/_components/list.tsx b/src/app/admin/resources/_components/list.tsx
index 5966164..f51f443 100644
--- a/src/app/admin/resources/_components/list.tsx
+++ b/src/app/admin/resources/_components/list.tsx
@@ -17,6 +17,7 @@ import {
ExpireBadge,
formatDateTime,
getTodayUsage,
+ isValidResourcestatus,
isValidResourceType,
ResourceTypeBadge,
} from './utils'
@@ -24,6 +25,7 @@ import {
const filterSchema = zod.object({
resource_no: zod.string().optional().default(''),
type: zod.enum(['expire', 'quota', 'all']).default('all'),
+ status: zod.enum(['0', '1', '2']).default('1'),
create_after: zod.date().optional(),
create_before: zod.date().optional(),
expire_after: zod.date().optional(),
@@ -47,12 +49,13 @@ export default function ResourceList({resourceType}: ResourceListProps) {
// 从 URL 参数初始化筛选条件
const params = useSearchParams()
const paramType = params.get('type')
-
+ const paramStatus = params.get('status')
const form = useForm({
resolver: zodResolver(filterSchema),
defaultValues: {
resource_no: params.get('resource_no') || '',
type: isValidResourceType(paramType) ? paramType : 'all',
+ status: isValidResourcestatus(paramStatus) ? paramStatus : '1',
create_after: params.get('create_after') ? new Date(params.get('create_after')!) : undefined,
create_before: params.get('create_before') ? new Date(params.get('create_before')!) : undefined,
expire_after: params.get('expire_after') ? new Date(params.get('expire_after')!) : undefined,
@@ -71,6 +74,7 @@ export default function ResourceList({resourceType}: ResourceListProps) {
expire: 1,
quota: 2,
}[getValues('type')]
+ const status = getValues('status')
const create_after = getValues('create_after')
const create_before = getValues('create_before')
const expire_after = getValues('expire_after')
@@ -82,6 +86,7 @@ export default function ResourceList({resourceType}: ResourceListProps) {
page,
size,
type,
+ status: Number(status),
create_after,
create_before,
expire_after,
@@ -116,6 +121,7 @@ export default function ResourceList({resourceType}: ResourceListProps) {
const handleReset = () => {
form.reset({
type: 'all',
+ status: '1',
resource_no: '',
create_after: undefined,
create_before: undefined,
diff --git a/src/app/admin/resources/_components/utils.tsx b/src/app/admin/resources/_components/utils.tsx
index 10e3ff6..0952113 100644
--- a/src/app/admin/resources/_components/utils.tsx
+++ b/src/app/admin/resources/_components/utils.tsx
@@ -7,6 +7,11 @@ export function isValidResourceType(type: string | null): type is 'expire' | 'qu
return type === 'expire' || type === 'quota' || type === 'all'
}
+// 状态
+export function isValidResourcestatus(status: string | null): status is '0' | '1' | '2' {
+ return status === '0' || status === '1' || status === '2'
+}
+
// 资源类型徽章
export function ResourceTypeBadge({type}: {type: number}) {
if (type === 1) {