index.ts 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. import type { ProcessInstance } from '@/api/bpm/processInstance'
  2. import type { PageParam, PageResult } from '@/http/types'
  3. import { http } from '@/http/http'
  4. /** 任务处理人 */
  5. // TODO @芋艿:貌似暂时不需要这个?!
  6. export interface TaskUser {
  7. id: number
  8. nickname: string
  9. avatar?: string
  10. deptName?: string
  11. }
  12. export interface OperationButtonSetting {
  13. displayName: string // 按钮名称
  14. enable: boolean // 是否启用
  15. }
  16. /** 流程任务 */
  17. export interface Task {
  18. id: string
  19. name: string
  20. status: number
  21. createTime: Date
  22. endTime?: Date
  23. durationInMillis?: number // 持续时间
  24. reason?: string
  25. assigneeUser?: TaskUser
  26. ownerUser?: TaskUser
  27. processInstanceId?: string // 流程实例 ID
  28. processInstance: ProcessInstance
  29. reasonRequire?: boolean // 是否填写审批意见
  30. buttonsSetting?: Record<number, OperationButtonSetting> // 按钮设置
  31. children?: Task[] // 由加签生成,包含多层子任务
  32. }
  33. /** 查询待办任务分页列表 */
  34. export function getTaskTodoPage(params: PageParam) {
  35. return http.get<PageResult<Task>>('/bpm/task/todo-page', params)
  36. }
  37. /** 查询已办任务分页列表 */
  38. export function getTaskDonePage(params: PageParam) {
  39. return http.get<PageResult<Task>>('/bpm/task/done-page', params)
  40. }
  41. /** 审批通过 */
  42. export function approveTask(data: { id: string, reason: string }) {
  43. return http.put<boolean>('/bpm/task/approve', data)
  44. }
  45. /** 审批拒绝 */
  46. export function rejectTask(data: { id: string, reason: string }) {
  47. return http.put<boolean>('/bpm/task/reject', data)
  48. }
  49. /** 根据流程实例 ID 查询任务列表 */
  50. export function getTaskListByProcessInstanceId(processInstanceId: string) {
  51. return http.get<Task[]>(`/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`)
  52. }
  53. /** 查询任务管理分页 */
  54. export function getTaskManagerPage(params: PageParam) {
  55. return http.get<PageResult<Task>>('/bpm/task/manager-page', params)
  56. }
  57. /** 委派任务 */
  58. export function delegateTask(data: { id: string, delegateUserId: string, reason: string }) {
  59. return http.put<boolean>('/bpm/task/delegate', data)
  60. }
  61. /** 转办任务 */
  62. export function transferTask(data: { id: string, assigneeUserId: string, reason: string }) {
  63. return http.put<boolean>('/bpm/task/transfer', data)
  64. }
  65. /** 退回任务 */
  66. export function returnTask(data: { id: string, targetTaskDefinitionKey: string, reason: string }) {
  67. return http.put<boolean>('/bpm/task/return', data)
  68. }
  69. /** 获取可退回的节点列表 */
  70. export function getTaskListByReturn(taskId: string) {
  71. return http.get<any[]>(`/bpm/task/list-by-return?id=${taskId}`)
  72. }
  73. /** 加签任务 */
  74. export function signCreateTask(data: { id: string, type: string, userIds: number[], reason: string }) {
  75. return http.put<boolean>('/bpm/task/create-sign', data)
  76. }
  77. /** 减签任务 */
  78. export function signDeleteTask(data: { id: string, reason: string }) {
  79. return http.delete<boolean>('/bpm/task/delete-sign', data)
  80. }