const axios = require('axios'); const BASE_URL = 'http://localhost:3002/api'; async function testAPIs() { console.log('开始测试所有修复的API...\n'); const results = []; // 测试预算报价API try { const res = await axios.get(`${BASE_URL}/budget-projects`); results.push({ name: '预算报价', endpoint: '/api/budget-projects', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 预算报价API测试成功'); } catch (error) { results.push({ name: '预算报价', endpoint: '/api/budget-projects', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 预算报价API测试失败:', error.message); } // 测试施工管理API try { const res = await axios.get(`${BASE_URL}/construction/my-projects`); results.push({ name: '施工管理', endpoint: '/api/construction/my-projects', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 施工管理API测试成功'); } catch (error) { results.push({ name: '施工管理', endpoint: '/api/construction/my-projects', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 施工管理API测试失败:', error.message); } // 测试预支款API try { const res = await axios.get(`${BASE_URL}/advances`); results.push({ name: '预支款', endpoint: '/api/advances', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 预支款API测试成功'); } catch (error) { results.push({ name: '预支款', endpoint: '/api/advances', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 预支款API测试失败:', error.message); } // 测试报销API try { const res = await axios.get(`${BASE_URL}/reimbursements`); results.push({ name: '报销', endpoint: '/api/reimbursements', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 报销API测试成功'); } catch (error) { results.push({ name: '报销', endpoint: '/api/reimbursements', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 报销API测试失败:', error.message); } // 测试付款申请API try { const res = await axios.get(`${BASE_URL}/payment-requests`); results.push({ name: '付款申请', endpoint: '/api/payment-requests', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 付款申请API测试成功'); } catch (error) { results.push({ name: '付款申请', endpoint: '/api/payment-requests', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 付款申请API测试失败:', error.message); } // 测试核销API try { const res = await axios.get(`${BASE_URL}/verifications`); results.push({ name: '核销', endpoint: '/api/verifications', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 核销API测试成功'); } catch (error) { results.push({ name: '核销', endpoint: '/api/verifications', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 核销API测试失败:', error.message); } // 测试采购申请API try { const res = await axios.get(`${BASE_URL}/purchase-requests`); results.push({ name: '采购申请', endpoint: '/api/purchase-requests', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 采购申请API测试成功'); } catch (error) { results.push({ name: '采购申请', endpoint: '/api/purchase-requests', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 采购申请API测试失败:', error.message); } // 测试汇率最新API try { const res = await axios.get(`${BASE_URL}/exchange-rates/latest`); results.push({ name: '汇率最新', endpoint: '/api/exchange-rates/latest', status: res.status, success: res.data.success, dataCount: Object.keys(res.data.data || {}).length, error: null }); console.log('✅ 汇率最新API测试成功'); } catch (error) { results.push({ name: '汇率最新', endpoint: '/api/exchange-rates/latest', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 汇率最新API测试失败:', error.message); } // 测试汇率历史API try { const res = await axios.get(`${BASE_URL}/exchange-rates/history`); results.push({ name: '汇率历史', endpoint: '/api/exchange-rates/history', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 汇率历史API测试成功'); } catch (error) { results.push({ name: '汇率历史', endpoint: '/api/exchange-rates/history', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 汇率历史API测试失败:', error.message); } // 测试项目API try { const res = await axios.get(`${BASE_URL}/projects`); results.push({ name: '项目', endpoint: '/api/projects', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 项目API测试成功'); } catch (error) { results.push({ name: '项目', endpoint: '/api/projects', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 项目API测试失败:', error.message); } // 测试分包商API try { const res = await axios.get(`${BASE_URL}/subcontractors`); results.push({ name: '分包商', endpoint: '/api/subcontractors', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 分包商API测试成功'); } catch (error) { results.push({ name: '分包商', endpoint: '/api/subcontractors', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 分包商API测试失败:', error.message); } // 测试供应商API try { const res = await axios.get(`${BASE_URL}/suppliers`); results.push({ name: '供应商', endpoint: '/api/suppliers', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 供应商API测试成功'); } catch (error) { results.push({ name: '供应商', endpoint: '/api/suppliers', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 供应商API测试失败:', error.message); } // 测试客户API try { const res = await axios.get(`${BASE_URL}/customers`); results.push({ name: '客户', endpoint: '/api/customers', status: res.status, success: res.data.success, dataCount: res.data.data?.length || 0, error: null }); console.log('✅ 客户API测试成功'); } catch (error) { results.push({ name: '客户', endpoint: '/api/customers', status: error.response?.status || 'N/A', success: false, error: error.message }); console.log('❌ 客户API测试失败:', error.message); } console.log('\n========================================'); console.log('测试结果汇总:'); console.log('========================================\n'); results.forEach(result => { const status = result.success ? '✅ 成功' : '❌ 失败'; console.log(`${status} | ${result.name}`); console.log(` 端点: ${result.endpoint}`); console.log(` 状态码: ${result.status}`); if (result.success) { console.log(` 数据量: ${result.dataCount}`); } else { console.log(` 错误: ${result.error}`); } console.log(''); }); const successCount = results.filter(r => r.success).length; const failCount = results.filter(r => !r.success).length; console.log('========================================'); console.log(`总计: ${results.length}个API`); console.log(`成功: ${successCount}个`); console.log(`失败: ${failCount}个`); console.log('========================================'); } testAPIs().catch(console.error);