648540858
2023-09-11 a6fb1cdb74ca11c9dba798e64bf3d61bbfbdf05b
web_src/src/components/channelList.vue
old mode 100644 new mode 100755
@@ -26,6 +26,12 @@
            <el-option label="在线" value="true"></el-option>
            <el-option label="离线" value="false"></el-option>
          </el-select>
          清晰度:
          <el-select size="mini" style="margin-right: 1rem;" @change="search" v-model="isSubStream" placeholder="请选择"
                     default-first-option>
            <el-option label="原画" :value="false"></el-option>
            <el-option label="流畅" :value="true"></el-option>
          </el-select>
        </div>
      <el-button icon="el-icon-refresh-right" circle size="mini" @click="refresh()"></el-button>
      <el-button v-if="showTree" icon="iconfont icon-list" circle size="mini" @click="switchList()"></el-button>
@@ -69,7 +75,7 @@
            <span v-if="scope.row.longitude*scope.row.latitude === 0">无</span>
          </template>
        </el-table-column>
        <el-table-column prop="ptztypeText" label="云台类型" min-width="120"/>
        <el-table-column prop="PTZTypeText" label="云台类型" min-width="120"/>
        <el-table-column label="开启音频" min-width="120">
          <template slot-scope="scope">
            <el-switch @change="updateChannel(scope.row)" v-model="scope.row.hasAudio" active-color="#409EFF">
@@ -79,8 +85,8 @@
        <el-table-column label="状态" min-width="120">
          <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>
              <el-tag size="medium" v-if="scope.row.status === true">在线</el-tag>
              <el-tag size="medium" type="info" v-if="scope.row.status === false">离线</el-tag>
            </div>
          </template>
        </el-table-column>
@@ -98,6 +104,9 @@
            </el-button>
            <el-divider v-if="scope.row.subCount > 0 || scope.row.parental === 1" direction="vertical"></el-divider>
            <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-video-camera" type="text" @click="queryRecords(scope.row)">设备录像
            </el-button>
            <el-button size="medium" v-bind:disabled="device == null || device.online === 0" icon="el-icon-cloudy"
                       type="text" @click="queryCloudRecords(scope.row)">云端录像
            </el-button>
          </template>
        </el-table-column>
@@ -123,7 +132,6 @@
<script>
import devicePlayer from './dialog/devicePlayer.vue'
import uiHeader from '../layout/UiHeader.vue'
import moment from "moment";
import DeviceService from "./service/DeviceService";
import DeviceTree from "./common/DeviceTree";
@@ -147,6 +155,7 @@
      searchSrt: "",
      channelType: "",
      online: "",
      isSubStream: false,
      winHeight: window.innerHeight - 200,
      currentPage: 1,
      count: 15,
@@ -215,12 +224,15 @@
          channelType: that.channelType
        }
      }).then(function (res) {
        that.total = res.data.total;
        that.deviceChannelList = res.data.list;
        // 防止出现表格错位
        that.$nextTick(() => {
          that.$refs.channelListTable.doLayout();
        })
        if (res.data.code === 0) {
          that.total = res.data.data.total;
          that.deviceChannelList = res.data.data.list;
          // 防止出现表格错位
          that.$nextTick(() => {
            that.$refs.channelListTable.doLayout();
          })
        }
      }).catch(function (error) {
        console.log(error);
      });
@@ -235,7 +247,10 @@
      let that = this;
      this.$axios({
        method: 'get',
        url: '/api/play/start/' + deviceId + '/' + channelId
        url: '/api/play/start/' + deviceId + '/' + channelId,
        params:{
          isSubStream: this.isSubStream
        }
      }).then(function (res) {
        console.log(res)
        that.isLoging = false;
@@ -247,6 +262,7 @@
            that.loadSnap[deviceId + channelId] = 0;
            that.getSnapErrorEvent(snapId)
          }, 5000)
          itemData.streamId = res.data.data.stream;
          that.$refs.devicePlayer.openDialog("media", deviceId, channelId, {
            streamInfo: res.data.data,
            hasAudio: itemData.hasAudio
@@ -265,16 +281,25 @@
      });
    },
    queryRecords: function (itemData) {
      var format = moment().format("yyyy-MM-DD");
      let deviceId = this.deviceId;
      let channelId = itemData.channelId;
      this.$refs.devicePlayer.openDialog("record", deviceId, channelId, {date: format})
      this.$router.push(`/gbRecordDetail/${deviceId}/${channelId}`)
    },
    queryCloudRecords: function (itemData) {
      let deviceId = this.deviceId;
      let channelId = itemData.channelId;
      this.$router.push(`/cloudRecordDetail/rtp/${deviceId}_${channelId}`)
    },
    stopDevicePush: function (itemData) {
      var that = this;
      this.$axios({
        method: 'get',
        url: '/api/play/stop/' + this.deviceId + "/" + itemData.channelId
        url: '/api/play/stop/' + this.deviceId + "/" + itemData.channelId,
        params:{
          isSubStream: this.isSubStream
        }
      }).then(function (res) {
        that.initData();
      }).catch(function (error) {
@@ -286,8 +311,8 @@
      });
    },
    getSnap: function (row) {
      let url = (process.env.NODE_ENV === 'development'? "debug": "") + '/api/device/query/snap/' + row.deviceId + '/' + row.channelId
      return url
      let baseUrl = window.baseUrl ? window.baseUrl : "";
      return ((process.env.NODE_ENV === 'development') ? process.env.BASE_API : baseUrl) + '/api/device/query/snap/' + row.deviceId + '/' + row.channelId;
    },
    getBigSnap: function (row) {
      return [this.getSnap(row)]
@@ -339,12 +364,15 @@
            channelType: this.channelType
          }
        }).then( (res) =>{
          this.total = res.data.total;
          this.deviceChannelList = res.data.list;
          // 防止出现表格错位
          this.$nextTick(() => {
            this.$refs.channelListTable.doLayout();
          })
          if (res.data.code === 0) {
            this.total = res.data.data.total;
            this.deviceChannelList = res.data.data.list;
            // 防止出现表格错位
            this.$nextTick(() => {
              this.$refs.channelListTable.doLayout();
            })
          }
        }).catch(function (error) {
          console.log(error);
        });
@@ -358,12 +386,14 @@
            count: this.count,
          }
        }).then((res)=> {
          this.total = res.data.total;
          this.deviceChannelList = res.data.list;
          // 防止出现表格错位
          this.$nextTick(() => {
            this.$refs.channelListTable.doLayout();
          })
          if (res.data.code === 0) {
            this.total = res.data.total;
            this.deviceChannelList = res.data.list;
            // 防止出现表格错位
            this.$nextTick(() => {
              this.$refs.channelListTable.doLayout();
            })
          }
        }).catch(function (error) {
          console.log(error);
        });