From 7aa7addb440cf1e419f0428bb70bff96d2e26425 Mon Sep 17 00:00:00 2001 From: dzc <2388224167@qq.com> Date: Thu, 20 Aug 2026 09:59:01 +0800 Subject: [PATCH] 11 --- src/api/collection/gate.ts | 84 + src/api/collection/videoPlatform.ts | 45 + src/api/device/deviceCamera.ts | 9 +- src/api/device/deviceStatistics.ts | 159 ++ .../rtsp-plugin-video/video-plugin.vue | 8 +- .../admin/dict/components/dict-table.vue | 173 ++ src/views/admin/system/dept/index.vue | 25 +- src/views/admin/system/menu/form.vue | 5 - .../system/role/components/role-list.vue | 223 +++ src/views/admin/system/role/form.vue | 55 +- src/views/admin/system/role/index.vue | 194 +- .../admin/system/role/role-permission.vue | 7 + .../system/user/components/user-list.vue | 255 +++ src/views/admin/system/user/form.vue | 140 +- src/views/admin/system/user/i18n/en.ts | 1 + src/views/admin/system/user/i18n/zh-cn.ts | 1 + src/views/admin/system/user/index.vue | 237 +-- src/views/admin/system/user/user-role.vue | 7 + src/views/alarm/alarm-record/index.vue | 36 + src/views/area/_components/areaHouseForm.vue | 16 +- src/views/area/_components/areaHouseList.vue | 182 ++ src/views/area/_components/areaHouseTable.vue | 84 +- src/views/area/_components/areaManageList.vue | 167 ++ src/views/area/_components/bindCameraForm.vue | 34 +- .../area/_components/bindCameraTable.vue | 10 +- src/views/area/areaHouse/index.vue | 181 +- src/views/area/areaManage/index.vue | 166 +- src/views/base/data/index.vue | 1580 +++++++++++++++++ src/views/base/deviceCamera/index.vue | 7 + src/views/base/rc/auto.vue | 7 + src/views/base/rc/car.vue | 7 + src/views/base/rc/person.vue | 7 + src/views/base/ss/area.vue | 7 + src/views/base/ss/jkList.vue | 7 + src/views/base/ss/sbList.vue | 7 + src/views/base/ss/ssType.vue | 7 + src/views/car/carAccess/index.vue | 51 +- src/views/car/carManage/index.vue | 214 +-- src/views/car/carRecord/index.vue | 54 +- src/views/car/components/car-manage-list.vue | 217 +++ src/views/collection/car/access.vue | 51 + .../car/components/gate-device-form.vue | 202 +++ .../car/components/gate-device-list.vue | 180 ++ .../car/components/gate-log-list.vue | 47 + .../car/components/gate-operation-list.vue | 81 + .../car/components/gate-remote-list.vue | 97 + src/views/collection/car/display.vue | 174 ++ src/views/collection/video/monitor.vue | 7 + src/views/collection/video/platform.vue | 465 +++++ src/views/collection/video/playback.vue | 7 + src/views/collection/video/recorder.vue | 8 + src/views/collection/video/sbList.vue | 8 + src/views/device/components/camera-list.vue | 258 +++ src/views/device/components/device-list.vue | 211 +++ src/views/device/deviceCamera/index.vue | 225 +-- src/views/device/deviceManage/index.vue | 208 +-- src/views/door/doorReign/index.vue | 40 +- .../sys/sysPerson/components/person-list.vue | 245 +++ src/views/sys/sysPerson/index.vue | 242 +-- .../job-manage/components/job-manage-list.vue | 427 +++++ src/views/tools/job-manage/index.vue | 426 +---- 61 files changed, 6030 insertions(+), 2255 deletions(-) create mode 100644 src/api/collection/gate.ts create mode 100644 src/api/collection/videoPlatform.ts create mode 100644 src/api/device/deviceStatistics.ts create mode 100644 src/views/admin/dict/components/dict-table.vue create mode 100644 src/views/admin/system/role/components/role-list.vue create mode 100644 src/views/admin/system/role/role-permission.vue create mode 100644 src/views/admin/system/user/components/user-list.vue create mode 100644 src/views/admin/system/user/user-role.vue create mode 100644 src/views/area/_components/areaHouseList.vue create mode 100644 src/views/area/_components/areaManageList.vue create mode 100644 src/views/base/data/index.vue create mode 100644 src/views/base/deviceCamera/index.vue create mode 100644 src/views/base/rc/auto.vue create mode 100644 src/views/base/rc/car.vue create mode 100644 src/views/base/rc/person.vue create mode 100644 src/views/base/ss/area.vue create mode 100644 src/views/base/ss/jkList.vue create mode 100644 src/views/base/ss/sbList.vue create mode 100644 src/views/base/ss/ssType.vue create mode 100644 src/views/car/components/car-manage-list.vue create mode 100644 src/views/collection/car/access.vue create mode 100644 src/views/collection/car/components/gate-device-form.vue create mode 100644 src/views/collection/car/components/gate-device-list.vue create mode 100644 src/views/collection/car/components/gate-log-list.vue create mode 100644 src/views/collection/car/components/gate-operation-list.vue create mode 100644 src/views/collection/car/components/gate-remote-list.vue create mode 100644 src/views/collection/car/display.vue create mode 100644 src/views/collection/video/monitor.vue create mode 100644 src/views/collection/video/platform.vue create mode 100644 src/views/collection/video/playback.vue create mode 100644 src/views/collection/video/recorder.vue create mode 100644 src/views/collection/video/sbList.vue create mode 100644 src/views/device/components/camera-list.vue create mode 100644 src/views/device/components/device-list.vue create mode 100644 src/views/sys/sysPerson/components/person-list.vue create mode 100644 src/views/tools/job-manage/components/job-manage-list.vue diff --git a/src/api/collection/gate.ts b/src/api/collection/gate.ts new file mode 100644 index 0000000..6a4e984 --- /dev/null +++ b/src/api/collection/gate.ts @@ -0,0 +1,84 @@ +import request from "/@/utils/request"; + +export interface GateDashboard { + deviceTotal: number; + onlineTotal: number; + offlineTotal: number; + todayEnterTotal: number; + todayExitTotal: number; + unidentifiedTotal: number; + iccConnected: boolean; + message: string; + checkedAt: string; +} + +export function devicePage(query: any) { + return request({ + url: "/admin/collection/car/access/device/page", + method: "get", + params: query, + }); +} + +export function getDevice(id: string) { + return request({ + url: `/admin/collection/car/access/device/${id}`, + method: "get", + }); +} + +export function addDevice(data: any) { + return request({ + url: "/admin/collection/car/access/device", + method: "post", + data, + }); +} + +export function updateDevice(data: any) { + return request({ + url: "/admin/collection/car/access/device", + method: "put", + data, + }); +} + +export function pushDevice(id: string) { + return request({ + url: `/admin/collection/car/access/device/${id}/push`, + method: "post", + timeout: 120000, + }); +} + +export function removeDevice(id: string, deleteRemote = false) { + return request({ + url: `/admin/collection/car/access/device/${id}`, + method: "delete", + params: { deleteRemote }, + timeout: deleteRemote ? 120000 : 50000, + }); +} + +export function remoteDeviceList(params?: any) { + return request({ + url: "/admin/collection/car/display/device/list", + method: "get", + params, + }); +} + +export function operationPage(params?: any) { + return request({ + url: "/admin/collection/car/display/operation/page", + method: "get", + params, + }); +} + +export function dashboard() { + return request({ + url: "/admin/collection/car/display/dashboard", + method: "get", + }); +} diff --git a/src/api/collection/videoPlatform.ts b/src/api/collection/videoPlatform.ts new file mode 100644 index 0000000..0cacd75 --- /dev/null +++ b/src/api/collection/videoPlatform.ts @@ -0,0 +1,45 @@ +import request from "/@/utils/request"; + +export interface PlatformStatus { + version: string; + releaseDate: string; + connected: boolean; + remoteDeviceCount: number | null; + remoteChannelCount: number | null; + localDeviceCount: number; + localChannelCount: number; + onlineDeviceCount: number; + deviceDifference: number | null; + channelDifference: number | null; + checkedAt: string; + message: string; +} + +export interface PlatformSyncResult extends PlatformStatus { + success: boolean; + startedAt: string; + finishedAt: string; + durationMillis: number; + deviceAddedCount: number; + deviceUpdatedCount: number; + deviceFailedCount: number; + channelAddedCount: number; + channelUpdatedCount: number; + channelFailedCount: number; + errors: string[]; +} + +export function getStatus() { + return request({ + url: "/admin/third/platform/status", + method: "get", + }); +} + +export function syncPlatform() { + return request({ + url: "/admin/third/platform/sync", + method: "post", + timeout: 300000, + }); +} diff --git a/src/api/device/deviceCamera.ts b/src/api/device/deviceCamera.ts index a739689..92004fc 100644 --- a/src/api/device/deviceCamera.ts +++ b/src/api/device/deviceCamera.ts @@ -1,5 +1,12 @@ import request from "/@/utils/request" +export function getToken() { + return request({ + url: '/admin/third/camera/getToken', + method: 'get' + }) +} + export function getRtspVideo(query: any) { return request({ url: '/admin/third/camera/getRtspVideo', @@ -14,4 +21,4 @@ export function getRtspVideoList(query: any) { method: 'get', params: query }) - } \ No newline at end of file + } diff --git a/src/api/device/deviceStatistics.ts b/src/api/device/deviceStatistics.ts new file mode 100644 index 0000000..011785e --- /dev/null +++ b/src/api/device/deviceStatistics.ts @@ -0,0 +1,159 @@ +import request from "/@/utils/request"; + +/** + * 单类设备的运行统计。 + */ +export interface DeviceStatusDetail { + deviceName?: string; + deviceCategory?: string; + total: number; + online: number; + offline: number; + onlineRate: number; +} + +/** + * 设备总览统计,分别包含总量、监控、门禁和道闸数据。 + */ +export interface DeviceTotalData { + total: DeviceStatusDetail; + camera: DeviceStatusDetail; + door: DeviceStatusDetail; + gate: DeviceStatusDetail; +} + +/** + * 设备在线率趋势数据。 + */ +export interface DeviceOnlineTrendItem { + recordTime: string; + onlineDeviceTotalRate: number; +} + +/** + * 区域设备数量统计。 + */ +export interface AreaDeviceStatisticsItem { + areaName: string; + totalCount: number | string; + onlineCount: number | string; + offlineCount: number | string; +} + +/** + * 设备告警数量统计。 + */ +export interface DeviceAlarmTotalData { + todayAlarmCount: number; + alarmCount: number; +} + +/** + * 设备告警趋势数据。 + */ +export interface DeviceAlarmTrendItem { + alarmCount: number; + time: string; + weekStr?: string; +} + +/** + * 实时告警摘要行。 + */ +export interface DeviceAlarmSummaryItem { + id?: string | number; + alarmCode?: string; + alarmDate?: string; + alarmPosition?: string; + alarmType?: string; + alarmTypeName?: string; + alarmStat?: string; + handleStat?: string; + alarmGrade?: string; + deviceName?: string; +} + +/** + * 统计接口通用的时间范围参数。 + */ +export interface StatisticsDateRange { + recordListList?: string[]; + alarmDateList?: string[]; +} + +/** + * 实时告警摘要分页查询参数。 + */ +export interface DeviceAlarmPageQuery extends StatisticsDateRange { + current: number; + size: number; + alarmCode?: string; + deviceName?: string; +} + +/** + * 获取设备数量及在线状态总览。 + */ +export function getDeviceTotal() { + return request({ + url: "/admin/total/plan/total-device", + method: "get", + }); +} + +/** + * 获取设备在线率趋势。 + */ +export function getDeviceOnlineTrend(data: StatisticsDateRange) { + return request({ + url: "/admin/total/plan/device-offline-rate", + method: "post", + data, + }); +} + +/** + * 获取设备区域数量排行。 + */ +export function getAreaDeviceStatistics() { + return request({ + url: "/admin/total/plan/camera-area-total-device", + method: "get", + }); +} + +/** + * 获取今日告警数和历史告警总数。 + */ +export function getDeviceAlarmTotal() { + return request({ + url: "/admin/alarmRecord/total/num-total", + method: "post", + }); +} + +/** + * 获取设备告警趋势。 + */ +export function getDeviceAlarmTrend(data: StatisticsDateRange) { + return request({ + url: "/admin/alarmRecord/total/alarm-by-time", + method: "post", + data, + }); +} + +/** + * 获取最新设备告警摘要。 + */ +export function getDeviceAlarmPage(data: DeviceAlarmPageQuery) { + return request({ + url: "/admin/alarmRecord/total/page", + method: "post", + params: { + current: data.current, + size: data.size, + }, + data, + }); +} diff --git a/src/components/rtsp-plugin-video/video-plugin.vue b/src/components/rtsp-plugin-video/video-plugin.vue index d3b95e5..c267d43 100644 --- a/src/components/rtsp-plugin-video/video-plugin.vue +++ b/src/components/rtsp-plugin-video/video-plugin.vue @@ -1,5 +1,5 @@