XuqmGroup-Web/ops-platform/src/api/ops.ts

65 行
1.6 KiB
TypeScript

2026-04-21 22:07:29 +08:00
import client from './client'
export interface TenantItem {
id: string
username: string
nickname: string
email: string
phone?: string
type: 'MAIN' | 'SUB'
status: 'ACTIVE' | 'DISABLED' | 'PENDING_EMAIL'
parentId?: string
createdAt: string
}
export interface TenantPage {
content: TenantItem[]
total: number
totalPages: number
}
export interface Statistics {
totalTenants: number
todayNew: number
activeApps: number
onlineUsers: number
}
export interface ServiceRequest {
id: string
appId: string
platform: string
serviceType: string
status: 'PENDING' | 'APPROVED' | 'REJECTED'
applyReason?: string
reviewNote?: string
createdAt: string
reviewedAt?: string
}
export interface ServiceRequestPage {
content: ServiceRequest[]
total: number
totalPages: number
}
2026-04-21 22:07:29 +08:00
export const opsApi = {
listTenants: (keyword = '', page = 0, size = 20) =>
client.get<{ data: TenantPage }>('/ops/tenants', { params: { keyword, page, size } }),
toggleStatus: (id: string) =>
client.post(`/ops/tenants/${id}/toggle-status`),
statistics: () =>
client.get<{ data: Statistics }>('/ops/statistics'),
listServiceRequests: (status = '', page = 0, size = 20) =>
client.get<{ data: ServiceRequestPage }>('/ops/service-requests', { params: { status, page, size } }),
approveRequest: (requestId: string, reviewNote = '') =>
client.post<{ data: ServiceRequest }>(`/ops/service-requests/${requestId}/approve`, { reviewNote }),
rejectRequest: (requestId: string, reviewNote = '') =>
client.post<{ data: ServiceRequest }>(`/ops/service-requests/${requestId}/reject`, { reviewNote }),
2026-04-21 22:07:29 +08:00
}