关于海康插件改写vue,解决层级遮挡开发

项目场景:

现在在用低代码平台jeecgboot开发系统,然后遇到了一个问题,如何把海康插件嵌入开发到系统之中,其中遍布荆棘,历时三四天才得以实现,特此记录,以备下次开发或应用后的不时之需。


问题描述

首先把海康威插件改写成vue的形式,嵌入到开发的系统中,然后解决海康威插件覆盖层级大的问题。


解决方案:

1.

全局引入几个js,确保能够使用,我的建议是在index.html中进行全局引入
在这里插入图片描述

2.

改写vue页面,这里有个大佬比我写得好,我也不关公面前舞大刀,直接附上
链接
需要注意的几个事项说一下:
1.当你的系统需要创建多个视频插件的时候,可能会出现你在该模块能够打开视频,之后在另一个模块打开视频,无法弹出插件这是因为,两个容器id相同起了冲突,解决方法:
在这里插入图片描述
在此处改写容器id名字。
2.可能测试时可以连接的视频头,之后无法连接,这时候考虑初始化时间等参数,这类问题偏向于连接时间过短
在这里插入图片描述
3.如何判断电脑有无海康插件,进行自动下载,我这里设置一个判断,当规定时间内两次都没有创建插件成功那就判定为没有海康插件,设置一个a链接然后将其隐藏,如果两次没有创建成功,就模拟点击此链接进行触发,该函数如下即可解决

  // 下载插件
  frontDownload() {
    
    
    var a = document.createElement('a') // 创建一个<a></a>标签
    a.href = '' // 给a标签的href属性值加上地址,注意,这里是绝对路径,不用加 点.
    a.download = 'xxx.exe' // 设置下载文件文件名,这里加上.xlsx指定文件类型,pdf文件就指定.fpd即可
    a.style.display = 'none' // 障眼法藏起来a标签
    document.body.appendChild(a) // 将a标签追加到文档对象中
    a.click() // 模拟点击了a标签,会触发a标签的href的读取,浏览器就会自动下载了
    a.remove() // 一次性的,用完就删除a标签
  },

3.

解决层级覆盖问题,这个我找了好久贴吧、论坛、代码社区也没有很好的解决方法,我这里给出的是一种巧妙的回避方式,面对插件优先级过高盖住所有的菜单栏下拉项等,我是通过采用设置弹窗进行解决,当触发弹窗时创建插件,无弹窗时插件关闭,确保打开插件期间,其他一些操作无法执行进行解决该问题,关闭弹窗那么触发关闭,如此巧妙地回避了该类问题。

猜你喜欢

转载自blog.csdn.net/weixin_51759592/article/details/128134928
今日推荐