feat(admin): 新增邀请管理页

This commit is contained in:
yml2213
2026-10-30 17:12:32 +08:00
parent bb0581c218
commit e309fddd18
5 changed files with 636 additions and 0 deletions
+82
View File
@@ -123,6 +123,10 @@ import type {
AdminNotificationPage,
AdminPushChannel,
AdminPushRule,
AdminInvitationConfig,
AdminInvitationRelationPage,
AdminInviteRebatePage,
AdminInviteRebateSummary,
ManualDisbursementPayload,
OperatingExpensePage,
OperatingExpensePayload,
@@ -1796,3 +1800,81 @@ export async function updatePushRule(
export async function fetchAdminInvitationConfig(siteId?: number) {
const { data } = await adminClient.get<ApiResponse<AdminInvitationConfig>>(
'/admin/invitations/configs',
{ params: siteId ? { site_id: siteId } : undefined }
)
return data.data
}
export async function updateAdminInvitationConfig(payload: {
first_month_rate: number
second_month_rate: number
subsequent_rate: number
enabled: boolean
site_id?: number
}) {
const { data } = await adminClient.put<ApiResponse<AdminInvitationConfig>>(
'/admin/invitations/configs',
payload
)
return data.data
}
export async function fetchAdminInvitationRelations(query: {
phone?: string
invite_code?: string
status?: string
page?: number
page_size?: number
}) {
const { data } = await adminClient.get<ApiResponse<Partial<AdminInvitationRelationPage>>>(
'/admin/invitations',
{ params: compactParams(query) }
)
return {
items: data.data.items ?? [],
total: data.data.total ?? 0,
page: data.data.page ?? query.page ?? 1,
page_size: data.data.page_size ?? query.page_size ?? 20,
}
}
export async function fetchAdminInviteRebates(query: {
order_no?: string
inviter_phone?: string
invitee_phone?: string
trade_role?: string
start_date?: string
end_date?: string
page?: number
page_size?: number
}) {
const { data } = await adminClient.get<ApiResponse<Partial<AdminInviteRebatePage>>>(
'/admin/invitations/rebates',
{ params: compactParams(query) }
)
return {
items: data.data.items ?? [],
total: data.data.total ?? 0,
page: data.data.page ?? query.page ?? 1,
page_size: data.data.page_size ?? query.page_size ?? 20,
}
}
export async function fetchAdminInviteRebateSummary(query: {
order_no?: string
inviter_phone?: string
invitee_phone?: string
trade_role?: string
start_date?: string
end_date?: string
}) {
const { data } = await adminClient.get<ApiResponse<AdminInviteRebateSummary>>(
'/admin/invitations/rebates/summary',
{ params: compactParams(query) }
)
return data.data
}