|
|
|
|
@ -1,11 +1,92 @@
|
|
|
|
|
import request from '@/utils/request';
|
|
|
|
|
import { AxiosPromise } from 'axios';
|
|
|
|
|
import {
|
|
|
|
|
DashboardVO,
|
|
|
|
|
RealtimeStats,
|
|
|
|
|
DeviceStatusVO,
|
|
|
|
|
SuccessRateTrend,
|
|
|
|
|
StatisticsOverview,
|
|
|
|
|
AlarmStatVO
|
|
|
|
|
} from './types';
|
|
|
|
|
|
|
|
|
|
// ==================== 新增接口(按需刷新) ====================
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取首页统计数据
|
|
|
|
|
* 【新接口1】获取实时统计数据(按秒刷新)
|
|
|
|
|
* 包含:顶部统计(设备数量、在线数量、离线数量、告警数量)+ 告警统计列表
|
|
|
|
|
*
|
|
|
|
|
* @param alarmLimit 告警列表限制数量(默认10条)
|
|
|
|
|
*/
|
|
|
|
|
export const getDashboardStats = () => {
|
|
|
|
|
export const getRealtimeStats = (alarmLimit?: number): AxiosPromise<RealtimeStats> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/stats',
|
|
|
|
|
url: '/rfid/dashboard/realtime',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: { alarmLimit }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 【新接口2】获取设备状态列表(定时刷新)
|
|
|
|
|
* 包含每个设备的在线状态、告警状态及最新读取记录
|
|
|
|
|
*
|
|
|
|
|
* @param locationId 位置ID(可选,用于按位置筛选)
|
|
|
|
|
*/
|
|
|
|
|
export const getDeviceStatusList = (locationId?: number): AxiosPromise<DeviceStatusVO[]> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/deviceStatus',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: { locationId }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 【新接口3】获取成功率趋势(按小时统计)
|
|
|
|
|
* 不需要频繁刷新
|
|
|
|
|
*
|
|
|
|
|
* @param type 类型:today-今日(默认),yesterday-昨日
|
|
|
|
|
*/
|
|
|
|
|
export const getSuccessRateTrends = (type?: string): AxiosPromise<SuccessRateTrend[]> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/successRate',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: { type }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// ==================== 原有接口(保留) ====================
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取完整看板数据
|
|
|
|
|
*
|
|
|
|
|
* @param locationId 位置ID(可选)
|
|
|
|
|
*/
|
|
|
|
|
export const getDashboardData = (locationId?: number): AxiosPromise<DashboardVO> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/data',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: { locationId }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取统计概览
|
|
|
|
|
*/
|
|
|
|
|
export const getOverview = (): AxiosPromise<StatisticsOverview> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/overview',
|
|
|
|
|
method: 'get'
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 获取告警统计列表
|
|
|
|
|
*
|
|
|
|
|
* @param limit 限制数量(默认10条)
|
|
|
|
|
*/
|
|
|
|
|
export const getAlarmStats = (limit?: number): AxiosPromise<AlarmStatVO[]> => {
|
|
|
|
|
return request({
|
|
|
|
|
url: '/rfid/dashboard/alarmStats',
|
|
|
|
|
method: 'get',
|
|
|
|
|
params: { limit }
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|