task.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { http } from '@/api/request'
  2. import type { FlowTask, ApprovalAction, NextNode } from '@/types/flow'
  3. import type { PageQuery, PageResult } from '@/types/api'
  4. import type { User } from '@/types/system'
  5. export function listTodo(
  6. params?: PageQuery & { processName?: string; formFilters?: string; currentNodeId?: string }
  7. ): Promise<PageResult<FlowTask>> {
  8. return http.get('/flow/task/todo', { params })
  9. }
  10. export function listHandled(params?: PageQuery): Promise<PageResult<FlowTask>> {
  11. return http.get('/flow/task/handled', { params })
  12. }
  13. export function getTask(id: number): Promise<FlowTask> {
  14. return http.get(`/flow/task/${id}`)
  15. }
  16. export function approveTask(id: number, data: ApprovalAction): Promise<void> {
  17. return http.post(`/flow/task/${id}/approve`, data)
  18. }
  19. export function rejectTask(id: number, data: ApprovalAction): Promise<void> {
  20. return http.post(`/flow/task/${id}/reject`, data)
  21. }
  22. export function batchApproveTask(taskIds: number[], data: ApprovalAction): Promise<void> {
  23. return http.post('/flow/task/batch-approve', {
  24. taskIds,
  25. comment: data.comment,
  26. attachmentUrls: data.attachmentUrls,
  27. targetNodeId: data.targetNodeId,
  28. })
  29. }
  30. export function batchRejectTask(taskIds: number[], data: ApprovalAction): Promise<void> {
  31. return http.post('/flow/task/batch-reject', { taskIds, comment: data.comment, attachmentUrls: data.attachmentUrls })
  32. }
  33. export function returnTask(id: number, data: ApprovalAction): Promise<void> {
  34. return http.post(`/flow/task/${id}/return`, data)
  35. }
  36. export function transferTask(id: number, data: ApprovalAction): Promise<void> {
  37. return http.post(`/flow/task/${id}/transfer`, data)
  38. }
  39. export function todoCount(): Promise<number> {
  40. return http.get('/flow/task/todo-count')
  41. }
  42. export function addSignTask(taskId: number, assigneeId: number): Promise<void> {
  43. return http.post(`/flow/task/${taskId}/add-sign?assigneeId=${assigneeId}`)
  44. }
  45. export function listCc(params?: PageQuery): Promise<PageResult<FlowTask>> {
  46. return http.get('/flow/task/cc', { params })
  47. }
  48. export function readCc(taskId: number): Promise<void> {
  49. return http.post(`/flow/task/cc/${taskId}/read`)
  50. }
  51. export function listNextNodes(taskId: number): Promise<NextNode[]> {
  52. return http.get(`/flow/task/${taskId}/next-nodes`)
  53. }
  54. /** 获取可转办/加签的用户列表(按当前节点审批角色过滤) */
  55. export function getTransferableUsers(taskId: number): Promise<User[]> {
  56. return http.get(`/flow/task/${taskId}/transferable-users`)
  57. }