Files
order_site/apps/frontend/src/services/admin/manual-expense.ts
T
yml2213 0889235870 feat(finance): 完成成本快照运行层、销售事实与人工支出登记
迁移 108-111:快照业务时间与预估转实际、销售事实表、系统成本项、公司人工支出登记。接单平台按工单实际 reward 入账;人工支出支持登记/审批/驳回/报销并写 actual 快照。新增销售毛利页、人工支出页与订单入口。
2026-10-22 16:41:03 +08:00

71 lines
2.0 KiB
TypeScript

import { apiGet, apiPost } from '@/lib/http'
import type {
AdminManualExpense,
AdminManualExpenseListResult,
AdminManualExpenseOverview,
} from '@/types/admin/manual-expense'
export type AdminManualExpenseParams = {
dateFrom?: string
dateTo?: string
status?: string
keyword?: string
costItemId?: number
paidByAdminUserId?: number
orderId?: number
page?: number
pageSize?: number
}
export function fetchAdminManualExpenses(params: AdminManualExpenseParams = {}) {
return apiGet<AdminManualExpenseListResult>('/api/v1/admin/finance/manual-expenses', params)
}
export function fetchAdminManualExpenseOverview(params: AdminManualExpenseParams = {}) {
return apiGet<AdminManualExpenseOverview>(
'/api/v1/admin/finance/manual-expenses/overview',
params,
)
}
export function fetchAdminManualExpenseCostItems() {
return apiGet<{
items: Array<{
id: number
code: string
name: string
costType: string
carrierType: string
pricingMode: string
}>
}>('/api/v1/admin/finance/manual-expenses/cost-items')
}
export function fetchAdminManualExpense(expenseId: number) {
return apiGet<AdminManualExpense>(`/api/v1/admin/finance/manual-expenses/${expenseId}`)
}
export function createAdminManualExpense(payload: Record<string, unknown>) {
return apiPost<AdminManualExpense>('/api/v1/admin/finance/manual-expenses', payload)
}
export function approveAdminManualExpense(
expenseId: number,
payload: Record<string, unknown> = {},
) {
return apiPost<AdminManualExpense>(
`/api/v1/admin/finance/manual-expenses/${expenseId}/approve`,
payload,
)
}
export function rejectAdminManualExpense(expenseId: number, rejectReason: string) {
return apiPost<AdminManualExpense>(`/api/v1/admin/finance/manual-expenses/${expenseId}/reject`, {
rejectReason,
})
}
export function reimburseAdminManualExpense(expenseId: number) {
return apiPost<AdminManualExpense>(`/api/v1/admin/finance/manual-expenses/${expenseId}/reimburse`)
}