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. 150
      src/views/modules/shequzhili/videoWall/videoDialog.vue
  2. 193
      src/views/modules/shequzhili/videoWall/videoWall.vue

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

@ -1,56 +1,104 @@
<template> <template>
<div class="p-6 w-96 h-80"> <div>
<iframe <el-dialog v-if="dialogVisible" :visible.sync="dialogVisible" top="100px" width="1020px" :before-close="handleClose"
ref="myIframe" class="darkDialog" :modal="false" :append-to-body="true">
@load="sendMessageToIframe" <!-- <div slot="title"
class="w-[60vw] h-[60vh]" class="dialogTitle">
:src="videoSrc" <div alt=""
frameborder="0" class="title_img"></div>
></iframe> {{ data.name }}
</div> </div> -->
</template> <div class="dialogBody" >
<script> <video-player class="video-player vjs-custom-skin" ref="videoPlayer" :playsinline="true"
export default { :options="playerOptions">
data() { </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 { return {
token: "", dialogVisible: false,
videoSrc:"", playerOptions: {
userData:{ playbackRates: [0.5, 1.0, 1.5, 2.0], //
"userName": "apizhsq", autoplay: true, //true,
"password": "12345678@df", muted: false, //
"type": 1 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: { props: {
sendMessageToIframe() { dataV: {
const message = { type: Object,
token: this.token, default: () => {}
}; }
const iframe = this.$refs.myIframe; },
iframe.contentWindow.postMessage(message, "*"); created() {
}, // debugger
getAuthCameras(token){ // this.playerOptions.sources[0].src = this.data.src;
var that=this; },
this.$http.post("http://172.20.41.195:9006/video/api/getAuthCameras",null,{ components: {},
headers: { methods: {
Authorization: token handleClose(done) {
}}) // done();
.then((res) => { this.$emit('close');
that.videoSrc="http://172.20.41.195:9015/video-play-plug?token="+that.token+"&playType=realPlay"+"&cameraCode="+res.data.data[0].code this.dialogVisible = false
});
}, },
getLogin(){ async videoLogin(){
this.$http console.log(this.dataV);
.post("http://172.20.41.195:9006/video/api/login",this.userData) let url = "/auth/thirdlogin/video/login"
.then((res) => { let {data,code,msg} = await requestPost(url)
this.token=res.data.data.token; if(code == 0 ){
this.getAuthCameras(res.data.data.token); this.playerOptions.sources[0].src = "http://172.20.41.195:9015/video-play-plug?token="+data.token+"&playType=realPlay"+"&cameraCode="+this.dataV.code
}); }
} }
}, }
mounted(){ };
this.getLogin(); </script>
},
}; <style lang="scss" scoped>
</script> ::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="div_table" :style="{ height: maxTableHeight + 'px' }">
<div class="card"> <div class="card">
<div class="bgC"> <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=""> <img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div> <div>
<p>视频标题</p> <p>{{item.deviceName}}</p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</p> <p><img src="../../../../assets/img/arrow-down.png" alt=""> {{item.deviceAddress}}</p>
</div> </div>
</div> </div>
<div class="item"> <div class="item" @click="handelClickImg(item)" >
<img width="100%" src="../../../../assets/img/login_bg.jpg" alt=""> <img width="100%" src="../../../../assets/img/login_bg.jpg" alt="">
<div> <div>
<p>视频标题</p> <p></p>
<p><img src="../../../../assets/img/arrow-down.png" alt=""> 视频位置</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>
</div> </div>
</div> </div>
</div> </div>
@ -178,12 +31,12 @@
layout="sizes, prev, pager, next, total" layout="sizes, prev, pager, next, total"
:total="total"> :total="total">
</el-pagination></div> </el-pagination></div>
<video-dialog v-if="showTv" :data="selfVideo"></video-dialog> <video-dialog :dataV="selfVideo" ref="videoDialog"></video-dialog>
</div> </div>
</template> </template>
<script> <script>
import { requestPost } from "@/js/dai/request"; import { requestPost,requestGet } from "@/js/dai/request";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import videoDialog from "./videoDialog.vue"; import videoDialog from "./videoDialog.vue";
export default { export default {
@ -192,11 +45,10 @@ export default {
data() { data() {
return { return {
pageNo: '', pageNo: '',
pageSize: 10, pageSize: 20,
total: 0, total: 0,
tableData: [], tableData: [],
selfVideo:{}, selfVideo:{},
showTv:false
}; };
}, },
computed: { computed: {
@ -210,10 +62,24 @@ export default {
}, },
mounted() { mounted() {
this.getTableData()
}, },
methods: { 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) { handleSizeChange (val) {
console.log(`每页 ${val}`); console.log(`每页 ${val}`);
this.pageSize = val; this.pageSize = val;
@ -225,8 +91,13 @@ export default {
this.pageNo = val; this.pageNo = val;
this.getTableData(); this.getTableData();
}, },
handelShowTv(){ handelClickImg(item){
this.showTv = true this.selfVideo = item
console.log(item,'获取的对象');
this.$nextTick(()=>{
this.$refs['videoDialog'].videoLogin()
this.$refs['videoDialog'].dialogVisible = true
})
} }
} }
}; };

Loading…
Cancel
Save