import {ref, watch} from "vue"; import slideMenu from "@/views/mainLayout/js/slideMenu"; /** * 海康威视模块内容 */ const hkModule = ()=>{ const {isCollapse} = slideMenu(); const divPlugin = ref(null); const iWndowType = ref(1); const gIWndIndex = ref(0); const videoInitPlugin = (cbComplete)=>{ let iRet = WebVideoCtrl.I_CheckPluginInstall(); if (iRet === -1) { alert("您还未安装过插件,请安装WebComponentsKit.exe插件!"); return; } initPlugin(cbComplete); } const initPlugin = (cbComplete)=>{ WebVideoCtrl.I_InitPlugin({ bWndFull: false, //是否支持单窗口双击全屏 iWndowType: iWndowType.value, bDebugMode:true, cbSelWnd: function (xmlDoc){ gIWndIndex.value = parseInt($(xmlDoc).find("SelectWnd").eq(0).text(), 10); }, cbInitPluginComplete: function() { console.log("初始化插件完成"); WebVideoCtrl.I_InsertOBJECTPlugin("divPlugin"); if(cbComplete && typeof cbComplete === "function") { setTimeout(()=>{ cbComplete(); }, 500); } } }); } const clickLogin = (data)=>{ console.log(data); WebVideoCtrl.I_Login(data.ip, 1, data.port, data.username, data.password, { timeout: 3000, success: function () { console.log("开始预览"); //不能删除 setTimeout(()=>{ initPlay(data.ip, data.port); }, 1000); }, error: function () { console.log("login error"); } }); } const changeWndNum = (num)=>{ let value = parseInt(num, 10); WebVideoCtrl.I_ChangeWndNum(value).then(() => { console.log("窗口分割成功!"); }, (oError) => { console.log("窗口分割失败!"); }); }; const initPlay = (ip, port)=>{ let oWndInfo = WebVideoCtrl.I_GetWindowStatus(0); if (oWndInfo != null) {// 已经在播放了,先停止 WebVideoCtrl.I_Stop({ success: function () { startRealPlay(ip, port); } }); } else { startRealPlay(ip, port); } } const startRealPlay = (ip, port)=>{ WebVideoCtrl.I_StartRealPlay(ip, { iStreamType: 1, iChannelID: 1, bZeroChannel: false, success: function () { console.log("开始预览成功!"); }, error: function (oError) { console.log("开始预览失败!"); console.log(oError); } }); } watch( iWndowType, (newVal)=>{ changeWndNum(newVal[0]); }, ); watch( isCollapse, (newVal)=>{ //changeWndNum(newVal[0]); setTimeout(()=>{ WebVideoCtrl.I_My_Resize(); }, 0); }, ); return { divPlugin, iWndowType, gIWndIndex, videoInitPlugin, clickLogin, changeWndNum, initPlay }; } export default hkModule;