| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import request from '@/utils/http'
- import { getWater, type WaterPage } from './index'
- export type DeviceStatus = 'online' | 'offline' | 'fault' | 'unconnected'
- export interface DeviceFilters {
- keyword: string
- status: DeviceStatus | ''
- region: string
- firmware: string
- }
- export interface WaterDevice {
- id: number
- name: string
- sn: string
- enterprise_id: number
- enterprise_name: string | null
- region: string | null
- sku_id: number
- sku_name: string | null
- firmware: string
- connection_status: DeviceStatus
- today_liters: number | null
- last_seen: string | null
- last_seen_seconds: number | null
- fault: string
- }
- export interface DeviceSummary {
- total: number
- online: number
- offline: number
- fault: number
- unconnected: number
- new_month: number
- offline_long: number
- online_rate: number
- }
- export interface FirmwareVersion {
- version: string
- total: number
- }
- export interface DeviceDashboard {
- summary: DeviceSummary
- list: Omit<WaterPage, 'data'> & { data: WaterDevice[] }
- options: { regions: string[]; firmwares: FirmwareVersion[] }
- trend: { day: string; liters: number | null; reporting_devices: number }[]
- anomalies: { label: string; total: number; percentage: number }[]
- updated_at: string
- }
- export const getDeviceDashboard = (params: DeviceFilters & { page: number; limit: number }) =>
- getWater<DeviceDashboard>('devices/dashboard', params)
- export const exportDevices = (filters: DeviceFilters) =>
- request.post<Blob>({
- url: '/core/water/devices/export',
- data: filters,
- responseType: 'blob',
- timeout: 0,
- showErrorMessage: false
- })
|