From e48ef997c03b49c8090970f5fbb29ce80b0ac6df Mon Sep 17 00:00:00 2001 From: 64850858 <648540858@qq.com> Date: 星期三, 14 七月 2021 15:57:39 +0800 Subject: [PATCH] 更换播放器, 修正和优化sql脚本, --- web_src/src/components/dialog/StreamProxyEdit.vue | 159 ++++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 120 insertions(+), 39 deletions(-) diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue index a2b3c9e..e1d224a 100644 --- a/web_src/src/components/dialog/StreamProxyEdit.vue +++ b/web_src/src/components/dialog/StreamProxyEdit.vue @@ -10,7 +10,7 @@ @close="close()" > <div id="shared" style="margin-top: 1rem;margin-right: 100px;"> - <el-form ref="streamProxy" :rules="rules" :model="proxyParam" label-width="140px"> + <el-form ref="streamProxy" :rules="rules" :model="proxyParam" label-width="140px" > <el-form-item label="绫诲瀷" prop="type"> <el-select v-model="proxyParam.type" @@ -21,7 +21,10 @@ <el-option label="FFmpeg" value="ffmpeg"></el-option> </el-select> </el-form-item> - <el-form-item label="搴旂敤鍚�" prop="app"> + <el-form-item label="鍚嶇О" prop="name"> + <el-input v-model="proxyParam.name" clearable></el-input> + </el-form-item> + <el-form-item label="娴佸簲鐢ㄥ悕" prop="app"> <el-input v-model="proxyParam.app" clearable></el-input> </el-form-item> <el-form-item label="娴両D" prop="stream"> @@ -33,11 +36,26 @@ <el-form-item label="鎷夋祦鍦板潃" prop="src_url" v-if="proxyParam.type=='ffmpeg'"> <el-input v-model="proxyParam.src_url" clearable></el-input> </el-form-item> - <el-form-item label="瓒呮椂鏃堕棿" prop="timeout_ms" v-if="proxyParam.type=='ffmpeg'"> + <el-form-item label="瓒呮椂鏃堕棿:姣" prop="timeout_ms" v-if="proxyParam.type=='ffmpeg'"> <el-input v-model="proxyParam.timeout_ms" clearable></el-input> </el-form-item> <el-form-item label="FFmpeg鍛戒护妯℃澘" prop="ffmpeg_cmd_key" v-if="proxyParam.type=='ffmpeg'"> - <el-input v-model="proxyParam.ffmpeg_cmd_key" clearable></el-input> +<!-- <el-input v-model="proxyParam.ffmpeg_cmd_key" clearable></el-input>--> + <el-select + v-model="proxyParam.ffmpeg_cmd_key" + style="width: 100%" + placeholder="璇烽�夋嫨FFmpeg鍛戒护妯℃澘" + > + <el-option + v-for="item in Object.keys(ffmpegCmdList)" + :key="item" + :label="ffmpegCmdList[item]" + :value="item"> + </el-option> + </el-select> + </el-form-item> + <el-form-item label="鍥芥爣缂栫爜" prop="gbId"> + <el-input v-model="proxyParam.gbId" placeholder="璁剧疆鍥芥爣缂栫爜鍙帹閫佸埌鍥芥爣" clearable></el-input> </el-form-item> <el-form-item label="鎷夋祦鏂瑰紡" prop="rtp_type" v-if="proxyParam.type=='default'"> <el-select @@ -50,20 +68,36 @@ <el-option label="缁勬挱" value="2"></el-option> </el-select> </el-form-item> + <el-form-item label="鍥芥爣骞冲彴"> + <el-select + v-model="proxyParam.platformGbId" + style="width: 100%" + placeholder="璇烽�夋嫨鍥芥爣骞冲彴" + > + <el-option + v-for="item in platformList" + :key="item.name" + :label="item.name" + :value="item.serverGBId"> + <span style="float: left">{{ item.name }}</span> + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.serverGBId }}</span> + </el-option> + </el-select> + </el-form-item> <el-form-item label="鍏朵粬閫夐」"> <div style="float: left;"> <el-checkbox label="鍚敤" v-model="proxyParam.enable" ></el-checkbox> <el-checkbox label="杞琀LS" v-model="proxyParam.enable_hls" ></el-checkbox> <el-checkbox label="MP4褰曞埗" v-model="proxyParam.enable_mp4" ></el-checkbox> </div> - + </el-form-item> <el-form-item> <div style="float: right;"> - <el-button type="primary" @click="onSubmit">{{onSubmit_text}}</el-button> + <el-button type="primary" @click="onSubmit" :loading="dialogLoading" >{{onSubmit_text}}</el-button> <el-button @click="close">鍙栨秷</el-button> </div> - + </el-form-item> </el-form> </div> @@ -98,22 +132,49 @@ listChangeCallback: null, showDialog: false, isLoging: false, + dialogLoading: false, onSubmit_text: "绔嬪嵆鍒涘缓", + platformList: [{ + id: 1, + enable: true, + name: "141", + serverGBId: "34020000002000000001", + serverGBDomain: "3402000000", + serverIP: "192.168.1.141", + serverPort: 15060, + deviceGBId: "34020000002000000001", + deviceIp: "192.168.1.20", + devicePort: "5060", + username: "34020000002000000001", + password: "12345678", + expires: "300", + keepTimeout: "60", + transport: "UDP", + characterSet: "GB2312", + ptz: false, + rtcp: false, + status: true, + }], proxyParam: { + name: null, type: "default", app: null, stream: null, - url: "rtmp://58.200.131.2:1935/livetv/hunantv", + url: "rtmp://58.200.131.2/livetv/cctv5hd", src_url: null, timeout_ms: null, ffmpeg_cmd_key: null, + gbId: null, rtp_type: null, enable: true, enable_hls: true, enable_mp4: false, + platformGbId: null, }, - + ffmpegCmdList:{}, + rules: { + name: [{ required: true, message: "璇疯緭鍏ュ悕绉�", trigger: "blur" }], app: [{ required: true, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }], stream: [{ required: true, message: "璇疯緭鍏ユ祦ID", trigger: "blur" }], url: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }], @@ -129,51 +190,71 @@ this.listChangeCallback = callback; if (proxyParam != null) { this.proxyParam = proxyParam; - this.onSubmit_text = "淇濆瓨"; - } else { - this.onSubmit_text = "绔嬪嵆鍒涘缓"; } + + let that = this; + + this.$axios({ + method: 'get', + url:`/api/platform/query/10000/0` + }).then(function (res) { + that.platformList = res.data.list; + }).catch(function (error) { + console.log(error); + }); + this.$axios({ + method: 'get', + url:`/api/proxy/ffmpeg_cmd/list` + }).then(function (res) { + that.ffmpegCmdList = res.data.data; + }).catch(function (error) { + console.log(error); + }); }, onSubmit: function () { console.log("onSubmit"); + this.dialogLoading = true; var that = this; - that.$axios - .post(`/api/proxy/save`, that.proxyParam) - .then(function (res) { - console.log(res); - console.log(res.data == "success"); - if (res.data == "success") { - that.$message({ - showClose: true, - message: "淇濆瓨鎴愬姛", - type: "success", - }); - that.showDialog = false; - if (that.listChangeCallback != null) { - that.listChangeCallback(); - } + that.$axios({ + method: 'post', + url:`/api/proxy/save`, + data: that.proxyParam + }).then(function (res) { + that.dialogLoading = false; + if (typeof (res.data.code) != "undefined" && res.data.code === 0) { + that.$message({ + showClose: true, + message: res.data.msg, + type: "success", + }); + that.showDialog = false; + if (that.listChangeCallback != null) { + that.listChangeCallback(); + that.dialogLoading = false; } - }) - .catch(function (error) { - console.log(error); - }); + } + }).catch(function (error) { + console.log(error); + this.dialogLoading = false; + }); }, close: function () { console.log("鍏抽棴娣诲姞瑙嗛骞冲彴"); this.showDialog = false; + this.dialogLoading = false; this.$refs.streamProxy.resetFields(); }, deviceGBIdExit: async function (deviceGbId) { var result = false; var that = this; - await that.$axios - .post(`/api/platforms/exit/${deviceGbId}`) - .then(function (res) { - result = res.data; - }) - .catch(function (error) { - console.log(error); - }); + await that.$axios({ + method: 'post', + url:`/api/platform/exit/${deviceGbId}` + }).then(function (res) { + result = res.data; + }).catch(function (error) { + console.log(error); + }); return result; }, checkExpires: function() { -- Gitblit v1.8.0