From 286449b8310ef9fa97712356f5611d5e4babacb0 Mon Sep 17 00:00:00 2001 From: yangsy Date: Tue, 30 Dec 2025 15:14:48 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=91=8A=E8=AD=A6?= =?UTF-8?q?=E7=94=BB=E9=9D=A2=E6=88=AA=E5=9B=BE=E7=9B=B8=E5=85=B3=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 配置告警画面截图保留天数 - 是否自动获取告警画面截图 --- src/apis/request/biz/index.ts | 1 + src/apis/request/biz/upper-ndm/index.ts | 1 + src/apis/request/biz/upper-ndm/upper-ndm.ts | 20 +++ src/apis/request/biz/video/index.ts | 1 + src/apis/request/biz/video/ndm-snap.ts | 20 +++ .../settings-drawer/settings-drawer.vue | 137 ++++++++++++++++-- 6 files changed, 165 insertions(+), 15 deletions(-) create mode 100644 src/apis/request/biz/upper-ndm/index.ts create mode 100644 src/apis/request/biz/upper-ndm/upper-ndm.ts create mode 100644 src/apis/request/biz/video/ndm-snap.ts diff --git a/src/apis/request/biz/index.ts b/src/apis/request/biz/index.ts index 79a3c5a..aa7d729 100644 --- a/src/apis/request/biz/index.ts +++ b/src/apis/request/biz/index.ts @@ -6,4 +6,5 @@ export * from './icmp'; export * from './log'; export * from './storage'; export * from './other'; +export * from './upper-ndm'; export * from './video'; diff --git a/src/apis/request/biz/upper-ndm/index.ts b/src/apis/request/biz/upper-ndm/index.ts new file mode 100644 index 0000000..c915e96 --- /dev/null +++ b/src/apis/request/biz/upper-ndm/index.ts @@ -0,0 +1 @@ +export * from './upper-ndm'; diff --git a/src/apis/request/biz/upper-ndm/upper-ndm.ts b/src/apis/request/biz/upper-ndm/upper-ndm.ts new file mode 100644 index 0000000..f324711 --- /dev/null +++ b/src/apis/request/biz/upper-ndm/upper-ndm.ts @@ -0,0 +1,20 @@ +import { ndmClient, userClient, type Station } from '@/apis'; +import { unwrapResponse } from '@/utils'; + +export async function snapStatusApi(method: 'get', options?: { stationCode?: Station['code']; signal?: AbortSignal }): Promise; +export async function snapStatusApi(method: 'post', options: { doSnap: boolean; stationCode?: Station['code']; signal?: AbortSignal }): Promise; +export async function snapStatusApi(method: 'get' | 'post', options?: { doSnap?: boolean; stationCode?: Station['code']; signal?: AbortSignal }) { + const { doSnap, stationCode, signal } = options ?? {}; + const client = stationCode ? ndmClient : userClient; + const prefix = stationCode ? `/${stationCode}` : ''; + const endpoint = `${prefix}/api/ndm/anyTenant/snapStatus`; + if (method === 'get') { + const resp = await client.get(endpoint, { signal }); + const data = unwrapResponse(resp); + return data; + } else { + const resp = await client.post(endpoint, doSnap, { signal }); + const data = unwrapResponse(resp); + return data; + } +} diff --git a/src/apis/request/biz/video/index.ts b/src/apis/request/biz/video/index.ts index 4a25f3b..baebe86 100644 --- a/src/apis/request/biz/video/index.ts +++ b/src/apis/request/biz/video/index.ts @@ -3,4 +3,5 @@ export * from './ndm-camera-ignore'; export * from './ndm-decoder'; export * from './ndm-keyboard'; export * from './ndm-media-server'; +export * from './ndm-snap'; export * from './ndm-video-server'; diff --git a/src/apis/request/biz/video/ndm-snap.ts b/src/apis/request/biz/video/ndm-snap.ts new file mode 100644 index 0000000..63ccf31 --- /dev/null +++ b/src/apis/request/biz/video/ndm-snap.ts @@ -0,0 +1,20 @@ +import { ndmClient, userClient, type Station } from '@/apis'; +import { unwrapResponse } from '@/utils'; + +export async function retentionDaysApi(method: 'get', options?: { stationCode?: Station['code']; signal?: AbortSignal }): Promise; +export async function retentionDaysApi(method: 'post', options: { days: number; stationCode?: Station['code']; signal?: AbortSignal }): Promise; +export async function retentionDaysApi(method: 'get' | 'post', options?: { days?: number; stationCode?: Station['code']; signal?: AbortSignal }) { + const { days, stationCode, signal } = options ?? {}; + const client = stationCode ? ndmClient : userClient; + const prefix = stationCode ? `/${stationCode}` : ''; + const endpoint = `${prefix}/api/ndm/ndmSnap/retentionDays`; + if (method === 'get') { + const resp = await client.get(endpoint, { signal }); + const data = unwrapResponse(resp); + return data; + } else { + const resp = await client.post(endpoint, days, { signal }); + const data = unwrapResponse(resp); + return data; + } +} diff --git a/src/components/global/settings-drawer/settings-drawer.vue b/src/components/global/settings-drawer/settings-drawer.vue index 2a934c5..4b6c0a6 100644 --- a/src/components/global/settings-drawer/settings-drawer.vue +++ b/src/components/global/settings-drawer/settings-drawer.vue @@ -1,5 +1,5 @@