当前位置: 首页 > news >正文

滁州做网站电话号码吉林seo管理平台

滁州做网站电话号码,吉林seo管理平台,文化创意有限公司,传播建设网站步骤 根据官网&#xff0c;进行安装Npm install vis装好之后&#xff0c;在main.js&#xff08;获取其他名称&#xff0c;入口的js文件即可引入vis的css&#xff09;import iview/dist/styles/iview.css 在关系图的页面引入visimport vis from vis html中定义容器<div id&qu…

步骤

  1. 根据官网,进行安装
  2. Npm install vis
  3. 装好之后,在main.js(获取其他名称,入口的js文件即可引入vis的css)

  import 'iview/dist/styles/iview.css'

  1. 在关系图的页面引入vis

  import vis from 'vis'

  1. html中定义容器

<div id="network_id" class="network" style="height:800px"></div>

  1. 在script中,定义所需变量,这里需要注意的是,network不可以在data中进行定义,否则会出现拖拽节点的时候,其他节点不跟随变换位置的bug
  2.   export default {
  3.         name: 'home',
  4.        data () {
  5. 10.             return {
  6. 11.                 nodes:[],
  7. 12.                 edges:[],
  8. 13.                 // network:null,
  9. 14.                 container:null,
  10. 15.                 nodesArray:[
  11. 16.                     {id: 0, label: "0", group: 0},
  12. 17.                     {id: 1, label: "1", group: 0},
  13. 18.                     {id: 2, label: "2", group: 0},
  14. 19.                     {id: 3, label: "3", group: 1},
  15. 20.                     {id: 4, label: "4", group: 1},
  16. 21.                     {id: 5, label: "5", group: 1},
  17. 22.                     {id: 6, label: "6", group: 2},
  18. 23.                     {id: 7, label: "7", group: 2},
  19. 24.                     {id: 8, label: "8", group: 2},
  20. 25.                     {id: 9, label: "9", group: 3},
  21. 26.                     {id: 10, label: "10", group: 3},
  22. 27.                     {id: 11, label: "11", group: 3},
  23. 28.                     {id: 12, label: "12", group: 4},
  24. 29.                     {id: 13, label: "13", group: 4},
  25. 30.                     {id: 14, label: "14", group: 4},
  26. 31.                     {id: 15, label: "15", group: 5},
  27. 32.                     {id: 16, label: "16", group: 5},
  28. 33.                     {id: 17, label: "17", group: 5},
  29. 34.                     {id: 18, label: "18", group: 6},
  30. 35.                     {id: 19, label: "19", group: 6},
  31. 36.                     {id: 20, label: "20", group: 6},
  32. 37.                     {id: 21, label: "21", group: 7},
  33. 38.                     {id: 22, label: "22", group: 7},
  34. 39.                     {id: 23, label: "23", group: 7},
  35. 40.                     {id: 24, label: "24", group: 8},
  36. 41.                     {id: 25, label: "25", group: 8},
  37. 42.                     {id: 26, label: "26", group: 8},
  38. 43.                     {id: 27, label: "27", group: 9},
  39. 44.                     {id: 28, label: "28", group: 9},
  40. 45.                     {id: 29, label: "29", group: 9}
  41. 46.                 ],
  42. 47.                 edgesArray:[
  43. 48.                     {from: 1, to: 0,label:"hahah"},
  44. 49.                     {from: 2, to: 0},
  45. 50.                     {from: 4, to: 3},
  46. 51.                     {from: 5, to: 4},
  47. 52.                     {from: 4, to: 0},
  48. 53.                     {from: 7, to: 6},
  49. 54.                     {from: 8, to: 7},
  50. 55.                     {from: 7, to: 0},
  51. 56.                     {from: 10, to: 9},
  52. 57.                     {from: 11, to: 10},
  53. 58.                     {from: 10, to: 4},
  54. 59.                     {from: 13, to: 12},
  55. 60.                     {from: 14, to: 13},
  56. 61.                     {from: 13, to: 0},
  57. 62.                     {from: 16, to: 15},
  58. 63.                     {from: 17, to: 15},
  59. 64.                     {from: 15, to: 10},
  60. 65.                     {from: 19, to: 18},
  61. 66.                     {from: 20, to: 19},
  62. 67.                     {from: 19, to: 4},
  63. 68.                     {from: 22, to: 21},
  64. 69.                     {from: 23, to: 22},
  65. 70.                     {from: 22, to: 13},
  66. 71.                     {from: 25, to: 24},
  67. 72.                     {from: 26, to: 25},
  68. 73.                     {from: 25, to: 7},
  69. 74.                     {from: 28, to: 27},
  70. 75.                     {from: 29, to: 28},
  71. 76.                     {from: 28, to: 0}
  72. 77.                 ],
  73. 78.                 options:{},
  74. 79.                 data:{}
  75. 80.             }
  76. 81.         },
  77. 82.         methods:{
  78. 83.           init(){
  79. 84.               let this_ = this;
  80. 85.               this_.nodes = new Vis.DataSet(this_.nodesArray);
  81. 86.               this_.edges = new Vis.DataSet(this_.edgesArray);
  82. 87.               this_.container = document.getElementById('network_id');
  83. 88.               this_.data = {
  84. 89.                 nodes: this_.nodes,
  85. 90.                 edges: this_.edges
  86. 91.               };
  87. 92.               this_.options = {
  88. 93.                 autoResize: true,
  89. 94.                 groups:{
  90. 95.                     useDefaultGroups: true,
  91. 96.                     myGroupId:{
  92. 97.                     /*node options*/
  93. 98.                     }
  94. 99.                 },
  95.                 nodes: {
  96.                     shape: 'dot',
  97.                     size: 30,
  98.                     font: {
  99.                         size: 32,
  100.                     
  101.                     },
  102.                     borderWidth: 2
  103.                 },
  104.                 edges: {
  105.                     width: 2,

                           smooth:{  //设置两个节点之前的连线的状态

                               enabled: false  //默认是true,设置为false之后,两个节点之前的连线始终为直线,不会出现贝塞尔曲线

                           }

  1.               },
  2.                 physics: { //计算节点之前斥力,进行自动排列的属性
  3.                     enabled: true, //默认是true,设置为false后,节点将不会自动改变,拖动谁谁动。不影响其他的节点
  4.                     barnesHut: {
  5.                         gravitationalConstant: -4000,
  6.                         centralGravity: 0.3,
  7.                         springLength: 120,
  8.                         springConstant: 0.04,
  9.                         damping: 0.09,
  10.                         avoidOverlap: 0
  11.                     }
  12.                 },
  13.                 interaction:{
  14.                     hover:true,
  15.                     dragNodes: true, //是否能拖动节点
  16.                     dragView: true, //是否能拖动画布
  17.                     hover: true, //鼠标移过后加粗该节点和连接线
  18.                     multiselect: true, //按 ctrl 多选
  19.                     selectable: true, //是否可以点击选择
  20.                     selectConnectedEdges: true, //选择节点后是否显示连接线
  21.                     hoverConnectedEdges: true, //鼠标滑动节点后是否显示连接线
  22.                     zoomView: true //是否能缩放画布
  23.                 },
  24.                 manipulation: {  //该属性表示可以编辑,出现编辑操作按钮
  25.                     enabled: true
  26.                 }
  27.             };
  28.             this_.network = new Vis.Network(this_.container, this_.data, this_.options);
  29.           },
  30.           resetAllNodes() {
  31.             let this_ = this;
  32.             this_.nodes.clear();
  33.             this_.edges.clear();
  34.             this_.nodes.add(this_.nodesArray);
  35.             this_.edges.add(this_.edgesArray);
  36.             this_.data = {
  37.                 nodes: this_.nodes,
  38.                 edges: this_.edges
  39.             };
  40.             this_.network = new Vis.Network(this_.container, this_.data, this_.options);
  41.           },
  42.           resetAllNodesStabilize() {
  43.             let this_ = this;
  44.             this_.resetAllNodes();
  45.             this_.network.stabilize();
  46.           }
  47.         },
  48.         mounted(){
  49.             this.init();
  50.             this.network.on("click", function (params) {
  51.                 params.event = "[original event]";
  52.                 document.getElementById('eventSpan').innerHTML = '<h2>Click event:</h2>' + JSON.stringify(params, null, 4);
  53.                 console.log('click event, getNodeAt returns: ' + this.getNodeAt(params.pointer.DOM));
  54.             });
  55.         }
  56.     }

 

7.需求:出现选框,获取选框中的选中的节点,如右图;

已获取到选框的位置

 

 

 ,节点的位置是随机生成的,如何获取?

 解答:

function returnPos(params){

    var nodePosCanvas = [],selectNodes=[],nodePosDom=[];

// 通过network.getPositions(节点id),来获取到随机生成的节点的canvas的坐标

    $.each(nodes._data,function(index,item){

        var obj=network.getPositions(item.id)[item.id];

        obj.id=item.id;

        nodePosCanvas.push(obj)

    });

 // 通过network.canvasToDOM({x:x,y:y}),将获取到的canvas坐标转化为DOM坐标

    $.each(nodePosCanvas,function(indexpos,itempos){

        var obj=network.canvasToDOM({x:itempos.x,y:itempos.y}); 

        obj.id=itempos.id;

        nodePosDom.push(obj)

    });

    // 通过对上下左右的限制,获取到选中的节点

    $.each(nodePosDom,function(indexposDom,itemposDom){

        if((itemposDom.x>params.left||itemposDom.x == params.left) && (itemposDom.x<params.right||itemposDom.x == params.right)){

            if((itemposDom.y>params.top||itemposDom.y == params.top) && (itemposDom.y<params.bottom||itemposDom.y == params.bottom)){

                selectNodes.push(itemposDom)   

            }

        }

    });

  }

实现vis.js中的编辑节点,增加节点,删除节点,增加边缘的操作

Vis的option中直接有属性就可以进行这些操作

manipulation: {  //该属性表示可以编辑,出现编辑操作按钮

        enabled: false,

        initiallyActive:true,

        addNode:function(nodeData,callback){  对增加节点的操作,一般使用默认的话就不需要写这个函数

                nodesArrayCopy.forEach(item=>{

                    if(item.status){

                        delete item.status;

                    }

                });

            nodesArrayCopy.push({id:nodesArray.length, label:"I'm new!",group:0,status:"lastest"})

            nodes.add({id:nodesArray.length, label:"I'm new!",x:nodeData.x,y:nodeData.y});

        }

    },

那如果不想使用默认的增加节点功能呢,需要使用什么方法进行增加

var nodes = new vis.DataSet(nodesArray);

nodes.add({id: 1001, x: x, y:y, label: name, group:group, value: value,  physics:false});

使用nodes.add()方法进行添加

想要增加边缘edge

var edges = new vis.DataSet(edgesArray);

edges.add({

                id: edge.id,

                arrows:'to',

                from: edge.fromNodeId,

                to: edge.toNodeId,

                label:edge.label,

                font:{align:"middle"},

                length:150

            });

想要对已有的节点进行更新

nodes.update([{id:id, group:group}]);

具体参数参考文档

 

 

 

 

过network.canvasToDOM({x:x,y:y}),将获取到的canvas坐标转化为DOM坐标
[Guò network.CanvasToDOM({x:X,y:Y}), jiāng huòqǔ dào de canvas zuòbiāo zhuǎnhuà wéi DOM zuòbiāo]
Through network.canvasToDOM ({x: x, y: y}), the acquired coordinates into the canvas coordinate DOM

转载于:https://www.cnblogs.com/fyjz/p/11598720.html

http://www.lbrq.cn/news/2465785.html

相关文章:

  • 无锡商业网站建设站长工具服务器查询
  • 南宁网站建设公司哪家好seo专业培训学费多少钱
  • wordpress带会员中心主题福州百度seo排名
  • 天津市工程建设项目报建网站推广app佣金平台正规
  • 深圳福田大型商城网站建设网站推广策划思路
  • 专业做数据的网站有哪些在线域名解析ip地址
  • 手机如何做车载mp3下载网站网络营销策略的制定
  • 东莞大型网站建设公司谷歌官方app下载
  • 西青做网站的公司江苏网页定制
  • 手机站网站建设西安seo外包公司
  • 沧州市网站建设电话黑帽seo培训网
  • quiz在哪个网站做seo优化服务商
  • 旅游网站前端模板关键词的作用
  • 天水做网站电话seo深圳培训班
  • 规划营销型网站结构社会新闻最新消息
  • 良精企业网站系统小广告多的网站
  • 怎么免费制作网站平台舆情危机公关公司
  • 行业网站cms长沙seo推广公司
  • 网站前台与后台建设的先后次序企业线上培训课程
  • 自己怎么做家政网站如何做网站推广优化
  • 做视频点播网站如何赚钱自助建站seo
  • 中小企业门户网站的建设方案河北百度seo关键词排名
  • 上海网站微信平台建设search搜索引擎
  • 地方网站不让做吗进一步优化
  • ps做网站 大小seo培训价格
  • 公司网站 备案网站查询平台官网
  • 南京一站式工程装饰装修网站友情链接对网站的作用
  • 无锡网站建设企业排名百度广告投放价格表
  • 网站建设与管理维护的答案李建青网络推广方法技巧
  • 官方网站建设报价表关键词如何快速排名
  • CentOS 8 安装HGDB V4.5 psql命令执行报错
  • Kubernetes深度解析:企业级容器编排平台的核心实践
  • 【通识】算法案例
  • pytest官方Tutorial所有示例详解(一)
  • 【MAC电脑系统变量管理】
  • RLVR的一种扩展方案--RLPR论文阅读