import { requestClient } from '#/api/request';
|
|
export namespace DecisionKpiApi {
|
export interface KpiItem {
|
code: string;
|
name: string;
|
category: string;
|
unit: string;
|
value: number;
|
alertStatus: 'normal' | 'warn' | 'critical';
|
chartType: string;
|
status: number;
|
}
|
|
export interface KpiOverview {
|
kpis: KpiItem[];
|
total: number;
|
}
|
|
export interface KpiDefinition {
|
id?: number;
|
code: string;
|
name: string;
|
category: string;
|
unit?: string;
|
dataSource?: string;
|
querySql?: string;
|
chartType?: string;
|
thresholdWarn?: number;
|
thresholdCritical?: number;
|
comparisonOperator?: string;
|
refreshInterval?: number;
|
sort?: number;
|
status?: number;
|
remark?: string;
|
}
|
|
/** 趋势快照点 */
|
export interface KpiTrendPoint {
|
time: string;
|
value: number;
|
}
|
|
/** 趋势数据 */
|
export interface KpiTrend {
|
kpiCode: string;
|
kpiName: string;
|
category: string;
|
unit: string;
|
periodType: string;
|
points: KpiTrendPoint[];
|
}
|
|
/** 环比研判 */
|
export interface KpiCompare {
|
currentValue?: number;
|
currentTime?: string;
|
previousValue?: number;
|
previousTime?: string;
|
changeRate?: number | null;
|
avgValue?: number;
|
maxValue?: number;
|
minValue?: number;
|
periodCount: number;
|
}
|
}
|
|
export function getKpiOverview() {
|
return requestClient.get<DecisionKpiApi.KpiOverview>('/bi/decision/kpi/overview');
|
}
|
|
export function getKpiDetail(kpiCode: string) {
|
return requestClient.get<Record<string, unknown>>(`/bi/decision/kpi/detail/${kpiCode}`);
|
}
|
|
export function getKpiByCategory(category: string) {
|
return requestClient.get<Record<string, unknown>>(`/bi/decision/kpi/category/${category}`);
|
}
|
|
export function refreshKpi(kpiCode: string) {
|
return requestClient.post<number>(`/bi/decision/kpi/refresh/${kpiCode}`);
|
}
|
|
export function getKpiTrend(
|
kpiCode: string,
|
params?: { beginTime?: string; endTime?: string; periodType?: string },
|
) {
|
return requestClient.get<DecisionKpiApi.KpiTrend>(`/bi/decision/kpi/trend/${kpiCode}`, {
|
params,
|
});
|
}
|
|
export function getKpiCompare(kpiCode: string) {
|
return requestClient.get<DecisionKpiApi.KpiCompare>(`/bi/decision/kpi/compare/${kpiCode}`);
|
}
|
|
export function getKpiDefinitionPage(params: Record<string, unknown>) {
|
return requestClient.get('/bi/decision/kpi-definition/page', { params });
|
}
|
|
export function getKpiDefinitionList() {
|
return requestClient.get('/bi/decision/kpi-definition/list-all');
|
}
|
|
export function getKpiDefinition(id: number) {
|
return requestClient.get<DecisionKpiApi.KpiDefinition>('/bi/decision/kpi-definition/get', { params: { id } });
|
}
|
|
export function createKpiDefinition(data: DecisionKpiApi.KpiDefinition) {
|
return requestClient.post('/bi/decision/kpi-definition/create', data);
|
}
|
|
export function updateKpiDefinition(data: DecisionKpiApi.KpiDefinition) {
|
return requestClient.put('/bi/decision/kpi-definition/update', data);
|
}
|
|
export function deleteKpiDefinition(id: number) {
|
return requestClient.delete('/bi/decision/kpi-definition/delete', { params: { id } });
|
}
|