648540858
2020-10-13 f9ab13a14590d310937de7d78a36ee599dce750b
web_src/src/components/channelList.vue
@@ -31,12 +31,29 @@
            <el-table ref="channelListTable" :data="deviceChannelList" :height="winHeight" border style="width: 100%">
               <el-table-column prop="channelId" label="通道编号" width="210">
                  </el-table-column>
                  <el-table-column prop="name" label="通道名称" width="500">
                  <el-table-column prop="name" label="通道名称">
                  </el-table-column>
                  <el-table-column prop="subCount" label="子节点数">
                  </el-table-column>
                  <el-table-column prop="ptztypeText" label="云台类型">
                  </el-table-column>
          <el-table-column label="开启音频" align="center">
            <template slot-scope="scope">
              <el-switch
                @change="updateChannel(scope.row)"
                v-model="scope.row.hasAudio"
                active-color="#409EFF">
              </el-switch>
            </template>
          </el-table-column>
          <el-table-column label="状态" width="180" align="center">
            <template slot-scope="scope">
              <div slot="reference" class="name-wrapper">
                <el-tag size="medium" v-if="scope.row.status == 1">在线</el-tag>
                <el-tag size="medium" type="info" v-if="scope.row.status == 0">离线</el-tag>
              </div>
            </template>
          </el-table-column>
            <el-table-column prop="ptztypeText" label="云台类型">
            </el-table-column>
                  <el-table-column label="操作" width="240" align="center" fixed="right">
                     <template slot-scope="scope">
                        <el-button size="mini" icon="el-icon-video-play" v-if="scope.row.parental == 0" @click="sendDevicePush(scope.row)">预览视频</el-button>
@@ -58,17 +75,20 @@
         </el-main>
      </el-container>
    <Loading v-if="isLoging" marginTop="-50%"></Loading>
   </div>
</template>
<script>
    import devicePlayer from './gb28181/devicePlayer.vue'
    import uiHeader from './UiHeader.vue'
   import Loading from './Loading.vue'
   export default {
      name: 'channelList',
      components: {
         devicePlayer,
         uiHeader
         uiHeader,
      Loading
      },
      data() {
         return {
@@ -85,7 +105,8 @@
            currentPage: parseInt(this.$route.params.page),
            count: parseInt(this.$route.params.count),
            total:0,
            beforeUrl:"/videoList"
            beforeUrl:"/videoList",
        isLoging: false
         };
      },
@@ -181,8 +202,9 @@
         },
         //通知设备上传媒体流
         sendDevicePush: function(itemData) {
           console.log(itemData)
            let deviceId = this.deviceId;
        this.isLoging = true;
            let channelId = itemData.channelId;
            console.log("通知设备推流1:" + deviceId + " : " + channelId);
            let that = this;
@@ -191,7 +213,8 @@
               url: '/api/play/' + deviceId + '/' + channelId
            }).then(function(res) {
               let ssrc = res.data.ssrc;
               that.$refs.devicePlayer.play(res.data,deviceId,channelId);
          that.isLoging = false
               that.$refs.devicePlayer.play(res.data,deviceId,channelId,itemData.hasAudio);
            }).catch(function(e) {
            });
         },
@@ -243,6 +266,16 @@
            this.currentPage = 1;
            this.total = 0;
            this.initData();
         },
      updateChannel: function(row) {
            console.log(row)
        this.$axios({
          method: 'post',
          url: `/api/channel/update/${this.deviceId}`,
          params: row
        }).then(function(res) {
          console.log(JSON.stringify(res));
        });
         }
      }