diff --git a/src/main.js b/src/main.js index 25b52cb..5d8c5c3 100644 --- a/src/main.js +++ b/src/main.js @@ -36,8 +36,9 @@ import DictTag from '@/components/DictTag' import VueMeta from 'vue-meta' // 字典数据组件 import DictData from '@/components/DictData' - +import Bus from '@/utils/eventBus' // 全局方法挂载 + Vue.prototype.getDicts = getDicts Vue.prototype.getConfigKey = getConfigKey Vue.prototype.parseTime = parseTime @@ -65,6 +66,7 @@ Vue.component('Editor', Editor) Vue.component('FileUpload', FileUpload) Vue.component('ImageUpload', ImageUpload) +Vue.use(Bus); Vue.use(directive) Vue.use(plugins) Vue.use(VueMeta) diff --git a/src/utils/eventBus.js b/src/utils/eventBus.js new file mode 100644 index 0000000..17b75f3 --- /dev/null +++ b/src/utils/eventBus.js @@ -0,0 +1,18 @@ +// units/bus.js +const install = Vue => { + const Bus = new Vue({ + methods: { + on(event, ...args) { + this.$on(event, ...args); + }, + emit(event, callback) { + this.$emit(event, callback); + }, + off(event, callback) { + this.$off(event, callback); + } + } + }); + Vue.prototype.$bus = Bus; +}; +export default install; \ No newline at end of file diff --git a/src/views/bigScreen/securityManage/center.vue b/src/views/bigScreen/securityManage/center.vue index 91bc0e6..347f07b 100644 --- a/src/views/bigScreen/securityManage/center.vue +++ b/src/views/bigScreen/securityManage/center.vue @@ -9,21 +9,21 @@ 一级:{{v.pointName}} -
+
二级:{{v.pointName}}
-
+
三级:{{v.pointName}}
-
+
-
- 视频监控 / - 奖惩播放 / - 典型案例播放 + 视频监控 / + 奖惩播放 / + 典型案例播放
危险点视频覆盖率 @@ -93,14 +93,12 @@ export default { listData: [1, 2, 3, 4,5,6,7,8], rate: 0, points: [], + videoIndex: 0, flvPlayer: null, + videoUrl: '' } }, mounted () { - let videoElement = document.getElementById('videoElement') - this.flvPlayer.attachMediaElement(videoElement) - this.flvPlayer.load() - this.flvPlayer.play() this.$nextTick(() => { this.getData() // this.initChart() @@ -115,6 +113,53 @@ export default { this.flvPlayer.player = null }, methods: { + handleVideoType(val){ + this.videoIndex = val + if(val==0){ + this.videoUrl='' + }else if(val==1){ + this.request({ + url: '/hx/securityManagement/getVideoByType', + params:{ + type:'1' + } + }).then(res=>{ + this.videoUrl = res.msg + }) + }else{ + this.request({ + url: '/hx/securityManagement/getVideoByType', + params:{ + type:'2' + } + }).then(res=>{ + this.videoUrl = res.msg + }) + } + }, + setVideoUrl(videoUrl){ + if (flvjs.isSupported()) { + this.flvPlayer = flvjs.createPlayer( + { + type: 'flv', // 媒体类型 flv 或 mp4 + isLive: true, // 是否为直播流 + fluid: true, + // hasAudio: true, // 是否开启声音 + stashInitialSize: 128, // 减少首桢显示等待时长 + url: videoUrl, + }, + { + enableStashBuffer: false, + fixAudioTimestampGap: false, + isLive: true, + } + ) + } + let videoElement = document.getElementById('videoElement') + this.flvPlayer.attachMediaElement(videoElement) + this.flvPlayer.load() + this.flvPlayer.play() + }, getData () { this.request({ url: '/hx/securityManagement/dangerousMap', @@ -125,6 +170,10 @@ export default { this.rate = res.data.rate; this.listData = Array(this.points.length*2).fill(0); this.$refs.seamlessScroll.reset(); + if(this.points.length){ + // this.setVideoUrl(this.rate[0].rtmpAddress) + this.setVideoUrl('http://192.168.0.151:81/stream/live/classic_cases_video.flv') + } } }) }, @@ -301,23 +350,12 @@ export default { }, }, created () { - if (flvjs.isSupported()) { - this.flvPlayer = flvjs.createPlayer( - { - type: 'flv', // 媒体类型 flv 或 mp4 - isLive: true, // 是否为直播流 - fluid: true, - // hasAudio: true, // 是否开启声音 - stashInitialSize: 128, // 减少首桢显示等待时长 - url: 'http://192.168.0.151:81/stream/live/livestream.flv', - }, - { - enableStashBuffer: false, - fixAudioTimestampGap: false, - isLive: true, - } - ) - } + this.$bus.on("getTarget", res => { + console.log(this.videoIndex); + this.videoIndex = 0 + this.setVideoUrl(res.rtmpAddress) + console.log(this.videoIndex); + }); }, }