diff --git a/frontend/src/views/TaskHall.vue b/frontend/src/views/TaskHall.vue index 9fa3cea..fb1f163 100644 --- a/frontend/src/views/TaskHall.vue +++ b/frontend/src/views/TaskHall.vue @@ -1869,6 +1869,79 @@ + + +
+ +
+
+ {{ primaryApproveTaskData.title }} +
+
+ 品牌: {{ primaryApproveTaskData.brandName }} + 平台: {{ primaryApproveTaskData.platformName }} + 积分: {{ primaryApproveTaskData.score }} 分 +
+
+ 一级部门发起人: {{ primaryApproveTaskData.primaryPublisherName || primaryApproveTaskData.publisherName }} +
+
+ + +
+
+ * 指定成员完善任务明细 +
+ + +
+ {{ member.realName }} + {{ member.username }} +
+
+
+
+ + +
+
审核备注(可选)
+ +
+ + +
+
+ + 审核通过后,指定的成员将收到通知,需要完善任务明细后才能正式发布任务。 +
+
+
+
+ (undefined) const preAssignedDesignerName = ref('') // 预先指定的设计师姓名 const preAssignedDesignersList = ref>([]) // 多个预先指定的设计师列表 +// 一级需求审核弹窗状态 +const primaryApproveModalVisible = ref(false) +const primaryApproveTaskData = ref(null) +const primaryApproveCompleterId = ref(undefined) +const primaryApproveComment = ref('') +const deptMembersList = ref>([]) +const primaryApprovalLoading = ref(false) + // 判断任务是否已预先指定设计师 const isTaskPreAssigned = computed(() => { if (!approveTaskData.value) return false @@ -5221,6 +5302,12 @@ const handleApproveTask = (task: Task) => { return } + // 如果是一级需求部门任务审核,需要指定成员完善明细 + if (task.approvalStatus === 'pending_primary_approval') { + handleApprovePrimaryTask(task) + return + } + // 需求部门负责人审核,直接通过即可 Modal.confirm({ title: '审核通过', @@ -5244,6 +5331,64 @@ const handleApproveTask = (task: Task) => { }) } +// 处理一级需求部门任务审核(指定成员完善明细) +const handleApprovePrimaryTask = async (task: Task) => { + try { + // 获取当前用户所在部门的成员列表 + const userInfo = JSON.parse(localStorage.getItem('userInfo') || '{}') + const deptId = userInfo.deptId + + if (!deptId) { + message.error('无法获取部门信息') + return + } + + // 获取部门成员 + const response = await userApi.getUserList(1, 100, undefined, deptId, 1) + deptMembersList.value = (response.records || []).map(u => ({ + id: u.id!, + realName: u.realName || u.username, + username: u.username + })) + + primaryApproveTaskData.value = task + primaryApproveCompleterId.value = undefined + primaryApproveComment.value = '' + primaryApproveModalVisible.value = true + } catch (error: any) { + message.error('获取部门成员失败:' + (error.msg || error.message)) + } +} + +// 确认一级需求审核 +const handlePrimaryApproveConfirm = async () => { + if (!primaryApproveTaskData.value) return + + if (!primaryApproveCompleterId.value) { + message.error('请选择完善明细的成员') + return + } + + try { + primaryApprovalLoading.value = true + await taskApi.approvePrimaryTask( + primaryApproveTaskData.value.id!, + primaryApproveCompleterId.value, + primaryApproveComment.value || '审核通过,请完善任务明细' + ) + message.success('审核通过,已指派成员完善明细') + primaryApproveModalVisible.value = false + + loadReviewTasks() + loadAllTabCounts() + loadDashboardStats() + } catch (error: any) { + message.error(error.msg || error.message || '审核失败') + } finally { + primaryApprovalLoading.value = false + } +} + // 驳回任务(使用两级审核流程) const handleRejectTask = (task: Task) => { let reason = ''