Files
aiot-uniapp/src/api/bpm/task/index.ts
2026-01-14 13:39:55 +08:00

84 lines
2.5 KiB
TypeScript

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<number, OperationButtonSetting> // 按钮设置
}
/** 查询待办任务分页列表 */
export function getTaskTodoPage(params: PageParam) {
return http.get<PageResult<Task>>('/bpm/task/todo-page', params)
}
/** 查询已办任务分页列表 */
export function getTaskDonePage(params: PageParam) {
return http.get<PageResult<Task>>('/bpm/task/done-page', params)
}
/** 审批通过 */
export function approveTask(data: { id: string, reason: string }) {
return http.put<boolean>('/bpm/task/approve', data)
}
/** 审批拒绝 */
export function rejectTask(data: { id: string, reason: string }) {
return http.put<boolean>('/bpm/task/reject', data)
}
/** 根据流程实例 ID 查询任务列表 */
export function getTaskListByProcessInstanceId(processInstanceId: string) {
return http.get<Task[]>(`/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`)
}
/** 查询任务管理分页 */
export function getTaskManagerPage(params: PageParam) {
return http.get<PageResult<Task>>('/bpm/task/manager-page', params)
}
/** 委派任务 */
export function delegateTask(data: { id: string, delegateUserId: string, reason: string }) {
return http.put<boolean>('/bpm/task/delegate', data)
}
/** 转办任务 */
export function transferTask(data: { id: string, assigneeUserId: string, reason: string }) {
return http.put<boolean>('/bpm/task/transfer', data)
}
/** 退回任务 */
export function returnTask(data: { id: string, targetTaskDefinitionKey: string, reason: string }) {
return http.put<boolean>('/bpm/task/return', data)
}
/** 获取可退回的节点列表 */
export function getTaskListByReturn(taskId: string) {
return http.get<any[]>(`/bpm/task/list-by-return?id=${taskId}`)
}