648540858
2022-01-14 ac1a4a027a7bd88efb32e9da666bdba4b5fa166f
web_src/src/components/CloudRecord.vue
@@ -6,20 +6,22 @@
         </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>
          <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="mediaServer" placeholder="请选择" default-first-option>
            节点选择:
            <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.id"
              :label="item.id + '( ' + item.streamIp + ' )'"
              :value="item">
              :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>
            <el-button v-if="recordDetail" icon="el-icon-arrow-left" circle size="mini" @click="backToList()"></el-button>
          </div>
        </div>
        <div v-if="!recordDetail">
@@ -52,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>
@@ -70,7 +72,8 @@
      data() {
         return {
        mediaServerList: [], // 滅体节点列表
        mediaServer: null, // 媒体服务
        mediaServerId: null, // 媒体服务
        mediaServerPath: null, // 媒体服务地址
        recordList: [], // 设备列表
        chooseRecord: null, // 媒体服务
@@ -110,10 +113,15 @@
      },
      getMediaServerList: function (){
        let that = this;
        that.mediaServerObj.getMediaServerList((data)=>{
          that.mediaServerList = 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();
          }
        })
@@ -122,7 +130,7 @@
        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
@@ -142,7 +150,8 @@
      },
      chooseMediaChange(val){
          console.log(val)
          this.mediaServer = val;
          this.total = 0;
          this.recordList = [];
          this.getRecordList();
      },
      showRecordDetail(row){