import request from '@/utils/request'; import type { AxiosPromise } from 'axios'; import type { PageQuery, TableDataInfo } from '@/api/types'; /** * 项目审批流程查询参数 */ export interface CwProjectApprovalQuery extends PageQuery { applicationNo?: string; projectName?: string; processStatus?: string; submitterName?: string; startTime?: string[]; } /** * 项目审批流程VO */ export interface CwProjectApprovalProcessVO { id: string | number; applicationId: string | number; applicationNo: string; processName: string; processStatus: string; totalNodes: number; currentNode: number; startTime: string; endTime: string; submitterId: string | number; submitterName: string; createTime: string; updateTime: string; } /** * 审批记录VO */ export interface CwApprovalRecordVO { id: string | number; applicationId: string | number; applicationNo: string; processId: string | number; nodeCode: string; nodeName: string; customNodeName: string; nodeOrder: number; approverId: string | number; approverName: string; nodeStatus: string; approveAction: string; approveOpinion: string; startTime: string; endTime: string; isCustomProcess: boolean; createTime: string; updateTime: string; } /** * 自定义审批流程启动请求 */ export interface CwCustomApprovalRequest { applicationId: string | number; applicationNo: string; auditorIds: Array; processName: string; submitterId: string | number; submitterName: string; } /** * 审批操作请求 */ export interface CwApprovalActionRequest { recordId: string | number; action: string; // approve | reject opinion: string; } /** * 查询项目审批流程列表 */ export function listProjectApproval(query: CwProjectApprovalQuery): AxiosPromise> { return request({ url: '/cw/projectApproval/list', method: 'get', params: query }); } /** * 获取项目审批流程详细信息 */ export function getProjectApproval(id: string | number): AxiosPromise { return request({ url: '/cw/projectApproval/' + id, method: 'get' }); } /** * 启动自定义审批流程 */ export function startCustomApprovalProcess(data: CwCustomApprovalRequest): AxiosPromise { return request({ url: '/cw/projectApproval/start', method: 'post', data: data }); } /** * 执行审批操作(统一接口) */ export function approveProcess(data: CwApprovalActionRequest): AxiosPromise { return request({ url: '/cw/projectApproval/approve', method: 'put', data: data }); } /** * 打回申请(统一接口) */ export function rejectProcess(data: CwApprovalActionRequest): AxiosPromise { return request({ url: '/cw/projectApproval/approve', method: 'put', data: data }); } /** * 终止审批流程 */ export function terminateProcess(id: string | number): AxiosPromise { return request({ url: '/cw/projectApproval/' + id, method: 'delete' }); } /** * 获取我的待审批列表 */ export function getMyPendingApprovals(query?: CwProjectApprovalQuery): AxiosPromise { return request({ url: '/cw/projectApproval/pending', method: 'get', params: query }); } /** * 获取我的已审批列表 */ export function getMyProcessedApprovals(query?: CwProjectApprovalQuery): AxiosPromise { return request({ url: '/cw/projectApproval/processed', method: 'get', params: query }); } /** * 获取审批记录 */ export function getApprovalRecords(applicationId: string | number): AxiosPromise { return request({ url: '/cw/projectApproval/records/' + applicationId, method: 'get' }); } /** * 验证审批流程 */ export function validateApprovalProcess(data: CwCustomApprovalRequest): AxiosPromise { return request({ url: '/cw/projectApproval/validate', method: 'post', data: data }); } /** * 获取审批流程统计数据 */ export function getApprovalStatistics(): AxiosPromise { return request({ url: '/cw/projectApproval/statistics', method: 'get' }); } /** * 导出项目审批流程 */ export function exportProjectApproval(query: CwProjectApprovalQuery): AxiosPromise { return request({ url: '/cw/projectApproval/export', method: 'post', data: query, responseType: 'blob' }); } /** * 获取可用审核人选项 */ export function getAuditorOptions(): AxiosPromise { return request({ url: '/cw/projectAuditor/options', method: 'get' }); }