index.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  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. }
  32. /** 查询待办任务分页列表 */
  33. export function getTaskTodoPage(params: PageParam) {
  34. return http.get<PageResult<Task>>('/bpm/task/todo-page', params)
  35. }
  36. /** 查询已办任务分页列表 */
  37. export function getTaskDonePage(params: PageParam) {
  38. return http.get<PageResult<Task>>('/bpm/task/done-page', params)
  39. }
  40. /** 审批通过 */
  41. export function approveTask(data: { id: string, reason: string }) {
  42. return http.put<boolean>('/bpm/task/approve', data)
  43. }
  44. /** 审批拒绝 */
  45. export function rejectTask(data: { id: string, reason: string }) {
  46. return http.put<boolean>('/bpm/task/reject', data)
  47. }
  48. /** 根据流程实例 ID 查询任务列表 */
  49. export function getTaskListByProcessInstanceId(processInstanceId: string) {
  50. return http.get<Task[]>(`/bpm/task/list-by-process-instance-id?processInstanceId=${processInstanceId}`)
  51. }
  52. /** 查询任务管理分页 */
  53. export function getTaskManagerPage(params: PageParam) {
  54. return http.get<PageResult<Task>>('/bpm/task/manager-page', params)
  55. }
  56. /** 委派任务 */
  57. export function delegateTask(data: { id: string, delegateUserId: string, reason: string }) {
  58. return http.put<boolean>('/bpm/task/delegate', data)
  59. }
  60. /** 转办任务 */
  61. export function transferTask(data: { id: string, assigneeUserId: string, reason: string }) {
  62. return http.put<boolean>('/bpm/task/transfer', data)
  63. }
  64. /** 退回任务 */
  65. export function returnTask(data: { id: string, targetTaskDefinitionKey: string, reason: string }) {
  66. return http.put<boolean>('/bpm/task/return', data)
  67. }
  68. /** 获取可退回的节点列表 */
  69. export function getTaskListByReturn(taskId: string) {
  70. return http.get<any[]>(`/bpm/task/list-by-return?id=${taskId}`)
  71. }
  72. /** 加签任务 */
  73. export function signCreateTask(data: { id: string, type: string, userIds: number[], reason: string }) {
  74. return http.put<boolean>('/bpm/task/create-sign', data)
  75. }