648540858
2021-10-29 c35932e24cf9dda9ef396ab5a45fb1a6e5539748
web_src/src/components/CloudRecord.vue
@@ -7,22 +7,24 @@
         <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: 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.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>
            <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>
            <el-option
              v-for="item in mediaServerList"
              :key="item.generalMediaServerId"
              :label="item.generalMediaServerId + '( ' + item.wanIp + ' )'"
              :value="item">
            </el-option>
          </el-select>
          </div>
          <!--设备列表-->
          <el-table :data="recordList" border style="width: 100%" :height="winHeight">
            <el-table-column prop="app" label="应用名" align="center">
@@ -51,7 +53,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" ></cloud-record-detail>
         </el-main>
      </el-container>
   </div>
@@ -60,6 +62,7 @@
<script>
   import uiHeader from './UiHeader.vue'
   import cloudRecordDetail from './CloudRecordDetail.vue'
  import MediaServer from './service/MediaServer'
   export default {
      name: 'app',
      components: {
@@ -68,7 +71,7 @@
      data() {
         return {
        mediaServerList: [], // 滅体节点列表
        mediaServer: null, // 媒体服务
        mediaServerId: null, // 媒体服务
        recordList: [], // 设备列表
        chooseRecord: null, // 媒体服务
@@ -78,6 +81,7 @@
        count:15,
        total:0,
        loading: false,
        mediaServerObj : new MediaServer(),
        recordDetail: false
         };
@@ -107,26 +111,19 @@
      },
      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
            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
@@ -146,7 +143,8 @@
      },
      chooseMediaChange(val){
          console.log(val)
          this.mediaServer = val;
          this.total = 0;
          this.recordList = [];
          this.getRecordList();
      },
      showRecordDetail(row){