old mode 100644
new mode 100755
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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"> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | </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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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"; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | searchSrt: "", | 
|---|
|  |  |  | channelType: "", | 
|---|
|  |  |  | online: "", | 
|---|
|  |  |  | isSubStream: false, | 
|---|
|  |  |  | winHeight: window.innerHeight - 200, | 
|---|
|  |  |  | currentPage: 1, | 
|---|
|  |  |  | count: 15, | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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) { | 
|---|
|  |  |  | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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)] | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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); | 
|---|
|  |  |  | }); | 
|---|