基于Vue2和jsmind.js实现思维导图

在vue中使用jsmind组织架构或思维导图 在项目中遇到组织架构或思维导图的需求,选的技术是 jsmind 官方文档给的示例,有需要的可以参考:示例 先来看看效果图: 尝试了两种类型:第一张截图是普通菜单类型,第二张截图可以进行右键菜单操作。最终选用了普通菜单类型。 jsmind 可以导入 jm 文件并渲染出来,也可以对编辑后的文件进行保存,也可以下载编辑好的思维导图,可以展开指定层级节点,修改主题,以及对节点进行增删改查等操作。 演示: 接下来如何使用: 安装 npm i jsmind // 或者 yarn add jsmind 普通菜单代 阅读详情
AI摘要

这篇博客详细介绍了如何在Vue2项目中集成jsmind.js库,创建一个具备放大、缩小、添加、修改和删除功能的思维导图。通过引入jsmind.menu.js,实现了右键菜单功能,包括编辑、添加子节点、删除节点等操作。示例代码展示了如何初始化数据并绑定按钮事件来控制思维导图的操作。

使用Vue2和jsmind.js实现思维导图,包括放大、缩小、添加、修改和删除等基本功能,以及使用jsmind.menu实现右键点击显示菜单。

1 参考文档

注意:vue-jsmind是在jsmind.js基础上进行了封装,本文用的是jsmind不是vue-jsmind;jsmind.menu.js不是jsmind.js自带的,是其他大神开发的。

1.1 参考网址

实现基本功能使用jsmind.js即可,不需要jsmind.menu.js

开源项目地址: http://hizzgdev.github.io/jsmind/developer.html

gitee上的地址:https://gitee.com/mirrors/jsmind

github上的地址:https://github.com/hizzgdev/jsmind

实现右键菜单的js文件,实现此功能需要将jsmind.menu.js文件下载下来,再动态导入到工程中。

https://github.com/allensunjian/jsmind.menu.js

1.2 安装jsmind

我使用的版本是:"jsmind": "^0.4.6";

cnpm install jsmind --save

2 截图

 

3 源代码

<template>
  <div>
    <div>
      <input type="button" value="放大" v-on:click="zoomIn" />
      <input type="button" value="缩小" v-on:click="zoomOut" />
    </div>
    <div id="jsmind_container"></div>
  </div>
</template>

<script>
import "jsmind/style/jsmind.css";
import jsMind from "jsmind/js/jsmind.js";
window.jsMind = jsMind;

require("jsmind/js/jsmind.draggable.js");
require("jsmind/js/jsmind.screenshot.js");
require("@/assets/js/jsmind.menu.js");

export default {
  name: "MyJsmind",

  data: function () {
    return {
      jm: null,
    };
  },

  mounted: function () {
    this.init_data();
  },

  methods: {
    init_data: function () {
      var mind = {
        /* 元数据,定义思维导图的名称、作者、版本等信息 */
        meta: {
          name: "jsMind-demo-tree",
          author: "hizzgdev@163.com",
          version: "0.2",
        },
        /* 数据格式声明 */
        format: "node_tree",
        /* 数据内容 */
        data: {
          id: "root",
          topic: "jsMind",
          children: [
            {
              id: "easy",
              topic: "Easy",
              direction: "left",
              expanded: false,
              children: [
                { id: "easy1", topic: "Easy to show" },
                { id: "easy2", topic: "Easy to edit" },
                { id: "easy3", topic: "Easy to store" },
                { id: "easy4", topic: "Easy to embed" },
              ],
            },
            {
              id: "open",
              topic: "Open Source",
              direction: "right",
              expanded: true,
              children: [
                { id: "open1", topic: "on GitHub" },
                { id: "open2", topic: "BSD License" },
              ],
            },
            {
              id: "powerful",
              topic: "Powerful",
              direction: "right",
              children: [
                { id: "powerful1", topic: "Base on Javascript" },
                { id: "powerful2", topic: "Base on HTML5" },
                { id: "powerful3", topic: "Depends on you" },
              ],
            },
            {
              id: "other",
              topic: "test node",
              direction: "left",
              children: [
                { id: "other1", topic: "I'm from local variable" },
                { id: "other2", topic: "I can do everything" },
              ],
            },
          ],
        },
      };

      var options = {
        container: "jsmind_container",
        editable: true,
        theme: "primary",

        menuOpts: {
          showMenu: true,
          injectionList: [
            {
              target: "edit",
              text: "编辑节点",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "addChild",
              text: "添加子节点",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "addBrother",
              text: "添加兄弟节点",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "delete",
              text: "删除节点",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "screenshot",
              text: "下载导图",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "showAll",
              text: "展开全部节点",
              callback: function (node) {
                console.log(node);
              },
            },
            {
              target: "hideAll",
              text: "收起全部节点",
              callback: function (node) {
                console.log(node);
              },
            },
          ],
        },
      };

      this.jm = new jsMind(options);
      this.jm.show(mind);
    },

    zoomIn: function () {
      this.jm.view.zoomIn();
    },

    zoomOut: function () {
      this.jm.view.zoomOut();
    },
  },
};
</script>

<style scoped>
#jsmind_container {
  width: 100%;
  height: 800px;
}
</style>

Vue项目里面使用jsmind.js插件来制作思维导图页面完成需求 vue项目使用jsmind来实现web的思维树图功能页面。 阅读详情

相关推荐

Vue2项目里用jsmind.js实现可编辑思维导图(附右键菜单完整配置)

本文详细介绍了在Vue2项目中集成jsmind.js实现可编辑思维导图的完整方案。从基础配置到高级功能实现,包括右键菜单插件集成、节点CRUD操作、样式优化和性能调优,帮助开发者快速构建功能完备的思维导图应用。特别针对Vue2环境提供了实战解决方案和常见问题排查指南。

weixin_42676824的博客 229

vue中使用jsmind生成脑图

jsmind

weixin_43688734的博客 3191

jsmind.menu.js

jsmind.menu.js(jsmind的右键菜单)

vue2 使用思维导图 jsmind

【代码】vue2 使用思维导图 jsmind。

emoji111111的博客 2893

完美解决 mysql 报错ERROR 1524 (HY000): Plugin ‘mysql_native_password‘ is not loaded

mysql 报错ERROR 1524 (HY000): Plugin 'mysql_native_password' is not loaded

xiaohua616的博客 4万+

DEMATEL-ISM模型的Python实现——方法介绍以及代码复现

本文参考文献与网络资料,对DEMATEL-ISM方法做了介绍何步骤描述,并给出Python代码进行了计算和绘图。

cros1的博客 2万+

Vue2项目里用jsmind.js实现可拖拽、可截图的思维导图(附完整代码)

本文详细介绍了如何在Vue2项目中整合jsmind.js实现可拖拽、可截图的专业级思维导图。从环境配置到核心组件实现,再到高级功能如节点拖拽、截图导出等,提供了完整的代码示例和优化建议,帮助开发者快速构建交互式思维导图应用。

weixin_28691003的博客 364

YOLOv8改进,YOLOv8添加可变性卷积DCNv2

DCNv2对原始的DCNv1进行了改进,可变形卷积网络的卓越性能源于其适应对象几何变化的能力。通过对其自适应行为的检查,虽然对其神经特征的空间支持比常规的ConvNets更接近于对象结构,但这种支持可能远远超出感兴趣区域,导致特征受到不相关图像内容的影响。为了解决这个问题,我们提出了一种可变形卷积网的重新表述,通过提高建模能力和更强的训练,提高了其专注于相关图像区域的能力。通过更全面地集成网络中的可变形卷积,并引入扩展变形建模范围的调制机制,增强了建模能力。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 3606

vue实现思维导图

vue 使用jsmind实现思维导图

weixin_43656393的博客 2万+

2020计算机专业保研夏令营面经:中科院计算所网数机试题目

计算所网络数据科学与技术重点实验室的第一阶段是机试。机试不限程序语言,要求提交源代码。

乔卿的博客 2957

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6520

js+css改造jsmind实现思维导图 | 树状图

一. 调研 树状图 | 思维导图调研 1.https://juejin.cn/post/6844904103298990093 2.echarts https://echarts.apache.org/examples/zh/editor.html?c=tree-polyline 3.https://juejin.cn/post/6844903615425937416 4.https://bl.ocks.org/mbostock/4339083 5.https://fperucic.github.io/tr

qq_40420929的博客 9593

【系统分析师】第6章-基础知识:企业信息化(核心总结)

企业信息化是数字化转型的核心,涵盖战略规划、技术应用和实施路径等方面。关键内容包括ERP、CRM、SCM等系统的定义与实施,以及数据仓库、商业智能等技术的应用。备考系统分析师需掌握信息化战略规划方法(如BSP、SDP)、系统建模工具,并能分析解决信息孤岛等问题。论文可围绕ERP实施、数据仓库应用等主题展开。企业信息化面临组织变革、技术选型等挑战,但能显著提升运营效率和竞争力。

数据知道的博客 6933

vue使用jsMind(思维导图)

jsMind是一个显示/编辑思维导图的纯javascript类库,其基于html5的canvas进行设计。我们使用它可能需要在网页上单纯的使用这种图样的效果,而其他交互却是自定义的,我这边选择的是jsMind与网上的一个(右键菜单)。jsmind.menu.js中寻找到定义menu的地方,增加custom自定义属性注自定义的东西肯定需要自定义一个类型或者唯一性的key,让代码知道我点击的是哪一个,所以还需要处理点击事件。寻找对应点击事件与.在里面增加key属性。即和。...

肖晗的博客 1万+

数仓建模—维度建模之维度表

首先要学会识别维度,维度是相对稳定的、可抽象具有共性的、固有的(天然的)描述度量或事实的上下文属性信息,失去维度信息的度量信息是没有意义的或者说是失去维度信息的事实表是没有意义的。其次要掌握维度表的设计原则和设计流程,从而更加科学的设计维度表,其实这些东西都是术,我们一直都说一句话大道至简,其实如果你掌握了精髓,抛开这些术也可以做到得心应手,这就像张无忌练太极剑一样,忘记了才能达到道的境界,也就是无我,如果做不到就记住这些原则加以应用从而达到术的境界。

2401_84052244的博客 4361

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

vue项目中使用思维导图jsmind

其中, require('jsmind/js/jsmind.draggable-node.js')有时用require('jsmind/js/jsmind.draggable.js'),如果引入时路径错误,在node_modules中找到相应文件夹看一下文件名字是否对应正确。以上所述只是实现了思维导图的展示和展开收起功能,若想要了解更多功能请查看。

deciduous_leaves的博客 5889

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

vue使用jsMind思维导图类库

效果展现 一、安装 npm install vue-jsmind 二、在main.js中引入 import jm from 'vue-jsmind' Vue.use(jm) if (window.jsMind) { console.log('wind') Vue.prototype.jsMind = window.jsMind } 三、使用 <template> <div> <div class="header"> <div st

一个天蝎座的程序猿 9374

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

在vue中使用jsmind生成思维导图

前景: 项目中有涉及到多层级的数据结构,思维导图的方式更方便查看数据的关系。这是简单的思维导图生成,增删改查的操作这里不需要。

深渊那支花的博客 3204

vue+jsmind实现思维导图加入按钮

jsmind库的简单应用

m0_57057282的博客 3600

vue3思维导图 -jsmind

jsMind 是一个基于 Js的思维导图库。

m0_57715356的博客 2194

Vue项目实战:利用jsmind构建可交互的组织架构与思维导图

本文详细介绍了如何在Vue项目中集成并深度使用jsmind库,构建功能强大的可交互组织架构图与思维导图。内容涵盖从快速集成、核心功能实现到与Element Plus组件库的深度整合,并提供了处理大数据量、样式隔离及部署优化的实战指南,帮助开发者高效完成相关需求。

vulkan6gpu的博客 1026

vue-JsMind思维导图实现(包含鼠标右键自定义菜单)

项目需要 思维导图这个功能,暂时还不知道具体需要什么功能,就自己先搞了一下,简单实现节点添加 编辑 删除 拖拽 及下载导图等功能,还有鼠标右键点击节点出现自定义菜单的功能,看了好多的自己以及其他人写的,发现很多都是有缺失的,不能拿来直接使用,下面我总结了一下,可以直接复制使用。 按钮事件 或者 鼠标右键按钮事件 可二选一选用,废话不多说 直接上代码 <template> <div class="brain_content"> <div clas..

hao9101111的博客 7386

如何快速创建交互式思维导图:jsMind完全指南

jsMind 是一个强大的 JavaScript 思维导图库,基于 HTML5 技术构建,让你轻松在网页中集成可编辑的思维导图功能。无论是项目规划、知识管理还是头脑风暴,jsMind 都能帮助你以视觉化方式组织和呈现思想。 ## 📌 jsMind 思维导图示例 [![jsMind 交互式思维导图示例,展示了项目核心功能和特性](https://raw.gitcode.com/gh_mirro

gitblog_01015的博客 685
上一篇: Nacos配置中心
下一篇: vue+jsPlumb+vuedraggable实现可拖拽的流程图
MasonYyp
博客等级 码龄9年 301粉丝 297原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值