218 lines
4.6 KiB
TypeScript
218 lines
4.6 KiB
TypeScript
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<string | number>;
|
|
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<TableDataInfo<CwProjectApprovalProcessVO>> {
|
|
return request({
|
|
url: '/cw/projectApproval/list',
|
|
method: 'get',
|
|
params: query
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取项目审批流程详细信息
|
|
*/
|
|
export function getProjectApproval(id: string | number): AxiosPromise<CwProjectApprovalProcessVO> {
|
|
return request({
|
|
url: '/cw/projectApproval/' + id,
|
|
method: 'get'
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 启动自定义审批流程
|
|
*/
|
|
export function startCustomApprovalProcess(data: CwCustomApprovalRequest): AxiosPromise<void> {
|
|
return request({
|
|
url: '/cw/projectApproval/start',
|
|
method: 'post',
|
|
data: data
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 执行审批操作(统一接口)
|
|
*/
|
|
export function approveProcess(data: CwApprovalActionRequest): AxiosPromise<void> {
|
|
return request({
|
|
url: '/cw/projectApproval/approve',
|
|
method: 'put',
|
|
data: data
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 打回申请(统一接口)
|
|
*/
|
|
export function rejectProcess(data: CwApprovalActionRequest): AxiosPromise<void> {
|
|
return request({
|
|
url: '/cw/projectApproval/approve',
|
|
method: 'put',
|
|
data: data
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 终止审批流程
|
|
*/
|
|
export function terminateProcess(id: string | number): AxiosPromise<void> {
|
|
return request({
|
|
url: '/cw/projectApproval/' + id,
|
|
method: 'delete'
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取我的待审批列表
|
|
*/
|
|
export function getMyPendingApprovals(query?: CwProjectApprovalQuery): AxiosPromise<any> {
|
|
return request({
|
|
url: '/cw/projectApproval/pending',
|
|
method: 'get',
|
|
params: query
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取我的已审批列表
|
|
*/
|
|
export function getMyProcessedApprovals(query?: CwProjectApprovalQuery): AxiosPromise<any> {
|
|
return request({
|
|
url: '/cw/projectApproval/processed',
|
|
method: 'get',
|
|
params: query
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取审批记录
|
|
*/
|
|
export function getApprovalRecords(applicationId: string | number): AxiosPromise<CwApprovalRecordVO[]> {
|
|
return request({
|
|
url: '/cw/projectApproval/records/' + applicationId,
|
|
method: 'get'
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 验证审批流程
|
|
*/
|
|
export function validateApprovalProcess(data: CwCustomApprovalRequest): AxiosPromise<any> {
|
|
return request({
|
|
url: '/cw/projectApproval/validate',
|
|
method: 'post',
|
|
data: data
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取审批流程统计数据
|
|
*/
|
|
export function getApprovalStatistics(): AxiosPromise<any> {
|
|
return request({
|
|
url: '/cw/projectApproval/statistics',
|
|
method: 'get'
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 导出项目审批流程
|
|
*/
|
|
export function exportProjectApproval(query: CwProjectApprovalQuery): AxiosPromise<void> {
|
|
return request({
|
|
url: '/cw/projectApproval/export',
|
|
method: 'post',
|
|
data: query,
|
|
responseType: 'blob'
|
|
});
|
|
}
|
|
|
|
/**
|
|
* 获取可用审核人选项
|
|
*/
|
|
export function getAuditorOptions(): AxiosPromise<any[]> {
|
|
return request({
|
|
url: '/cw/projectAuditor/options',
|
|
method: 'get'
|
|
});
|
|
}
|