84 lines
2.5 KiB
TypeScript
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}`)
|
|
}
|