index.ts 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. import axiosInstance from '../../utils/axios';
  2. // 我的任务 VO
  3. export interface MyTaskVO {
  4. id?: number;
  5. workId?: number; // 作业ID
  6. nodeId?: number; // 节点ID
  7. orderNo?: string; // 作业编号
  8. name?: string; // 作业名称
  9. workerUserName?: string; // 负责人名称
  10. responsible?: string; // 负责人(兼容字段)
  11. responsibleName?: string; // 负责人名称(兼容字段)
  12. currentNodeId?: string; // 当前节点ID
  13. currentNodeName?: string; // 当前任务名称
  14. workTime?: number | Date | string; // 任务开始时间
  15. taskStartTime?: number | Date | string; // 任务开始时间(兼容字段)
  16. approvalStatus?: string; // 任务状态(审批状态)
  17. taskStatus?: string; // 任务状态(兼容字段)
  18. status?: string | number; // 作业状态(兼容字段)
  19. urgencyLevel?: string; // 紧急程度
  20. initiatorName?: string; // 发起人
  21. initiationTime?: number | Date; // 发起时间
  22. description?: string; // 作业内容
  23. cancellationReason?: string; // 取消原因
  24. cancellationTime?: number | Date | string; // 取消时间
  25. completionTime?: number | Date | string; // 完成时间
  26. [key: string]: any;
  27. }
  28. // 分页参数类型
  29. export interface MyTaskPageParam {
  30. pageNo?: number;
  31. pageSize?: number;
  32. key?: string; // 搜索关键字
  33. [key: string]: any;
  34. }
  35. // 分页响应类型
  36. export interface PageResponse<T> {
  37. list: T[];
  38. total: number;
  39. }
  40. // 我的任务节点详情 VO
  41. export interface MyTaskNodeDetailVO {
  42. id?: number; // 节点ID
  43. nodeId?: number; // 节点ID(兼容字段)
  44. workId?: number; // 作业ID
  45. nodeName?: string; // 节点名称
  46. type?: string; // 节点类型(如:review-审核, isolation-隔离/方案, releaseIsolation-解除隔离等)
  47. nodeType?: string; // 节点类型(兼容字段)
  48. workName?: string; // 作业名称
  49. name?: string; // 作业名称(兼容字段)
  50. orderNo?: string; // 作业编号
  51. workerUserName?: string; // 负责人
  52. workTime?: number | Date | string; // 时间
  53. formId?: number; // 表单ID
  54. formData?: any; // 表单数据
  55. formConfig?: any; // 表单配置
  56. formFields?: any; // 表单字段
  57. fields?: any; // 表单字段(兼容字段)
  58. conf?: any; // 表单配置(兼容字段)
  59. data?: string; // 节点数据(JSON字符串)
  60. [key: string]: any;
  61. }
  62. // 盲板/拆除时的附件项(前端组数据用)
  63. export interface AttachmentItem {
  64. name?: string;
  65. url?: string;
  66. }
  67. // 更新节点审批状态参数
  68. export interface UpdateNodeApprovalParam {
  69. nodeId: number; // 节点ID
  70. approvalStatus: 'approved' | 'rejected'; // 节点状态:approved(通过)、rejected(驳回)
  71. approvalOpinion?: string; // 审批意见
  72. formData?: string; // 表单内容(JSON字符串)
  73. /** 盲板/拆除时的设备编号,与 formData 同级 */
  74. deviceNumber?: string;
  75. /** 盲板/拆除时的附件,与 formData 同级(后端要求传字符串,如 JSON 字符串) */
  76. attachments?: string;
  77. }
  78. // 我的任务 API
  79. export const myTaskApi = {
  80. // 获取我的任务列表(分页)
  81. getMyWorkPage: (params?: MyTaskPageParam) => {
  82. return axiosInstance.get<PageResponse<MyTaskVO>>('/iscs/workflow-work/getMyWorkPage', { params });
  83. },
  84. // 获取我的任务节点详情
  85. getMyWorkNodeDetail: (nodeId: number) => {
  86. return axiosInstance.get<MyTaskNodeDetailVO>(`/iscs/workflow-work/getMyWorkNodeDetail?nodeId=${nodeId}`);
  87. },
  88. // 更新节点审批状态
  89. updateNodeApproval: (params: UpdateNodeApprovalParam) => {
  90. return axiosInstance.post('/iscs/workflow-work/updateNodeApproval', params);
  91. },
  92. };
  93. // 任务管理 API
  94. export const taskManagementApi = {
  95. // 获取任务管理列表(分页)
  96. getAdminWorkPage: (params?: MyTaskPageParam) => {
  97. return axiosInstance.get<PageResponse<MyTaskVO>>('/iscs/workflow-work/getAdminWorkPage', { params });
  98. },
  99. // 获取任务管理节点详情(与我的任务使用相同的接口)
  100. getAdminWorkNodeDetail: (nodeId: number) => {
  101. return axiosInstance.get<MyTaskNodeDetailVO>(`/iscs/workflow-work/getMyWorkNodeDetail?nodeId=${nodeId}`);
  102. },
  103. // 更新节点审批状态(任务管理)
  104. updateNodeApproval: (params: UpdateNodeApprovalParam) => {
  105. return axiosInstance.post('/iscs/workflow-work/updateNodeApproval', params);
  106. },
  107. };