648540858
2022-02-28 9c5b1060af4e6c468b2cf95fbb9ec6d0a05fad5c
web_src/src/components/channelList.vue
@@ -28,9 +28,7 @@
            <devicePlayer ref="devicePlayer" v-loading="isLoging"></devicePlayer>
            <!--设备列表-->
            <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="deviceId" label="设备编号" width="210">
                <el-table-column prop="channelId" label="通道编号" width="200">
                </el-table-column>
                <el-table-column prop="name" label="通道名称">
                </el-table-column>
@@ -54,6 +52,14 @@
                </el-table-column>
                <el-table-column prop="subCount" label="子节点数">
                </el-table-column>
                <el-table-column prop="manufacture" label="厂家">
                </el-table-column>
                <el-table-column label="位置信息" align="center">
                  <template slot-scope="scope">
                    <span>{{scope.row.longitude}},{{scope.row.latitude}}</span>
                  </template>
                </el-table-column>
              <el-table-column prop="ptztypeText" label="云台类型"/>
                <el-table-column label="开启音频" align="center">
                    <template slot-scope="scope">
                        <el-switch @change="updateChannel(scope.row)" v-model="scope.row.hasAudio" active-color="#409EFF">
@@ -68,15 +74,15 @@
                        </div>
                    </template>
                </el-table-column>
                <el-table-column prop="ptztypeText" label="云台类型">
                </el-table-column>
                <el-table-column label="操作" width="280" align="center" fixed="right">
                    <template slot-scope="scope">
                        <el-button-group>
                            <!-- <el-button size="mini" icon="el-icon-video-play" v-if="scope.row.parental == 0" @click="sendDevicePush(scope.row)">播放</el-button> -->
                            <el-button size="mini" icon="el-icon-video-play" @click="sendDevicePush(scope.row)">播放</el-button>
                            <el-button size="mini" icon="el-icon-switch-button" type="danger" v-if="!!scope.row.streamId" @click="stopDevicePush(scope.row)">停止</el-button>
                            <el-button size="mini" icon="el-icon-s-open" type="primary" v-if="scope.row.parental == 1" @click="changeSubchannel(scope.row)">查看</el-button>
                            <el-button size="mini" icon="el-icon-s-open" type="primary" v-if="scope.row.subCount > 0" @click="changeSubchannel(scope.row)">查看</el-button>
                            <el-button size="mini" icon="el-icon-video-camera" type="primary" @click="queryRecords(scope.row)">设备录象</el-button>
                            <!--                             <el-button size="mini" @click="sendDevicePush(scope.row)">录像查询</el-button> -->
                        </el-button-group>
@@ -154,7 +160,6 @@
        },
        currentChange: function (val) {
            var url = `/${this.$router.currentRoute.name}/${this.deviceId}/${this.parentChannelId}/${this.count}/${val}`
            console.log(url)
            this.$router.push(url).then(() => {
                this.initParam();
                this.initData();
@@ -175,14 +180,13 @@
                method: 'get',
                url: `/api/device/query/devices/${this.$route.params.deviceId}/channels`,
                params:{
                  page: that.currentPage,
                              page: that.currentPage,
                        count: that.count,
                        query: that.searchSrt,
                        online: that.online,
                        channelType: that.channelType
               }
                     }
            }).then(function (res) {
                    console.log(res);
                    that.total = res.data.total;
                    that.deviceChannelList = res.data.list;
                    // 防止出现表格错位
@@ -196,7 +200,6 @@
        //通知设备上传媒体流
        sendDevicePush: function (itemData) {
            console.log(itemData);
            let deviceId = this.deviceId;
            this.isLoging = true;
            let channelId = itemData.channelId;
@@ -207,10 +210,10 @@
                url: '/api/play/start/' + deviceId + '/' + channelId
            }).then(function (res) {
                that.isLoging = false;
                if (res.data.code == 0) {
                if (res.data.code === 0) {
                  setTimeout(()=>{
                    console.log("下载截图")
                    let snapId = deviceId + "_" + channelId;
                    that.loadSnap[snapId] = 0;
                    that.getSnapErrorEvent(snapId)
@@ -219,7 +222,10 @@
                    streamInfo: res.data.data,
                    hasAudio: itemData.hasAudio
                  });
                  that.initData();
                  setTimeout(()=>{
                    that.initData();
                  },1000)
                }else {
                  that.$message.error(res.data.msg);
                }
@@ -232,13 +238,11 @@
            this.$refs.devicePlayer.openDialog("record", deviceId, channelId, {date: format})
        },
        stopDevicePush: function (itemData) {
            console.log(itemData)
            var that = this;
            this.$axios({
                method: 'get',
                url: '/api/play/stop/' + this.deviceId + "/" + itemData.channelId
            }).then(function (res) {
                console.log(JSON.stringify(res));
                that.initData();
            }).catch(function (error) {
              if (error.response.status === 402) { // 已经停止过
@@ -273,7 +277,6 @@
            })
        },
        changeSubchannel(itemData) {
            console.log(this.$router.currentRoute)
            this.beforeUrl = this.$router.currentRoute.path;
            var url = `/${this.$router.currentRoute.name}/${this.$router.currentRoute.params.deviceId}/${itemData.channelId}/${this.$router.currentRoute.params.count}/1`
@@ -310,13 +313,11 @@
            });
        },
        search: function () {
            console.log(this.searchSrt)
            this.currentPage = 1;
            this.total = 0;
            this.initData();
        },
        updateChannel: function (row) {
            console.log(row)
            this.$axios({
                method: 'post',
                url: `/api/device/query/channel/update/${this.deviceId}`,