import type { ProcessInstance } from '@/api/bpm/processInstance' import type { PageParam, PageResult } from '@/http/types' import { http } from '@/http/http' /** 任务处理人 */ // TODO @芋艿:貌似暂时不需要这个?! export interface TaskUser { id: number nickname: string avatar?: string deptName?: string } export interface OperationButtonSetting { displayName: string // 按钮名称 enable: boolean // 是否启用 } /** 流程任务 */ export interface Task { id: string name: string status: number createTime: Date endTime?: Date durationInMillis?: number // 持续时间 reason?: string assigneeUser?: TaskUser ownerUser?: TaskUser processInstanceId?: string // 流程实例 ID processInstance: ProcessInstance reasonRequire?: boolean // 是否填写审批意见 buttonsSetting?: Record // 按钮设置 } /** 查询待办任务分页列表 */ export function getTaskTodoPage(params: PageParam) { return http.get>('/bpm/task/todo-page', params) } /** 查询已办任务分页列表 */ export function getTaskDonePage(params: PageParam) { return http.get>('/bpm/task/done-page', params) } /** 审批通过 */ export function approveTask(data: { id: string, reason: string }) { return http.put('/bpm/task/approve', data) } /** 审批拒绝 */ export function rejectTask(data: { id: string, reason: string }) { return http.put('/bpm/task/reject', data) } /** 根据流程实例 ID 查询任务列表 */ export function getTaskListByProcessInstanceId(processInstanceId: string) { return http.get(`/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`) } /** 查询任务管理分页 */ export function getTaskManagerPage(params: PageParam) { return http.get>('/bpm/task/manager-page', params) } /** 委派任务 */ export function delegateTask(data: { id: string, delegateUserId: string, reason: string }) { return http.put('/bpm/task/delegate', data) } /** 转办任务 */ export function transferTask(data: { id: string, assigneeUserId: string, reason: string }) { return http.put('/bpm/task/transfer', data) } /** 退回任务 */ export function returnTask(data: { id: string, targetTaskDefinitionKey: string, reason: string }) { return http.put('/bpm/task/return', data) } /** 获取可退回的节点列表 */ export function getTaskListByReturn(taskId: string) { return http.get(`/bpm/task/list-by-return?id=${taskId}`) }