Browse Source

Merge branch 'yantai_master' of http://git.elinkit.com.cn:7070/r/epmet-oper-gov

yantai_master
mk 2 years ago
parent
commit
5c4a407f89
  1. 130
      src/views/modules/shequzhili/videoWall/videoDialog.vue
  2. 193
      src/views/modules/shequzhili/videoWall/videoWall.vue

130
src/views/modules/shequzhili/videoWall/videoDialog.vue

@ -1,56 +1,104 @@
<template>
<div class="p-6 w-96 h-80">
<iframe
ref="myIframe"
@load="sendMessageToIframe"
class="w-[60vw] h-[60vh]"
:src="videoSrc"
frameborder="0"
></iframe>
<div>
<el-dialog v-if="dialogVisible" :visible.sync="dialogVisible" top="100px" width="1020px" :before-close="handleClose"
class="darkDialog" :modal="false" :append-to-body="true">
<!-- <div slot="title"
class="dialogTitle">
<div alt=""
class="title_img"></div>
{{ data.name }}
</div> -->
<div class="dialogBody" >
<video-player class="video-player vjs-custom-skin" ref="videoPlayer" :playsinline="true"
:options="playerOptions">
</video-player>
</div>
<!-- <div slot="footer" class="dialogFooter">
{{dataV.deviceName}}
<div>
<img src="../../../../assets//img/arrow-down.png" alt="">
<span>{{dataV.deviceAddress}}</span>
</div>
</div> -->
</el-dialog>
</div>
</template>
<script>
import { requestPost,requestGet } from "@/js/dai/request";
export default {
data() {
return {
token: "",
videoSrc:"",
userData:{
"userName": "apizhsq",
"password": "12345678@df",
"type": 1
dialogVisible: false,
playerOptions: {
playbackRates: [0.5, 1.0, 1.5, 2.0], //
autoplay: true, //true,
muted: false, //
loop: true, //
preload: 'auto', // <video>auto,
language: 'zh-CN',
aspectRatio: '16:9', // 使 - "16:9""4:3"
fluid: true, // trueVideo.js player
sources: [{ type: '', src: ''}],
poster: '', //
// width: document.documentElement.clientWidth,
notSupportedMessage: '此视频暂无法播放,请稍后再试', //Video.js
controlBar: {
timeDivider: true, //
durationDisplay: true, //
remainingTimeDisplay: false, //
fullscreenToggle: true //
}
}
};
},
methods: {
sendMessageToIframe() {
const message = {
token: this.token,
};
const iframe = this.$refs.myIframe;
iframe.contentWindow.postMessage(message, "*");
},
getAuthCameras(token){
var that=this;
this.$http.post("http://172.20.41.195:9006/video/api/getAuthCameras",null,{
headers: {
Authorization: token
}})
.then((res) => {
that.videoSrc="http://172.20.41.195:9015/video-play-plug?token="+that.token+"&playType=realPlay"+"&cameraCode="+res.data.data[0].code
});
},
getLogin(){
this.$http
.post("http://172.20.41.195:9006/video/api/login",this.userData)
.then((res) => {
this.token=res.data.data.token;
this.getAuthCameras(res.data.data.token);
});
props: {
dataV: {
type: Object,
default: () => {}
}
},
mounted(){
this.getLogin();
created() {
// debugger
// this.playerOptions.sources[0].src = this.data.src;
},
components: {},
methods: {
handleClose(done) {
// done();
this.$emit('close');
this.dialogVisible = false
},
async videoLogin(){
console.log(this.dataV);
let url = "/auth/thirdlogin/video/login"
let {data,code,msg} = await requestPost(url)
if(code == 0 ){
this.playerOptions.sources[0].src = "http://172.20.41.195:9015/video-play-plug?token="+data.token+"&playType=realPlay"+"&cameraCode="+this.dataV.code
}
}
}
};
</script>
<style lang="scss" scoped>
::v-deep .el-dialog {
background-color: #000;
.el-dialog__header {
position: relative;
top: -6px;
}
.el-dialog__body {
padding: 0;
}
.el-dialog__footer {
background-color: #fff;
text-align: left;
}
}
</style>
<!-- <style lang="scss" src="@/assets/scss/test.scss" scoped></style> -->

193
src/views/modules/shequzhili/videoWall/videoWall.vue

@ -5,165 +5,18 @@
<div class="div_table" :style="{ height: maxTableHeight + 'px' }">
<div class="card">
<div class="bgC">
<div class="item">
<div class="item" v-for="(item,index) in tableData" :key="index" @click="handelClickImg(item)">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
<p>{{item.deviceName}}</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> {{item.deviceAddress}}</p>
</div>
</div>
<div class="item">
<div class="item" @click="handelClickImg(item)" >
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
</div>
</div>
<div class="item" @click="handelShowTv">
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div>
<p>视频标题</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p>
<p></p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> </p>
</div>
</div>
</div>
@ -178,12 +31,12 @@
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination></div>
<video-dialog v-if="showTv" :data="selfVideo"></video-dialog>
<video-dialog :dataV="selfVideo" ref="videoDialog"></video-dialog>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost,requestGet } from "@/js/dai/request";
import { mapGetters } from "vuex";
import videoDialog from "./videoDialog.vue";
export default {
@ -192,11 +45,10 @@ export default {
data() {
return {
pageNo: '',
pageSize: 10,
pageSize: 20,
total: 0,
tableData: [],
selfVideo:{},
showTv:false
};
},
computed: {
@ -210,10 +62,24 @@ export default {
},
mounted() {
this.getTableData()
},
methods: {
async getTableData(){
let url = "/gov/org/icmonitoringdevice/page"
let params = {
pageNo: this.pageNo,
pageSize: this.pageSize,
}
let {data,code,msg} = requestGet(url, params).then(res => {
if (code == 0) {
this.tableData = data.list
this.total = data.total
}else{
this.$message.error(msg)
}
})
},
handleSizeChange (val) {
console.log(`每页 ${val}`);
this.pageSize = val;
@ -225,8 +91,13 @@ export default {
this.pageNo = val;
this.getTableData();
},
handelShowTv(){
this.showTv = true
handelClickImg(item){
this.selfVideo = item
console.log(item,'获取的对象');
this.$nextTick(()=>{
this.$refs['videoDialog'].videoLogin()
this.$refs['videoDialog'].dialogVisible = true
})
}
}
};

Loading…
Cancel
Save