From dc1d067c566bbde1c7170186960a8bd27f210a47 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期三, 09 九月 2026 13:45:58 +0800
Subject: [PATCH] feat(bi): 新增决策总览仪表盘并优化预测分析功能

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

diff --git a/src/api/bi/decision/kpi.ts b/src/api/bi/decision/kpi.ts
index c7fcfbf..7e55345 100644
--- a/src/api/bi/decision/kpi.ts
+++ b/src/api/bi/decision/kpi.ts
@@ -34,6 +34,35 @@
     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() {
@@ -52,6 +81,19 @@
   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 });
 }

--
Gitblit v1.9.3