From ac1a4a027a7bd88efb32e9da666bdba4b5fa166f Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期五, 14 一月 2022 17:04:26 +0800 Subject: [PATCH] 支持国标级联的目录订阅功能 --- web_src/src/components/CloudRecord.vue | 61 ++++++++++++++++-------------- 1 files changed, 32 insertions(+), 29 deletions(-) diff --git a/web_src/src/components/CloudRecord.vue b/web_src/src/components/CloudRecord.vue index 2e6d34c..78f8a46 100644 --- a/web_src/src/components/CloudRecord.vue +++ b/web_src/src/components/CloudRecord.vue @@ -6,25 +6,26 @@ </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 style="position: absolute; right: 1rem; top: 0.3rem;"> - <el-button v-if="!recordDetail" icon="el-icon-refresh-right" circle size="mini" :loading="loading" @click="getRecordList()"></el-button> - <el-button v-if="recordDetail" icon="el-icon-arrow-left" circle size="mini" @click="backToList()"></el-button> - </div> - </div> - <div v-if="!recordDetail"> - <div style="background-color: #FFFFFF; margin-bottom: 1rem; position: relative; padding: 0.5rem; text-align: left;font-size: 14px;"> - - - 鑺傜偣閫夋嫨: <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServer" placeholder="璇烽�夋嫨" default-first-option> + <span v-if="!recordDetail" >浜戠褰曞儚</span> + <el-page-header v-if="recordDetail" @back="backToList" content="浜戠褰曞儚"> + </el-page-header> + <div style="position: absolute; right: 5rem; top: 0.3rem;"> + 鑺傜偣閫夋嫨: + <el-select size="mini" @change="chooseMediaChange" style="width: 16rem; margin-right: 1rem;" v-model="mediaServerId" placeholder="璇烽�夋嫨" :disabled="recordDetail"> <el-option v-for="item in mediaServerList" - :key="item.generalMediaServerId" - :label="item.generalMediaServerId + '( ' + item.wanIp + ' )'" - :value="item"> + :key="item.id" + :label="item.id" + :value="item.id"> </el-option> </el-select> </div> + <div style="position: absolute; right: 1rem; top: 0.3rem;"> + <el-button v-if="!recordDetail" icon="el-icon-refresh-right" circle size="mini" :loading="loading" @click="getRecordList()"></el-button> + </div> + </div> + <div v-if="!recordDetail"> + <!--璁惧鍒楄〃--> <el-table :data="recordList" border style="width: 100%" :height="winHeight"> <el-table-column prop="app" label="搴旂敤鍚�" align="center"> @@ -53,7 +54,7 @@ :total="total"> </el-pagination> </div> - <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServer="mediaServer" ></cloud-record-detail> + <cloud-record-detail ref="cloudRecordDetail" v-if="recordDetail" :recordFile="chooseRecord" :mediaServerId="mediaServerId" :mediaServerPath="mediaServerPath" ></cloud-record-detail> </el-main> </el-container> </div> @@ -62,6 +63,7 @@ <script> import uiHeader from './UiHeader.vue' import cloudRecordDetail from './CloudRecordDetail.vue' + import MediaServer from './service/MediaServer' export default { name: 'app', components: { @@ -70,7 +72,8 @@ data() { return { mediaServerList: [], // 婊呬綋鑺傜偣鍒楄〃 - mediaServer: null, // 濯掍綋鏈嶅姟 + mediaServerId: null, // 濯掍綋鏈嶅姟 + mediaServerPath: null, // 濯掍綋鏈嶅姟鍦板潃 recordList: [], // 璁惧鍒楄〃 chooseRecord: null, // 濯掍綋鏈嶅姟 @@ -80,6 +83,7 @@ count:15, total:0, loading: false, + mediaServerObj : new MediaServer(), recordDetail: false }; @@ -109,26 +113,24 @@ }, getMediaServerList: function (){ let that = this; - this.$axios({ - method: 'get', - url:`/api/server/media_server/list`, - }).then(function (res) { - console.log(res) - that.mediaServerList = res.data; + that.mediaServerObj.getOnlineMediaServerList((data)=>{ + that.mediaServerList = data.data; if (that.mediaServerList.length > 0) { - that.mediaServer = that.mediaServerList[0] + that.mediaServerId = that.mediaServerList[0].id + let port = that.mediaServerList[0].httpPort; + if (location.protocol === "https:" && that.mediaServerList[0].httpSSlPort) { + port = that.mediaServerList[0].httpSSlPort + } + that.mediaServerPath = location.protocol + "//" + that.mediaServerList[0].streamIp + ":" + port that.getRecordList(); } - - }).catch(function (error) { - console.log(error); - }); + }) }, getRecordList: function (){ let that = this; this.$axios({ method: 'get', - url:`/record_proxy/${that.mediaServer.generalMediaServerId}/api/record/list`, + url:`/record_proxy/${that.mediaServerId}/api/record/list`, params: { page: that.currentPage, count: that.count @@ -148,7 +150,8 @@ }, chooseMediaChange(val){ console.log(val) - this.mediaServer = val; + this.total = 0; + this.recordList = []; this.getRecordList(); }, showRecordDetail(row){ -- Gitblit v1.8.0