This commit is contained in:
2026-08-11 09:25:48 +08:00
parent d967355272
commit 5da1b7548b
11 changed files with 253 additions and 7 deletions
+46
View File
@@ -0,0 +1,46 @@
import { http, unwrapApiResponse, type ApiEnvelope } from '@/shared/api/http'
import type { FinanceBillResource, FinanceCostResource, FinanceReceiptResource, FinanceReportResource } from '../types'
const basePath = '/platform/v1/finance'
interface PageResult<T> { records: T[]; total: number; page: number; size: number }
export async function listFinanceBills(params: Record<string, string | number | undefined>) {
const response = await http.get<ApiEnvelope<PageResult<FinanceBillResource>>, ApiEnvelope<PageResult<FinanceBillResource>>>(`${basePath}/bills`, { params: { ...params, currency: 'CNY' } })
return unwrapApiResponse(response)
}
export async function createFinanceBill(payload: Record<string, unknown>) {
const response = await http.post<ApiEnvelope<FinanceBillResource>, ApiEnvelope<FinanceBillResource>>(`${basePath}/bills`, { ...payload, currency: 'CNY' })
return unwrapApiResponse(response)
}
export async function listFinanceReceipts(params: Record<string, string | number | undefined>) {
const response = await http.get<ApiEnvelope<PageResult<FinanceReceiptResource>>, ApiEnvelope<PageResult<FinanceReceiptResource>>>(`${basePath}/receipts`, { params: { ...params, currency: 'CNY' } })
return unwrapApiResponse(response)
}
export async function createFinanceReceipt(payload: Record<string, unknown>, voucher?: File) {
const body = new FormData()
body.append('payload', JSON.stringify({ ...payload, currency: 'CNY' }))
if (voucher) body.append('file', voucher)
const response = await http.post<ApiEnvelope<FinanceReceiptResource>, ApiEnvelope<FinanceReceiptResource>>(`${basePath}/receipts`, body)
return unwrapApiResponse(response)
}
export async function listFinanceCosts(params: Record<string, string | number | undefined>) {
const response = await http.get<ApiEnvelope<PageResult<FinanceCostResource>>, ApiEnvelope<PageResult<FinanceCostResource>>>(`${basePath}/costs`, { params: { ...params, currency: 'CNY' } })
return unwrapApiResponse(response)
}
export async function createFinanceCost(payload: Record<string, unknown>, voucher?: File) {
const body = new FormData()
body.append('payload', JSON.stringify({ ...payload, currency: 'CNY' }))
if (voucher) body.append('file', voucher)
const response = await http.post<ApiEnvelope<FinanceCostResource>, ApiEnvelope<FinanceCostResource>>(`${basePath}/costs`, body)
return unwrapApiResponse(response)
}
export async function listFinanceReports(params: Record<string, string | number | undefined>) {
const response = await http.get<ApiEnvelope<FinanceReportResource[]>, ApiEnvelope<FinanceReportResource[]>>(`${basePath}/reports`, { params: { ...params, currency: 'CNY' } })
return unwrapApiResponse(response)
}