| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import axios from 'axios';
- import { AlarmChartData, CategoryChartData, CategoryChartDataWithPercent, OnlineRateChartData, StateChartData, StateChartDataWithPercent } from "../../share/monitorTypes.ts";
- export const MonitorChartsAPI = {
- // 资产分类数据查询
- fetchCategoryData: async (): Promise<CategoryChartDataWithPercent[]> => {
- const res = await axios.get<CategoryChartData[]>(`/big/zichan_category_chart`);
-
- // 预先计算百分比
- const data = res.data;
- const total = data.reduce((sum: number, item: CategoryChartData) => sum + item['设备数'], 0);
-
- // 为每个数据项添加百分比字段
- return data.map(item => ({
- ...item,
- 百分比: total > 0 ? (item['设备数'] / total * 100).toFixed(1) : '0'
- }));
- },
-
- // 在线率变化数据查询
- fetchOnlineRateData: async (params?: {
- created_at_gte?: string;
- created_at_lte?: string;
- dimension?: string;
- }): Promise<OnlineRateChartData[]> => {
- // 可选参数
- // const params = {
- // created_at_gte: dayjs().subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss'),
- // created_at_lte: dayjs().format('YYYY-MM-DD HH:mm:ss'),
- // dimension: 'day'
- // };
-
- const res = await axios.get<OnlineRateChartData[]>(`/big/zichan_online_rate_chart`, { params });
- return res.data;
- },
-
- // 资产流转状态数据查询
- fetchStateData: async (): Promise<StateChartDataWithPercent[]> => {
- const res = await axios.get<StateChartData[]>(`/big/zichan_state_chart`);
-
- // 预先计算百分比
- const data = res.data;
- const total = data.reduce((sum: number, item: StateChartData) => sum + item['设备数'], 0);
-
- // 为每个数据项添加百分比字段
- return data.map(item => ({
- ...item,
- 百分比: total > 0 ? (item['设备数'] / total * 100).toFixed(1) : '0'
- }));
- },
-
- // 告警数据变化查询
- fetchAlarmData: async (params?: {
- created_at_gte?: string;
- created_at_lte?: string;
- dimension?: string;
- }): Promise<AlarmChartData[]> => {
- // 可选参数
- // const params = {
- // created_at_gte: dayjs().startOf('day').format('YYYY-MM-DD HH:mm:ss'),
- // created_at_lte: dayjs().endOf('day').format('YYYY-MM-DD HH:mm:ss'),
- // dimension: 'hour'
- // };
-
-
- const res = await axios.get<AlarmChartData[]>(`/big/zichan_alarm_chart`, { params });
- return res.data;
- }
- };
|