vue jointjs 拓扑图 自定义shape 按需引入

news2024/9/24 1:16:33

只展示部分核心代码,完整代码见文章尾部连接

在这里插入图片描述

import 'jointjs/dist/joint.core.css';

// 类库 包含: Paper Graph Cell CellView Element Link 等等
import { dia } from 'jointjs/src/core.mjs';
// 样式库 包含多个分组(basic standard custom ...)
import * as standard from 'jointjs/src/shapes/standard.mjs';
import * as layout from 'jointjs/src/layout/index.mjs';
import * as highlighters from 'jointjs/src/highlighters/index.mjs'
import * as util from 'jointjs/src/util/util.mjs'
import * as linkTools from 'jointjs/src/linkTools/index.mjs'

export default {
	install: function (Vue) {
		let joint = { dia };
		joint.shapes = { standard };
		joint.layout = layout;
		joint.highlighters = highlighters
		joint.util = util
		joint.linkTools = linkTools
		Object.defineProperty(Vue.prototype, '$joint', { value: joint });
	}
};

在这里插入图片描述

mounted() {
    console.log(`[${this.name}] Mounted:`, this.$refs.joint);
    this.init();
    setTimeout(() => {
      // 插入十万条数据
      const total = 6
      // 一次插入 20 条,如果觉得性能不好就减少
      const once = 6
      // 渲染数据总共需要几次
      const loopCount = total / once
      let countOfRender = 0
      let node = []
      let link = []
      function add() {
        // 优化性能,插入不会造成回流
        
        for (let index = 0; index < once; index++) {
          node.push({ id: index+1, label: "node" + (+index+1) })
          link.push({ from: 1, to: index+1 })
        }

        countOfRender += 1
        loop()
      }
      function loop() {
        if (countOfRender < loopCount) {
          window.requestAnimationFrame(add)
        }
      }
      loop()


      this.nodes = node;
      this.links = link;

      // this.nodes = [
      //   { id: 1, label: "node1node1node1" },
      //   { id: 2, label: "node2" },
      //   { id: 3, label: "node3" },
      // ];
      // this.links = [
      //   { from: 1, to: 2 },
      //   { from: 1, to: 3 },
      // ]
    }, 0)
    // this.$emit("init", this.graph);
  },

完整代码看下面的地址

vue-jointjs


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/658548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Hexo和Butterfly创建个人技术博客,(11) 使用插件增强博客站点能力

Butterfly官方网站&#xff0c;请 点击进入 本章目标&#xff1a; 掌握常用的plugin插件的用法&#xff0c;本文中是butterfly主题内置集成的第三方插件(部分插件需要再次安装)&#xff1b; 一、建议开启的三方插件 KaTeX-数学公式 katex:enable: true# true 表示每一页都加载…

C# NX二次开发:通过UFUN函数获取刀具描述,目录号,库号等信息

今天要将的是&#xff0c;在NX中对CAM模块进行二次开发的时候&#xff0c;往往需要获取一些关于刀具使用的信息&#xff0c;这些信息用NXOPEN的的方法录制也可以录制出来&#xff0c;但是录制出来的代码&#xff0c;往往都是一种刀具类型会出现一个Builder。这样在你不知道有多…

淘宝买家订单API

目录 下载安装与运行 支持的订单读取方式 请求数据格式一 请求头示例 数据格式说明 数据格式示例 返回数据格式一 返回头示例 数据格式说明 数据格式示例 请求数据格式二&#xff08;根据订单编号&#xff09; 请求头示例 返回数据格式二&#xff08;根据订单编号…

【随笔记】如何获得铁粉(仅供参考)

文章目录 一、前言二、秘籍2.1 良好的个人简介2.2 统一的文章格式2.3 详细的专栏划分2.4 有序的博客排版2.4.1 目录部分2.4.2 正文部分2.4.2.1 标题分级2.4.2.2 正文分段2.4.2.3 善用多级列表2.4.2.4 章节分割 三、总结 一、前言 在这篇随笔记的开始&#xff0c;我想声明一下&a…

ChatGPT将改变教育,而不是摧毁它

01 学校和大学的反应迅速而果断 就在 OpenAI 于 2022 年 11月下旬发布ChatGPT 的几天后&#xff0c;该聊天机器人被广泛谴责为一种免费的论文写作、应试工具&#xff0c;它很容易在作业中作弊。 美国第二大学区洛杉矶联合大学立即阻止了OpenAI网站从其学校网络访问。其他人很…

【Java】Java核心要点总结 67

文章目录 1. 浮点数运运算会有精度损失2. 构造方法特点 & 不能被重写3. 接口和抽象类的异同4. Object 类的常见方法5. hashCode() 有什么用 为什么要有 hashCode() 1. 浮点数运运算会有精度损失 这个和计算机保存浮点数的机制有很大关系。我们知道计算机是二进制的&#x…

面试时一定要确认该岗位的直属领导是否在场,如果不在,千万不要接offer,有坑!...

对于有心人来说&#xff0c;面试时可以看出许多隐形信息&#xff0c;比如下面这位网友的提醒&#xff1a; 面试时一定要确认这个岗位的直接汇报领导是否参与了面试&#xff0c;如果没有参与&#xff0c;千万不要接offer&#xff01; 该职位的直接领导不参与面试&#xff0c;只能…

NLP——Topic Modelling

文章目录 A Brief History of Topic ModelsLatent Dirichlet Allocation &#xff08;LDA&#xff09;潜在狄利克雷分布核心思想LDA inputLDA output LDA 如何学习Sampling-based mothods 基于采样的方法Infer Topics For New Documents超参数 Variational methods 变分方法 Ev…

java协同过滤算法的校园二手图书网站springboot vue

用户&#xff1a;&#xff08;商品推荐算法&#xff09; 1)首页主要由导航栏、图书展示页、分页所组成。访客能浏览网站上的待出售图书的信息&#xff0c;但是若要购买&#xff0c;收藏图书&#xff0c;查看卖家信息则会自动跳转到登录界面&#xff0c;已经登录的用户则可以浏…

WPS AI最全申请与使用手册;AIGC制作游戏音乐;便宜快捷使用完整版SD;人人都能看懂的ChatGPT原理课 | ShowMeAI日报

&#x1f440;日报&周刊合集 | &#x1f3a1;生产力工具与行业应用大全 | &#x1f9e1; 点赞关注评论拜托啦&#xff01; &#x1f916; 面向虚拟世界的生成式AI市场全景图 作者在这篇文章中探讨了生成式AI在虚拟世界的应用&#xff0c;并绘制了 Market Map V3.0 (市场全景…

C++ 有用的资源||19道必须掌握的C++面试题

C 有用的资源 C 有用的资源 以下资源包含了 C 有关的网站、书籍和文章。请使用它们来进一步学习 C 的知识。 C 有用的网站 C Programming Language Tutorials − C 编程语言教程。C Programming − 这本书涵盖了 C 语言编程、软件交互设计、C 语言的现实生活应用。C FAQ −…

chatgpt赋能python:Python中的遍历方法详解

Python中的遍历方法详解 在Python中&#xff0c;遍历是处理数据的常见操作。Python提供了多种遍历方法&#xff0c;本文将逐一介绍这些方法的特点、适用场景及使用方法。 for循环 for循环是Python中最常用的遍历方法之一&#xff0c;可以遍历任何可迭代对象。 # 遍历列表 f…

栈的运用——中缀表达式[Java实现]

⭐作者介绍&#xff1a;大二本科网络工程专业在读&#xff0c;持续学习Java&#xff0c;努力输出优质文章 ⭐作者主页&#xff1a;逐梦苍穹 ⭐所属专栏&#xff1a;数据结构。数据结构专栏主要是在讲解原理的基础上拿Java实现&#xff0c;有时候有C/C代码。 ⭐如果觉得文章写的…

C++【位图/布隆过滤器—海量数据处理】

文章目录 一、位图&#xff08;1&#xff09;位图概念介绍&#xff08;2&#xff09;简单模拟实现&#xff08;3&#xff09;位图应用 二、布隆过滤器&#xff08;1&#xff09;关于布隆过滤器概念及介绍&#xff08;2&#xff09;布隆过滤器的使用场景&#xff08;3&#xff0…

干翻Mybatis源码系列之第十一篇:Mybatis拦截器获取被拦截对象的方法和参数

给自己的每日一句 不从恶人的计谋&#xff0c;不站罪人的道路&#xff0c;不坐亵慢人的座位&#xff0c;惟喜爱耶和华的律法&#xff0c;昼夜思想&#xff0c;这人便为有福&#xff01;他要像一棵树栽在溪水旁&#xff0c;按时候结果子&#xff0c;叶子也不枯干。凡他所做的尽…

DJ4-1 网络层概述

目录 一、网络层提供的功能 二、路由和转发 三、数据平面和控制平面 四、网络层的服务模型 一、网络层提供的功能 网络层实现主机与主机之间的通信 从发送方主机传输报文段到接收方主机&#xff1a; 发送方主机封装报文段 (segments) 为数据报 (datagrams)接收方主机递交…

Linux常用命令——gcov命令

在线Linux命令查询工具 gcov 测试程序的代码覆盖率的工具 补充说明 gcov命令是一款测试程序的代码覆盖率的工具。 语法 gcov(选项)(参数)选项 -h&#xff1a;显示帮助信息&#xff1b; -v&#xff1a;显示版本信息&#xff1b; -a&#xff1a;输出所有的基本块的执行计数…

SpringMVC 中的常用注解和用法

观前提示:本篇博客演示使用的 IDEA 版本为2021.3.3版本,使用的是Java8(又名jdk1.8) 电脑使用的操作系统版本为 Windows 10 目录 前言 Spring Boot Spring MVC 1. MVC 1.1 MVC 和 Spring MVC 之间的关系 2. 创建 Spring MVC 项目 创建一个 SpringMVC 项目 1. new projec…

PyQt学习笔记-使用通用数据库接口QtSql操作SQLite数据库

使用通用的数据库接口的好处是当数据库发生改变时&#xff0c;只需要修改初始化的配置即可&#xff0c;而不用修改对应的更多的代码。 一、QtSql类 QtSql类时的数据库操作接口类&#xff0c;包含如下类&#xff1a; QSql QSqlError QSqlQueryModel QSqlRelationalTableMo…

SQL基础入门-条件查询语句

前言 可以关注我的云原生社区&#xff1a;云原生社区 也可以关注我的英语社区&#xff1a;从零开始学英语 一. 创建数据库并写入数据 1.1 创建数据库 MySQL [school]> create database game; Query OK, 1 row affected (0.01 sec)MySQL [school]> use game Database c…