From 85c5fafda53f21697499ff0587ff6dc0f2b00f0a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 16 三月 2023 09:34:20 +0800
Subject: [PATCH] 更新前后端分离部署文档
---
web_src/src/components/dialog/StreamProxyEdit.vue | 184 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 140 insertions(+), 44 deletions(-)
diff --git a/web_src/src/components/dialog/StreamProxyEdit.vue b/web_src/src/components/dialog/StreamProxyEdit.vue
index bdde9db..76011fa 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"
@@ -36,11 +36,38 @@
<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="鑺傜偣閫夋嫨" prop="rtp_type">
+ <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="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>
@@ -56,20 +83,32 @@
<el-option label="缁勬挱" value="2"></el-option>
</el-select>
</el-form-item>
+ <el-form-item label="鏃犱汉瑙傜湅" prop="rtp_type" >
+ <el-select
+ @change="noneReaderHandler"
+ v-model="proxyParam.none_reader"
+ 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.enable_audio" ></el-checkbox>
+ <el-checkbox label="褰曞埗" 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>
@@ -78,6 +117,8 @@
</template>
<script>
+import MediaServer from './../service/MediaServer'
+
export default {
name: "streamProxyEdit",
props: {},
@@ -104,23 +145,33 @@
listChangeCallback: null,
showDialog: false,
isLoging: false,
+ dialogLoading: false,
onSubmit_text: "绔嬪嵆鍒涘缓",
+ platformList: [],
+ mediaServer: new MediaServer(),
proxyParam: {
name: null,
type: "default",
app: null,
stream: null,
- url: "rtmp://58.200.131.2:1935/livetv/hunantv",
+ url: "",
src_url: null,
timeout_ms: null,
ffmpeg_cmd_key: null,
gbId: null,
rtp_type: null,
enable: true,
- enable_hls: true,
+ enable_audio: true,
enable_mp4: false,
+ none_reader: null,
+ enable_remove_none_reader: false,
+ enable_disable_none_reader: false,
+ platformGbId: null,
+ mediaServerId: null,
},
-
+ mediaServerList:{},
+ ffmpegCmdList:{},
+
rules: {
name: [{ required: true, message: "璇疯緭鍏ュ悕绉�", trigger: "blur" }],
app: [{ required: true, message: "璇疯緭鍏ュ簲鐢ㄥ悕", trigger: "blur" }],
@@ -138,58 +189,103 @@
this.listChangeCallback = callback;
if (proxyParam != null) {
this.proxyParam = proxyParam;
- this.onSubmit_text = "淇濆瓨";
- } else {
- this.onSubmit_text = "绔嬪嵆鍒涘缓";
+ this.proxyParam.none_reader = null;
}
+
+ let that = this;
+ this.$axios({
+ method: 'get',
+ url:`/api/platform/query/10000/1`
+ }).then(function (res) {
+ 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()
+ })
},
- onSubmit: function () {
- console.log("onSubmit");
- 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();
- }
+ 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
}
- })
- .catch(function (error) {
+ }).then(function (res) {
+ that.ffmpegCmdList = res.data.data;
+ that.proxyParam.ffmpeg_cmd_key = Object.keys(res.data.data)[0];
+ }).catch(function (error) {
console.log(error);
});
+ }
+
+ },
+ onSubmit: function () {
+ this.dialogLoading = true;
+ this.noneReaderHandler();
+ this.$axios({
+ method: 'post',
+ url:`/api/proxy/save`,
+ data: this.proxyParam
+ }).then((res)=> {
+ this.dialogLoading = false;
+ if (typeof (res.data.code) != "undefined" && res.data.code === 0) {
+ this.$message({
+ showClose: true,
+ message: res.data.msg,
+ type: "success",
+ });
+ this.showDialog = false;
+ if (this.listChangeCallback != null) {
+ this.listChangeCallback();
+ this.dialogLoading = false;
+ }
+ }
+ }).catch((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/platform/exit/${deviceGbId}`)
- .then(function (res) {
- result = res.data;
- })
- .catch(function (error) {
- console.log(error);
- });
+ await that.$axios({
+ method: 'get',
+ url:`/api/platform/exit/${deviceGbId}`
+ }).then(function (res) {
+ result = res.data;
+ }).catch(function (error) {
+ console.log(error);
+ });
return result;
},
checkExpires: function() {
if (this.platform.enable && this.platform.expires == "0") {
this.platform.expires = "300";
}
- }
+ },
+ noneReaderHandler: function() {
+ if (this.proxyParam.none_reader === null || this.proxyParam.none_reader === "0") {
+ this.proxyParam.enable_disable_none_reader = false;
+ this.proxyParam.enable_remove_none_reader = false;
+ }else if (this.proxyParam.none_reader === "1"){
+ this.proxyParam.enable_disable_none_reader = true;
+ this.proxyParam.enable_remove_none_reader = false;
+ }else if (this.proxyParam.none_reader ==="2"){
+ this.proxyParam.enable_disable_none_reader = false;
+ this.proxyParam.enable_remove_none_reader = true;
+ }
+ },
},
};
</script>
--
Gitblit v1.8.0