Files
hzdyjs/web/src/api/rs/overseas.ts
T

1086 lines
29 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import request from '@/utils/request';
// 出国申请查询参数类型
export interface OverseasApplicationQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
department?: string;
purpose?: string;
destination?: string;
status?: string;
approvalLevel?: string;
currentApprover?: string;
applicantId?: number;
budgetMin?: number;
budgetMax?: number;
applyTimeBegin?: string;
applyTimeEnd?: string;
startDateBegin?: string;
startDateEnd?: string;
params?: Record<string, any>;
}
// 出国申请数据类型
export interface OverseasApplicationVO {
applicationId: number | string;
serialNumber?: string; // 编号
applicantId: number;
applicantName: string;
gender?: string; // 性别
birthDate?: string; // 出生日期
photo?: string; // 照片地址
idNumber?: string; // 身份证号
politicalStatus?: string; // 政治面貌
registeredAddress?: string; // 户籍所在地
department: string;
position?: string; // 职务
professionalTitle?: string; // 职称
administrativeLevel?: string; // 行政职级
personnelCategory?: string; // 人员类别代码
registrationUnit?: string; // 登记备案责任单位
unitLeaderSignature?: string; // 单位负责人签名
officePhone?: string; // 办公电话
mobilePhone?: string; // 移动电话
contactPhone: string;
documentName?: string; // 申领证件名称
documentNumber?: string; // 证件号码
destinationCountry?: string; // 前往国家
exitReason?: string; // 出境事由
visitRelationship?: string; // 探望对象姓名及与申请者关系
remarks?: string; // 备注
emergencyContact?: string; // 应急联系人及电话
signature?: string; // 手写签字
stampedRegistrationFilePath?: string; // 登记备案表盖章文件路径
stampedRegistrationFileName?: string; // 登记备案表盖章文件名
stampedFileUploadTime?: string; // 盖章文件上传时间
stampedFileUploadStatus?: string; // 盖章文件上传状态
stampedFileOssId?: number; // 盖章文件OSS ID
partyRetentionFilePath?: string; // 党籍保留附件文件路径
partyRetentionFileName?: string; // 党籍保留附件文件名
partyRetentionUploadTime?: string; // 党籍保留附件上传时间
partyRetentionUploadStatus?: string; // 党籍保留附件上传状态
partyRetentionFileOssId?: number; // 党籍保留附件OSS ID
purpose: string;
purposeDetail: string;
destination: string;
destinationCity?: string;
startDate: string;
endDate: string;
duration: number;
budget: number;
invitation?: string;
itinerary: string;
accommodationPlan?: string;
transportationPlan?: string;
status: string;
currentApprover?: string;
approvalLevel: string;
applyTime: string;
approvalTime?: string;
adminRemark?: string;
applicantRemark?: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// 显示字段
statusText: string;
purposeText: string;
approvalLevelText: string;
genderText?: string;
politicalStatusText?: string;
administrativeLevelText?: string;
personnelCategoryText?: string;
// 工作流相关字段
approvalStatus?: string; // 工作流审批状态:draft/waiting/finish/back/cancel
approvalStatusText?: string; // 工作流审批状态文本
taskId?: string; // 当前待办任务ID(用于审批跳转)
}
// 出国申请表单类型
export interface OverseasApplicationForm {
applicationId?: number | string;
serialNumber?: string; // 编号
applicantId?: number;
applicantName?: string;
gender?: string; // 性别
birthDate?: string; // 出生日期
photo?: string; // 照片地址
idNumber?: string; // 身份证号
politicalStatus?: string; // 政治面貌
registeredAddress?: string; // 户籍所在地
department?: string; // 所属部门/现工作部门
position?: string; // 职务
professionalTitle?: string; // 职称
administrativeLevel?: string; // 行政职级
personnelCategory?: string; // 人员类别代码
unitLeaderSignature?: string; // 单位负责人签名
officePhone?: string; // 办公电话
mobilePhone?: string; // 移动电话
contactPhone?: string; // 联系电话(保留兼容性)
documentName?: string; // 申领证件名称
documentNumber?: string; // 证件号码
destinationCountry?: string; // 前往国家
exitReason?: string; // 出境事由
visitRelationship?: string; // 探望对象姓名及与申请者关系
remarks?: string; // 备注
emergencyContact?: string; // 应急联系人及电话
signature?: string; // 手写签字(base64格式)
stampedRegistrationFilePath?: string; // 登记备案表盖章文件路径
stampedRegistrationFileName?: string; // 登记备案表盖章文件名
stampedFileUploadTime?: string; // 盖章文件上传时间
stampedFileUploadStatus?: string; // 盖章文件上传状态:0-未上传,1-已上传
partyRetentionFilePath?: string; // 党籍保留附件文件路径
partyRetentionFileName?: string; // 党籍保留附件文件名
partyRetentionUploadTime?: string; // 党籍保留附件上传时间
partyRetentionUploadStatus?: string; // 党籍保留附件上传状态:0-未上传,1-已上传
purpose: string;
purposeDetail: string;
destination: string;
destinationCity?: string; // 目的地城市
startDate: string;
endDate: string;
duration?: number; // 自动计算
budget: number;
invitation?: string;
itinerary: string;
accommodationPlan?: string;
transportationPlan?: string;
applicantRemark?: string;
// 工作流相关字段
approvalStatus?: string; // 工作流审批状态
}
// 审批请求类型(支持标准工作流模式)
export interface ApprovalRequest {
applicationId: number | string;
approvalStatus: string;
approvalOpinion?: string;
approvalSignature?: string; // 审批签字(base64图片)
taskId?: string; // 🔴 新增:工作流任务ID,支持标准工作流模式
}
// 出国记录查询参数类型
export interface OverseasRecordQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
department?: string;
purpose?: string;
destination?: string;
completionStatus?: string;
applicantId?: number;
applicationId?: number;
actualStartDateBegin?: string;
actualStartDateEnd?: string;
actualEndDateBegin?: string;
actualEndDateEnd?: string;
params?: Record<string, any>;
}
// 出国记录数据类型
export interface OverseasRecordVO {
recordId: number | string;
applicationId: number;
applicantId: number;
applicantName: string;
department: string;
position: string;
positionText?: string; // 职务文本(用于显示)
contactPhone: string;
contactEmail: string;
purpose: string;
purposeDetail: string;
destination: string;
destinationCity: string;
actualStartDate: string;
actualEndDate: string;
actualDuration: number;
actualBudget: number;
invitation: string;
itinerary: string;
accommodationPlan: string;
transportationPlan: string;
completionStatus: string;
achievement: string;
reportContent: string;
certificatePath: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// 显示字段
purposeText: string;
status?: string; // 申请状态(来自申请表)
statusText?: string; // 申请状态文本(来自申请表)
completionStatusText: string;
// 来自申请表的扩展字段
gender?: string;
genderText?: string;
birthDate?: string;
politicalStatus?: string;
politicalStatusText?: string;
professionalTitle?: string;
documentName?: string;
documentNumber?: string;
mobilePhone?: string;
destinationCountry?: string;
exitReason?: string;
emergencyContact?: string;
remarks?: string;
}
// 出国记录表单类型
export interface OverseasRecordForm {
recordId?: number | string;
applicationId: number;
applicantId?: number;
applicantName?: string;
department?: string;
position?: string;
contactPhone?: string;
contactEmail?: string;
purpose?: string;
purposeDetail?: string;
destination?: string;
destinationCity?: string;
actualStartDate: string;
actualEndDate: string;
actualDuration?: number;
actualBudget: number;
completionStatus: string;
achievement?: string;
reportContent?: string;
certificatePath?: string;
}
// 完成状态更新请求类型
export interface CompletionRequest {
recordId: number | string;
completionStatus: string;
achievement?: string;
reportContent?: string;
}
// 出国审批记录查询参数类型
export interface OverseasApprovalQuery {
pageNum: number;
pageSize: number;
applicationId?: number;
approverId?: number;
approverName?: string;
approvalLevel?: string;
approvalStatus?: string;
approvalTimeBegin?: string;
approvalTimeEnd?: string;
applicantName?: string;
department?: string;
destination?: string;
params?: Record<string, any>;
}
// 出国审批记录数据类型
export interface OverseasApprovalVO {
approvalId: number | string;
applicationId: number;
approverId: number;
approverName: string;
approvalLevel: string;
approvalStatus: string;
approvalOpinion: string;
approvalTime: string;
createTime: string;
updateTime: string;
createBy: string;
updateBy: string;
// ==================== 申请信息相关字段 ====================
applicantId: number;
applicantName: string;
department: string;
purpose: string;
destination: string;
startDate: string;
endDate: string;
duration: number;
// 显示字段
approvalLevelText: string;
approvalStatusText: string;
purposeText: string;
}
// ==================== 出国申请相关API ====================
// 查询出国申请列表
export function listOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/list',
method: 'get',
params: query
});
}
// 查询我的出国申请列表
export function listMyOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/my/list',
method: 'get',
params: query
});
}
// 查询当前用户的待审批申请列表(五级审批模式)
export function listPendingOverseasApplication() {
return request({
url: '/rs/overseas/application/pending/list',
method: 'get'
});
}
// ========================================
// 🚨 标准化改造:删除自定义待审批查询API
//
// 原因:出国申请工作流应使用标准工作流模式
// 用户应通过工作流API pageByTaskWait() 获取待办任务
// 而不是调用自定义的业务API
//
// 删除的API:listPendingOverseasApplication()
//
// 标准工作流模式:
// 1. 导入工作流API:import { pageByTaskWait } from '@/api/workflow/task'
// 2. 调用标准API:pageByTaskWait(queryParams)
// 3. 获得待办任务列表,包含businessId
// 4. 点击办理跳转:/rs/overseas/application/edit?taskId=xxx&applicationId=businessId
// ========================================
// 根据状态查询申请列表
export function listOverseasApplicationByStatus(status: string) {
return request({
url: `/rs/overseas/application/status/${status}`,
method: 'get'
});
}
// 查询出国申请详细
export function getOverseasApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/application/detail/${applicationId}`,
method: 'get'
});
}
// 新增出国申请
export function addOverseasApplication(data: OverseasApplicationForm) {
return request({
url: '/rs/overseas/application',
method: 'post',
data: data
});
}
// 修改出国申请
export function updateOverseasApplication(data: OverseasApplicationForm) {
return request({
url: '/rs/overseas/application',
method: 'put',
data: data
});
}
// 提交出国申请
export function submitOverseasApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/application/submit/${applicationId}`,
method: 'put'
});
}
// 重新提交被拒绝的出国申请
export function resubmitOverseasApplication(applicationId: string | number, data: OverseasApplicationForm) {
return request({
url: `/rs/overseas/application/resubmit/${applicationId}`,
method: 'put',
data: data
});
}
// 校验出国申请前置条件
export function validateApplicationPrerequisites(politicalStatus?: string, duration?: number) {
return request({
url: '/rs/overseas/application/validatePrerequisites',
method: 'get',
params: {
politicalStatus,
duration
}
});
}
// 取消出国申请
export function cancelOverseasApplication(applicationId: string | number, reason?: string) {
return request({
url: `/rs/overseas/application/cancel/${applicationId}`,
method: 'put',
params: { reason }
});
}
// 审批出国申请
export function approveOverseasApplication(data: ApprovalRequest) {
return request({
url: '/rs/overseas/application/approve',
method: 'post',
data: data
});
}
// 删除出国申请
export function delOverseasApplication(applicationId: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/application/${typeof applicationId === 'object' ? applicationId.join(',') : applicationId}`,
method: 'delete'
});
}
// 导出出国申请
export function exportOverseasApplication(query: OverseasApplicationQuery) {
return request({
url: '/rs/overseas/application/export',
method: 'post',
data: query
});
}
// ==================== 出国记录相关API ====================
// 查询出国记录列表
export function listOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/list',
method: 'get',
params: query
});
}
// 查询我的出国记录列表
export function listMyOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/my/list',
method: 'get',
params: query
});
}
// 根据申请ID查询出国记录
export function getOverseasRecordByApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/record/application/${applicationId}`,
method: 'get'
});
}
// 查询出国记录详细
export function getOverseasRecord(recordId: string | number) {
return request({
url: `/rs/overseas/record/${recordId}`,
method: 'get'
});
}
// 新增出国记录
export function addOverseasRecord(data: OverseasRecordForm) {
return request({
url: '/rs/overseas/record',
method: 'post',
data: data
});
}
// 修改出国记录
export function updateOverseasRecord(data: OverseasRecordForm) {
return request({
url: '/rs/overseas/record',
method: 'put',
data: data
});
}
// 基于申请信息创建出国记录
export function createOverseasRecordFromApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/record/create/${applicationId}`,
method: 'post'
});
}
// 更新出国记录完成状态
export function updateOverseasRecordCompletion(data: CompletionRequest) {
return request({
url: '/rs/overseas/record/complete',
method: 'put',
data: data
});
}
// 删除出国记录
export function delOverseasRecord(recordId: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/record/${typeof recordId === 'object' ? recordId.join(',') : recordId}`,
method: 'delete'
});
}
// 导出出国记录
export function exportOverseasRecord(query: OverseasRecordQuery) {
return request({
url: '/rs/overseas/record/export',
method: 'post',
data: query
});
}
// 初始化出国记录测试数据(临时接口)
export function initOverseasRecordTestData() {
return request({
url: '/rs/overseas/record/initTestData',
method: 'post'
});
}
// ==================== 出国审批记录相关API ====================
// 查询出国审批记录列表
export function listOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/list',
method: 'get',
params: query
});
}
// 查询我的审批记录列表
export function listMyOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/my/list',
method: 'get',
params: query
});
}
// 根据申请ID查询审批记录列表
export function getOverseasApprovalByApplication(applicationId: string | number) {
return request({
url: `/rs/overseas/approval/application/${applicationId}`,
method: 'get'
});
}
// 查询出国审批记录详细
export function getOverseasApproval(approvalId: string | number) {
return request({
url: `/rs/overseas/approval/${approvalId}`,
method: 'get'
});
}
// 导出出国审批记录
export function exportOverseasApproval(query: OverseasApprovalQuery) {
return request({
url: '/rs/overseas/approval/export',
method: 'post',
data: query
});
}
// 获取出国申请审批历史
export function getOverseasApprovalHistory(applicationId: string | number) {
return request({
url: `/rs/overseas/application/approval/history/${applicationId}`,
method: 'get'
});
}
// 新增出国审批记录
export function addOverseasApproval(data: any) {
return request({
url: '/rs/overseas/approval',
method: 'post',
data: data
});
}
// 修改出国审批记录
export function updateOverseasApproval(data: any) {
return request({
url: '/rs/overseas/approval',
method: 'put',
data: data
});
}
// 删除出国审批记录
export function delOverseasApproval(approvalIds: string | number | Array<string | number>) {
return request({
url: `/rs/overseas/approval/${approvalIds}`,
method: 'delete'
});
}
// 修复审批记录数据
export function fixOverseasApprovalData() {
return request({
url: '/rs/overseas/approval/fixData',
method: 'post'
});
}
// 修复已审批通过但未创建记录的申请
export function fixApprovedOverseasRecords() {
return request({
url: '/rs/overseas/application/fix/records',
method: 'post'
});
}
// ==================== PDF生成相关接口 ====================
// 生成登记表请求参数类型
export interface GenerateRegistrationFormRequest {
applicationId: number;
documentNumber?: string;
format?: string;
}
// 登记表生成响应类型
export interface RegistrationFormResponse {
documentId: string;
fileName: string;
downloadUrl: string;
previewUrl: string;
fileSize: number;
generateTime: string;
documentNumber: string;
applicationId: number;
}
// 生成出国申请登记表PDF
export function generateRegistrationForm(data: GenerateRegistrationFormRequest) {
return request({
url: '/rs/overseas/application/generateRegistrationForm',
method: 'post',
data: data
});
}
// 下载生成的PDF文档
export function downloadRegistrationFormPdf(documentId: string) {
return request({
url: `/rs/overseas/application/downloadPdf/${documentId}`,
method: 'get',
responseType: 'blob'
});
}
// 预览生成的PDF文档
export function previewRegistrationFormPdf(documentId: string) {
return request({
url: `/rs/overseas/application/previewPdf/${documentId}`,
method: 'get',
responseType: 'blob'
});
}
// 下载登记备案附件模板
export function downloadRegistrationTemplate() {
return request({
url: '/rs/overseas/application/downloadRegistrationTemplate',
method: 'get',
responseType: 'blob'
});
}
// 下载保留党籍申请模板
export function downloadPartyMembershipTemplate() {
return request({
url: '/rs/overseas/application/downloadPartyMembershipTemplate',
method: 'get',
responseType: 'blob'
});
}
// ==================== 出国申请附件相关API ====================
// 附件数据类型
export interface OverseasAttachmentVO {
attachmentId: number | string;
applicationId: number;
attachmentTitle: string;
attachmentContent?: string;
fileName: string;
fileOriginalName: string;
filePath: string;
fileSize: number;
fileSizeFormatted?: string;
fileType?: string;
mimeType?: string;
uploadTime?: string;
uploadUserId?: number;
uploadUserName?: string;
createTime?: string;
updateTime?: string;
}
// 附件BO
export interface OverseasAttachmentBo {
attachmentId?: number | string;
applicationId: number;
attachmentTitle: string;
attachmentContent?: string;
}
// 查询出国申请的附件列表
export function listOverseasAttachments(applicationId: string | number) {
return request({
url: `/rs/overseas/attachment/list/${applicationId}`,
method: 'get'
});
}
// 查询附件详情
export function getOverseasAttachment(attachmentId: string | number) {
return request({
url: `/rs/overseas/attachment/${attachmentId}`,
method: 'get'
});
}
// 上传附件
export function uploadOverseasAttachment(data: FormData) {
return request({
url: '/rs/overseas/attachment/upload',
method: 'post',
headers: {
'Content-Type': 'multipart/form-data'
},
data: data
});
}
// 更新附件信息(标题和内容)
export function updateOverseasAttachment(data: OverseasAttachmentBo) {
return request({
url: '/rs/overseas/attachment',
method: 'put',
data: data
});
}
// 删除附件
export function deleteOverseasAttachment(attachmentId: string | number) {
return request({
url: `/rs/overseas/attachment/${attachmentId}`,
method: 'delete'
});
}
// 批量删除附件
export function deleteOverseasAttachments(attachmentIds: Array<string | number>) {
return request({
url: '/rs/overseas/attachment/batch',
method: 'delete',
data: attachmentIds
});
}
// ==================== 出国行程变更相关API ====================
// 行程变更查询参数类型
export interface ItineraryChangeQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
destination?: string;
status?: string;
params?: Record<string, any>;
}
// 行程变更数据类型
export interface ItineraryChangeVO {
changeId: number | string;
recordId: number;
applicationId?: number;
applicantName: string;
gender?: string;
birthDate?: string;
politicalStatus?: string;
professionalTitle?: string;
position?: string;
documentName?: string;
documentNumber?: string;
department: string;
originalDestination: string;
originalDestinationCity?: string;
originalExitReason: string;
originalStartDate: string;
originalEndDate: string;
originalDuration: number;
originalItinerary: string;
changeType: string;
newDestination?: string;
newDestinationCity?: string;
newExitReason?: string;
newStartDate?: string;
newEndDate?: string;
newDuration?: number;
newItinerary?: string;
changeReason: string;
remark?: string;
status: string;
statusText: string;
approvalOpinion?: string;
approvalBy?: number;
approvalByName?: string;
approvalTime?: string;
createTime: string;
updateTime?: string;
createBy: string;
updateBy: string;
}
// 行程变更表单类型
export interface ItineraryChangeForm {
changeId?: number | string;
recordId: number; // 关联出国记录ID(必填)
applicationId: number;
applicantId: number; // 申请人ID(必填)
applicantName?: string;
gender?: string;
birthDate?: string;
politicalStatus?: string;
professionalTitle?: string;
position?: string;
documentName?: string;
documentNumber?: string;
department?: string;
originalDestination?: string;
originalDestinationCity?: string;
originalExitReason?: string;
originalStartDate?: string;
originalEndDate?: string;
originalDuration?: number;
originalItinerary?: string;
changeType: string;
newDestination?: string;
newDestinationCity?: string;
newExitReason?: string;
newStartDate?: string;
newEndDate?: string;
newDuration?: number;
newItinerary?: string;
changeReason: string;
remark?: string;
}
// 行程变更审批请求类型
export interface ItineraryChangeApprovalRequest {
changeId: number | string;
approved: boolean; // true=通过,false=拒绝
opinion?: string; // 审批意见
signature?: string; // 审批签字(base64图片)
}
// 查询行程变更列表
export function listItineraryChange(query: ItineraryChangeQuery) {
return request({
url: '/rs/itinerary/change/list',
method: 'get',
params: query
});
}
// 查询我的变更记录列表(只返回已通过的变更申请)
export function listMyItineraryChange(query: ItineraryChangeQuery) {
return request({
url: '/rs/itinerary/change/my/list',
method: 'get',
params: query
});
}
// 查询待审批的行程变更列表
export function listPendingItineraryChange(query: ItineraryChangeQuery) {
return request({
url: '/rs/itinerary/change/pending/list',
method: 'get',
params: query
});
}
// 查询行程变更详细
export function getItineraryChange(changeId: string | number) {
return request({
url: `/rs/itinerary/change/${changeId}`,
method: 'get'
});
}
// 新增行程变更
export function addItineraryChange(data: ItineraryChangeForm) {
return request({
url: '/rs/itinerary/change',
method: 'post',
data: data
});
}
// 修改行程变更(重新提交)
export function updateItineraryChange(data: ItineraryChangeForm) {
return request({
url: '/rs/itinerary/change',
method: 'put',
data: data
});
}
// 删除行程变更
export function delItineraryChange(changeId: string | number | Array<string | number>) {
return request({
url: `/rs/itinerary/change/${typeof changeId === 'object' ? changeId.join(',') : changeId}`,
method: 'delete'
});
}
// 撤回行程变更
export function cancelItineraryChange(changeId: string | number, reason?: string) {
return request({
url: `/rs/itinerary/change/cancel/${changeId}`,
method: 'put',
params: { reason }
});
}
// 审批行程变更
export function approveItineraryChange(data: ItineraryChangeApprovalRequest) {
return request({
url: '/rs/itinerary/change/approve',
method: 'put',
data: data
});
}
// 导出行程变更列表
export function exportItineraryChange(query: ItineraryChangeQuery) {
return request({
url: '/rs/itinerary/change/export',
method: 'post',
data: query
});
}
// 获取可用的出国记录列表(用于选择原出国申请)
export function getAvailableOverseasRecords() {
return request({
url: '/rs/itinerary/change/available-records',
method: 'get'
});
}
// 获取已审批通过的出国申请列表(用于行程变更申请选择)
export function getApprovedOverseasApplications() {
return request({
url: '/rs/overseas/application/status/1',
method: 'get'
});
}
// 根据记录ID查询出国记录详情(用于显示原申请信息)
export function getOverseasRecordForChange(recordId: string | number) {
return request({
url: `/rs/itinerary/change/record/${recordId}`,
method: 'get'
});
}
// 查询某个记录的变更历史
export function getItineraryChangeHistory(recordId: string | number) {
return request({
url: `/rs/itinerary/change/record/${recordId}/history`,
method: 'get'
});
}
// ==================== 动态审批人获取API ====================
/**
* 根据申请人ID获取部门审批人ID
* @param applicantId 申请人ID
*/
export function getDepartmentApproverId(applicantId: string | number): Promise<{ data: number }> {
return request({
url: `/rs/overseas/application/getDepartmentApproverId/${applicantId}`,
method: 'get'
});
}
/**
* 根据申请人ID获取人事处审批人列表
* @param applicantId 申请人ID
*/
export function getHrApprovers(applicantId: string | number): Promise<{ data: number[] }> {
return request({
url: `/rs/overseas/application/getHrApprovers/${applicantId}`,
method: 'get'
});
}
// ==================== 出国申请进度查询(监控)相关API ====================
// 审批监控查询参数类型
export interface OverseasMonitorQuery {
pageNum: number;
pageSize: number;
applicantName?: string;
department?: string;
destination?: string;
approvalLevel?: string;
currentApprover?: string;
status?: string;
applyTimeStart?: string;
applyTimeEnd?: string;
}
// 查询待审批列表(监控)
export function getPendingList(query: OverseasMonitorQuery) {
return request({
url: '/rs/overseas/monitor/pending/list',
method: 'get',
params: query
});
}
// 查询已完成审批列表(监控)
export function getCompletedList(query: OverseasMonitorQuery) {
return request({
url: '/rs/overseas/monitor/completed/list',
method: 'get',
params: query
});
}
// 查询申请详情(监控)
export function getDetail(applicationId: string | number) {
return request({
url: `/rs/overseas/monitor/detail/${applicationId}`,
method: 'get'
});
}
// 下载审批表PDF
export function downloadApprovalPdf(applicationId: string | number) {
return request({
url: `/rs/overseas/monitor/downloadApprovalPdf/${applicationId}`,
method: 'get',
responseType: 'blob'
});
}