From 428c045aab76965a33df46b3c1d3212d9e0db1d7 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期四, 29 四月 2021 17:14:37 +0800 Subject: [PATCH] 添加系统设置界面,未完成 --- web_src/src/components/setting/Web.vue | 83 +++++++++++++ src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java | 8 - web_src/src/components/setting/Media.vue | 121 ++++++++++++++++++++ web_src/src/router/index.js | 20 +++ web_src/src/components/UiHeader.vue | 6 + web_src/src/components/setting/Sip.vue | 83 +++++++++++++ 6 files changed, 314 insertions(+), 7 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java index a4d7816..aa501d9 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/RegisterRequestProcessor.java @@ -105,12 +105,11 @@ // 娣诲姞Expires澶� response.addHeader(request.getExpires()); - // 1.鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭紝淇濆瓨鍒癛edis + // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭� FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME); ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); String received = viaHeader.getReceived(); int rPort = viaHeader.getRPort(); - // 鏈湴妯℃嫙璁惧 received 涓虹┖ rPort 涓� -1 // 瑙f瀽鏈湴鍦板潃鏇夸唬 if (StringUtils.isEmpty(received) || rPort == -1) { received = viaHeader.getHost(); @@ -152,15 +151,12 @@ // 涓嬪彂catelog鏌ヨ鐩綍 if (registerFlag == 1 ) { logger.info("[{}] 娉ㄥ唽鎴愬姛! deviceId:" + device.getDeviceId(), requestAddress); - // boolean exists = storager.exists(device.getDeviceId()); device.setRegisterTimeMillis(System.currentTimeMillis()); storager.updateDevice(device); publisher.onlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_ONLINE_REGISTER); // 閲嶆柊娉ㄥ唽鏇存柊璁惧鍜岄�氶亾锛屼互鍏嶈澶囨浛鎹㈡垨鏇存柊鍚庝俊鎭棤娉曟洿鏂� - //if (!exists) { - handler.onRegister(device); - //} + handler.onRegister(device); } else if (registerFlag == 2) { logger.info("[{}] 娉ㄩ攢鎴愬姛! deviceId:" + device.getDeviceId(), requestAddress); publisher.outlineEventPublish(device.getDeviceId(), VideoManagerConstants.EVENT_OUTLINE_UNREGISTER); diff --git a/web_src/src/components/UiHeader.vue b/web_src/src/components/UiHeader.vue index f1b0e1d..b455aff 100644 --- a/web_src/src/components/UiHeader.vue +++ b/web_src/src/components/UiHeader.vue @@ -7,6 +7,12 @@ <el-menu-item index="/streamProxyList">鎷夋祦浠g悊</el-menu-item> <el-menu-item index="/parentPlatformList/15/1">鍥芥爣绾ц仈</el-menu-item> <el-menu-item @click="openDoc">鍦ㄧ嚎鏂囨。</el-menu-item> +<!-- <el-submenu index="/setting">--> +<!-- <template slot="title">绯荤粺璁剧疆</template>--> +<!-- <el-menu-item index="/setting/web">WEB鏈嶅姟</el-menu-item>--> +<!-- <el-menu-item index="/setting/sip">鍥芥爣鏈嶅姟</el-menu-item>--> +<!-- <el-menu-item index="/setting/media">濯掍綋鏈嶅姟</el-menu-item>--> +<!-- </el-submenu>--> <el-switch v-model="alarmNotify" active-text="鎶ヨ淇℃伅鎺ㄩ��" style="display: block float: right" @change="sseControl"></el-switch> <!-- <el-menu-item style="float: right;" @click="loginout">閫�鍑�</el-menu-item>--> <el-submenu index="" style="float: right;" > diff --git a/web_src/src/components/setting/Media.vue b/web_src/src/components/setting/Media.vue new file mode 100644 index 0000000..cfc4e12 --- /dev/null +++ b/web_src/src/components/setting/Media.vue @@ -0,0 +1,121 @@ +<template> + <div id="SettingForMedia"> + <el-container> + <el-header> + <uiHeader></uiHeader> + </el-header> + <el-main> + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;"> + <span style="font-size: 1rem; font-weight: bold;">濯掍綋鏈嶅姟</span> + </div> + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px"> + <el-form ref="form" :rules="rules" :model="form" label-width="140px"> + <el-form-item label="IP" prop="IP"> + <el-input v-model="form.IP" clearable></el-input> + </el-form-item> + <el-form-item label="鍏綉IP" prop="wanIp"> + <el-input v-model="form.wanIp" clearable></el-input> + </el-form-item> + <el-form-item label="HOOK IP" prop="hookIp"> + <el-input v-model="form.hookIp" clearable></el-input> + </el-form-item> + <el-form-item label="HTTP绔彛" > + <el-input v-model.number="form.httpPort" clearable></el-input> + </el-form-item> + <el-form-item label="HTTP SSL绔彛" > + <el-input v-model.number="form.httpSSlPort" clearable></el-input> + </el-form-item> + <el-form-item label="RTMP绔彛" > + <el-input v-model.number="form.rtmpPort" clearable></el-input> + </el-form-item> + <el-form-item label="RTMP SSL绔彛" > + <el-input v-model.number="form.rtmpSSlPort" clearable></el-input> + </el-form-item> + <el-form-item label="RTSP绔彛" > + <el-input v-model.number="form.rtspPort" clearable></el-input> + </el-form-item> + <el-form-item label="RTSP SSL绔彛" > + <el-input v-model.number="form.rtspSSLPort" clearable></el-input> + </el-form-item> + <el-form-item label="RTP绔彛" > + <el-input v-model.number="form.rtpProxyPort" clearable></el-input> + </el-form-item> + <el-form-item label="鑷姩鐐规挱" > + <el-switch v-model="form.autoApplyPlay"></el-switch> + </el-form-item> + <el-form-item label="鎺ュ彛瀵嗛挜" prop="secret"> + <el-input v-model="form.secret" clearable></el-input> + </el-form-item> + <el-form-item label="鏃犱汉瑙傜湅瑙﹀彂鏃堕暱" > + <el-input v-model.number="form.streamNoneReaderDelayMS" clearable></el-input> + </el-form-item> + <el-form-item label="鑷姩閰嶇疆" > + <el-switch v-model="form.autoConfig"></el-switch> + </el-form-item> + <el-form-item label="浣跨敤澶氱鍙�" > + <el-switch v-model="form.rtp.enable"></el-switch> + </el-form-item> + <el-form-item label="绔彛鑼冨洿" > + <el-input v-model.number="form.rtp.portRange" clearable></el-input> + </el-form-item> + <el-form-item label="DOCKER鏅鸿兘璇嗗埆"> + <el-input type="textarea" v-model="dockerStr"></el-input> + </el-form-item> + + <el-form-item> + <div style="float: right;"> + <el-button type="primary" @click="onSubmit">淇濆瓨</el-button> +<!-- <el-button @click="close">鍙栨秷</el-button>--> + </div> + + </el-form-item> + </el-form> + </div> + + + </el-main> + </el-container> + </div> +</template> + +<script> +import uiHeader from '../UiHeader.vue' +export default { + name: "SettingForMedia", + components: { + uiHeader + }, + data() { + return { + dockerStr: null, + form: { + ip: null, + wanIp: null, + hookIp: null, + httpPort: null, + httpSSlPort: null, + rtmpPort: null, + rtpProxyPort: null, + rtspPort: null, + rtspSSLPort: null, + autoConfig: true, + secret: "035c73f7-bb6b-4889-a715-d9eb2d1925cc", + rtp: { + enable: false, + portRange: null + }, + }, + + rules: { + IP: [{ required: true, message: "璇疯緭鍏ュ悕绉�", trigger: "blur" }], + wanIp: [{ required: false, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }], + hookIp: [{ required: false, message: "璇疯緭鍏ユ祦ID", trigger: "blur" }], + }, + } + } +} +</script> + +<style scoped> + +</style> diff --git a/web_src/src/components/setting/Sip.vue b/web_src/src/components/setting/Sip.vue new file mode 100644 index 0000000..767fdb7 --- /dev/null +++ b/web_src/src/components/setting/Sip.vue @@ -0,0 +1,83 @@ +<template> + <div id="SettingForSip"> + <el-container> + <el-header> + <uiHeader></uiHeader> + </el-header> + <el-main> + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;"> + <span style="font-size: 1rem; font-weight: bold;">鍥芥爣鏈嶅姟</span> + </div> + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px"> + <el-form ref="form" :rules="rules" :model="form" label-width="140px"> + <el-form-item label="HTTP绔彛" prop="port"> + <el-input v-model.number="form.port" clearable></el-input> + </el-form-item> + <el-form-item label="鐐规挱瓒呮椂" > + <el-input v-model.number="form.playTimeout" clearable></el-input> + </el-form-item> + <el-form-item label="鑷姩鐐规挱" > + <el-switch v-model="form.autoApplyPlay"></el-switch> + </el-form-item> + <el-form-item label="鎵╁睍SDP" > + <el-switch v-model="form.seniorSdp"></el-switch> + </el-form-item> + <el-form-item label="淇濆瓨杞ㄨ抗" > + <el-switch v-model="form.savePositionHistory"></el-switch> + </el-form-item> + <el-form-item label="绛夊緟闊宠棰戠紪鐮佷俊鎭�"> + <el-switch v-model="form.waitTrack"></el-switch> + </el-form-item> + <el-form-item label="寮�鍚帴鍙i壌鏉�"> + <el-switch v-model="form.interfaceAuthentication"></el-switch> + </el-form-item> + + <el-form-item> + <div style="float: right;"> + <el-button type="primary" @click="onSubmit">淇濆瓨</el-button> +<!-- <el-button @click="close">鍙栨秷</el-button>--> + </div> + + </el-form-item> + </el-form> + </div> + + + </el-main> + </el-container> + </div> +</template> + +<script> +import uiHeader from '../UiHeader.vue' +export default { + name: "SettingForSip", + components: { + uiHeader + }, + data() { + return { + form: { + port: null, + autoApplyPlay: null, + seniorSdp: null, + savePositionHistory: null, + playTimeout: null, + waitTrack: null, + interfaceAuthentication: null, + }, + + rules: { + name: [{ required: true, message: "璇疯緭鍏ュ悕绉�", trigger: "blur" }], + app: [{ required: true, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }], + stream: [{ required: true, message: "璇疯緭鍏ユ祦ID", trigger: "blur" }], + gbId: [{ required: true, message: "璇疯緭鍏ュ浗鏍囩紪鐮�", trigger: "blur" }], + }, + } + } +} +</script> + +<style scoped> + +</style> diff --git a/web_src/src/components/setting/Web.vue b/web_src/src/components/setting/Web.vue new file mode 100644 index 0000000..5eb853a --- /dev/null +++ b/web_src/src/components/setting/Web.vue @@ -0,0 +1,83 @@ +<template> + <div id="SettingForWeb"> + <el-container> + <el-header> + <uiHeader></uiHeader> + </el-header> + <el-main> + <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;"> + <span style="font-size: 1rem; font-weight: bold;">WEB鏈嶅姟</span> + </div> + <div style="width: 60%; margin:0 auto; background-color: #FFFFFF; position: relative; padding: 5rem 6.5rem; text-align: left;font-size: 14px; max-width: 400px"> + <el-form ref="form" :rules="rules" :model="form" label-width="140px"> + <el-form-item label="HTTP绔彛" prop="port"> + <el-input v-model.number="form.port" clearable></el-input> + </el-form-item> + <el-form-item label="鐐规挱瓒呮椂" > + <el-input v-model.number="form.playTimeout" clearable></el-input> + </el-form-item> + <el-form-item label="鑷姩鐐规挱" > + <el-switch v-model="form.autoApplyPlay"></el-switch> + </el-form-item> + <el-form-item label="鎵╁睍SDP" > + <el-switch v-model="form.seniorSdp"></el-switch> + </el-form-item> + <el-form-item label="淇濆瓨杞ㄨ抗" > + <el-switch v-model="form.savePositionHistory"></el-switch> + </el-form-item> + <el-form-item label="绛夊緟闊宠棰戠紪鐮佷俊鎭�"> + <el-switch v-model="form.waitTrack"></el-switch> + </el-form-item> + <el-form-item label="寮�鍚帴鍙i壌鏉�"> + <el-switch v-model="form.interfaceAuthentication"></el-switch> + </el-form-item> + + <el-form-item> + <div style="float: right;"> + <el-button type="primary" @click="onSubmit">淇濆瓨</el-button> +<!-- <el-button @click="close">鍙栨秷</el-button>--> + </div> + + </el-form-item> + </el-form> + </div> + + + </el-main> + </el-container> + </div> +</template> + +<script> +import uiHeader from '../UiHeader.vue' +export default { + name: "SettingForWeb", + components: { + uiHeader + }, + data() { + return { + form: { + port: null, + autoApplyPlay: null, + seniorSdp: null, + savePositionHistory: null, + playTimeout: null, + waitTrack: null, + interfaceAuthentication: null, + }, + + rules: { + name: [{ required: true, message: "璇疯緭鍏ュ悕绉�", trigger: "blur" }], + app: [{ required: true, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }], + stream: [{ required: true, message: "璇疯緭鍏ユ祦ID", trigger: "blur" }], + gbId: [{ required: true, message: "璇疯緭鍏ュ浗鏍囩紪鐮�", trigger: "blur" }], + }, + } + } +} +</script> + +<style scoped> + +</style> diff --git a/web_src/src/router/index.js b/web_src/src/router/index.js index bc40855..a56ce99 100644 --- a/web_src/src/router/index.js +++ b/web_src/src/router/index.js @@ -10,6 +10,9 @@ import login from '../components/Login.vue' import parentPlatformList from '../components/ParentPlatformList.vue' import test from '../components/test.vue' +import web from '../components/setting/Web.vue' +import sip from '../components/setting/Sip.vue' +import media from '../components/setting/Media.vue' const originalPush = VueRouter.prototype.push VueRouter.prototype.push = function push(location) { @@ -57,7 +60,22 @@ path: '/devicePosition/:deviceId/:parentChannelId/:count/:page', name: 'devicePosition', component: devicePosition, - },, + }, + { + path: '/setting/web', + name: 'web', + component: web, + }, + { + path: '/setting/sip', + name: 'sip', + component: sip, + }, + { + path: '/setting/media', + name: 'media', + component: media, + }, { path: '/test', name: 'test', -- Gitblit v1.8.0