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);

}

});

})

六、案例展示

相关推荐
dodo20164 分钟前
HTML5 WebSocket
前端·websocket·html5
前端郭德纲10 分钟前
react useRef、useContext、useReducer使用中遇到的问题及解决办法
前端·javascript·react.js
张3蜂15 分钟前
.NET 8 Blazor Web项目中的 .razor 文件与 .cshtml 文件的本质区别
前端·.net
乐容17 分钟前
electron常用方法
前端·javascript·electron
"追风者"33 分钟前
前端(六)浮动流
前端
岳轩子1 小时前
使用idea创建一个JAVA WEB项目
java·前端·intellij-idea
一雨方知深秋2 小时前
VueCli自定义创建项目
前端·javascript·eslint·router·vuecli
杰夫贾维斯2 小时前
ruoyi Cannot find module ‘@/views/system/user/index‘
前端
brrdg_sefg2 小时前
前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换
前端·vue.js·html
不会玩技术的技术girl2 小时前
HTML技术贴:深入理解与实践
前端·html