From 94a0de0d275ec30feac3aadc8d41db042aa18c6d Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期六, 30 九月 2023 06:09:57 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0
---
web_src/src/components/dialog/StreamProxyEdit.vue | 198 ++++++++++++++++++++++++++++++------------------
1 files changed, 123 insertions(+), 75 deletions(-)
diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue
old mode 100644
new mode 100755
index afc03cc..7ed893a
--- a/web_src/src/components/dialog/StreamProxyEdit.vue
+++ b/web_src/src/components/dialog/StreamProxyEdit.vue
@@ -33,21 +33,47 @@
<el-form-item label="鎷夋祦鍦板潃" prop="url" v-if="proxyParam.type=='default'">
<el-input v-model="proxyParam.url" clearable></el-input>
</el-form-item>
- <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 label="鎷夋祦鍦板潃" prop="srcUrl" v-if="proxyParam.type=='ffmpeg'">
+ <el-input v-model="proxyParam.srcUrl" clearable></el-input>
</el-form-item>
- <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 label="瓒呮椂鏃堕棿:姣" prop="timeoutMs" v-if="proxyParam.type=='ffmpeg'">
+ <el-input v-model="proxyParam.timeoutMs" 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-form-item label="鑺傜偣閫夋嫨" prop="rtpType">
+ <el-select
+ v-model="proxyParam.mediaServerId"
+ @change="mediaServerIdChange"
+ style="width: 100%"
+ placeholder="璇烽�夋嫨鎷夋祦鑺傜偣"
+ >
+ <el-option
+ v-for="item in mediaServerList"
+ :key="item.id"
+ :label="item.id"
+ :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="FFmpeg鍛戒护妯℃澘" prop="ffmpegCmdKey" v-if="proxyParam.type=='ffmpeg'">
+ <el-select
+ v-model="proxyParam.ffmpegCmdKey"
+ 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-form-item label="鎷夋祦鏂瑰紡" prop="rtpType" v-if="proxyParam.type=='default'">
<el-select
- v-model="proxyParam.rtp_type"
+ v-model="proxyParam.rtpType"
style="width: 100%"
placeholder="璇烽�夋嫨鎷夋祦鏂瑰紡"
>
@@ -56,27 +82,27 @@
<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="鏃犱汉瑙傜湅" prop="rtpType" >
+ <el-radio v-model="proxyParam.noneReader" label="0">涓嶅仛澶勭悊</el-radio>
+ <el-radio v-model="proxyParam.noneReader" label="1">鍋滅敤</el-radio>
+ <el-radio v-model="proxyParam.noneReader" label="2">绉婚櫎</el-radio>
+<!-- <el-select-->
+<!-- @change="noneReaderHandler"-->
+<!-- v-model="proxyParam.noneReader"-->
+<!-- style="width: 100%"-->
+<!-- placeholder="璇烽�夋嫨鏃犱汉瑙傜湅鐨勫鐞嗘柟寮�"-->
+<!-- >-->
+<!-- <el-option label="涓嶅仛澶勭悊" value="0"></el-option>-->
+<!-- <el-option label="鍋滅敤" value="1"></el-option>-->
+<!-- <el-option label="绉婚櫎" value="2"></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>
+ <el-checkbox label="寮�鍚煶棰�" v-model="proxyParam.enableAudio" ></el-checkbox>
+ <el-checkbox label="褰曞埗" v-model="proxyParam.enableMp4" ></el-checkbox>
</div>
</el-form-item>
@@ -94,6 +120,8 @@
</template>
<script>
+import MediaServer from './../service/MediaServer'
+
export default {
name: "streamProxyEdit",
props: {},
@@ -122,52 +150,39 @@
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,
- }],
+ platformList: [],
+ mediaServer: new MediaServer(),
proxyParam: {
name: null,
type: "default",
app: null,
stream: null,
- url: "rtmp://58.200.131.2/livetv/cctv5hd",
- src_url: null,
- timeout_ms: null,
- ffmpeg_cmd_key: null,
+ url: "",
+ srcUrl: null,
+ timeoutMs: null,
+ ffmpegCmdKey: null,
gbId: null,
- rtp_type: null,
+ rtpType: null,
enable: true,
- enable_hls: true,
- enable_mp4: false,
+ enableAudio: true,
+ enableMp4: false,
+ noneReader: null,
+ enableRemoveNoneReader: false,
+ enableDisableNoneReader: false,
platformGbId: null,
+ mediaServerId: null,
},
+ mediaServerList:{},
+ 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" }],
- src_url: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }],
- timeout_ms: [{ required: true, message: "璇疯緭鍏Fmpeg鎺ㄦ祦鎴愬姛瓒呮椂鏃堕棿", trigger: "blur" }],
- ffmpeg_cmd_key: [{ required: false, message: "璇疯緭鍏Fmpeg鍛戒护鍙傛暟妯℃澘锛堝彲閫夛級", trigger: "blur" }],
+ srcUrl: [{ required: true, message: "璇疯緭鍏ヨ浠g悊鐨勬祦", trigger: "blur" }],
+ timeoutMs: [{ required: true, message: "璇疯緭鍏Fmpeg鎺ㄦ祦鎴愬姛瓒呮椂鏃堕棿", trigger: "blur" }],
+ ffmpegCmdKey: [{ required: false, message: "璇疯緭鍏Fmpeg鍛戒护鍙傛暟妯℃澘锛堝彲閫夛級", trigger: "blur" }],
},
};
},
@@ -177,48 +192,69 @@
this.listChangeCallback = callback;
if (proxyParam != null) {
this.proxyParam = proxyParam;
+ this.proxyParam.noneReader = null;
}
let that = this;
-
this.$axios({
method: 'get',
- url:`/api/platform/query/10000/0`
+ url:`/api/platform/query/10000/1`
}).then(function (res) {
- that.platformList = res.data.list;
+ that.platformList = res.data.data.list;
}).catch(function (error) {
console.log(error);
});
+ this.mediaServer.getOnlineMediaServerList((data)=>{
+ this.mediaServerList = data.data;
+ this.proxyParam.mediaServerId = this.mediaServerList[0].id
+ this.mediaServerIdChange()
+ })
+ },
+ mediaServerIdChange:function (){
+ let that = this;
+ if (that.proxyParam.mediaServerId !== "auto"){
+ that.$axios({
+ method: 'get',
+ url:`/api/proxy/ffmpeg_cmd/list`,
+ params: {
+ mediaServerId: that.proxyParam.mediaServerId
+ }
+ }).then(function (res) {
+ that.ffmpegCmdList = res.data.data;
+ that.proxyParam.ffmpegCmdKey = Object.keys(res.data.data)[0];
+ }).catch(function (error) {
+ console.log(error);
+ });
+ }
+
},
onSubmit: function () {
- console.log("onSubmit");
this.dialogLoading = true;
- var that = this;
- that.$axios({
+ this.noneReaderHandler();
+ this.$axios({
method: 'post',
url:`/api/proxy/save`,
- data: that.proxyParam
- }).then(function (res) {
- that.dialogLoading = false;
+ data: this.proxyParam
+ }).then((res)=> {
+ this.dialogLoading = false;
if (typeof (res.data.code) != "undefined" && res.data.code === 0) {
- that.$message({
+ this.$message({
showClose: true,
message: res.data.msg,
type: "success",
});
- that.showDialog = false;
- if (that.listChangeCallback != null) {
- that.listChangeCallback();
- that.dialogLoading = false;
+ this.showDialog = false;
+ if (this.listChangeCallback != null) {
+ this.listChangeCallback();
+ this.dialogLoading = false;
}
}
- }).catch(function (error) {
+ }).catch((error) =>{
console.log(error);
this.dialogLoading = false;
});
},
close: function () {
- console.log("鍏抽棴娣诲姞瑙嗛骞冲彴");
this.showDialog = false;
this.dialogLoading = false;
this.$refs.streamProxy.resetFields();
@@ -227,7 +263,7 @@
var result = false;
var that = this;
await that.$axios({
- method: 'post',
+ method: 'get',
url:`/api/platform/exit/${deviceGbId}`
}).then(function (res) {
result = res.data;
@@ -240,7 +276,19 @@
if (this.platform.enable && this.platform.expires == "0") {
this.platform.expires = "300";
}
- }
+ },
+ noneReaderHandler: function() {
+ if (this.proxyParam.noneReader === null || this.proxyParam.noneReader === "0") {
+ this.proxyParam.enableDisableNoneReader = false;
+ this.proxyParam.enableRemoveNoneReader = false;
+ }else if (this.proxyParam.noneReader === "1"){
+ this.proxyParam.enableDisableNoneReader = true;
+ this.proxyParam.enableRemoveNoneReader = false;
+ }else if (this.proxyParam.noneReader ==="2"){
+ this.proxyParam.enableDisableNoneReader = false;
+ this.proxyParam.enableRemoveNoneReader = true;
+ }
+ },
},
};
</script>
--
Gitblit v1.8.0