| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765 |
- 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; // 单位负责人签名
- unitContact?: 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; // 盖章文件上传状态
- 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;
- }
- // 出国申请表单类型
- 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; // 单位负责人签名
- unitContact?: 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;
- }
- // 审批请求类型
- export interface ApprovalRequest {
- applicationId: number | string;
- approvalStatus: string;
- approvalOpinion?: string;
- }
- // 出国记录查询参数类型
- 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;
- 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(query: OverseasApplicationQuery) {
- return request({
- url: '/rs/overseas/application/pending/list',
- method: 'get',
- params: query
- });
- }
- // 根据状态查询申请列表
- 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
- });
- }
|