From 8aa3edd56c279100c9053576f3e90fa55459fe77 Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 16 Jan 2023 16:15:55 +0800
Subject: [PATCH] 修改
---
public/map/popup/html/FlareClusterLayer_v3 copy.html | 272 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 238 insertions(+), 34 deletions(-)
diff --git a/public/map/popup/html/FlareClusterLayer_v3 copy.html b/public/map/popup/html/FlareClusterLayer_v3 copy.html
index 742ea32..f60bc73 100644
--- a/public/map/popup/html/FlareClusterLayer_v3 copy.html
+++ b/public/map/popup/html/FlareClusterLayer_v3 copy.html
@@ -12,7 +12,10 @@
<!-- element ui -->
<link rel="stylesheet" href="../../lib/elementUi.css">
<script src="../../lib/elementUi.js"></script>
-
+ <!-- axios -->
+ <script src='../../lib/axios.js'></script>
+ <!-- 视频 -->
+ <script src='../../../realVideo/hls.js'></script>
<!-- layui -->
<link rel="stylesheet" href="../../lib/layui/css/layui.css" media="all">
<style>
@@ -114,6 +117,8 @@
justify-content: space-between;
padding: 10px 0 10px 0;
+ /* border: rgb(211, 154, 31) solid 0.5px; */
+
margin-bottom: 5px;
}
@@ -135,7 +140,7 @@
float: left;
margin-right: 10px;
padding: 0 10px 0 10px;
- border: 1px solid rgba(0, 0, 0, 0.5);
+ /* border: 1px solid rgba(0, 0, 0, 0.5); */
border-radius: 5px;
}
@@ -143,6 +148,10 @@
float: left;
padding: 0 3px 0 3px;
+ }
+
+ .el-tabs__content {
+ height: 360px;
}
.el-tabs__active-bar {
@@ -153,6 +162,10 @@
.el-tabs__item:hover {
color: #5d5d5d;
}
+
+ video::-webkit-media-controls-timeline {
+ display: none;
+ }
</style>
</head>
@@ -160,7 +173,7 @@
<div id="appliutwo" class='police-details-box' class="layui-anim" data-anim="layui-anim-down">
<!-- 从layui传值给iframe 的占位input -->
<!-- <div class="aaa bbb">13223456745</div> -->
- <input type="text" id="sidIput" ref="sidIput" style="display:none">
+ <input type="text" id="sidIput" ref="sidIput" style="display: none;">
<div class="flare-liu-top">
<div class="f-l-t-heard">{{name}}</div>
<div class="f-l-t-center">{{machineCode}}</div>
@@ -169,13 +182,17 @@
<div class="f-l-t-r-but"> <a href="#" @click="looks">查看详情</a> </div>
</div>
</div>
- <div class="flare-liu-body">
+ <div class="flare-liu-body" v-if="'start'">
<el-tabs v-model="activeName" @tab-click="handleClick">
<el-tab-pane label="基本信息" name="first">
<div class="r-b-top">
<div class="r-b-t-main">
<span class="r-b-t-left">设备名称</span>
<span class="r-b-t-right">{{ name }}</span>
+ </div>
+ <div class="r-b-t-main">
+ <span class="r-b-t-left">使用方</span>
+ <span class="r-b-t-right">{{ deptname }}</span>
</div>
<div class="r-b-t-main">
<span class="r-b-t-left">设备联系人</span>
@@ -185,12 +202,12 @@
<!-- <div class="r-b-t-main">
<span class="r-b-t-left">设备标签</span>
<span class="r-b-t-right">
- <div
- class="r-b-t-r-label"
- v-for="(value,index) in labels"
+ <div
+ class="r-b-t-r-label"
+ v-for="(value,index) in labels"
:key="index"
>
- {{value}}
+ {{value}}
</div>
</span>
</div> -->
@@ -199,8 +216,9 @@
<span class="r-b-t-left" style="position: relative; top: -27px">部署图片</span>
<span class="r-b-t-right">
<div class="r-b-t-r-imgsl" v-for="(value, index) in imgsl" :key="index">
- <el-image style="width: 68px; height: 68px" :src="value" :preview-src-list="imgsl"
- v-show="value != 'no'">
+ <!-- <el-image style="width: 68px; height: 68px" :src="value" :preview-src-list="imgsl"
+ v-show="value != 'no'"> -->
+ <el-image style="width: 68px; height: 68px" :src="value" v-show="value != 'no'">
</el-image>
<div v-show="value == 'no'" style="
width: 68px;
@@ -219,6 +237,10 @@
</div>
</div>
</el-tab-pane>
+ <el-tab-pane label="现场视频" name="second">
+ <video style="height: auto;width: 100%;" controls="controls" id="real_video_conversation" src="">
+ </video>
+ </el-tab-pane>
<!-- <el-tab-pane label="other" name="second">other</el-tab-pane> -->
</el-tabs>
</div>
@@ -229,16 +251,20 @@
</script>
<script>
+
var me = new Vue({
el: '#appliutwo',
data: {
num: '',
name: '',
statesss: '',
+ // start:false,
//详细信息data
ourData: '',
// names: '',
contacts: '',
+ deptname: '',//使用方
+ ourd: '',//视频data
calls: '',
imgsl: [],
deploymentTime: '',
@@ -251,7 +277,7 @@
},
methods: {
looks() {
- window.parent.parent.location.hash = `#/dataL/dataL?id=${this.ourData.id}&deviceName=${this.ourData.deviceName}&deviceNumber=${this.ourData.deviceNumber}&deviceType=${this.ourData.deviceType}&ownership=${this.ourData.ownership}&ownerId=&devicestate=${this.ourData.devicestate}&stime=${this.ourData.stime}&parentId=${this.ourData.parentId}&jd=${this.ourData.jd}&wd=${this.ourData.wd}&street=${this.ourData.street}&dtype=${this.ourData.dtype}&serialNumber=${this.ourData.serialNumber}&stype=&channelNumber=${this.ourData.channelNumber}&pay=&expireTime=${this.ourData.expireTime}&heartbeat=${this.ourData.heartbeat}&province=${this.ourData.province}&city=${this.ourData.city}&district=${this.ourData.district}&state=&reason=&deptId=${this.ourData.deptId}&onePhone=${this.ourData.onePhone}&twoPhone=${this.ourData.twoPhone}&oneId=${this.ourData.oneId}&twoId=&threeId=&oneContacts=${this.ourData.oneContacts}&twoContacts=${this.ourData.twoContacts}&type=${this.ourData.type}&beginTime=&endTime=&pid=${this.ourData.pid}&onlineStatus=${this.ourData.onlineStatus}&jtype=${this.ourData.jtype}&threePhone=${this.ourData.threePhone}&threeContacts=${this.ourData.threeContacts}`;
+ window.parent.parent.location.hash = `#/dataL/dataL?id=${this.ourData.id}&deviceName=${this.ourData.deviceName}&deviceNumber=${this.ourData.deviceNumber}&deviceType=${this.ourData.deviceType}&ownership=${this.ourData.ownership}&ownerId=&devicestate=${this.ourData.devicestate}&stime=${this.ourData.stime}&parentId=${this.ourData.parentId}&jd=${this.ourData.jd}&wd=${this.ourData.wd}&street=${this.ourData.street}&dtype=${this.ourData.dtype}&serialNumber=${this.ourData.serialNumber}&stype=&channelNumber=${this.ourData.channelNumber}&pay=&expireTime=${this.ourData.expireTime}&heartbeat=${this.ourData.heartbeat}&province=${this.ourData.province}&city=${this.ourData.city}&district=${this.ourData.district}&state=${this.ourData.state}&reason=&deptId=${this.ourData.deptId}&onePhone=${this.ourData.onePhone}&twoPhone=${this.ourData.twoPhone}&oneId=${this.ourData.oneId}&twoId=&threeId=&oneContacts=${this.ourData.oneContacts}&twoContacts=${this.ourData.twoContacts}&type=${this.ourData.type}&beginTime=&endTime=&pid=${this.ourData.pid}&onlineStatus=${this.ourData.onlineStatus}&jtype=${this.ourData.jtype}&threePhone=${this.ourData.threePhone}&threeContacts=${this.ourData.threeContacts}`;
},
getdatas(dat) {
@@ -271,17 +297,20 @@
if (xhr.status === 200) {
// 判断isJson是否传进来了
var imgD = JSON.parse(xhr.responseText);// JSON转js
- console.log(imgD)
-
+ // console.log(imgD)
var imgdatas = [];
if (imgD.data.length != 0) {
- imgdatas = imgD.data[0].paddress.split(',');
+ if (imgD.data[0].paddress.length != 0) {
+ imgdatas = imgD.data[0].paddress.split(',');
+ } else {
+ my.imgsl = imgdatas.length == 0 ? ['no'] : imgdatas;
+ }
} else {
}
// var imgdatas = imgD.data[0].paddress.split(',');
my.imgsl = imgdatas.length == 0 ? ['no'] : imgdatas;
- // my.imgsl = [ //最多3张照片
+ // my.imgsl = [ //最多3张照片
// "https://resource-city.sensoro.com/B8D675A3C4F71C5C8DE2FD764881BE57",
// "https://resource-city.sensoro.com/1723C1A66DB44F792564F3648E5AA1EE",
@@ -308,39 +337,214 @@
var ct = document.getElementsByClassName('flare-liu-top')[0];
var cordActive = document.getElementsByClassName('el-tabs__active-bar')[0];//滑块背景颜色
- if (dat.state != '') {
+ // if (dat.state != '') {
+ // ct.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
+ // cordActive.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
+ // this.statesss = '故障';
+ // } else {
+ // if (dat.jtype != 1) {
+ // if (dat.onlineStatus == 1) {//el-tabs__active-bar
+ // ct.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ // cordActive.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ // this.statesss = '在线';
+ // } else {
+ // ct.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ // cordActive.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ // this.statesss = '离线';
+ // }
+ // } else {
+ // ct.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ // cordActive.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ // this.statesss = '警报';
+ // }
+ // }
+ if (dat.dtype == 3) {
ct.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
cordActive.style.backgroundImage = 'linear-gradient(to right, #F49966 , #F49966';
this.statesss = '故障';
- } else {
- if (dat.jtype != 1) {
- if (dat.onlineStatus == 1) {//el-tabs__active-bar
- ct.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
- cordActive.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
- this.statesss = '在线';
- } else {
- ct.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
- cordActive.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
- this.statesss = '离线';
- }
- } else {
- ct.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
- cordActive.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
- this.statesss = '警报';
- }
+ } else if (dat.dtype == 1) {//el-tabs__active-bar
+ ct.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #32C1A2 , #32C1A2';
+ this.statesss = '正常';
+ } else if (dat.dtype == 0) {
+ ct.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #CDCDCD , #CDCDCD';
+ this.statesss = '离线';
+
+ } else if (dat.dtype == 2) {
+ ct.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ cordActive.style.backgroundImage = 'linear-gradient(to right, #F35B5B , #F35B5B';
+ this.statesss = '预警';
}
+
+
+ },
+ getUser(dat) {
+ var xhr = null
+ , my = this
+ , url = '/api/blade-jfpts/equipment/equipment/detail?id=' + dat;
+ // if (XMLHttpRequest) { //http请求
+ // xhr = new XMLHttpRequest();
+ // } else {
+ // xhr = new ActiveXObject("Microsoft.XMLHTTP");
+
+ // }
+ // xhr.open("get", url, true);
+ // xhr.send();
+ // xhr.onreadystatechange = function () {
+ // if (xhr.readyState === 4) {
+ // if (xhr.status === 200) {
+ // // 判断isJson是否传进来了
+ // var data = JSON.parse(xhr.responseText);// JSON转js
+ // my.ourd = data.data;
+ // my.deptname = my.ourd.deptName;
+ // }
+ // }
+ // }
+ axios.get(url).then((res) => {
+ console.log(typeof res,34234534345341)
+ var data = res;// JSON转js
+ my.ourd = data.data.data;
+ my.deptname = my.ourd.deptName;
+ })
+
},
handleClick(tab, event) {//标签tab点击事件
// console.log(tab, event);
+ },
+ openRealVideoBox(serialNumber, channelNumber) {
+ var that = this;
+ var newAxios = axios.create({
+ baseURL: "https://web.byisf.com:18000",
+ withCredentials: false,
+ headers: {
+ "Content-type": "application/x-www-form-urlencoded",
+ },
+ });
+
+
+ if (that.ourd.manufacturers == "HK") {
+
+ axios({
+ method: "get",
+ url: `/api/blade-jfpts/equipment/equipment/selectEquimentPlayInfo?`,
+ params: {
+ number: that.ourd.deviceNumber,
+ },
+ }).then((res) => {
+ that.videoSource = res.data.data.data.url;
+ if (Hls.isSupported()) {
+ var dom = document.getElementById("real_video_conversation");
+ that.hls = new Hls();
+ var m3u8Url = decodeURIComponent(that.videoSource);
+ that.hls.loadSource(m3u8Url);
+ that.hls.attachMedia(dom);
+ that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
+ dom.play();
+ });
+ that.hls.on(Hls.Events.ERROR, function (event, data) {
+ // console.log(data, 4566824159, "视频播放有问题!!!");
+ if (data.fatal) {
+ switch (data.type) {
+ case Hls.ErrorTypes.NETWORK_ERROR:
+ // try to recover network error
+ console.log(
+ "fatal network error encountered, try to recover"
+ );
+ that.hls.startLoad();
+ break;
+ case Hls.ErrorTypes.MEDIA_ERROR:
+ console.log(
+ "fatal media error encountered, try to recover"
+ );
+ that.hls.recoverMediaError();
+ break;
+ }
+ }
+ })
+ }
+ });
+
+
+ }else{
+ //this.form.serialNumber
+ newAxios
+ .post(
+ "/api_control",
+ {},
+ {
+ params: {
+ param: JSON.stringify({ PktType: "GetAccessToken" }),
+ },
+ }
+ )
+ .then((res) => {
+ newAxios
+ .get(
+ `https://web.byisf.com:18000/GetPlayUrl?deviceCode=${serialNumber}&chl=${channelNumber}`
+ )
+ .then((result) => {
+ that.videoSource = result.data.data.m3u8;
+ if (Hls.isSupported()) {
+ var dom = document.getElementById("real_video_conversation");
+ that.hls = new Hls();
+ var m3u8Url = decodeURIComponent(that.videoSource);
+ that.hls.loadSource(m3u8Url);
+ that.hls.attachMedia(dom);
+ that.hls.on(Hls.Events.MANIFEST_PARSED, function () {
+ dom.play();
+ });
+ that.hls.on(Hls.Events.ERROR, function (event, data) {
+ // console.log(data, 4566824159, "视频播放有问题!!!");
+ if (data.fatal) {
+ switch (data.type) {
+ case Hls.ErrorTypes.NETWORK_ERROR:
+ // try to recover network error
+ console.log(
+ "fatal network error encountered, try to recover"
+ );
+ that.hls.startLoad();
+ break;
+ case Hls.ErrorTypes.MEDIA_ERROR:
+ console.log(
+ "fatal media error encountered, try to recover"
+ );
+ that.hls.recoverMediaError();
+ break;
+ }
+ }
+ })
+ }
+ })
+ })
+ }
+
}
+ },
+ watch: {
+ activeName() {
+ if (this.activeName == "second") {
+ this.i++;
+ this.openRealVideoBox(this.ourd.serialNumber, this.ourd.channelNumber);
+ } else {
+ var dom = document.getElementById("real_video_conversation");
+ if (dom.getAttribute("src") != "") {
+ dom.pause();
+ dom.setAttribute("src", "");
+ this.hls.destroy();
+ }
+ }
+ },
},
mounted() {
this.oldtime = setTimeout(() => {//需要同步数据处理,input中value在mounted中没有直接传值
clearTimeout(this.oldtime);
+ // console.log(this.$refs.sidIput.value)
this.ourData = JSON.parse(this.$refs.sidIput.value);//json对象转js对象
+ this.getUser(this.ourData.id);
// console.log(this.ourData);
this.getdatas(this.ourData);
- }, 20);
+ }, 50);
}
@@ -348,4 +552,4 @@
</script>
</body>
-</html>
\ No newline at end of file
+</html>
--
Gitblit v1.9.3