zhangjf b3ef6d89f1 feat: 添加前端管理平台fund-admin并优化后端接口
- 新增fund-admin前端项目(Vue3 + TypeScript + Element Plus)
  - 登录认证、用户信息获取
  - 系统管理:用户、角色、部门、菜单
  - 客户管理、项目管理、需求工单
  - 支出管理、应收款管理
  - Dashboard首页
  - 浅色系侧边栏菜单、面包屑导航

- fund-sys: 添加获取用户信息接口
- fund-exp: 添加支出类型分页接口、修复路由顺序
- fund-proj: 修复路由顺序(/page放于/{id}之前)
- fund-receipt: 新增应收款管理功能
2026-02-17 20:35:18 +08:00

65 lines
2.1 KiB
TypeScript

import { request } from './request'
// 支出类型
export function getExpenseTypeList(params: { pageNum: number; pageSize: number; typeName?: string; status?: string }) {
return request.get('/exp/api/v1/exp/expense-type/page', { params })
}
export function getExpenseTypeTree() {
return request.get('/exp/api/v1/exp/expense-type/tree')
}
export function createExpenseType(data: any) {
return request.post('/exp/api/v1/exp/expense-type', data)
}
export function updateExpenseType(id: number, data: any) {
return request.put(`/exp/api/v1/exp/expense-type/${id}`, data)
}
export function deleteExpenseType(id: number) {
return request.delete(`/exp/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/api/v1/exp/expense/page', { params })
}
export function getExpenseById(id: number) {
return request.get(`/exp/api/v1/exp/expense/${id}`)
}
export function createExpense(data: any) {
return request.post('/exp/api/v1/exp/expense', data)
}
export function updateExpense(id: number, data: any) {
return request.put(`/exp/api/v1/exp/expense/${id}`, data)
}
export function deleteExpense(id: number) {
return request.delete(`/exp/api/v1/exp/expense/${id}`)
}
// 审批流程
export function submitExpense(id: number) {
return request.post(`/exp/api/v1/exp/expense/${id}/submit`)
}
export function withdrawExpense(id: number) {
return request.post(`/exp/api/v1/exp/expense/${id}/withdraw`)
}
export function approveExpense(id: number, comment: string) {
return request.put(`/exp/api/v1/exp/expense/${id}/approve?comment=${encodeURIComponent(comment)}`)
}
export function rejectExpense(id: number, comment: string) {
return request.put(`/exp/api/v1/exp/expense/${id}/reject?comment=${encodeURIComponent(comment)}`)
}
export function confirmPayExpense(id: number, payChannel: string, payVoucher?: string) {
return request.put(`/exp/api/v1/exp/expense/${id}/confirm-pay?payChannel=${payChannel}&payVoucher=${payVoucher || ''}`)
}