instance.ts 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. import { http } from '@/api/request'
  2. import type { Attachment, FlowInstance, ProcessProgress } from '@/types/flow'
  3. import type { PageQuery, PageResult } from '@/types/api'
  4. import type { AxiosRequestConfig } from 'axios'
  5. export function listMyInstance(params?: PageQuery): Promise<PageResult<FlowInstance>> {
  6. return http.get('/flow/instance/mine', { params })
  7. }
  8. export function listInstance(
  9. params?: PageQuery & { applicantName?: string; processName?: string; definitionName?: string; currentNodeName?: string }
  10. ): Promise<PageResult<FlowInstance>> {
  11. return http.get('/flow/instance/page', { params })
  12. }
  13. export function startInstance(
  14. processDefinitionId: number,
  15. title?: string,
  16. formData?: Record<string, unknown>,
  17. attachmentUrls?: string
  18. ): Promise<void> {
  19. return http.post('/flow/instance/start', {
  20. processDefinitionId,
  21. title,
  22. formData: formData ? JSON.stringify(formData) : undefined,
  23. attachmentUrls,
  24. })
  25. }
  26. export function getInstance(id: number): Promise<FlowInstance> {
  27. return http.get(`/flow/instance/${id}`)
  28. }
  29. export function getProgress(id: number, config?: AxiosRequestConfig): Promise<ProcessProgress> {
  30. return http.get(`/flow/instance/${id}/progress`, config)
  31. }
  32. export function participatedList(params?: PageQuery): Promise<PageResult<FlowInstance>> {
  33. return http.get('/flow/instance/participated', { params })
  34. }
  35. export function revokeInstance(id: number): Promise<void> {
  36. return http.post(`/flow/instance/${id}/revoke`)
  37. }
  38. export function batchRevokeInstance(ids: number[]): Promise<void> {
  39. return http.post('/flow/instance/batch-revoke', ids)
  40. }
  41. export function deleteInstance(id: number): Promise<void> {
  42. return http.delete(`/flow/instance/${id}`)
  43. }
  44. export function batchDeleteInstance(ids: number[]): Promise<void> {
  45. return http.post('/flow/instance/batch-delete', ids)
  46. }
  47. export function getInstanceAttachments(id: number): Promise<Attachment[]> {
  48. return http.get(`/flow/instance/${id}/attachments`)
  49. }
  50. export function updateInstanceFormData(id: number, formData: Record<string, unknown>): Promise<void> {
  51. return http.post(`/flow/instance/${id}/form-data`, {
  52. formData: JSON.stringify(formData),
  53. })
  54. }
  55. export function migrateInstances(fromDefinitionId: number, toDefinitionId: number): Promise<{ migratedCount: number }> {
  56. return http.post('/flow/instance/migrate-all', null, { params: { fromDefinitionId, toDefinitionId } })
  57. }