flx:修改
This commit is contained in:
parent
dfe3ebd372
commit
6365cf4e1c
@ -209,7 +209,7 @@ if (process.env.NODE_ENV == "development") {
|
||||
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:9500";
|
||||
// axios.defaults.baseURL = "http://jxj.zhgdyun.com:21000"; // 潮州
|
||||
// axios.defaults.baseURL = "http://gszhdz.crpower.com.cn:9809/"; // 敦煌
|
||||
axios.defaults.baseURL = "https://gszhdz.crpower.com.cn:9807/"; // 敦煌
|
||||
// axios.defaults.baseURL = "https://gszhdz.crpower.com.cn:9807/"; // 敦煌
|
||||
} else if (process.env.NODE_ENV == "debug") {
|
||||
axios.defaults.baseURL = "https://www.ceshi.com";
|
||||
} else if (process.env.NODE_ENV == "production") {
|
||||
|
||||
@ -64,10 +64,11 @@
|
||||
import { getVideoItemInfoPoliceCameraItemApi } from "@/assets/js/api/workTicketManage";
|
||||
import moment from "moment";
|
||||
import dayjs from "dayjs";
|
||||
import { reactive, watch, onMounted, computed, onBeforeUnmount } from "vue";
|
||||
import { reactive, watch, onMounted, computed, onBeforeUnmount, nextTick, defineAsyncComponent } from "vue";
|
||||
import { Message } from "element-ui";
|
||||
import loadingGif from "@/assets/images/iscImage/loading.gif";
|
||||
import errorPng from "@/assets/images/iscImage/text-to-image.png";
|
||||
const H5Player = require('/public/bin/h5player.min.js');
|
||||
const props = defineProps({
|
||||
devList: {
|
||||
type: Array,
|
||||
@ -75,7 +76,7 @@ const props = defineProps({
|
||||
},
|
||||
playerId: {
|
||||
type: String,
|
||||
default: () => "player-" + Math.random().toString(36).substr(2, 9),
|
||||
default: () => Math.random().toString(36).substr(2, 9),
|
||||
},
|
||||
});
|
||||
const emit = defineEmits(["selectPlayVideo"]);
|
||||
@ -275,7 +276,7 @@ const capture = (imageType, currentWindowIndex) => {
|
||||
* 初始化播放器
|
||||
*/
|
||||
const initPlayer = () => {
|
||||
videoInfo.player = new JSPlugin({
|
||||
videoInfo.player = new H5Player.JSPlugin({
|
||||
// 需要英文字母开头 必填
|
||||
szId: "player-" + props.playerId, // 使用唯一ID
|
||||
// 必填,引用H5player.min.js的js相对路径
|
||||
@ -319,7 +320,11 @@ const initPlayer = () => {
|
||||
console.log("recv talkPluginErrorHandler: " + iErrorCode);
|
||||
},
|
||||
});
|
||||
play(videoInfo.devH5List[0], videoInfo.iWndIndex);
|
||||
nextTick(() => {
|
||||
console.log("initPlayer nextTick", videoInfo.player);
|
||||
|
||||
play(videoInfo.devH5List[0], videoInfo.iWndIndex);
|
||||
})
|
||||
};
|
||||
|
||||
/**
|
||||
@ -343,7 +348,7 @@ const getPreviewUrl = (row) => {
|
||||
* 播放
|
||||
*/
|
||||
const play = (row, index) => {
|
||||
stopPlay(index + 1, "delete");
|
||||
// stopPlay(index + 1, "delete");
|
||||
getPreviewUrl({
|
||||
...row,
|
||||
}).then((res) => {
|
||||
@ -385,6 +390,16 @@ const play = (row, index) => {
|
||||
index = 0;
|
||||
}
|
||||
console.log("播放地址", preUrl, index);
|
||||
videoInfo.player.JS_SetConnectTimeOut(index, 15).then(
|
||||
() => {
|
||||
console.info("JS_SetConnectTimeOut success");
|
||||
// do you want...
|
||||
},
|
||||
(err) => {
|
||||
console.info("JS_SetConnectTimeOut failed", err);
|
||||
// do you want...
|
||||
}
|
||||
);
|
||||
videoInfo.player.JS_Play(preUrl, param, index).then(
|
||||
() => {
|
||||
const findIndex = Array.from(d1.childNodes).findIndex(
|
||||
@ -411,16 +426,6 @@ const play = (row, index) => {
|
||||
im.style.marginTop = positionNum + "px";
|
||||
}
|
||||
);
|
||||
videoInfo.player.JS_SetConnectTimeOut(index, 60).then(
|
||||
() => {
|
||||
console.info("JS_SetConnectTimeOut success");
|
||||
// do you want...
|
||||
},
|
||||
(err) => {
|
||||
console.info("JS_SetConnectTimeOut failed", err);
|
||||
// do you want...
|
||||
}
|
||||
);
|
||||
});
|
||||
};
|
||||
/**
|
||||
@ -555,6 +560,7 @@ onBeforeUnmount(() => {
|
||||
<style lang="scss" scoped>
|
||||
:deep(.sub-wnd) {
|
||||
height: 100% !important;
|
||||
// width: 100% !important;
|
||||
}
|
||||
.bgImage {
|
||||
width: 18px;
|
||||
|
||||
@ -0,0 +1,148 @@
|
||||
<template>
|
||||
<div id="playWnd"></div>
|
||||
</template>
|
||||
<script>
|
||||
let closeVideo = null;
|
||||
import {
|
||||
OpenVideo,
|
||||
unInitObjPlugin,
|
||||
InitObjPlugin,
|
||||
hidePluginWindow,
|
||||
showPluginWindow,
|
||||
resizeFn,
|
||||
isLoadPlugin,
|
||||
setWidthAndHeight,
|
||||
setOffset,
|
||||
} from "./video_isc_plugin.js";
|
||||
import { getVideoItemInfoPoliceCameraItemApi } from "@/assets/js/api/workTicketManage";
|
||||
export default {
|
||||
props: ["devList", "type", "isIframe"],
|
||||
watch: {
|
||||
//监听value的变化,进行相应的操作即可
|
||||
devList: function (a, b) {
|
||||
console.log("isc_plugin.vue获取到设备列表");
|
||||
//a是value的新值,b是旧值
|
||||
if (a.length > 0) {
|
||||
isLoadPlugin(a, this.layout);
|
||||
} else {
|
||||
// unInitObjPlugin()
|
||||
}
|
||||
|
||||
// a.forEach(element => {
|
||||
// setTimeout(()=>{
|
||||
// OpenVideo(element.serialNumber,1)
|
||||
// },500)
|
||||
|
||||
// });
|
||||
},
|
||||
isExpand: {
|
||||
immediate: true,
|
||||
handler: function (newval) {
|
||||
console.log("resizeFn");
|
||||
resizeFn();
|
||||
},
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
isExpand() {
|
||||
return this.$store.state.isExpand;
|
||||
},
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
layout: "",
|
||||
};
|
||||
},
|
||||
created() {
|
||||
if (COMPANY == "xingxuan") {
|
||||
setWidthAndHeight(633, 381);
|
||||
}
|
||||
|
||||
this.$EventBus.$on("controlVideoShowOrHide", (data) => {
|
||||
console.log("controlVideoShowOrHide", data);
|
||||
if (data == "hide") {
|
||||
hidePluginWindow();
|
||||
} else {
|
||||
showPluginWindow();
|
||||
}
|
||||
});
|
||||
},
|
||||
mounted() {
|
||||
// if (COMPANY == 'xingxuan') {
|
||||
// closeVideo= setInterval(()=>{
|
||||
// window.onhashchange = function () {
|
||||
// hidePluginWindow();
|
||||
// clearTimeout(closeVideo);
|
||||
// };
|
||||
// },1000)
|
||||
// }
|
||||
|
||||
var layout = "2x2";
|
||||
if (this.type == "company") {
|
||||
// layout='6x10'
|
||||
layout = "4x6";
|
||||
}
|
||||
if (this.type.indexOf("x") != -1) {
|
||||
layout = this.type;
|
||||
}
|
||||
this.layout = layout;
|
||||
console.log("加载isc_plugin.vue");
|
||||
// console.log(this.type)
|
||||
// console.log('layout',layout)
|
||||
// InitObjPlugin(
|
||||
// this.devList[0].appId,
|
||||
// this.devList[0].appSecret,
|
||||
// this.devList[0].account,
|
||||
// this.devList[0].password,
|
||||
// false,
|
||||
// this.devList,layout
|
||||
// );
|
||||
if (this.devList.length > 0) {
|
||||
this.devList.forEach(element => {
|
||||
this.play(element);
|
||||
});
|
||||
}
|
||||
},
|
||||
beforeDestroy() {
|
||||
//反初始化
|
||||
unInitObjPlugin();
|
||||
},
|
||||
methods: {
|
||||
getPreviewUrl(row) {
|
||||
let tempCode = row.monitoringNumber;
|
||||
const param = {
|
||||
cameraIndexCode: tempCode,
|
||||
// streamType: row.defaultStreamType == 2 ? 0 : row.defaultStreamType,
|
||||
type: window.location.protocol.includes("https") ? "wss" : "ws",
|
||||
transmode: 1,
|
||||
itemId: row.itemId,
|
||||
projectSn: row.projectSn,
|
||||
};
|
||||
// 这里
|
||||
return getVideoItemInfoPoliceCameraItemApi(param);
|
||||
},
|
||||
play(row) {
|
||||
this.getPreviewUrl({
|
||||
...row,
|
||||
}).then((res) => {
|
||||
if (res.code !== 200 && !res.result.videoInfo) {
|
||||
Message.warning("获取视频流失败!");
|
||||
return;
|
||||
}
|
||||
isLoadPlugin([{
|
||||
...row,
|
||||
...res.result.videoInfo,
|
||||
...res.result.config,
|
||||
}], this.layout);
|
||||
});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
#playWnd {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
</style>
|
||||
31
src/views/companyAdmin/companyBigScreen/terminalOperation/components/jsWebControl-1.0.0.min.js
vendored
Normal file
31
src/views/companyAdmin/companyBigScreen/terminalOperation/components/jsWebControl-1.0.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
src/views/companyAdmin/companyBigScreen/terminalOperation/components/jsencrypt.min.js
vendored
Normal file
1
src/views/companyAdmin/companyBigScreen/terminalOperation/components/jsencrypt.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
@ -0,0 +1,509 @@
|
||||
import './jsencrypt.min.js'
|
||||
// import {
|
||||
// WebControl
|
||||
// } from './jsWebControl-1.0.0.min.js'
|
||||
|
||||
var isChrome = navigator.userAgent.indexOf('Chrome') > -1 // 是否是谷歌
|
||||
|
||||
if (isChrome) {
|
||||
// let WebControl = null
|
||||
var aa = () => import('./jsWebControl-1.0.0.min.js')
|
||||
aa().then(res => {
|
||||
console.log(res)
|
||||
WebControl = res.WebControl
|
||||
})
|
||||
}
|
||||
console.log('谷歌' + isChrome)
|
||||
var oWebControl = null;
|
||||
var pubKey = '';
|
||||
var initCount = 0;
|
||||
var a, b, c, d, types, layouts;
|
||||
var width, height;
|
||||
// var _thiss;
|
||||
// 获取公钥
|
||||
// function getPubKey(callback) {
|
||||
// oWebControl.JS_RequestInterface({
|
||||
// funcName: "getRSAPubKey",
|
||||
// argument: JSON.stringify({
|
||||
// keyLength: 1024
|
||||
// })
|
||||
// }).then(function (oData) {
|
||||
// console.log(oData)
|
||||
// if (oData.responseMsg.data) {
|
||||
// pubKey = oData.responseMsg.data
|
||||
// callback()
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
// RSA加密
|
||||
function setEncrypt(value) {
|
||||
var encrypt = new JSEncrypt();
|
||||
encrypt.setPublicKey(pubKey);
|
||||
return encrypt.encrypt(value);
|
||||
}
|
||||
// 反初始化
|
||||
export function unInitObjPlugin() {
|
||||
console.log('调用unInitObjPlugin', '5555555');
|
||||
//
|
||||
if (!oWebControl) {
|
||||
return false;
|
||||
}
|
||||
oWebControl.JS_RequestInterface({
|
||||
funcName: "destroyWnd"
|
||||
}).then(function (oData) {
|
||||
console.log(JSON.stringify(oData ? oData.responseMsg : ''));
|
||||
console.log('销毁失败');
|
||||
});
|
||||
//
|
||||
var bIE = (!!window.ActiveXObject || 'ActiveXObject' in window); // 是否为IE浏览器
|
||||
if (bIE) {
|
||||
if (oWebControl != null) {
|
||||
oWebControl.JS_Disconnect().then(function () {
|
||||
console.log("JS_Disconnect");
|
||||
}, function () { });
|
||||
}
|
||||
} else {
|
||||
if (oWebControl != null) {
|
||||
oWebControl.JS_DestroyWnd().then(function () {
|
||||
console.log("JS_DestroyWnd");
|
||||
}, function () { });
|
||||
oWebControl.JS_StopService("window").then(function () {
|
||||
oWebControl.JS_Disconnect().then(function () {
|
||||
console.log("JS_Disconnect");
|
||||
}, function () { });
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
//预览视频
|
||||
export function OpenVideo(cameraIndexCode, streamMode, winIndex) {
|
||||
var transMode = +'1'; //传输协议:1、TCP 0、UDP
|
||||
var gpuMode = +'0'; //是否启用GPU硬解:1、启用 0、不启用
|
||||
console.log(8855544, streamMode)
|
||||
oWebControl.JS_RequestInterface({
|
||||
funcName: "startPreview",
|
||||
argument: JSON.stringify({
|
||||
cameraIndexCode: cameraIndexCode,
|
||||
streamMode: streamMode == 2 ? 0 : streamMode, // 码流类型 0 主码流 1 子码流 (2 主码流 1 子码流)
|
||||
transMode: transMode,
|
||||
gpuMode: gpuMode,
|
||||
wndId: -1,
|
||||
})
|
||||
}).then(function (oData) {
|
||||
console.log(oData.responseMsg.code === 336)
|
||||
console.log(JSON.stringify(oData ? oData.responseMsg : ''));
|
||||
|
||||
// if(oData.responseMsg.code === 336){
|
||||
// return
|
||||
// }
|
||||
console.log('预览视频失败');
|
||||
});
|
||||
}
|
||||
// 设置窗口控制回调
|
||||
function setCallbacks() {
|
||||
oWebControl.JS_SetWindowControlCallback({
|
||||
cbIntegrationCallBack: cbIntegrationCallBack
|
||||
});
|
||||
}
|
||||
|
||||
// 页面缩放比例
|
||||
function getRatio() {
|
||||
let bodyWidth = document.body.clientWidth
|
||||
// console.log(window.screen.width)
|
||||
let bodyHeight = document.body.clientHeight
|
||||
let scaleWidthNum = bodyWidth / 1920
|
||||
let scaleHeightNum = bodyHeight / 1080
|
||||
|
||||
let ratio;
|
||||
if (scaleWidthNum > scaleHeightNum) {
|
||||
ratio = scaleHeightNum
|
||||
} else {
|
||||
ratio = scaleWidthNum
|
||||
}
|
||||
return ratio;
|
||||
}
|
||||
|
||||
// 初始化
|
||||
export function InitObjPlugin(appkey, secret, ip, port, type, videoData, layout) {
|
||||
console.log(videoData)
|
||||
a = appkey
|
||||
b = secret
|
||||
c = ip
|
||||
d = port
|
||||
types = type
|
||||
layouts = layout
|
||||
//
|
||||
oWebControl = new WebControl({
|
||||
szPluginContainer: "playWnd", //指定容器id
|
||||
iServicePortStart: 15900,
|
||||
iServicePortEnd: 15909,
|
||||
szClassId: "23BF3B0A-2C56-4D97-9C03-0CB103AA8F11",
|
||||
cbConnectSuccess: function () {
|
||||
setCallbacks();
|
||||
oWebControl.JS_StartService("window", {
|
||||
dllPath: "./VideoPluginConnect.dll"
|
||||
//dllPath: "./DllForTest-Win32.dll"
|
||||
}).then(function () {
|
||||
// if (type) {
|
||||
// var a = document.getElementById('videoBoxContainer')
|
||||
// width = a.offsetWidth - 10
|
||||
// height = a.offsetHeight - 60
|
||||
// } else {
|
||||
// console.log(document.getElementById('videoOverview').offsetWidth,document.getElementById('videoOverview').offsetHeight)
|
||||
var bottomHeight = 0
|
||||
// if(window.location.href.indexOf('/project/')!=-1){
|
||||
// bottomHeight = 60
|
||||
// }
|
||||
width = document.getElementById('videoOverview').offsetWidth
|
||||
height = document.getElementById('videoOverview').offsetHeight - bottomHeight
|
||||
let ratio = 1
|
||||
// console.log(JSON.parse(localStorage.getItem('systemInfo')).zoomType)
|
||||
if (enabledProjectV2 != 1) {
|
||||
if (localStorage.getItem('systemInfo') && JSON.parse(localStorage.getItem('systemInfo')).zoomType != 1) {
|
||||
ratio = getRatio()
|
||||
}
|
||||
}
|
||||
console.log(ratio)
|
||||
width = width * ratio
|
||||
height = height * ratio
|
||||
// width = 500
|
||||
// height = 500
|
||||
// console.dir(document.getElementById('videoOverview'))
|
||||
console.log(width, height)
|
||||
// }
|
||||
window.$timeId = null;
|
||||
if (window.localStorage.getItem('isIframe')) {
|
||||
if (window.localStorage.getItem('isIframe') == '1') {
|
||||
// width = 796
|
||||
// height = 672
|
||||
width = width * 0.66
|
||||
height = height * 0.98
|
||||
}
|
||||
console.log(window.localStorage.getItem('isIframe'))
|
||||
}
|
||||
// 0.766667
|
||||
console.log(12)
|
||||
window.onresize = function () {
|
||||
width = document.getElementById('videoOverview').offsetWidth
|
||||
height = document.getElementById('videoOverview').offsetHeight - bottomHeight
|
||||
let ratio = 1
|
||||
// if(enabledProjectV2!=1){
|
||||
// ratio = getRatio()
|
||||
// }
|
||||
width = width * ratio
|
||||
height = height * ratio
|
||||
clearTimeout(window.$timeId);
|
||||
window.$timeId = setTimeout(() => {
|
||||
var a = document.getElementById('videoBoxContainer') || document.querySelector('.videocBox')
|
||||
if (a) {
|
||||
width = a.offsetWidth
|
||||
height = a.offsetHeight - 80
|
||||
}
|
||||
if (oWebControl != null) {
|
||||
oWebControl.JS_Resize(width, height);
|
||||
// setWndCover();
|
||||
}
|
||||
}, 10);
|
||||
}
|
||||
oWebControl.JS_CreateWnd("playWnd", width, height, {
|
||||
bEmbed: false,
|
||||
cbSetDocTitle: function (uuid) {
|
||||
oWebControl._pendBg = false;
|
||||
window.parent.postMessage({
|
||||
action: 'updateTitle',
|
||||
msg: '子页面通知父页面修改title',
|
||||
info: uuid
|
||||
}, '\*'); // '\*'表示跨域参数,请结合自身业务合理设置
|
||||
}
|
||||
}).then(function () {
|
||||
console.log("JS_CreateWnd success");
|
||||
// ;
|
||||
|
||||
init(videoData)
|
||||
});
|
||||
}, function () {
|
||||
|
||||
});
|
||||
},
|
||||
cbConnectError: function () {
|
||||
console.log("cbConnectError");
|
||||
oWebControl = null;
|
||||
console.log("插件未启动,正在尝试启动,请稍候...");
|
||||
WebControl.JS_WakeUp("VideoWebPlugin://");
|
||||
initCount++;
|
||||
console.log(initCount)
|
||||
if (initCount < 3) {
|
||||
setTimeout(function () {
|
||||
InitObjPlugin(a, b, c, d, types);
|
||||
}, 3000)
|
||||
} else {
|
||||
console.log("插件启动失败,请检查插件是否安装!");
|
||||
if (confirm("检测到视频插件未安装,是否下载视频插件?")) {
|
||||
// window.location.href = "http://139.159.136.114:8081/itbgp/file/b092b773-ca5a-479d-b5bc-1ed84d46e762.exe"
|
||||
// window.location.href = "/video/VideoWebPlugin.exe"
|
||||
window.location.href = "http://101.43.164.214:11111/image/VideoWebPlugin.rar"
|
||||
// window.location.href = "https://jk.cscec1b1.com:5138/image/VideoWebPlugin.exe"
|
||||
}
|
||||
// _thiss.$confirm('检测到视频插件未安装,是否下载视频插件?', '提示', {
|
||||
// confirmButtonText: '确定',
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
// window.location.href="http://139.217.224.209:8080/itbgp/file/VideoWebPlugin.exe"
|
||||
// }).catch(() => {
|
||||
// _thiss.$message({
|
||||
// type: 'info',
|
||||
// message: '已取消下载'
|
||||
// });
|
||||
// });
|
||||
}
|
||||
},
|
||||
cbConnectClose: function () {
|
||||
console.log("cbConnectClose");
|
||||
oWebControl = null;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
//初始化
|
||||
function init(videoData) {
|
||||
console.log(222222222222, videoData)
|
||||
getPubKey(function () {
|
||||
////////////////////////////////// 请自行修改以下变量值 ////////////////////////////////////
|
||||
// var appkey = "20880397"; //综合安防管理平台提供的appkey,必填
|
||||
// var secret = setEncrypt("WhyICfLp0NAalGjRa8Hx"); //综合安防管理平台提供的secret,必填
|
||||
|
||||
var appkey = a; //综合安防管理平台提供的appkey,必填
|
||||
var secret = setEncrypt(b); //综合安防管理平台提供的secret,必填
|
||||
var ip = c; //综合安防管理平台IP地址,必填
|
||||
var playMode = 0; //初始播放模式:0-预览,1-回放
|
||||
var port = parseInt(d); //综合安防管理平台端口,若启用HTTPS协议,默认443
|
||||
var snapDir = "D:\\SnapDir"; //抓图存储路径
|
||||
var videoDir = "D:\\VideoDir"; //紧急录像或录像剪辑存储路径
|
||||
var layout = layouts; //playMode指定模式的布局
|
||||
// var layout = "2x2"; //playMode指定模式的布局
|
||||
var enableHTTPS = 1; //是否启用HTTPS协议与综合安防管理平台交互,是为1,否为0
|
||||
var encryptedFields = 'secret'; //加密字段,默认加密领域为secret
|
||||
var showToolbar = 1; //是否显示工具栏,0-不显示,非0-显示
|
||||
var showSmart = 1; //是否显示智能信息(如配置移动侦测后画面上的线框),0-不显示,非0-显示
|
||||
var buttonIDs = "0,16,256,257,258,259,260,512,513,514,515,516,517,768,769"; //自定义工具条按钮
|
||||
////////////////////////////////// 请自行修改以上变量值 ////////////////////////////////////
|
||||
oWebControl.JS_RequestInterface({
|
||||
funcName: "init",
|
||||
argument: JSON.stringify({
|
||||
appkey: appkey, //API网关提供的appkey
|
||||
secret: secret, //API网关提供的secret
|
||||
ip: ip, //API网关IP地址
|
||||
playMode: playMode, //播放模式(决定显示预览还是回放界面)
|
||||
port: port, //端口
|
||||
snapDir: snapDir, //抓图存储路径
|
||||
videoDir: videoDir, //紧急录像或录像剪辑存储路径
|
||||
layout: layout, //布局
|
||||
enableHTTPS: enableHTTPS, //是否启用HTTPS协议
|
||||
encryptedFields: encryptedFields, //加密字段
|
||||
showToolbar: showToolbar, //是否显示工具栏
|
||||
showSmart: showSmart, //是否显示智能信息
|
||||
buttonIDs: buttonIDs //自定义工具条按钮
|
||||
})
|
||||
}).then(function (oData) {
|
||||
console.log(width, height, oWebControl)
|
||||
console.log('COMPANY++++++++++++++',COMPANY)
|
||||
console.log(window.localStorage.getItem('isIframe'))
|
||||
|
||||
if (COMPANY=='xingxuan') {
|
||||
oWebControl.oDocOffset.top = 94;
|
||||
oWebControl.oDocOffset.left = 280;
|
||||
}
|
||||
|
||||
|
||||
oWebControl.JS_Resize(width, height);
|
||||
// console.log('OpenVideo')
|
||||
for (let i = 0; i < videoData.length; i++) {
|
||||
if (i < 24 && videoData.length >= i) {
|
||||
// setTimeout(()=>{
|
||||
OpenVideo(videoData[i].serialNumber, videoData[i].defaultStreamType, i + 1)
|
||||
// },1000)
|
||||
|
||||
}
|
||||
}
|
||||
// oWebControl.JS_Resize(1000, 600); // 初始化后resize一次,规避firefox下首次显示窗口后插件窗口未与DIV窗口重合问题
|
||||
});
|
||||
});
|
||||
}
|
||||
//判断有没有初始化插件
|
||||
export function isLoadPlugin(devList, layout) {
|
||||
console.log('isLoadPlugin', oWebControl, devList)
|
||||
if (oWebControl) {
|
||||
devList.forEach(element => {
|
||||
setTimeout(() => {
|
||||
OpenVideo(element.serialNumber,element.defaultStreamType)
|
||||
}, 500)
|
||||
|
||||
});
|
||||
} else {
|
||||
if(!devList[0]?.ip){
|
||||
InitObjPlugin(
|
||||
devList[0].appId,
|
||||
devList[0].appSecret,
|
||||
devList[0].ip,
|
||||
devList[0].port || devList[0].password,
|
||||
false,
|
||||
devList,
|
||||
layout
|
||||
);
|
||||
}else{
|
||||
InitObjPlugin(
|
||||
devList[0].appId,
|
||||
devList[0].appSecret,
|
||||
devList[0].ip,
|
||||
devList[0].port,
|
||||
false,
|
||||
devList,
|
||||
layout
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
// 推送消息
|
||||
function cbIntegrationCallBack(oData) {
|
||||
console.log(JSON.stringify(oData.responseMsg));
|
||||
}
|
||||
//获取公钥
|
||||
function getPubKey(callback) {
|
||||
oWebControl.JS_RequestInterface({
|
||||
funcName: "getRSAPubKey",
|
||||
argument: JSON.stringify({
|
||||
keyLength: 1024
|
||||
})
|
||||
}).then(function (oData) {
|
||||
console.log(oData);
|
||||
if (oData.responseMsg.data) {
|
||||
pubKey = oData.responseMsg.data;
|
||||
callback()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 滚动条scroll
|
||||
// window.onscroll = function () {
|
||||
// if (oWebControl != null) {
|
||||
// width = document.getElementById('videoOverview').offsetWidth
|
||||
// height = document.getElementById('videoOverview').offsetHeight - 0
|
||||
// oWebControl.JS_Resize(width, height);
|
||||
// // setWndCover();
|
||||
// }
|
||||
// }
|
||||
|
||||
// 监听滚动条 - 滚动摄像头列表会照成抖动(去除
|
||||
// window.addEventListener('scroll', () => {
|
||||
// // console.log('滚动条')
|
||||
// if(oWebControl != null){
|
||||
// width = document.getElementById('videoOverview').offsetWidth-20
|
||||
// height = document.getElementById('videoOverview').offsetHeight-18
|
||||
// oWebControl.JS_Resize(width, height );
|
||||
// }
|
||||
// },true);
|
||||
// 监听窗口
|
||||
// window.addEventListener('resize', () => {
|
||||
// console.log('窗口')
|
||||
// if(oWebControl != null){
|
||||
// width = document.getElementById('videoOverview').offsetWidth-38
|
||||
// height = document.getElementById('videoOverview').offsetHeight-20
|
||||
// oWebControl.JS_Resize(width, height );
|
||||
// }
|
||||
// },true);
|
||||
|
||||
//窗口关闭时销毁插件
|
||||
window.onunload = function () {
|
||||
if (oWebControl != null) {
|
||||
oWebControl.JS_HideWnd(); // 先让窗口隐藏,规避可能的插件窗口滞后于浏览器消失问题
|
||||
oWebControl.JS_Disconnect().then(function () { }, function () { });
|
||||
}
|
||||
}
|
||||
export function resizeFn(val) {
|
||||
if (oWebControl) {
|
||||
width = document.getElementById('videoOverview').offsetWidth
|
||||
height = document.getElementById('videoOverview').offsetHeight - 0
|
||||
if (val && val == 1) {
|
||||
oWebControl.JS_Resize(width / 2 + 20, height - 215);
|
||||
} else {
|
||||
oWebControl.JS_Resize(width, height);
|
||||
}
|
||||
|
||||
// setWndCover();
|
||||
}
|
||||
|
||||
}
|
||||
// 设置窗口遮挡
|
||||
function setWndCover() {
|
||||
console.log('setWndCover')
|
||||
var iWidth = document.body.clientWidth;
|
||||
var iHeight = document.body.clientHeight;
|
||||
var oDivRect = document.getElementById('playWnd').getBoundingClientRect();
|
||||
|
||||
var iCoverLeft = (oDivRect.left < 0) ? Math.abs(oDivRect.left) : 0;
|
||||
var iCoverTop = (oDivRect.top < 0) ? Math.abs(oDivRect.top) : 0;
|
||||
var iCoverRight = (oDivRect.right - iWidth > 0) ? Math.round(oDivRect.right - iWidth) : 0;
|
||||
var iCoverBottom = (oDivRect.bottom - iHeight > 0) ? Math.round(oDivRect.bottom - iHeight) : 0;
|
||||
|
||||
iCoverLeft = (iCoverLeft > width) ? width : iCoverLeft;
|
||||
iCoverTop = (iCoverTop > height) ? height : iCoverTop;
|
||||
iCoverRight = (iCoverRight > width) ? width : iCoverRight;
|
||||
iCoverBottom = (iCoverBottom > height) ? height : iCoverBottom;
|
||||
|
||||
if (iLastCoverLeft != iCoverLeft) {
|
||||
console.log("iCoverLeft: " + iCoverLeft);
|
||||
iLastCoverLeft = iCoverLeft;
|
||||
oWebControl.JS_SetWndCover("left", iCoverLeft);
|
||||
}
|
||||
if (iLastCoverTop != iCoverTop) {
|
||||
console.log("iCoverTop: " + iCoverTop);
|
||||
iLastCoverTop = iCoverTop;
|
||||
oWebControl.JS_SetWndCover("top", iCoverTop);
|
||||
}
|
||||
if (iLastCoverRight != iCoverRight) {
|
||||
console.log("iCoverRight: " + iCoverRight);
|
||||
iLastCoverRight = iCoverRight;
|
||||
oWebControl.JS_SetWndCover("right", iCoverRight);
|
||||
}
|
||||
if (iLastCoverBottom != iCoverBottom) {
|
||||
console.log("iCoverBottom: " + iCoverBottom);
|
||||
iLastCoverBottom = iCoverBottom;
|
||||
oWebControl.JS_SetWndCover("bottom", iCoverBottom);
|
||||
}
|
||||
}
|
||||
//隐藏插件窗口
|
||||
export function hidePluginWindow() {
|
||||
// console.log(123)
|
||||
// console.log('hidePluginWindow')
|
||||
oWebControl.JS_HideWnd()
|
||||
// oWebControl.JS_RequestInterface({
|
||||
// funcName: "hideWnd"
|
||||
// }).then(function(data){
|
||||
// console.log('hidePluginWindow',data)
|
||||
// })
|
||||
}
|
||||
//显示插件窗口
|
||||
export function showPluginWindow() {
|
||||
// console.log(112)
|
||||
// console.log('showPluginWindow')
|
||||
oWebControl.JS_ShowWnd()
|
||||
// oWebControl.JS_RequestInterface({
|
||||
// funcName: "showWnd"
|
||||
// }).then(function(data){
|
||||
// console.log('showPluginWindow',data)
|
||||
// })
|
||||
}
|
||||
export function setOffset(l, t) {
|
||||
WebControl.JS_SetDocOffset({
|
||||
left: l,
|
||||
top: t
|
||||
})
|
||||
console.log(l, t, "===============================")
|
||||
}
|
||||
|
||||
export function setWidthAndHeight(width, height) {
|
||||
oWebControl.JS_Resize(width, height);
|
||||
|
||||
}
|
||||
@ -288,8 +288,14 @@
|
||||
<IscPlayer
|
||||
:devList="[item]"
|
||||
:key="'player-' + item.itemId"
|
||||
:playerId="'player-' + item.itemId"
|
||||
:playerId="item.itemId"
|
||||
/>
|
||||
<!-- <div class="fullHeight videoOverview" id="videoOverview">
|
||||
<iscPlugin
|
||||
:devList="[item]"
|
||||
:type="'1x1'"
|
||||
></iscPlugin>
|
||||
</div> -->
|
||||
</div>
|
||||
<div
|
||||
class="hls-video_title"
|
||||
@ -308,7 +314,7 @@
|
||||
:current-page="policeCameraItemInfo.pageNo"
|
||||
:page-sizes="[6, Number(policeCameraItemInfo.total)]"
|
||||
:page-size="policeCameraItemInfo.pageSize"
|
||||
layout="total, sizes, prev, pager, next"
|
||||
layout="total, prev, pager, next"
|
||||
:total="Number(policeCameraItemInfo.total)"
|
||||
></el-pagination>
|
||||
<!-- <div class="content-right-bottom" v-if="!viewAllShow">
|
||||
@ -530,11 +536,13 @@
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { ref, onMounted, reactive, computed } from "vue";
|
||||
import { ref, onMounted, reactive, computed, defineAsyncComponent } from "vue";
|
||||
import Card from "./components/card.vue";
|
||||
import HlsPlayer from "./components/HlsPlayer.vue";
|
||||
import IscPlayer from "./components/iscPlayer.vue";
|
||||
|
||||
const IscPlayer = defineAsyncComponent(() =>
|
||||
import("./components/iscPlayer.vue")
|
||||
);
|
||||
import IscPlugin from "./components/isc_plugin";
|
||||
import { Message } from "element-ui";
|
||||
import {
|
||||
getWorkTicketCountWorkTicketApi,
|
||||
@ -905,6 +913,7 @@ const getPoliceCameraItemPage = () => {
|
||||
...params,
|
||||
ticketId: viewAllShow.value ? "" : workTicketDetail.value.id,
|
||||
// deviceState: viewAllShow.value ? 1 : "",
|
||||
status: viewAllShow.value ? 2 : "", // 2 施工中
|
||||
bindTicket: viewAllShow.value ? 1 : "",
|
||||
projectSn: workTicketInfo.projectSn == store.state.userInfo.sn ? "" : workTicketInfo.projectSn,
|
||||
}).then(async (res) => {
|
||||
@ -1087,12 +1096,14 @@ const downloadFileBtn = (url, name) => {
|
||||
|
||||
.content-box {
|
||||
padding: 20px 10px;
|
||||
height: calc(100% - 20px - 20px);
|
||||
|
||||
.box-main {
|
||||
width: 100%;
|
||||
margin-top: 10px;
|
||||
overflow-y: auto !important;
|
||||
height: 600px !important;
|
||||
// height: 600px !important;
|
||||
height: 68% !important;
|
||||
|
||||
.box-main_box:not(:first-child) {
|
||||
margin-top: 20px;
|
||||
@ -1381,6 +1392,7 @@ const downloadFileBtn = (url, name) => {
|
||||
|
||||
:deep(.content) {
|
||||
height: 94.5%;
|
||||
overflow: hidden;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1824,19 +1836,26 @@ const downloadFileBtn = (url, name) => {
|
||||
flex-wrap: wrap;
|
||||
align-content: flex-start;
|
||||
> div {
|
||||
width: 16% !important;
|
||||
height: 195px;
|
||||
width: 32% !important;
|
||||
height: 300px;
|
||||
background: url("~@/assets/images/companyBigScreen/terminalOperation/cardImg.png")
|
||||
no-repeat;
|
||||
background-size: 100% 100%;
|
||||
margin: 0 !important;
|
||||
.hls-video {
|
||||
height: 260px !important;
|
||||
}
|
||||
:deep(.sub-wnd) {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
> div:not(:nth-child(6n + 1)) {
|
||||
margin-left: 10px !important;
|
||||
> div:not(:nth-child(3n + 1)) {
|
||||
margin-left: 20px !important;
|
||||
}
|
||||
|
||||
> div:nth-child(n + 7) {
|
||||
margin-top: 10px !important;
|
||||
> div:nth-child(n + 4) {
|
||||
margin-top: 20px !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -132,12 +132,12 @@
|
||||
<el-tooltip
|
||||
class="item"
|
||||
effect="dark"
|
||||
:content="item.alarmDesc"
|
||||
:content="item.location"
|
||||
placement="top-start"
|
||||
>
|
||||
<span
|
||||
>{{ $t("message.sixComplete.carDense.from") + ":"
|
||||
}}{{ item.alarmDesc }}</span
|
||||
}}{{ item.location }}</span
|
||||
>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
||||
@ -782,7 +782,10 @@ export default {
|
||||
loadRealTimeData() {
|
||||
let json = Object.assign(
|
||||
this.filterForm,
|
||||
{ measurePointNumber: this.ruleForm.measurePointNumber },
|
||||
{
|
||||
measurePointNumber: this.ruleForm.measurePointNumber,
|
||||
acquisitionInstrumentNumber: this.ruleForm.acquisitionInstrumentNumber,
|
||||
},
|
||||
{ projectSn: this.$store.state.projectSn }
|
||||
);
|
||||
highFormworkMeasureCurrentDataApi(json).then((res) => {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user