wuzhen update

This commit is contained in:
wuzhen committed 2025-08-02 20:52:04 +08:00
1 parent 1da0a6743f
commit 6a3246d98c
39 files changed
+5661 -667

No files matched your search

+47 -8
View File
@@ -82,20 +82,59 @@ export const getApprovalRecord = (id: string | number): AxiosPromise<CwApprovalR
// 审批申报(单个)
export const approveApplication = (data: CwApprovalForm) => {
// 🔧 修复:使用部门审批接口,将JSON数据转换为URL参数
const params = new URLSearchParams();
params.append('applicationId', String(data.applicationId || ''));
params.append('approveAction', data.approvalResult === 'approved' ? 'approve' : 'return');
params.append('approveOpinion', data.approvalComment || '');
return request({
url: '/cw/approval/process',
url: '/cw/approval/dept', // 🔧 修复:使用部门审批接口
method: 'post',
data: data
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: params.toString()
});
};
// 批量审批申报
export const batchApproveApplication = (data: CwApprovalForm) => {
return request({
url: '/cw/approval/batchApprove',
method: 'post',
data: data
});
export const batchApproveApplication = async (data: CwApprovalForm) => {
// 🔧 修复:后端没有批量接口,改为逐个调用
if (!data.applicationIds || data.applicationIds.length === 0) {
throw new Error('未选择要审批的申报项目');
}
console.log('🔧 批量审批开始,项目数量:', data.applicationIds.length);
const results = [];
for (const applicationId of data.applicationIds) {
try {
const singleData = {
applicationId: applicationId,
approvalResult: data.approvalResult,
approvalComment: data.approvalComment,
nextApprover: data.nextApprover
};
console.log('🔧 处理项目ID:', applicationId);
const result = await approveApplication(singleData);
results.push({ applicationId, success: true, result });
} catch (error) {
console.error('🔧 项目审批失败,ID:', applicationId, 'Error:', error);
results.push({ applicationId, success: false, error });
}
}
// 检查是否有失败的项目
const failures = results.filter(r => !r.success);
if (failures.length > 0) {
console.error('🔧 批量审批部分失败:', failures);
throw new Error(`批量审批完成,${failures.length}个项目审批失败`);
}
console.log('🔧 批量审批全部成功');
return { code: 200, msg: '批量审批成功', data: results };
};
// 获取审批历史记录
+38
View File
@@ -0,0 +1,38 @@
import request from '@/utils/request';
import { AxiosPromise } from 'axios';
export interface LeaderApprovalForm {
applicationId: number;
approvalResult: string; // 'approve' | 'reject'
approvalComment: string;
}
// 分管领导审批操作
export const leaderApproveApplication = (data: LeaderApprovalForm): AxiosPromise<any> => {
return request({
url: '/cw/approval/leader',
method: 'post',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
data: new URLSearchParams({
applicationId: data.applicationId.toString(),
approveAction: data.approvalResult,
approveOpinion: data.approvalComment
})
});
};
// 分管领导批量审批操作
export const batchLeaderApproveApplication = (dataList: LeaderApprovalForm[]): AxiosPromise<any> => {
// 前端模拟批量操作,逐个调用单个审批接口
const promises = dataList.map(item => leaderApproveApplication(item));
return Promise.all(promises).then(results => {
return {
data: results,
code: 200,
message: '批量操作成功'
};
});
};
+5 -2
View File
@@ -1,6 +1,6 @@
/**
* 财务项目预算审批 - TypeScript类型定义
*
*
* @author ruoyi
* @date 2025-01-26
*/
@@ -39,6 +39,7 @@ export interface CwProjectApplicationVO {
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
// 分年度预算明细
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
@@ -64,6 +65,7 @@ export interface CwProjectApplicationVO {
updateBy?: number;
updateTime?: string;
remark?: string;
performanceIndicators?: any[]; // 绩效指标数据
}
// 项目预算申报表单对象
@@ -86,6 +88,7 @@ export interface CwProjectApplicationForm {
totalMunicipalFiscal?: number;
totalSelfFunding?: number;
totalOtherFunding?: number;
// 分年度预算明细
currentYearTotal?: number;
currentYearMunicipal?: number;
currentYearSelf?: number;
@@ -199,4 +202,4 @@ export interface StatusDistribution {
statusName: string;
count: number;
percentage: number;
}
}