import request from '@/utils/request'; import type { Page } from '@/types/base'; import type { WorkflowInstance, WorkflowInstanceQuery, TaskInstance, TaskQuery, InstanceStatistics } from './types'; // 获取工作流实例列表 export async function getInstances(params: WorkflowInstanceQuery): Promise> { return request.get('/api/v1/workflow/instances/page', { params }); } // 获取单个工作流实例详情 export async function getInstanceDetail(id: number): Promise { return request.get(`/api/v1/workflow/instances/${id}`); } // 启动工作流实例 export async function startInstance(data: { workflowKey: string; businessKey?: string; variables?: Record; }): Promise { return request.post('/api/v1/workflow/instances/start', data); } // 终止工作流实例 export async function terminateInstance(id: number, reason?: string): Promise { return request.post(`/api/v1/workflow/instances/${id}/terminate`, { reason }); } // 挂起工作流实例 export async function suspendInstance(id: number, reason?: string): Promise { return request.post(`/api/v1/workflow/instances/${id}/suspend`, { reason }); } // 激活工作流实例 export async function activateInstance(id: number): Promise { return request.post(`/api/v1/workflow/instances/${id}/activate`); } // 删除工作流实例 export async function deleteInstance(id: number): Promise { return request.delete(`/api/v1/workflow/instances/${id}`); } // 获取工作流实例的任务列表 export async function getInstanceTasks(instanceId: number): Promise { return request.get(`/api/v1/workflow/instances/${instanceId}/tasks`); } // 获取任务列表 export async function getTasks(params: TaskQuery): Promise> { return request.get('/api/v1/workflow/tasks/page', { params }); } // 完成任务 export async function completeTask(taskId: number, variables?: Record): Promise { return request.post(`/api/v1/workflow/tasks/${taskId}/complete`, { variables }); } // 委派任务 export async function delegateTask(taskId: number, assignee: string): Promise { return request.post(`/api/v1/workflow/tasks/${taskId}/delegate`, { assignee }); } // 认领任务 export async function claimTask(taskId: number): Promise { return request.post(`/api/v1/workflow/tasks/${taskId}/claim`); } // 获取实例统计信息 export async function getInstanceStatistics(): Promise { return request.get('/api/v1/workflow/instances/statistics'); } // 获取实例执行历史 export async function getInstanceHistory(instanceId: number): Promise { return request.get(`/api/v1/workflow/instances/${instanceId}/history`); } // 获取实例流程图 export async function getInstanceDiagram(instanceId: number): Promise { return request.get(`/api/v1/workflow/instances/${instanceId}/diagram`, { responseType: 'text' }); }