From 616bb7185e765edfab7b7430f31ef506f32400f0 Mon Sep 17 00:00:00 2001 From: yuliang_guo Date: Sat, 31 Jan 2026 18:48:26 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BB=BB=E5=8A=A1=E4=B8=AD=E5=BF=83?= =?UTF-8?q?=E6=A0=87=E7=AD=BE=E9=A1=B5=E6=98=BE=E7=A4=BA=E7=9C=9F=E5=AE=9E?= =?UTF-8?q?=E4=BB=BB=E5=8A=A1=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 移除硬编码的任务数量(12/5/28/3) - 加载所有任务后统计各状态数量 - 后端任务API page_size限制调整为500 --- backend/app/api/v1/tasks.py | 2 +- .../src/views/manager/assignment-center.vue | 30 ++++++++++++------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/backend/app/api/v1/tasks.py b/backend/app/api/v1/tasks.py index 208f5c3..ae95ea0 100644 --- a/backend/app/api/v1/tasks.py +++ b/backend/app/api/v1/tasks.py @@ -74,7 +74,7 @@ async def create_task( async def get_tasks( status: Optional[str] = Query(None, description="任务状态筛选"), page: int = Query(1, ge=1), - page_size: int = Query(20, ge=1, le=100), + page_size: int = Query(20, ge=1, le=500), db: AsyncSession = Depends(get_db), current_user: User = Depends(require_admin_or_manager) ): diff --git a/frontend/src/views/manager/assignment-center.vue b/frontend/src/views/manager/assignment-center.vue index bb74641..9173129 100644 --- a/frontend/src/views/manager/assignment-center.vue +++ b/frontend/src/views/manager/assignment-center.vue @@ -28,22 +28,22 @@ - 进行中 + 进行中 - 待开始 + 待开始 - 已完成 + 已完成 - 已过期 + 已过期 @@ -383,6 +383,14 @@ const taskStats = ref([ // 任务列表数据 const allTasks = ref([]) +// 各状态任务数量 +const taskCounts = reactive({ + ongoing: 0, + pending: 0, + completed: 0, + expired: 0 +}) + // 任务表单 const taskForm = reactive({ title: '', @@ -417,9 +425,6 @@ const rules = reactive({ // 根据当前标签页筛选的任务列表 const taskList = computed(() => { - if (activeTab.value === 'ongoing') { - return allTasks.value - } return allTasks.value.filter(task => task.status === activeTab.value) }) @@ -442,15 +447,20 @@ const loadTaskStats = async () => { } /** - * 加载任务列表 + * 加载任务列表(加载所有任务,前端筛选) */ const loadTasks = async () => { loading.value = true try { - const status = activeTab.value === 'ongoing' ? 'ongoing' : activeTab.value - const res = await getTasks({ status }) + // 不传status参数,获取所有任务 + const res = await getTasks({ page_size: 500 }) if (res.code === 200 && res.data) { allTasks.value = res.data.items + // 统计各状态任务数量 + taskCounts.ongoing = allTasks.value.filter(t => t.status === 'ongoing').length + taskCounts.pending = allTasks.value.filter(t => t.status === 'pending').length + taskCounts.completed = allTasks.value.filter(t => t.status === 'completed').length + taskCounts.expired = allTasks.value.filter(t => t.status === 'expired').length } } catch (error: any) { console.error('加载任务列表失败:', error)