From 256a5924785dc3053177aafa640c3cfe1e7b782e Mon Sep 17 00:00:00 2001 From: zhangjf Date: Sun, 1 Mar 2026 22:28:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(=E7=AE=A1=E7=90=86=E7=AB=AF):=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E6=94=AF=E5=87=BA=E7=B1=BB=E5=9E=8B=20API=E8=B7=AF?= =?UTF-8?q?=E5=BE=84=E7=BC=BA=E5=A4=B1/api/v1=20=E5=89=8D=E7=BC=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 问题现象: - 管理端支出类型页面无法显示数据库数据 - 后端接口返回 404 根本原因: - ExpenseTypeController 的路径是 /api/v1/exp/expense-type - 前端 expense.ts 中所有 API 调用都缺少 /api/v1 前缀 修复内容: - getExpenseTypeList: /exp/expense-type/page → /api/v1/exp/expense-type/page - getExpenseTypeTree: /exp/expense-type/tree → /api/v1/exp/expense-type/tree - createExpenseType: /exp/expense-type → /api/v1/exp/expense-type - updateExpenseType: /exp/expense-type/{id} → /api/v1/exp/expense-type/{id} - deleteExpenseType: /exp/expense-type/{id} → /api/v1/exp/expense-type/{id} - getExpenseList: /exp/expense/page → /api/v1/exp/expense/page - getExpenseById: /exp/expense/{id} → /api/v1/exp/expense/{id} - createExpense: /exp/expense → /api/v1/exp/expense - updateExpense: /exp/expense/{id} → /api/v1/exp/expense/{id} - deleteExpense: /exp/expense/{id} → /api/v1/exp/expense/{id} - 所有审批流程 API 同样添加 /api/v1 前缀 - exportExpense 导出 URL 也添加 /api/v1 前缀 技术细节: - 统一 API路径规范,与后端 Controller 保持一致 - 符合项目 RESTful API 设计标准(/api/v1/模块/资源) --- fund-admin/src/api/expense.ts | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/fund-admin/src/api/expense.ts b/fund-admin/src/api/expense.ts index 72061b7..6ebea6b 100644 --- a/fund-admin/src/api/expense.ts +++ b/fund-admin/src/api/expense.ts @@ -2,65 +2,65 @@ import { request } from './request' // 支出类型 export function getExpenseTypeList(params: { pageNum: number; pageSize: number; typeName?: string; status?: string }) { - return request.get('/exp/expense-type/page', { params }) + return request.get('/api/v1/exp/expense-type/page', { params }) } export function getExpenseTypeTree() { - return request.get('/exp/expense-type/tree') + return request.get('/api/v1/exp/expense-type/tree') } export function createExpenseType(data: any) { - return request.post('/exp/expense-type', data) + return request.post('/api/v1/exp/expense-type', data) } export function updateExpenseType(id: number, data: any) { - return request.put(`/exp/expense-type/${id}`, data) + return request.put(`/api/v1/exp/expense-type/${id}`, data) } export function deleteExpenseType(id: number) { - return request.delete(`/exp/expense-type/${id}`) + return request.delete(`/api/v1/exp/expense-type/${id}`) } // 支出管理 export function getExpenseList(params: { pageNum: number; pageSize: number; title?: string; expenseType?: number; approvalStatus?: number; payStatus?: number }) { - return request.get('/exp/expense/page', { params }) + return request.get('/api/v1/exp/expense/page', { params }) } export function getExpenseById(id: number) { - return request.get(`/exp/expense/${id}`) + return request.get(`/api/v1/exp/expense/${id}`) } export function createExpense(data: any) { - return request.post('/exp/expense', data) + return request.post('/api/v1/exp/expense', data) } export function updateExpense(id: number, data: any) { - return request.put(`/exp/expense/${id}`, data) + return request.put(`/api/v1/exp/expense/${id}`, data) } export function deleteExpense(id: number) { - return request.delete(`/exp/expense/${id}`) + return request.delete(`/api/v1/exp/expense/${id}`) } // 审批流程 export function submitExpense(id: number) { - return request.post(`/exp/expense/${id}/submit`) + return request.post(`/api/v1/exp/expense/${id}/submit`) } export function withdrawExpense(id: number) { - return request.post(`/exp/expense/${id}/withdraw`) + return request.post(`/api/v1/exp/expense/${id}/withdraw`) } export function approveExpense(id: number, comment: string) { - return request.put(`/exp/expense/${id}/approve?comment=${encodeURIComponent(comment)}`) + return request.put(`/api/v1/exp/expense/${id}/approve?comment=${encodeURIComponent(comment)}`) } export function rejectExpense(id: number, comment: string) { - return request.put(`/exp/expense/${id}/reject?comment=${encodeURIComponent(comment)}`) + return request.put(`/api/v1/exp/expense/${id}/reject?comment=${encodeURIComponent(comment)}`) } export function confirmPayExpense(id: number, payChannel: string, payVoucher?: string) { - return request.put(`/exp/expense/${id}/confirm-pay?payChannel=${payChannel}&payVoucher=${payVoucher || ''}`) + return request.put(`/api/v1/exp/expense/${id}/confirm-pay?payChannel=${payChannel}&payVoucher=${payVoucher || ''}`) } // 导出支出明细 @@ -76,7 +76,7 @@ export function exportExpense(params?: { title?: string; expenseType?: number; a if (params?.payStatus !== undefined) queryParams.append('payStatus', String(params.payStatus)) const queryString = queryParams.toString() - const url = `${baseUrl}/exp/expense/export${queryString ? '?' + queryString : ''}` + const url = `${baseUrl}/api/v1/exp/expense/export${queryString ? '?' + queryString : ''}` return fetch(url, { headers: {