nVisual 前端集成SDK使用说明
目前客户需要搭建自己的可视化产品,但需要使用nVisual的可视化视图功能,根据目前项目实施需求,决定做了一款简单版的SDK视图插件,这个小插件的主要功能是嵌入到客户项目里给客户提供 ‘详细视图’‘拓扑视图’或者是‘主视图’的展示功能.目前已经开发完毕,这里做一下简单介绍.
一、具体功能介绍
主要功能是展示 Nvisual 的四个视图面板、一个属性面板和所有封装好的api接口,分别是 主视图、 详细视图、拓扑视图、链路查看、流量查看、属性面板 ,以及目前正在Nvisual标准版中所有的api接口(意思让客户直接调用封装好的方法,而不是客户自己去处理大量接口)
二、构建思路
主要思路是为了和标准版代码保持完全同步, 就在标准版项目内容重新建立了一个打包项目, 主要是webpack来打包主页面中所用到的所有js文件.webpack的特性就是模块化打包将关联的js文件打包到一起.
这种方式保持了一致性,不需要另外开发一套代码, 但是缺点也比较明显那就是体积比较大,打包后大小为 4.6MB.
三、项目结构和搭建
具体项目结构需要用截图来展示;
1.最外层的Nvisual(NVISUAL)
是标准版代码的文件夹,下面存放的包括 标准版 和 sdk项目的所有文件;
2.Nvisual(NVISUAL)下面的一级文件
这些文件属于标准版,规则都是VUE脚手架的项目结构,这里不做描述;
3.nvisual_HtSdk_demo
这个文件夹是SDK项目的所有代码
4.nvisual_HtSdk_demo下一级的目录
Build – webpack.base.conf.js // webpack 的配置公共
Build – webpack.dev.conf.js // webpack 的测试配置
Build – webpack.prod.conf.js // webpack 的打包配置
Public // 是用来存放不需要编译打包的独立的第三方插件和一些静态文件的
Src // 是用来存放打包入口文件、demo文件 和 全部的sdk源代码
Src – index.js // demo的入口文件 ,里面主要是 demo的交互逻辑点击事件等
Src – index.html // demo的页面
Src – sdk // sdk 源码部分
Src – sdk – nvisual-sdk.js // sdk源码的入口文件
Src – sdk – collectionMethodsBase.js // 不需要视图的基础方法集合“主要是获取数据, 比如 获取目录树、模型库数据的增删改查、工单数据的增删改查
Src – sdk – collectionMethodsDetailedView.js // 对外提供详细视图的方法集合;
Src – sdk – collectionMethodsLinkView.js // 对外提供的链路视图的方法集合
Src – sdk – collectionMethodsMainView.js // 对外提供的主视图的方法集合
Src – sdk – collectionMethodsTopologyView.js // 对外提供的拓扑视图的方法集合
Src – sdk – view – * // 这个文件夹下的文件都是各个视图的入口文件
Src – sdk – nvisual – index.js // 标准版代码的入口文件
Src – sdk – axios- index.js // sdk的axios请求配置
四、具体开发细节
主要流程:
Sdk 主流程:
1. nvisual-sdk.js 入口文件 ->登录 配置基本参数 加载第三方依赖如
2. 加载各个视图的主文件
3. 加载基础方法集合 collectionMethodsBase.js
4. 各个视图的方法集合 比如 collectionMethodsMainView.js
5. 调用CreateView 创建视图 返回对应的视图对象(方法合集) 实例化 标准版代码;
demo的主流程:
从打包入口文件nvisual_HtSdk_demo/src/index.js开始,初始化dom. 初始化点击事件、初始化Nvisual插件对象
五、sdk的使用方法
// 1.创建
Nvisual 对象
this.data.Nvisual = new Nvisual({
customApiUrl:
‘http://172.18.0.183:8081/wapi/’, // 可选项 api拼接的域名, 没有则用当前域名
release 172.18.0.175:8081 / prdct 172.18.0.183:8081
customImgHost:
‘https://project.nvisual.com/’, // 可选项 图片拼接的域名, 没有则用当前域名
customImgPath:
‘/img/nvisual/modelLibrary/’, // 可选项 图片拼接的图片地址 (有头部‘/’, 有尾部 ‘/’)
// * sdk登录用的用户名密码, 可以去所在客户的标准版里面账号管理页面中添加.
login: {
account: ‘****’, // * 账号
password: ‘********’, // * 密码
},
data: {
// * 初始化时用到的
diagramid, 默认为视图的起点,如果不传递, 会让一些小功能找不到数据
diagramId: ‘24000000000001’,
}
}, () => {
// 主函数初始化完毕的回调
// 创建 this.data.Nvisual
对象后 才可以创建视图
// 创建主视图
this.data.NvisualExampleMainView =
this.data.Nvisual.CreateView({
viewType: ‘mainView’, // * type:
mainView 主视图 \ detailedView 详细视图
data: {
diagramId: ‘24000000000001’, // * 初始化时用到的
diagramid
viewId: ‘main-view-body’, // * 视图的容器id
viewDomObj: this.data.mainView, // * 视图的容器dom对象
},
// 可选项当前视图点击的内容
getClickData: function(data) {
console.error(‘当前主视图点击的内容‘,
data);
}
})
// 创建 详细视图 CreateView ‘C’大写
this.data.NvisualExampleDetailedView =
this.data.Nvisual.CreateView({
viewType: ‘detailedView’,
data: {
diagramId: ‘24000000000001’,
viewId: ‘detailed-view-body’,
viewDomObj: this.data.detailedView,
},
getClickData: function(data) {
console.error(‘当前详细视图点击的内容‘,
data);
}
});
})
六、案例展示
相关文章:
nVisual 前端集成SDK使用说明
目前客户需要搭建自己的可视化产品,但需要使用nVisual的可视化视图功能,根据目前项目实施需求,决定做了一款简单版的SDK视图插件,这个小插件的主要功能是嵌入到客户项目里给客户提供 ‘详细视图’‘拓扑视图’或者是‘主视图’的展示功能.目前已经开发完毕,这里做一下简单介绍.…...
上传文件时获取音视频文件时长和文本文件字数
获取音视频文件时长和文本文件字数 一、获取音视频文件时长二、计算文本文件字数 最近有个需求,要求上传文件时获取音视频文件时长和文本文件字数🐶。 发现这样的冷门资料不多,特做个记录。本文忽略文件上传功能,只封装核心的工具…...
[COLM 2024] V-STaR: Training Verifiers for Self-Taught Reasoners
本文是对 STaR 的改进方法,COLM 是 Conference On Language Models,大模型领域新出的会议,在国际上很知名,不过目前还没有被列入 ccf list(新会议一般不会列入);作者来自高校、微软研究院和 Goo…...
【C++】string的主要功能模拟复现
经常调用的短小函数直接定义在头文件中,可以节省时间开销 #include<iostream> #include<assert.h> using namespace std; namespace mumu {class string{friend ostream& operator<<(ostream& _cout, const mumu::string& s);friend…...
Linux环境安装Jenkins
Linux环境安装Jenkins Jenkins和JDK的版本 Jenkins和JDK的版本需要对应,不然无法正常启动。 Jenkins稳定版下载地址 Jenkins服务 手动使用命令启动和关闭Jenkins比较麻烦,所以可以把Jenkins设置成开机启动。 创建Jenkins.sh文件 JAVA_HOME和jenk…...
Elasticsearch:ES|QL 中的全文搜索 - 8.17
细心的开发者如果已经阅读我前两天发布的文章 “Elastic 8.17:Elasticsearch logsdb 索引模式、Elastic Rerank 等”,你就会发现在 8.17 的发布版中,有一个重要的功能发布。那就是 ES|QL 开始支持全文搜索了。在今天的文章中我们来尝试一下。…...
Leetcode 3387. Maximize Amount After Two Days of Conversions
Leetcode 3387. Maximize Amount After Two Days of Conversions 1. 解题思路2. 代码实现 题目链接:3387. Maximize Amount After Two Days of Conversions 1. 解题思路 这一题思路上其实就是要分别求出day 1以及day 2中原始货币与其他各个货币之间的成交价&…...
Lumos学习王佩丰Excel第二十一讲:经典Excel动态图表实现原理
一、动态图表实现原理 1、理解图表中的数据系列 在Excel图表中,系列指的是图表中的数据集合,它通常代表着一个数据源。每个系列都可以包含多个数据点,这些数据点在图表中以特定的形式展现,如柱状图中的柱子,折线图中…...
静态路由、RIP、OSPF、BGP的区别
静态路由:是管理员手动将路由写入到路由器中,配置简单开销小,但不能适应网络变化,只用于小型的网络 RIP,路由信息协议,属于距离矢量路由协议的一种,根据跳数来判断最优路由,如果跳数…...
解决 Flutter 在 Mac 上的编译错误
解决 Flutter 在 Mac 上的编译错误 在使用 Flutter 进行项目开发并尝试在 Mac 设备上进行编译时,遇到了一系列的错误信息,这些错误信息给项目的构建与部署带来了阻碍。 一、错误详情 在编译过程中,Xcode 输出了大量的信息,其中…...
ECharts实现数据可视化入门详解
文章目录 ECharts实现数据可视化入门详解一、引言二、基础配置1.1、代码示例 三、动态数据与交互2.1、代码示例 四、高级用法1、多图表组合1.1、在同一容器中绘制多个图表1.2、创建多个容器并分别初始化 ECharts 实例1.3、实现多图联动 五、总结 ECharts实现数据可视化入门详解…...
LRM-典型 Transformer 在视觉领域的应用,单个图像生成3D图像
https://yiconghong.me/LRM. 一、Abstract 第一个大型重建模型(LRM),它可以在5秒内从单个输入图像预测物体的3D模型。LRM采用了高度可扩展的基于transformer的架构,具有5亿个可学习参数,可以直接从输入图像中预测神经…...
Stream– ESP8266物联网应用,(客户端向服务器发送数据信息 客户端向服务器请求数据信息)
Stream– ESP8266物联网应用 Stream对于ESP8266-Arduino语言来说指的是数据序列。请留意:在C编程中Stream常被翻译作“流”。我们认为将Stream称为数据序列更加直观。因为数据序列这一概念有两个很关键特点。 第一个特点是“序”,即数据序列不能是杂乱…...
win10系统右下角没有显示网络图标 , 打开或关闭系统图标网络灰色
win10系统右下角没有显示网络图标 / 打开或关闭系统图标网络灰色 win10系统右下角没有显示网络图标, 并且打开或关闭系统图标网络灰色 解决方案: 首先,按【Ctrl Alt Del】组合键,然后点击【任务管理器】。任务管理器窗口,找到并选择【Wind…...
Python使用Selenium库获取 网页节点元素、名称、内容的方法
我们要用到一些网页源码信息,例如获取一些节点的class内容, 除了使用Beautifulsoup来解析,还可以直接用Selenium库打印节点(元素)名称,用来获取元素的文本内容或者标签名。 例如获取下面的class的内容&am…...
onnx文件转pytorch pt模型文件
onnx文件转pytorch pt模型文件 1.onnx2torch转换及测试2.存在问题参考文献 从pytorch格式转onnx格式,官方有成熟的API;那么假如只有onnx格式的模型文件,该怎样转回pytorch格式? https://github.com/ENOT-AutoDL/onnx2torch提供了…...
计算机网络中的SIP协议是什么?
SIP(Session Initiation Protocol,会话初始化协议)是由IETF(Internet Engineering Task Force,因特网工程任务组)制定的多媒体通信协议。以下是对SIP的详细简述: 一、SIP的基本概念 SIP是一个…...
Apache Kylin最简单的解析、了解
官网:Overview | Apache Kylin 一、Apache Kylin是什么? 由中国团队研发具有浓厚的中国韵味,使用神兽麒麟(kylin)为名 的一个OLAP多维数据分析引擎:(据官方给出的数据) 亚秒级响应ÿ…...
axfbinhexelf文件区别
0 Preface/Foreword axf,bin,hex,elf四个都能存在于嵌入式软件领域。 1 文件介绍 嵌入式软件中常见的文件包含: axf,包含调试信息,文件最大。调试信息放在机器码前面。elfhex,包含地址信息,文件内容较大。bin&#x…...
MySQL表自增id溢出的故障复盘,你是如何解决与监控的
文章精选推荐 1 JetBrains Ai assistant 编程工具让你的工作效率翻倍 2 Extra Icons:JetBrains IDE的图标增强神器 3 IDEA插件推荐-SequenceDiagram,自动生成时序图 4 BashSupport Pro 这个ides插件主要是用来干嘛的 ? 5 IDEA必装的插件&…...
03、SpirngMVC核心(下)
一、关于RESTful编程风格 什么是RESTful RESTful的英文全称是:Representational State Transfer(表述性状态转移) RESTful是Web服务接口的一种设计风格。它定了一组约束和规范,可以让Web服务接口更加简洁、易于理解、易于扩展、安全可靠。 RESTful对于请求的约束如下:…...
【游戏设计原理】10 - 科斯特的游戏理论
科斯特的游戏理论强调了游戏与学习之间的关系,认为“玩得开心”与“学习”是紧密相连的。换句话说,游戏的核心魅力在于通过适当的挑战和不断的学习进程激发玩家的内啡肽循环,这让玩家在不断的探索和进步中找到乐趣。 科斯特的理论通过游戏是…...
【JAVA】Java项目实战—Java EE项目:客户关系管理(CRM)系统
Java EE项目:客户关系管理(CRM)系统 一、背景介绍 1.1 Java语言的重要性 Java是一种广泛使用的编程语言,因其跨平台性、面向对象特性以及丰富的生态系统而受到开发者的青睐。Java EE(Enterprise Edition)…...
JAVA 零拷贝技术和主流中间件零拷贝技术应用
目录 介绍Java代码里面有哪些零拷贝技术java 中文件读写方式主要分为什么是FileChannelmmap实现sendfile实现 文件IO实战需求代码编写实战IOTest.java 文件上传阿里云,测试运行代码看耗时为啥带buffer的IO比普通IO性能高?BufferedInputStream为啥性能高点…...
STM32软件IIC驱动TCA9548A多路测量AHT10
STM32软件IIC驱动TCA9548多路测量AHT10 TCA9548AAHT10代码逻辑代码展示现象总结 TCA9548A TCA9548A 有八个可通过 I2C 总线控制的双向转换开关,SCL/SDA 上行对扩展到八个下行对,或者通道,适用于系统中存在I2C目标地址冲突的情况。8路双向转换…...
博弈论3:图游戏SG函数(Graph Games)
目录 一、图游戏是什么 1.游戏特征 2.游戏实例 二、图游戏的必胜策略 1.SG 函数(Sprague-Grundy Function) 2.必胜策略(利用SG函数) 3.拿走游戏转化成图游戏(Take-away Game -> Graph Game) 一、图…...
音视频入门基础:MPEG2-TS专题(17)——FFmpeg源码中,解析TS program map section的实现
一、引言 由《音视频入门基础:MPEG2-TS专题(16)——PMT简介》可以知道,PMT表(Program map table)由一个或多个段(Transport stream program map section,简称TS program map sectio…...
SQL server学习05-查询数据表中的数据(上)
目录 一,基本格式 1,简单的SQL查询语句 2,关键字TOP 3,关键字DISTINCT 二,模糊查询 1,通配符 三,对结果集排序 1,不含关键字DISTINCT 2,含关键字DISTINCT 3&…...
Transformer记录Attention is all you need
视频: Transformer 原理详解_哔哩哔哩_bilibili 代码: harvardnlp/annotated-transformer: An annotated implementation of the Transformer paper....
JAVA入门:使用IDE开发
JAVA入门:使用IDE开发 什么是IDE IDE(Integrated Development Environment,集成开发环境)是一种软件应用程序,它为程序开发、软件设计、项目管理等提供全面的设施。 简单来说就是简化开发过程,让编程更加…...
汽车嵌入式软件构建高效技术团队的全面思考
在汽车嵌入式软件开发领域,构建一支高效的通用技术团队至关重要。这类团队负责为各种项目提供可复用、标准化的技术基石,从而提高开发效率、降低成本并确保产品质量。构建这样的团队需要从技术能力、角色分工、标准化与复用、流程管理与质量保证、工具和…...
Debezium源码分析: TopicSelector实现原理与应用
Debezium源码分析: TopicSelector实现原理与应用 Debezium源码分析: TopicSelector实现原理与应用文章目录背景介绍主要功能应用场景实现原理DataCollectionId 接口核心设计工作流程源码分析基础实现默认选择器创建应用示例1. 分库分表场景2. 多租户场景3. 业务领域分组总结设计…...
SpringCloud微服务实战系列:03spring-cloud-gateway业务网关灰度发布
目录 spring-cloud-gateway 和zuul spring webflux 和 spring mvc spring-cloud-gateway 的两种模式 spring-cloud-gateway server 模式下配置说明 grayLb://system-server 灰度发布代码实现 spring-cloud-gateway 和zuul zuul 是spring全家桶的第一代网关组件&#x…...
【恶意软件检测论文】通过提取 API 语义来实现的一个新颖的安卓恶意软件检测方法
目录 摘要1. 引言2. 相关工作2.1. 基于重新训练的恶意软件检测2.2. 基于应用关系图的恶意软件检测2.3. 基于异常样本识别的恶意软件检测2.4. 基于API聚类的恶意软件检测 3. AMDASE概述4. 基于语义距离的API聚类4.1. API特征提取4.2. API句子生成4.3. API句子编码4.4.聚类中心生…...
大模型系列4--开源大模型本地部署到微调(WIP)
背景 一直想真正了解大模型对硬件资源的需求,于是准备详细看一篇视频,将核心要点总结记录下。本文内容参考视频:保姆级教程:6小时掌握开源大模型本地部署到微调,感谢up主 训练成本 训练 > 微调 > 推理训练GPT…...
Linux 磁盘满了怎么办?快速排查和清理方法
当 Linux 磁盘满了,会导致系统无法正常运行,比如无法写入文件、服务停止、甚至系统崩溃。因此,快速排查并清理磁盘空间是非常重要的。以下是详细的排查和解决步骤: 一、快速定位磁盘占用原因 1. 检查磁盘使用情况 使用 df 命令查…...
go 协程练习例题
go 协程练习例题 例1:统计 1-200000 的数字中,哪些是素数例2:使用单通道、2个协程交替读取字符串例3:使用1个管道,2个协程写数据、1个协程读例4:完成一个并发任务调度器,按照指定顺序执行一系列…...
JAVA:访问者模式(Visitor Pattern)的技术指南
1、简述 访问者模式(Visitor Pattern)是一种行为型设计模式,允许你将操作分离到不同的对象中,而无需修改对象本身的结构。这种模式特别适合复杂对象结构中对其元素进行操作的场景。 本文将介绍访问者模式的核心概念、优缺点,并通过详细代码示例展示如何在实际应用中实现…...
如何实现邮箱+验证码登录功能(express+vue+MySQL版)
目录 1. 初始化项目2. 配置环境变量3. 更新数据库4. 编写路由函数5. 前端调用接口 1. 初始化项目 前端根目录:/web 后端根目录:/api_server 安装依赖: npm install express mysql nodemailer randomstring dotenv其中,nodemaile…...
Pycharm访问MySQL数据库·上
1.MySQL驱动模块Connector #导入数据库的驱动工具 import mysql.connector #连接数据库必备的条件 config {"host": "localhost","port": 3306,"user": "root","password": "888888","database&…...
vscode+msys2+clang+xmake c++开发环境搭建
转载请标明出处:小帆的帆的专栏 安装msys2 下载msys2安装包:清华源下载地址安装msys2:安装目录,C:\Softwares\msys64 安装cling工具链,xmake !!!在开始菜单中启动MSYS2 CLANG64,…...
Python面试常见问题及答案5
一、基础语法相关 问题1: Python的可变数据类型和不可变数据类型有哪些? 答案: 在Python中,可变数据类型有列表(list)、字典(dict)、集合(set)。这些数据类型…...
威联通docker无法拉取镜像
链接:威联通TS-464C 折腾--Container Station国内无法拉取镜像_docker_wangguanghe-开放原子开发者工作坊我这里用的是IPV6 ,没有公网资源啊。 wangguanghe...
3D 生成重建034-NerfDiff借助扩散模型直接生成nerf
3D 生成重建034-NerfDiff借助扩散模型直接生成nerf 文章目录 0 论文工作1 论文方法2 实验结果 0 论文工作 感觉这个论文可能能shapE差不多同时期工作,但是shapE是生成任意种类。 本文提出了一种新颖的单图像视图合成方法NerfDiff,该方法利用神经辐射场 …...
ASP.net Core EntityFramework Code EF code 汇总
Entity FrameWork EF 总结 EF Core EF Core 如果实体模型很多,全部放在 上下文中的 OnModelCreating(ModelBuilder modelBuilder) 不太好维护 可以把实体模型 分离出去,每个类创建一个实体模型 public class BookConfiguration :IEntityT…...
AtCoder Beginner Contest 384 Solution
文章目录 ABCDEFG A void solve() {string s; char x, y;qr(n, x, y, s);for(auto i: s) {if(i ! x) i y;cout << i;} }B void solve() {qr(n, m);for (int i 1; i < n; i) {int x, y;qr(x, y);x--;if(1600 - x * 400 < m && m < 2799 - x * 400) m…...
c# TaskScheduler
这里记录下 TaskScheduler 的简单用法。 使用场景: 使用 Task 的时候,大家知道用 TaskFactory.StartNew 可以用来创建一个 Task 。这里如果创建了 3 个,那么这3个 Task 就各自放飞直接运行了。 class Program {private static TaskFactory…...
FFMPEG视频转图片
用FFMPEG视频转图片,并且for循环 import os import subprocess# 输入文件夹和输出文件夹路径 input_folder r"I:\xxx" output_base_folder r"D:\xxx\YOLO\data\video" output_subfolder_name "20240609"# 创建输出子文件夹 output…...
激活函数-swiGLU
swiGLU(Switch Gated Linear Unit)简介 swiGLU 是一种改进的激活函数模块,主要用于深度学习中的 Transformer 模型和其他神经网络架构。它在 GLU(Gated Linear Unit) 的基础上进行了修改,以提升模型的表现…...
PCIe学习笔记
PCIE高速串行数据总线 当拿到一块板子 比如你要用到PCIE 首先要看这块板子的原理图 一般原理图写的是 PCI express 表示PCIE 以下是Netfpga为例下的PCIE插口元件原理图 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/01dc604fbdc847e8998a978c83c7b2eb.png 一般主…...