Files
ckb-SuperAdmin/Cunkebao/types/device.ts
2025-04-09 09:31:09 +08:00

141 lines
2.4 KiB
TypeScript

// 设备状态枚举
export enum DeviceStatus {
ONLINE = "online",
OFFLINE = "offline",
BUSY = "busy",
ERROR = "error",
}
// 设备类型枚举
export enum DeviceType {
ANDROID = "android",
IOS = "ios",
}
// 服务端API返回的设备类型
export interface ServerDevice {
id: number;
imei: string;
memo: string;
wechatId: string;
alive: number;
totalFriend: number;
}
// 服务端API返回的设备列表响应
export interface ServerDevicesResponse {
code: number;
msg: string;
data: {
list: ServerDevice[];
total: number;
page: number;
limit: number;
};
}
// 设备基础信息
export interface Device {
id: string
name: string
imei: string
type: DeviceType
status: DeviceStatus
wechatId: string
friendCount: number
battery: number
lastActive: string
addFriendStatus: "normal" | "abnormal"
remark?: string
}
// 设备统计信息
export interface DeviceStats {
totalTasks: number
completedTasks: number
failedTasks: number
todayNewFriends: number
totalNewFriends: number
onlineTime: number // 在线时长(分钟)
}
// 设备任务记录
export interface DeviceTaskRecord {
id: string
deviceId: string
taskType: string
status: "pending" | "running" | "completed" | "failed"
startTime: string
endTime?: string
result?: string
error?: string
}
// API响应格式
export interface ApiResponse<T> {
code: number
message: string
data: T | null
}
// 分页响应格式
export interface PaginatedResponse<T> {
items: T[]
total: number
page: number
pageSize: number
totalPages: number
}
// 设备查询参数
export interface QueryDeviceParams {
keyword?: string
status?: DeviceStatus
type?: DeviceType
tags?: string[]
page?: number
pageSize?: number
dateRange?: {
start: string
end: string
}
}
// 创建设备参数
export interface CreateDeviceParams {
name: string
imei: string
type: DeviceType
wechatId?: string
remark?: string
tags?: string[]
}
// 更新设备参数
export interface UpdateDeviceParams {
id: string
name?: string
wechatId?: string
remark?: string
tags?: string[]
}
export interface DeviceResponse {
code: number
message: string
data: {
devices: Device[]
total: number
}
}
export interface DeviceSelectResponse {
code: number
message: string
data: {
success: boolean
deviceIds: string[]
}
}