From 6314d2e034abb557251d30bc41653deb4ea2636b Mon Sep 17 00:00:00 2001 From: Your Name Date: Fri, 2 Jan 2026 20:02:45 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=AE=9E=E7=8E=B0=E5=AD=90=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=BB=84=E5=AE=A1=E6=A0=B8=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改子任务完成逻辑,解锁后的子任务组设置为pending_group_approval状态 - 添加子任务组审核API(approveTaskGroup, rejectTaskGroup) - 在待审核Tab中集成子任务组显示,统一管理主任务和子任务组审核 - 子任务组卡片显示子任务组标识 - 审核时支持选择发布到大厅或指定设计师 - 修复通知图标样式,与系统设置图标对齐统一 --- frontend/src/api/task.ts | 35 ++ frontend/src/components/NotificationBell.vue | 24 +- frontend/src/views/TaskHall.vue | 440 ++++++++++++++----- 3 files changed, 387 insertions(+), 112 deletions(-) diff --git a/frontend/src/api/task.ts b/frontend/src/api/task.ts index 63cdd91..27a4f2f 100644 --- a/frontend/src/api/task.ts +++ b/frontend/src/api/task.ts @@ -535,3 +535,38 @@ export const rejectByReceivingLeader = (taskId: number, reason: string) => { return request.post(`/tasks/${taskId}/reject-receiving`, { reason }) } +// ==================== 子任务组审核相关 ==================== + +/** + * 子任务组信息 + */ +export interface TaskGroup { + groupId: number + mainTaskId: number + mainTaskTitle: string + mainTaskNo: string + items: TaskItem[] + totalScore: number +} + +/** + * 获取待审核的子任务组列表 + */ +export const getPendingApprovalTaskGroups = () => { + return request.get('/tasks/items/pending-approval-groups') +} + +/** + * 审核通过子任务组 + */ +export const approveTaskGroup = (groupId: number, data: { assignedReceiverId?: number; comment?: string }) => { + return request.post(`/tasks/items/groups/${groupId}/approve`, data) +} + +/** + * 驳回子任务组 + */ +export const rejectTaskGroup = (groupId: number, reason: string) => { + return request.post(`/tasks/items/groups/${groupId}/reject`, { reason }) +} + diff --git a/frontend/src/components/NotificationBell.vue b/frontend/src/components/NotificationBell.vue index 33a8cde..38d6718 100644 --- a/frontend/src/components/NotificationBell.vue +++ b/frontend/src/components/NotificationBell.vue @@ -10,8 +10,8 @@ > @@ -263,20 +263,26 @@ onUnmounted(() => {