From 27c8277d717b34b55f3ea967027b53b067f77df3 Mon Sep 17 00:00:00 2001
From: xiaoyi <908147524@qq.com>
Date: 星期四, 20 八月 2026 16:58:49 +0800
Subject: [PATCH] feat 功能变更

---
 src/api/bi/decision/kpi.ts |   77 ++++++++++++++++++++++++++++++++++++++
 1 files changed, 77 insertions(+), 0 deletions(-)

diff --git a/src/api/bi/decision/kpi.ts b/src/api/bi/decision/kpi.ts
new file mode 100644
index 0000000..c7fcfbf
--- /dev/null
+++ b/src/api/bi/decision/kpi.ts
@@ -0,0 +1,77 @@
+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 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 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 } });
+}
\ No newline at end of file

--
Gitblit v1.9.3