From 4163b11d3d43b40a02203439e1440620ec66ffe3 Mon Sep 17 00:00:00 2001 From: tcy <1193318383@qq.com> Date: Tue, 23 Sep 2025 20:37:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E8=A7=86=E9=A2=91=E7=9B=91=E6=8E=A7):=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=91=84=E5=83=8F=E5=A4=B4=E9=A2=84=E7=BD=AE?= =?UTF-8?q?=E4=BD=8D=E7=AE=A1=E7=90=86=E5=92=8C=E8=A7=86=E9=A2=91=E7=9B=91?= =?UTF-8?q?=E6=8E=A7=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增摄像头预置位管理功能,包括添加、修改、删除和调用预置位 实现视频监控页面,支持扩展视图和普通视图切换 添加获取摄像头列表接口,优化视频播放器初始化逻辑 完善分页功能,根据视图类型动态调整请求数量 --- src/api/devicePreset/index.ts | 74 ++++ src/api/devicePreset/types.ts | 86 ++++ src/api/securitySurveillance/index.js | 8 + src/views/camera/components/presetAdd.vue | 288 ++++++++++++++ src/views/camera/index.vue | 371 ++++++++++++++++++ .../securitySurveillance/components/spjk.vue | 203 ++++++---- 6 files changed, 959 insertions(+), 71 deletions(-) create mode 100644 src/api/devicePreset/index.ts create mode 100644 src/api/devicePreset/types.ts create mode 100644 src/views/camera/components/presetAdd.vue create mode 100644 src/views/camera/index.vue diff --git a/src/api/devicePreset/index.ts b/src/api/devicePreset/index.ts new file mode 100644 index 0000000..d5baf2e --- /dev/null +++ b/src/api/devicePreset/index.ts @@ -0,0 +1,74 @@ +import request from '@/utils/request'; +import { AxiosPromise } from 'axios'; +import { DevicePresetVO, DevicePresetForm, DevicePresetQuery } from '@/api/camera/devicePreset/types'; + +/** + * 查询摄像头预置位列表 + * @param query + * @returns {*} + */ + +export const listDevicePreset = (query?: DevicePresetQuery): AxiosPromise => { + return request({ + url: '/camera/devicePreset/list', + method: 'get', + params: query + }); +}; + +/** + * 查询摄像头预置位详细 + * @param id + */ +export const getDevicePreset = (id: string | number): AxiosPromise => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'get' + }); +}; + +/** + * 新增摄像头预置位 + * @param data + */ +export const addDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'post', + data: data + }); +}; + +/** + * 修改摄像头预置位 + * @param data + */ +export const updateDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset', + method: 'put', + data: data + }); +}; + +/** + * 删除摄像头预置位 + * @param id + */ +export const delDevicePreset = (id: string | number | Array) => { + return request({ + url: '/camera/devicePreset/' + id, + method: 'delete' + }); +}; +/** + * 调用摄像头预置位 + * @param data + */ +export const callDevicePreset = (data: DevicePresetForm) => { + return request({ + url: '/camera/devicePreset/call', + method: 'post', + data: data + }); +}; diff --git a/src/api/devicePreset/types.ts b/src/api/devicePreset/types.ts new file mode 100644 index 0000000..87dfe79 --- /dev/null +++ b/src/api/devicePreset/types.ts @@ -0,0 +1,86 @@ +export interface DevicePresetVO { + /** + * 主键id + */ + id: string | number; + + /** + * 设备序列号 + */ + deviceSerial: string; + + /** + * 通道号 + */ + channelNo: number; + + /** + * 预置点序号 + */ + presetIndex: number; + + /** + * 预置点 + */ + presetName: string; + +} + +export interface DevicePresetForm extends BaseEntity { + /** + * 主键id + */ + id?: string | number; + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + +} + +export interface DevicePresetQuery extends PageQuery { + + /** + * 设备序列号 + */ + deviceSerial?: string; + + /** + * 通道号 + */ + channelNo?: number; + + /** + * 预置点序号 + */ + presetIndex?: number; + + /** + * 预置点 + */ + presetName?: string; + + /** + * 日期范围参数 + */ + params?: any; +} + + + diff --git a/src/api/securitySurveillance/index.js b/src/api/securitySurveillance/index.js index b088582..1ec5c7e 100644 --- a/src/api/securitySurveillance/index.js +++ b/src/api/securitySurveillance/index.js @@ -6,3 +6,11 @@ export function getToken() { method: 'get', }) } +// 获取摄像头列表 +export function getMonitoringList(data) { + return request({ + url: '/ops/monitoriing/getMonitoringList', + method: 'post', + data + }) +} diff --git a/src/views/camera/components/presetAdd.vue b/src/views/camera/components/presetAdd.vue new file mode 100644 index 0000000..ccfd69b --- /dev/null +++ b/src/views/camera/components/presetAdd.vue @@ -0,0 +1,288 @@ + + + + + diff --git a/src/views/camera/index.vue b/src/views/camera/index.vue new file mode 100644 index 0000000..a052ae5 --- /dev/null +++ b/src/views/camera/index.vue @@ -0,0 +1,371 @@ + + + diff --git a/src/views/securitySurveillance/components/spjk.vue b/src/views/securitySurveillance/components/spjk.vue index 255fd57..1024f97 100644 --- a/src/views/securitySurveillance/components/spjk.vue +++ b/src/views/securitySurveillance/components/spjk.vue @@ -23,14 +23,14 @@ :id="`bigVideo`">
-
+
@@ -49,8 +49,8 @@ const displayIndex = (activeIndex + i) % videoList.length; activeIndex = displayIndex; }" :id="`smallVideo-expanded-${i}`"> -
{{ videoList[(activeIndex + i) % videoList.length].name }} -
+
@@ -71,7 +71,7 @@
-
{{ item.name }}
+
@@ -86,7 +86,7 @@ @@ -96,59 +96,27 @@