fix(管理端): 修复支出类型 API路径缺失/api/v1 前缀

问题现象:
- 管理端支出类型页面无法显示数据库数据
- 后端接口返回 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/模块/资源)
This commit is contained in:
zhangjf 2026-03-01 22:28:14 +08:00
parent a74875eeda
commit 256a592478

View File

@ -2,65 +2,65 @@ import { request } from './request'
// 支出类型 // 支出类型
export function getExpenseTypeList(params: { pageNum: number; pageSize: number; typeName?: string; status?: string }) { 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() { export function getExpenseTypeTree() {
return request.get('/exp/expense-type/tree') return request.get('/api/v1/exp/expense-type/tree')
} }
export function createExpenseType(data: any) { 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) { 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) { 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 }) { 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) { export function getExpenseById(id: number) {
return request.get(`/exp/expense/${id}`) return request.get(`/api/v1/exp/expense/${id}`)
} }
export function createExpense(data: any) { 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) { 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) { export function deleteExpense(id: number) {
return request.delete(`/exp/expense/${id}`) return request.delete(`/api/v1/exp/expense/${id}`)
} }
// 审批流程 // 审批流程
export function submitExpense(id: number) { 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) { 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) { 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) { 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) { 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)) if (params?.payStatus !== undefined) queryParams.append('payStatus', String(params.payStatus))
const queryString = queryParams.toString() 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, { return fetch(url, {
headers: { headers: {