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

JsMind 常用配置项

1.数据格式

        jsMind支持三种数据格式

  • 树对象格式: 默认格式,节点之间是包含关系,便于程序进行处理,适合与MondoDB及其他文档数据库进行数据交互
  • 表对象格式:节点之间是并列关系,使用 parentid标识上下级关系,适合与关系型数据库进行数据交互
  • freemind格式:使用freemind的xml格式,适合与freemind进行数据交互

2.关于主题

        jsMind默认提供了15种主题。可以在jsmind.css中按照以下格式添加自定义样式

/* greensea theme */ /* greensea 即是主题名 */jmnodes.theme-greensea jmnode{background-color:#1abc9c;color:#fff;} /* 节点样式 */jmnodes.theme-greensea jmnode:hover{background-color:#16a085;} /* 鼠标悬停的节点样式 */jmnodes.theme-greensea jmnode.selected{background-color:#11f;color:#fff;} /* 选中的节点样式 */jmnodes.theme-greensea jmnode.root{} /* 根节点样式 */jmnodes.theme-greensea jmexpander{} /* 展开/关闭节点的控制点样式 */ jmnodes.theme-greensea jmexpander:hover{} /* 鼠标悬停展开/关闭节点的控制点样式 */

3. jsMind对象

        jsMind提供了对思维导图进行操控的一系列API,这些API都是基于jsMind对象处理的,一般情况下可以使用下面的代码获取jsMind对象。

/* 方法1: 创建思维导图时即可获得 jsMind 对象 */var jm = new jsMind(options);/* 方法2: 当前页面已存在一个思维导图时可直接获得此 jsMind 对象 当在一个页面里创建了多个 jsMind 时,此方法获得的是最后创建的那个对象 */var jm = jsMind.current;

4.查找节点

  • 获取根节点:使用jm.get_root()即可获取当前思维导图的根节点
  • 根据id查找节点:使用jm.get_node(nodeid)方法即可根据id查找当前思维导图中指定的节点,如果查不到则返回null
  • 获取选中的节点:使用jm.get_selected_node()方法即可获取当前选中的节点,如果没有选中的节点则返回null
  • 查找相邻的节点:使用jm.find_node_before(node|nodeid)和fined_node_after(node|nodeid)即可获取指定的节点的上一个或下一个节点,如果没有上一个或下一个,则返回null
  • 获取父节点:使用node.parent即可获取父节点,根节点的父节点为null
  • 获取子节点集合:使用node.children即可获取子节点的集合

        思维导图是由多个节点和节点之间的连线组成的,一个思维导图有一个根节点,根节点外围可以有多个子节点,子节点还可以有多个子节点。每个节点包含以下的多个属性:

node { id, // : string 节点id index, // : integer 节点序号 topic, // : string 节点主题 isroot, // : boolean 指示该节点是否为根节点 parent, // : node 该节点的父节点,根节点的父节目为 null ,但请不要根据此属性判断该节点是否为根节点 direction, // : enum(left,center,right) 该节点的分布位置 children, // : array of node 该节点的子节点组合 expanded, // : boolean 该节点的下级节点是否展开 data, // : object{string,object} 该节点的其它附加数据 
}

5. 操作节点

  • 选中节点 : 使用 jm.select_node(node) 方法选中指定的节点。
  • 收起子节点 : 使用 jm.collapse_node(node|nodeid) 方法可收起该节点的子节点。
  • 展开子节点 : 使用 jm.expand_node(node|nodeid) 方法可展开该节点的子节点。
  • 收起或展开子节点 : 使用 jm.toggle_node(node|nodeid) 方法可自动展开或收起子节点。
  • 展开全部子节点 : 使用 jm.expand_all() 方法可展开全部子节点。
  • 展开至层级 : 使用 jm.expand_to_depth(depth) 方法可展开到指定层级。
  • 移动节点 : 使用 jm.move_node(node|nodeid,beforeid) 方法可将该节点移动到 beforeid 节点之前,可将 beforeid 设为 _first_或_last可将该节点移动到相邻节点的最前或最后。
  • 启用编辑 : 使用 jm.enable_edit() 方法可启用对当前思维导图的编辑功能。
  • 禁止编辑 : 使用 jm.disable_edit() 方法可禁止对当前思维导图进行编辑。
  • 编辑节点 : 使用 jm.begin_edit(node|nodeid) 方法可以将该节点调整为编辑状态。
  • 停止编辑 : 使用 jm.end_edit() 方法可以将该节点调整为只读状态。

6. 编辑节点

  • 添加节点 : 使用 jm.add_node(parent_node, nodeid, topic, data) 方法可添加一个节点。
  • 在指定位置前插入节点 : 使用 jm.insert_node_before(node_before, nodeid, topic, data) 方法可在 node_before 节点前插入节点。
  • 在指定位置后插入节点 : 使用 jm.insert_node_after(node_after, nodeid, topic, data) 方法可在 node_after 节点后插入节点。
  • 删除节点 : 使用 jm.remove_node(node|nodeid) 方法可删除指定的节点及其所有的子节点。
  • 更新节点 : 使用 jm.update_node(nodeid, topic) 方法可更新指定节点的 topic,其它属性由于不在界面上显示,可以直接修改对应 node 的属性。

7.设置样式

  • 设置主题 : 使用 jm.set_theme(theme) 方法可设置当前思维导图的主题。
  • 设置背景色/前景色 : 使用 jm.set_node_color(nodeid, bgcolor, fgcolor) 方法可设置指定节点的背景色与前景色。
  • 设置字体 : 使用 jm.set_node_font_style(nodeid, size, weight, style) 方法可设置指定节点的字体。
  • 设置背景图片 : 使用 jm.set_node_background_image(nodeid, image, width, height) 方法可设置指定节点的背景图片。

8.获取数据

  • 获取元数据 : 使用jm.get_meta()方法可获取当前思维导图的元数据。
  • 获取数据 : 使用jm.get_data(data_format)方法可获取当前思维导图的指定格式的数据文本。

9.其他

  • 清除节点的选中 : 使用jm.select_clear()方法可以清除当前的选中状态。
  • 判断节点是否可见 : 使用jm.is_node_visible(node)方法可以判断此节点是否显示。
http://www.dtcms.com/a/358483.html

相关文章:

  • Qt中的锁(1)
  • AFSIM仿真工具介绍与源码编译
  • Isaac Lab Newton 人形机器人强化学习 Sim2Real 训练与部署
  • uniapp监听物理返回按钮事件
  • 软考 系统架构设计师系列知识点之杂项集萃(136)
  • 将 Logits 得分转换为概率,如何计算
  • SRE命令行兵器谱之三:grep - 日志海洋中的“精确制导”
  • JavaWeb前端06(ElementPlus快速构建网页)
  • IDM手机端,速度能提高6倍!
  • 消息队列核心技术解析与应用场景
  • JAVA EE初阶 4:文件操作和IO
  • 使用 SVM(支持向量机)进行图像分类:从读取图像到训练与分类的完整流程
  • Python API接口实战指南:从入门到精通
  • HarmonyOS三方库的使用
  • Java SpringAI应用开发面试全流程解析:RAG、流式推理与企业落地
  • 【Java工程师面试全攻略】Day13:云原生架构与Service Mesh深度解析
  • 防火墙技术(二):安全区域
  • 【Linux】系统部分——软硬链接动静态库的使用
  • Tomcat 企业级运维实战系列(四):Tomcat 企业级监控
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • Tomcat 企业级运维实战系列(三):Tomcat 配置解析与集群化部署
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 生成式 AI 重构内容生产:效率提升背后的创作版权边界争议
  • react虚拟列表实现及原理
  • leetcode2(移除元素)
  • 本地部署音效生成器 Moodist 并实现外部访问
  • Spring Cloud 和 Dubbo 是目前主流的两大微服务框架,分别代表了两种不同的技术路线
  • HarmonyOS 应用开发:基于API 12及以上的现代化实践
  • I2C多点触控驱动开发详解
  • Elasticsearch logsdb 索引模式和 TSDS 的业务影响