feat():learning后台管理前端页面初始化
This commit is contained in:
34
src/types/auditLog.ts
Normal file
34
src/types/auditLog.ts
Normal file
@@ -0,0 +1,34 @@
|
||||
export interface AuditLog {
|
||||
id: number;
|
||||
operation_type: string;
|
||||
operation_time: string;
|
||||
operator_id: number;
|
||||
operator_email: string;
|
||||
target_type?: string | null;
|
||||
target_id?: number | null;
|
||||
target_email?: string | null;
|
||||
operation_details?: Record<string, any> | null;
|
||||
ip_address?: string | null;
|
||||
user_agent?: string | null;
|
||||
status?: string | null;
|
||||
error_message?: string | null;
|
||||
}
|
||||
|
||||
export interface AuditLogListRequest {
|
||||
operation_type?: string;
|
||||
operator_email?: string;
|
||||
target_email?: string;
|
||||
start_time?: string;
|
||||
end_time?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
sort_by?: string;
|
||||
sort_order?: 'asc' | 'desc';
|
||||
}
|
||||
|
||||
export interface AuditLogListResponse {
|
||||
list: AuditLog[];
|
||||
total: number;
|
||||
page: number;
|
||||
size: number;
|
||||
}
|
||||
56
src/types/inviteCode.ts
Normal file
56
src/types/inviteCode.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
// 简化版邀请码类型定义
|
||||
export interface InviteCode {
|
||||
id: number;
|
||||
code: string;
|
||||
is_used: boolean;
|
||||
client_id?: string;
|
||||
client_label?: string;
|
||||
email?: string;
|
||||
user_level_id?: number;
|
||||
user_level_name?: string;
|
||||
expires_at?: string | null;
|
||||
created_at: string;
|
||||
invite_url?: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeListRequest {
|
||||
code?: string;
|
||||
is_used?: boolean;
|
||||
start_time?: string;
|
||||
end_time?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export interface InviteCodeCreateRequest {
|
||||
emails?: string[];
|
||||
user_level_id?: number;
|
||||
expires_at?: string;
|
||||
client_id?: string; // 保留向后兼容
|
||||
}
|
||||
|
||||
export interface InviteCodeUpdateRequest {
|
||||
client_id?: string;
|
||||
email?: string;
|
||||
user_level_id?: number;
|
||||
expires_at?: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeStatistics {
|
||||
total: number;
|
||||
used: number;
|
||||
unused: number;
|
||||
today_created: number;
|
||||
}
|
||||
|
||||
export interface InviteCodeListResponse {
|
||||
list: InviteCode[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
// 客户端选项
|
||||
export interface ClientOption {
|
||||
key: string;
|
||||
value: string;
|
||||
label: string;
|
||||
}
|
||||
64
src/types/inviteCodeApplication.ts
Normal file
64
src/types/inviteCodeApplication.ts
Normal file
@@ -0,0 +1,64 @@
|
||||
export interface InviteCodeApplication {
|
||||
id: number;
|
||||
email: string;
|
||||
reason?: string;
|
||||
status: 'pending' | 'approved' | 'rejected';
|
||||
invite_code_id?: number;
|
||||
invite_code?: {
|
||||
id: number;
|
||||
code: string;
|
||||
expires_at?: string;
|
||||
};
|
||||
reject_reason?: string;
|
||||
approved_at?: string;
|
||||
approved_by?: string;
|
||||
email_sent_at?: string;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationListRequest {
|
||||
email?: string;
|
||||
status?: 'pending' | 'approved' | 'rejected';
|
||||
start_time?: string;
|
||||
end_time?: string;
|
||||
page?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationListResponse {
|
||||
list: InviteCodeApplication[];
|
||||
total: number;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationCreateRequest {
|
||||
email: string;
|
||||
reason?: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationApproveRequest {
|
||||
application_id: number;
|
||||
valid_days?: number; // 有效期天数,默认7天
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationRejectRequest {
|
||||
application_id: number;
|
||||
reject_reason?: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationBatchApproveRequest {
|
||||
application_ids: number[];
|
||||
valid_days?: number;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationBatchRejectRequest {
|
||||
application_ids: number[];
|
||||
reject_reason?: string;
|
||||
}
|
||||
|
||||
export interface InviteCodeApplicationStatistics {
|
||||
total_pending: number; // 待处理数量
|
||||
total_approved: number; // 已通过数量
|
||||
total_rejected: number; // 已拒绝数量
|
||||
today_applied: number; // 今日申请数量
|
||||
}
|
||||
67
src/types/mcpProvider.ts
Normal file
67
src/types/mcpProvider.ts
Normal file
@@ -0,0 +1,67 @@
|
||||
export interface MCPProvider {
|
||||
id: string;
|
||||
provider: string;
|
||||
base_url: string;
|
||||
auth?: string;
|
||||
account?: string;
|
||||
price_type: string;
|
||||
price: number;
|
||||
floating_ratio: number;
|
||||
is_used: boolean;
|
||||
status: string;
|
||||
description?: string;
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface MCPProviderListRequest {
|
||||
page?: number;
|
||||
page_size?: number;
|
||||
provider?: string;
|
||||
status?: string;
|
||||
is_used?: boolean;
|
||||
}
|
||||
|
||||
export interface MCPProviderListResponse {
|
||||
data: MCPProvider[];
|
||||
total: number;
|
||||
page: number;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export interface MCPProviderCreateRequest {
|
||||
provider: string;
|
||||
base_url: string;
|
||||
auth?: string;
|
||||
account?: string;
|
||||
price_type: string;
|
||||
price: number;
|
||||
floating_ratio?: number;
|
||||
is_used?: boolean;
|
||||
status?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface MCPProviderUpdateRequest {
|
||||
provider?: string;
|
||||
base_url?: string;
|
||||
auth?: string;
|
||||
account?: string;
|
||||
price_type?: string;
|
||||
price?: number;
|
||||
floating_ratio?: number;
|
||||
is_used?: boolean;
|
||||
status?: string;
|
||||
description?: string;
|
||||
}
|
||||
|
||||
export interface MCPProviderStatusRequest {
|
||||
status: 'active' | 'inactive';
|
||||
}
|
||||
|
||||
export interface MCPProviderIsUsedRequest {
|
||||
is_used: boolean;
|
||||
}
|
||||
|
||||
|
||||
|
||||
66
src/types/quota.ts
Normal file
66
src/types/quota.ts
Normal file
@@ -0,0 +1,66 @@
|
||||
// 配额历史查询请求
|
||||
export interface QuotaHistoryRequest {
|
||||
start_date: string; // 开始日期 (YYYY-MM-DD)
|
||||
end_date: string; // 结束日期 (YYYY-MM-DD)
|
||||
user_id?: string; // 用户ID (可选)
|
||||
api_group?: string; // API组 (可选)
|
||||
project_id?: string; // 项目ID (可选)
|
||||
period?: string; // 周期: daily, monthly
|
||||
group_by?: string[]; // 分组维度
|
||||
}
|
||||
|
||||
// 配额历史数据项
|
||||
export interface QuotaHistoryItem {
|
||||
id: number;
|
||||
user_id: string;
|
||||
api_group: string;
|
||||
project_id: string;
|
||||
day: string;
|
||||
account: string;
|
||||
model: string;
|
||||
quota_used: number;
|
||||
created_at: string;
|
||||
}
|
||||
|
||||
// 配额历史查询响应
|
||||
export interface QuotaHistoryResponse {
|
||||
success: boolean;
|
||||
data: QuotaHistoryItem[];
|
||||
message?: string;
|
||||
}
|
||||
|
||||
// 统计概览数据
|
||||
export interface QuotaStats {
|
||||
totalQuota: number;
|
||||
totalUsers: number;
|
||||
totalProjects: number;
|
||||
totalModels: number;
|
||||
dailyUsage: Array<{
|
||||
date: string;
|
||||
quota: number;
|
||||
}>;
|
||||
topUsers: Array<{
|
||||
user_id: string;
|
||||
quota_used: number;
|
||||
}>;
|
||||
topModels: Array<{
|
||||
model: string;
|
||||
quota_used: number;
|
||||
}>;
|
||||
}
|
||||
|
||||
// 图表数据
|
||||
export interface ChartData {
|
||||
name: string;
|
||||
value: number;
|
||||
color?: string;
|
||||
}
|
||||
|
||||
// 时间范围选项
|
||||
export interface TimeRange {
|
||||
label: string;
|
||||
value: string;
|
||||
days: number;
|
||||
}
|
||||
|
||||
|
||||
50
src/types/systemConfig.ts
Normal file
50
src/types/systemConfig.ts
Normal file
@@ -0,0 +1,50 @@
|
||||
// 系统配置类型定义
|
||||
|
||||
export interface SystemConfig {
|
||||
id: number;
|
||||
key: string;
|
||||
name: string;
|
||||
value: string;
|
||||
type: string;
|
||||
desc: string;
|
||||
status: number; // 1-启用 0-禁用
|
||||
createdAt: string;
|
||||
updatedAt: string;
|
||||
deletedAt?: string | null;
|
||||
}
|
||||
|
||||
export interface SystemConfigListRequest {
|
||||
key?: string;
|
||||
name?: string;
|
||||
status?: number;
|
||||
page?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export interface SystemConfigListResponse {
|
||||
code: number;
|
||||
message: string;
|
||||
data: SystemConfig[];
|
||||
total: number;
|
||||
page: number;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export interface SystemConfigCreateRequest {
|
||||
key: string;
|
||||
name: string;
|
||||
value: string;
|
||||
type?: string;
|
||||
desc?: string;
|
||||
}
|
||||
|
||||
export interface SystemConfigUpdateRequest {
|
||||
name: string;
|
||||
value: string;
|
||||
type?: string;
|
||||
desc?: string;
|
||||
}
|
||||
|
||||
export interface SystemConfigStatusRequest {
|
||||
status: number;
|
||||
}
|
||||
55
src/types/userLevelConfig.ts
Normal file
55
src/types/userLevelConfig.ts
Normal file
@@ -0,0 +1,55 @@
|
||||
// 用户等级配置类型定义
|
||||
|
||||
export interface UserLevelConfig {
|
||||
id: number;
|
||||
level_name: string;
|
||||
level_code: string;
|
||||
project_limit: number;
|
||||
coder_vm_limit: number; // Coder VM上限
|
||||
browser_vm_limit: number; // Browser VM上限
|
||||
process_limit: number; // 进程上限
|
||||
description: string;
|
||||
sort_order: number;
|
||||
status: number; // 1-启用 0-禁用
|
||||
created_at: string;
|
||||
updated_at: string;
|
||||
}
|
||||
|
||||
export interface UserLevelConfigListRequest {
|
||||
level_name?: string;
|
||||
status?: number;
|
||||
page?: number;
|
||||
size?: number;
|
||||
}
|
||||
|
||||
export interface UserLevelConfigListResponse {
|
||||
data: UserLevelConfig[];
|
||||
total: number;
|
||||
page: number;
|
||||
size: number;
|
||||
}
|
||||
|
||||
export interface UserLevelConfigCreateRequest {
|
||||
level_name: string;
|
||||
level_code: string;
|
||||
project_limit: number;
|
||||
coder_vm_limit: number;
|
||||
browser_vm_limit: number;
|
||||
process_limit: number;
|
||||
description?: string;
|
||||
sort_order?: number;
|
||||
}
|
||||
|
||||
export interface UserLevelConfigUpdateRequest {
|
||||
level_name: string;
|
||||
project_limit: number;
|
||||
coder_vm_limit: number;
|
||||
browser_vm_limit: number;
|
||||
process_limit: number;
|
||||
description?: string;
|
||||
sort_order?: number;
|
||||
}
|
||||
|
||||
export interface UserLevelConfigStatusRequest {
|
||||
status: number;
|
||||
}
|
||||
25
src/types/userProjectQuota.ts
Normal file
25
src/types/userProjectQuota.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
export interface UserProjectQuotaItem {
|
||||
id: number
|
||||
user_id: string
|
||||
project_limit: number
|
||||
coder_vm_limit: number
|
||||
browser_vm_limit: number
|
||||
process_limit: number
|
||||
enabled: boolean
|
||||
description?: string
|
||||
created_at?: string
|
||||
updated_at?: string
|
||||
}
|
||||
|
||||
export interface PageResponse<T> {
|
||||
code: number
|
||||
message: string
|
||||
data: {
|
||||
data?: T[]
|
||||
items?: T[]
|
||||
total: number
|
||||
page: number
|
||||
size: number
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user