From 94c5532b821175cc5dca5072377676702c3d6f07 Mon Sep 17 00:00:00 2001 From: sugarBecomer Date: Fri, 24 Apr 2026 12:32:23 +0800 Subject: [PATCH] =?UTF-8?q?:sparkles:=20=E9=A6=96=E9=A1=B5=E7=BB=9F?= =?UTF-8?q?=E8=AE=A1=E6=9D=A1=E7=82=B9=E5=87=BB=E8=B7=B3=E8=BD=AC=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E5=88=97=E8=A1=A8=E7=AD=9B=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. Dashboard 近7日统计条形图和数字可点击 2. 点击成功/失败/待执行跳转任务列表并按对应任务ID筛选 3. 任务列表页显示筛选提示条,支持清除筛选 --- src/types/cpdaily.ts | 3 +++ src/views/cpdaily/CpTaskManage.vue | 20 +++++++++++++++++- src/views/dashboard/DashboardView.vue | 30 ++++++++++++++++++++------- 3 files changed, 44 insertions(+), 9 deletions(-) diff --git a/src/types/cpdaily.ts b/src/types/cpdaily.ts index 1768de0..f95053b 100644 --- a/src/types/cpdaily.ts +++ b/src/types/cpdaily.ts @@ -173,6 +173,9 @@ export interface TaskStatisticsV2Item { successTask: number failTask: number pendingTask: number + successTaskIds?: number[] + failTaskIds?: number[] + pendingTaskIds?: number[] } export interface DashboardSummary { diff --git a/src/views/cpdaily/CpTaskManage.vue b/src/views/cpdaily/CpTaskManage.vue index b3b135d..21f35e1 100644 --- a/src/views/cpdaily/CpTaskManage.vue +++ b/src/views/cpdaily/CpTaskManage.vue @@ -27,6 +27,7 @@ import { extractPageData } from '@/types/api' const router = useRouter() const route = useRoute() const tableRef = ref<{ refresh: () => void } | null>(null) +const filterIds = ref('') // ---- 确认弹窗状态 ---- const confirmOpen = ref(false) @@ -186,7 +187,11 @@ onMounted(() => { const qUsername = route.query.addUsername as string if (qUserId && qUsername) { openAddDialogWithUser(Number(qUserId), qUsername) - // 清除 query 参数,避免刷新时重复弹窗 + router.replace({ path: route.path }) + } + const qIds = route.query.ids as string + if (qIds) { + filterIds.value = qIds router.replace({ path: route.path }) } }) @@ -408,9 +413,17 @@ const searchFields: SearchField[] = [ ] const fetchFn = async (params: PageParams): Promise> => { + if (filterIds.value) { + (params as any).ids = filterIds.value + } const res = await cpTaskApi.getList(params) return extractPageData(res) } + +function clearFilterIds() { + filterIds.value = '' + tableRef.value?.refresh() +}