Полная зачистка legacy + закрытие fix24.1/fix24.2 + обновление логотипа
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
import request from "@/utils/request";
|
||||
import { AxiosPromise } from "axios";
|
||||
import {
|
||||
DashboardSummaryVo,
|
||||
DashboardTimeseriesVo,
|
||||
DashboardTopPeerVo,
|
||||
SecurityRiskVo,
|
||||
} from "./types";
|
||||
|
||||
export function dashboardSummaryApi(): AxiosPromise<DashboardSummaryVo> {
|
||||
return request({
|
||||
url: "/dashboard/summary",
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
export function dashboardTimeseriesApi(range = "24h"): AxiosPromise<DashboardTimeseriesVo> {
|
||||
return request({
|
||||
url: "/dashboard/timeseries",
|
||||
method: "get",
|
||||
params: { range },
|
||||
});
|
||||
}
|
||||
|
||||
export function dashboardTopPeersApi(range = "24h", limit = 10): AxiosPromise<DashboardTopPeerVo[]> {
|
||||
return request({
|
||||
url: "/dashboard/top-peers",
|
||||
method: "get",
|
||||
params: { range, limit },
|
||||
});
|
||||
}
|
||||
|
||||
export function dashboardSecurityApi(): AxiosPromise<SecurityRiskVo[]> {
|
||||
return request({
|
||||
url: "/dashboard/security",
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
export interface SecurityRiskVo {
|
||||
key: string;
|
||||
severity: "info" | "warning" | "critical";
|
||||
actionRoute?: string;
|
||||
dismissible: boolean;
|
||||
}
|
||||
|
||||
export interface DashboardSummaryVo {
|
||||
collectedAt: number;
|
||||
system: {
|
||||
cpuPercent: number;
|
||||
memUsedBytes: number;
|
||||
memTotalBytes: number;
|
||||
memPercent: number;
|
||||
diskUsedBytes: number;
|
||||
diskTotalBytes: number;
|
||||
diskPercent: number;
|
||||
};
|
||||
hysteria: {
|
||||
version: string;
|
||||
running: boolean;
|
||||
apiReachable: boolean;
|
||||
lastApiError?: string;
|
||||
};
|
||||
peers: {
|
||||
total: number;
|
||||
enabled: number;
|
||||
disabled: number;
|
||||
expired: number;
|
||||
onlinePeers: number;
|
||||
onlineDevices: number;
|
||||
};
|
||||
traffic: {
|
||||
downloadBytes: number;
|
||||
uploadBytes: number;
|
||||
totalBytes: number;
|
||||
todayDownloadBytes: number;
|
||||
todayUploadBytes: number;
|
||||
sinceResetDownloadBytes: number;
|
||||
sinceResetUploadBytes: number;
|
||||
};
|
||||
health: {
|
||||
collector: {
|
||||
status: "ok" | "stale" | "error";
|
||||
messageKey?: string;
|
||||
lastSuccessAt?: number;
|
||||
};
|
||||
hysteria: {
|
||||
status: "ok" | "stale" | "error";
|
||||
messageKey?: string;
|
||||
lastSuccessAt?: number;
|
||||
};
|
||||
};
|
||||
securityRisks: SecurityRiskVo[];
|
||||
}
|
||||
|
||||
export interface DashboardTimeseriesVo {
|
||||
range: string;
|
||||
traffic: Array<{ ts: number; download?: number; upload?: number }>;
|
||||
system: Array<{ ts: number; cpu?: number; mem?: number }>;
|
||||
collectedAt: number;
|
||||
}
|
||||
|
||||
export interface DashboardTopPeerVo {
|
||||
peerId: number;
|
||||
name: string;
|
||||
remark: string;
|
||||
download: number;
|
||||
upload: number;
|
||||
total: number;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user