diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/src/views/alarm/dangerAssessment/group/list.vue b/src/views/alarm/dangerAssessment/group/list.vue index dfba73d..f9a4887 100644 --- a/src/views/alarm/dangerAssessment/group/list.vue +++ b/src/views/alarm/dangerAssessment/group/list.vue @@ -168,7 +168,7 @@ diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/src/views/alarm/dangerAssessment/group/list.vue b/src/views/alarm/dangerAssessment/group/list.vue index dfba73d..f9a4887 100644 --- a/src/views/alarm/dangerAssessment/group/list.vue +++ b/src/views/alarm/dangerAssessment/group/list.vue @@ -168,7 +168,7 @@ diff --git a/src/views/alarm/library/algorithm/editDialog.vue b/src/views/alarm/library/algorithm/editDialog.vue index f62148b..bc131b7 100644 --- a/src/views/alarm/library/algorithm/editDialog.vue +++ b/src/views/alarm/library/algorithm/editDialog.vue @@ -171,7 +171,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) } // ------------------------------------------表格------------------------------------------------ // 增加行 diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/src/views/alarm/dangerAssessment/group/list.vue b/src/views/alarm/dangerAssessment/group/list.vue index dfba73d..f9a4887 100644 --- a/src/views/alarm/dangerAssessment/group/list.vue +++ b/src/views/alarm/dangerAssessment/group/list.vue @@ -168,7 +168,7 @@ diff --git a/src/views/alarm/library/algorithm/editDialog.vue b/src/views/alarm/library/algorithm/editDialog.vue index f62148b..bc131b7 100644 --- a/src/views/alarm/library/algorithm/editDialog.vue +++ b/src/views/alarm/library/algorithm/editDialog.vue @@ -171,7 +171,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) } // ------------------------------------------表格------------------------------------------------ // 增加行 diff --git a/src/views/alarm/library/scene/editDialog.vue b/src/views/alarm/library/scene/editDialog.vue index 5a286d8..c7cea94 100644 --- a/src/views/alarm/library/scene/editDialog.vue +++ b/src/views/alarm/library/scene/editDialog.vue @@ -145,7 +145,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) } // -------------------------------------------文件上传-------------------------------------- diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/src/views/alarm/dangerAssessment/group/list.vue b/src/views/alarm/dangerAssessment/group/list.vue index dfba73d..f9a4887 100644 --- a/src/views/alarm/dangerAssessment/group/list.vue +++ b/src/views/alarm/dangerAssessment/group/list.vue @@ -168,7 +168,7 @@ diff --git a/src/views/alarm/library/algorithm/editDialog.vue b/src/views/alarm/library/algorithm/editDialog.vue index f62148b..bc131b7 100644 --- a/src/views/alarm/library/algorithm/editDialog.vue +++ b/src/views/alarm/library/algorithm/editDialog.vue @@ -171,7 +171,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) } // ------------------------------------------表格------------------------------------------------ // 增加行 diff --git a/src/views/alarm/library/scene/editDialog.vue b/src/views/alarm/library/scene/editDialog.vue index 5a286d8..c7cea94 100644 --- a/src/views/alarm/library/scene/editDialog.vue +++ b/src/views/alarm/library/scene/editDialog.vue @@ -145,7 +145,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) } // -------------------------------------------文件上传-------------------------------------- diff --git a/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts b/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts index fab634c..7bb564f 100644 --- a/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts +++ b/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts @@ -27,4 +27,5 @@ ip: string area: string // 所属区域代码 areaName: string // 所属区域名称 + path?: string // 压缩包文件 } diff --git a/public/config/config.json b/public/config/config.json index dc4b1b8..181a4b5 100644 --- a/public/config/config.json +++ b/public/config/config.json @@ -1,6 +1,7 @@ { "title": "安全生产智慧监管系统", - "baseUrl": "http://192.168.83.65:6909/safe-server/", + "baseUrl": "http://192.168.83.42:6909/safe-server/", + "deployPathDec": "****************注意:这个/alarm的alarm一定要改成部署的文件夹的名字***************************", "deployPath": "/alarm", "mediaBaseUrl": "http://192.168.83.42:80", "lat-bd": "39.91459528", @@ -24,5 +25,7 @@ "flvIFrameDec": "这是控制检测I帧的字段,1代表检测首帧,2代表持续监测", "flvIFrame": "1", "flvIFrameTimeDec": "这个参数是持续监测视频流I帧的超时时间,单位为s", - "flvIFrameTime": "15" + "flvIFrameTime": "15", + "appStreamUrlDesc": "代理流播放地址", + "appStreamUrl": "casic" } diff --git a/public/playerVideo6/jessibuca.js b/public/playerVideo6/jessibuca.js index 68a3034..1450494 100644 --- a/public/playerVideo6/jessibuca.js +++ b/public/playerVideo6/jessibuca.js @@ -39,7 +39,7 @@ background: '', decoder: `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, // 线上使用 // decoder: `/playerVideo6/decoder.js`, // 本地使用 - // decoder: 'decoder.js', + // decoder: import.meta.env.MODE === 'development' ? `/playerVideo6/decoder.js` : `${window.localStorage.getItem('deployPath')}/playerVideo6/decoder.js`, url: '', rotate: 0, forceNoOffscreen: !0, diff --git a/src/api/alarm/policyConfig/edgeDevice.ts b/src/api/alarm/policyConfig/edgeDevice.ts index 82ba198..e2d0c19 100644 --- a/src/api/alarm/policyConfig/edgeDevice.ts +++ b/src/api/alarm/policyConfig/edgeDevice.ts @@ -49,10 +49,27 @@ } // 重启和同步 -export function controlBox(data: { boxId: string; command: string }) { +export function controlBox(data: { boxId: string; command: string; deviceNo?: string; flag?: string }) { return request({ url: 'device/box/command', method: 'post', data, }) } + +// 上传文件 +export function uploadFile(data: FormData) { + return request({ + url: 'safe/file/upload', + method: 'post', + data, + }) +} + +// 盒子版本查询 +export function getEdgeDeviceZipVersion() { + return request({ + url: 'safe/file/version', + method: 'get', + }) +} diff --git a/src/api/alarm/policyConfig/monitorPoint.ts b/src/api/alarm/policyConfig/monitorPoint.ts index e4cd648..f160a26 100644 --- a/src/api/alarm/policyConfig/monitorPoint.ts +++ b/src/api/alarm/policyConfig/monitorPoint.ts @@ -66,3 +66,11 @@ }) } +// 识别流状态更新 +export function updateStreamFlag(data: { id: string; recognitionStreamFlag: string }) { + return request({ + url: 'device/relation/stream/flag/update', + method: 'post', + data, + }) +} diff --git a/src/api/monitor/media.ts b/src/api/monitor/media.ts index 5a1c580..4b91507 100644 --- a/src/api/monitor/media.ts +++ b/src/api/monitor/media.ts @@ -20,6 +20,26 @@ }) } +// 启用 +export function startBox(data: { app: string; stream: string }, accessToken: string) { + return requestMedia({ + url: 'api/proxy/start', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + +// 获取识别流地址 +export function getRecognitionUrl(data: { app: string; stream: string; mediaServerId: string }, accessToken: string) { + return requestMedia({ + url: 'api/push/getPlayUrl', + headers: { 'access-token': accessToken }, + method: 'get', + params: data, + }) +} + // 查询场景回放列表 export function querySceneReplayList(data: { deviceId: string; channelId: string; accessToken: string; startTime: string; endTime: string }) { return requestMedia({ diff --git a/src/api/system/notice.ts b/src/api/system/notice.ts index f4a9027..341a02b 100644 --- a/src/api/system/notice.ts +++ b/src/api/system/notice.ts @@ -54,6 +54,7 @@ data, }) } + // 通知公告删除 export function removeNoticeApi(data: object) { return request({ diff --git a/src/main.ts b/src/main.ts index dfc685b..e93f1e2 100644 --- a/src/main.ts +++ b/src/main.ts @@ -59,6 +59,8 @@ // 持续监测方法超时时间 window.localStorage.setItem('flvIFrameTime', result.data.flvIFrameTime) window.localStorage.setItem('zoom', result.data.zoom) + // 代理流播放地址 + window.localStorage.setItem('appStreamUrl', result.data.appStreamUrl) const app = createApp(App) app.config.globalProperties.hasPerm = hasPermission diff --git a/src/router/index.ts b/src/router/index.ts index 86edcda..b242003 100644 --- a/src/router/index.ts +++ b/src/router/index.ts @@ -256,6 +256,10 @@ path: '/realTime/page', replace: true }) + // next({ + // path: menuStore.sidebarMenusFirstDeepestPath, + // replace: true + // }) } else { console.log('跳转noPage') next({ diff --git a/src/router/modules/monitor.ts b/src/router/modules/monitor.ts index f5f0190..5d45895 100644 --- a/src/router/modules/monitor.ts +++ b/src/router/modules/monitor.ts @@ -22,8 +22,8 @@ // import('@/views/monitor/realTime/index-noPlugin-single.vue'), // SDK单路 // import('@/views/monitor/realTime/index-noPlugin.vue'), // SDK4路 // import('@/views/monitor/realTime/index-isc-single.vue'), // isc - // import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 - import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 + import('@/views/monitor/realTime/index-media-single.vue'), // 商流媒体单路 + // import('@/views/monitor/realTime/index-new-gm-plugin.vue'), // 国 meta: { title: '实时监控', auth: '/realTime', diff --git a/src/utils/validate.ts b/src/utils/validate.ts index 3cbd057..bdba1ea 100644 --- a/src/utils/validate.ts +++ b/src/utils/validate.ts @@ -64,6 +64,16 @@ return true } +/** + * 判断ip+端口是否合法 + * @param ipPort 待判断端口 + * @returns 是否合法 + */ +export const isIpPort = (ipPort: any): boolean => { + const rep = /^(?:(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|localhost|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9](?:\.[a-zA-Z]{2,})+):(?:[1-9][0-9]{0,3}|[1-5][0-9]{4}|6[0-4][0-9]{3}|65[0-4][0-9]{2}|655[0-2][0-9]|6553[0-5])$/ + return rep.test(ipPort) +} + // /** * 判断整数范围 diff --git a/src/views/alarm/dangerAssessment/group/list.vue b/src/views/alarm/dangerAssessment/group/list.vue index dfba73d..f9a4887 100644 --- a/src/views/alarm/dangerAssessment/group/list.vue +++ b/src/views/alarm/dangerAssessment/group/list.vue @@ -168,7 +168,7 @@ diff --git a/src/views/alarm/library/algorithm/editDialog.vue b/src/views/alarm/library/algorithm/editDialog.vue index f62148b..bc131b7 100644 --- a/src/views/alarm/library/algorithm/editDialog.vue +++ b/src/views/alarm/library/algorithm/editDialog.vue @@ -171,7 +171,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.modelName}模型文件${fileType}`) } // ------------------------------------------表格------------------------------------------------ // 增加行 diff --git a/src/views/alarm/library/scene/editDialog.vue b/src/views/alarm/library/scene/editDialog.vue index 5a286d8..c7cea94 100644 --- a/src/views/alarm/library/scene/editDialog.vue +++ b/src/views/alarm/library/scene/editDialog.vue @@ -145,7 +145,7 @@ // 下载压缩包 const downloadZipFile = () => { const fileType = formData.value.path.slice(formData.value.path.lastIndexOf('.')) // 得到的是后缀名,且转换为大写 - download(`${window.localStorage.getItem('baseurl-safe')}/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) + download(`${window.localStorage.getItem('baseurl-safe')}/static/${formData.value.path}`, `${formData.value.sceneName}场景文件${fileType}`) } // -------------------------------------------文件上传-------------------------------------- diff --git a/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts b/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts index fab634c..7bb564f 100644 --- a/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts +++ b/src/views/alarm/policyConfig/edgeDevice/edgeDevice-interface.ts @@ -27,4 +27,5 @@ ip: string area: string // 所属区域代码 areaName: string // 所属区域名称 + path?: string // 压缩包文件 } diff --git a/src/views/alarm/policyConfig/edgeDevice/editDialog.vue b/src/views/alarm/policyConfig/edgeDevice/editDialog.vue index e88f0ba..7007299 100644 --- a/src/views/alarm/policyConfig/edgeDevice/editDialog.vue +++ b/src/views/alarm/policyConfig/edgeDevice/editDialog.vue @@ -2,14 +2,16 @@