feat(admin): 新增角色权限与客服群管理

This commit is contained in:
yml2213
2026-10-30 16:08:54 +08:00
parent 81a19431fa
commit a54680f59a
9 changed files with 1114 additions and 1 deletions
+85
View File
@@ -51,8 +51,14 @@ import type {
AdminPaymentConfigPage,
AdminPaymentConfigPayload,
AdminPaymentConfigQuery,
AdminPermission,
AdminReceivedListingPage,
AdminReceivedListingQuery,
AdminRoleDetail,
AdminRolePayload,
AdminSupportGroup,
AdminSupportGroupPayload,
AdminSupportMember,
AdminSyncSiteAccountsPayload,
AdminSyncSiteAccountsResult,
AdminSystemConfig,
@@ -997,6 +1003,85 @@ export async function deleteAdminPaymentConfig(id: number) {
await adminClient.delete(`/admin/payment-configs/${id}`)
}
export async function fetchAdminRoles() {
const { data } = await adminClient.get<ApiResponse<AdminRoleDetail[]>>('/admin/roles')
return data.data ?? []
}
export async function fetchAdminRole(id: number) {
const { data } = await adminClient.get<ApiResponse<AdminRoleDetail>>(`/admin/roles/${id}`)
return data.data
}
export async function createAdminRole(payload: AdminRolePayload) {
const { data } = await adminClient.post<ApiResponse<AdminRoleDetail>>('/admin/roles', payload)
return data.data
}
export async function updateAdminRole(id: number, payload: AdminRolePayload) {
const { data } = await adminClient.put<ApiResponse<AdminRoleDetail>>(
`/admin/roles/${id}`,
payload
)
return data.data
}
export async function deleteAdminRole(id: number) {
await adminClient.delete(`/admin/roles/${id}`)
}
export async function fetchAdminPermissions() {
const { data } = await adminClient.get<ApiResponse<AdminPermission[]>>('/admin/permissions')
return data.data ?? []
}
export async function assignAdminRolePermissions(id: number, permissionIds: number[]) {
await adminClient.put(`/admin/roles/${id}/permissions`, { permission_ids: permissionIds })
}
export async function fetchAdminSupportGroups() {
const { data } = await adminClient.get<ApiResponse<AdminSupportGroup[]>>(
'/admin/chat-support-groups'
)
return data.data ?? []
}
export async function fetchAdminSupportAdmins() {
const { data } = await adminClient.get<ApiResponse<AdminSupportMember[]>>(
'/admin/chat-support-groups/support-admins'
)
return data.data ?? []
}
export async function createAdminSupportGroup(payload: AdminSupportGroupPayload) {
const { data } = await adminClient.post<ApiResponse<AdminSupportGroup>>(
'/admin/chat-support-groups',
payload
)
return data.data
}
export async function updateAdminSupportGroup(
id: number,
payload: AdminSupportGroupPayload
) {
const { data } = await adminClient.put<ApiResponse<AdminSupportGroup>>(
`/admin/chat-support-groups/${id}`,
payload
)
return data.data
}
export async function deleteAdminSupportGroup(id: number) {
await adminClient.delete(`/admin/chat-support-groups/${id}`)
}
export async function assignAdminSupportGroupMembers(id: number, memberIds: number[]) {
await adminClient.put(`/admin/chat-support-groups/${id}/members`, {
member_ids: memberIds,
})
}
export async function fetchFinanceDisbursements(query: FinanceDisbursementQuery) {
const { data } = await adminClient.get<ApiResponse<Partial<FinanceDisbursementPage>>>(
'/admin/finance/disbursements',