欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue使用jsmind實(shí)現(xiàn)生成腦圖的示例代碼

 更新時(shí)間:2024年03月29日 09:51:58   作者:weixin_43688734  
這篇文章主要為大家詳細(xì)介紹了Vue如何使用jsmind實(shí)現(xiàn)生成腦圖,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,有需要的小伙伴可以參考一下

項(xiàng)目部分參數(shù):

vue:2.6.10

node:16.20.0

1、使用命令行安裝jsmind

npm i jsmind -S

2、在文件中引入jsmind,并編寫渲染jsmind的代碼

<template>
	<!-- jsmind容器 -->
    <div
      id="jsmindContainer"
      ref="jsmindContainer"
    ></div>
</template>

<script>
// 引入jsmind方法和樣式
import "jsmind/style/jsmind.css";
import jsMind from "jsmind";

// 引入獲取數(shù)據(jù)的接口
import { getProjectMind } from "@/api/projectManagement";

export default {
  data() {
    return {
      treeData: {},
      jsmind: ""
    };
  },
  created() {
    this.initData();
  },
  beforeDestroy() {
    if (this.jsmind) {
      this.jsmind.destroy();
    }
  },
  methods: {
    initData() {
      let projectId = this.$route.query.projectId;
      getProjectMind(projectId)
        .then(res => {
          if (res.code === 200) {
            this.treeData = res.data;
            const options = {
              container: "jsmindContainer", // 必選,容器ID
              editable: false, // 可選,是否啟用編輯
              theme: "asphalt", // 可選,主題
              shortcut: {
                enable: true // 禁用快捷鍵
              },
              layout: {
                hspace: 50, // 節(jié)點(diǎn)之間的水平間距
                vspace: 20, // 節(jié)點(diǎn)之間的垂直間距
                pspace: 13 // 節(jié)點(diǎn)與連接線之間的水平間距(用于容納節(jié)點(diǎn)收縮/展開控制器)
              },
              mode: "full" // 顯示模式,子節(jié)點(diǎn)只分布在根節(jié)點(diǎn)右側(cè)
            };
            // 初始化jsMind對(duì)象
            this.jsmind = new jsMind(options);

			// 讓jsmind對(duì)象顯示具體的腦圖數(shù)據(jù)
            this.jsmind.show({
              meta: {
                name: "jsMind",
                author: "",
                version: "0.1"
              },
              format: "node_tree",// 數(shù)據(jù)格式官方文檔有介紹
              data: this.treeData
            });
          }
        })
        .catch(err => {});
    }
  }
};
</script>

重啟項(xiàng)目,報(bào)錯(cuò)unexpected token...,我還以為是引入jsmind的方法不對(duì),后來我直接引入jsmind/es6/jsmind文件還是不行,也沒有搜索到任何解決辦法,我就嘗試安裝低版本的jsmind,安裝了0.5.0版本的jsmind,重啟項(xiàng)目OK了。

3、點(diǎn)擊腦圖部分節(jié)點(diǎn),展示詳情彈窗

在準(zhǔn)備腦圖數(shù)據(jù)的時(shí)候,我們將部分節(jié)點(diǎn)數(shù)據(jù)設(shè)計(jì)成了這樣:

topic里面是a標(biāo)簽,當(dāng)點(diǎn)擊a標(biāo)簽的時(shí)候,會(huì)觸發(fā)showTask事件,展示詳情彈窗。

但是在腦圖渲染出來之后,才發(fā)現(xiàn)在method里面注冊(cè)的showTask事件,是觸發(fā)不了的。后面嘗試著將topic數(shù)據(jù)里面的onclick換為@click,看vue能否正常將其渲染為a標(biāo)簽的點(diǎn)擊事件,結(jié)果還是不行,估計(jì)是因?yàn)閖smind使用了canvas,vue沒有將canvas里面的元素變?yōu)槟0鍢?biāo)簽。

怎么解決呢?我使用了window來幫忙注冊(cè)事件,這樣全局就有了showTask事件,點(diǎn)擊a標(biāo)簽?zāi)軌蛘S|發(fā)了。

// 因?yàn)閣indow里面的this不是指向當(dāng)前組件,所以需要提前注冊(cè)使用
window.$$this = this;
window.showTask = function(id) {
  // 展示詳情彈窗
  window.$$this.detailShow = true;
  // 詳情彈窗獲取數(shù)據(jù)
  window.$$this.$nextTick(() => {
    window.$$this.$refs.TaskDetail.init(id);
  });
};

最后要注意在組件的beforeDestroy生命周期中,清除數(shù)據(jù):

beforeDestroy() {
  if (this.jsmind) {
    this.jsmind.destroy();
    window.showTask = undefined;
    window.$$this = undefined;
  }
}

到此這篇關(guān)于Vue使用jsmind實(shí)現(xiàn)生成腦圖的示例代碼的文章就介紹到這了,更多相關(guān)Vue jsmind生成腦圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue3與webpack5安裝element-plus樣式webpack編譯報(bào)錯(cuò)問題解決

    vue3與webpack5安裝element-plus樣式webpack編譯報(bào)錯(cuò)問題解決

    這篇文章主要介紹了vue3與webpack5安裝element-plus樣式webpack編譯報(bào)錯(cuò),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-04-04
  • Vue3?使用Element?Plus表格單選帶checkbox功能

    Vue3?使用Element?Plus表格單選帶checkbox功能

    這篇文章主要介紹了Vue3?使用Element?Plus表格單選帶checkbox,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2023-11-11
  • vue+watermark-dom實(shí)現(xiàn)頁面水印效果(示例代碼)

    vue+watermark-dom實(shí)現(xiàn)頁面水印效果(示例代碼)

    watermark.js 是基于 DOM 對(duì)象實(shí)現(xiàn)的 BS 系統(tǒng)的水印,確保系統(tǒng)保密性,安全性,降低數(shù)據(jù)泄密風(fēng)險(xiǎn),簡(jiǎn)單輕量,支持多屬性配置,本文將通過 vue 結(jié)合 watermark-dom 庫,教大家實(shí)現(xiàn)簡(jiǎn)單而有效的頁面水印效果,感興趣的朋友跟隨小編一起看看吧
    2024-07-07
  • Vue中實(shí)現(xiàn)在線畫流程圖的方法

    Vue中實(shí)現(xiàn)在線畫流程圖的方法

    最近在調(diào)研一些在線文檔的實(shí)現(xiàn),包括文檔編輯器、在線思維導(dǎo)圖、在線流程圖等,本文分享在Vue框架下基于metaeditor-mxgraph實(shí)現(xiàn)在線流程圖,感興趣的朋友一起看看吧
    2024-07-07
  • vue幾個(gè)常用跨域處理方式介紹

    vue幾個(gè)常用跨域處理方式介紹

    本篇文章給大家詳細(xì)介紹了vue跨域處理問題的方式以及相關(guān)知識(shí)點(diǎn)介紹,對(duì)此有興趣的朋友學(xué)習(xí)下。
    2018-02-02
  • vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例

    vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例

    今天小編就為大家分享一篇vue 實(shí)現(xiàn)在函數(shù)中觸發(fā)路由跳轉(zhuǎn)的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-09-09
  • vue3中reactive和ref函數(shù)及對(duì)比分析

    vue3中reactive和ref函數(shù)及對(duì)比分析

    這篇文章主要介紹了vue3中reactive和ref函數(shù)及對(duì)比,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2024-01-01
  • vue實(shí)現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web(實(shí)現(xiàn)過程)

    vue實(shí)現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web(實(shí)現(xiàn)過程)

    vue實(shí)現(xiàn)錄音并轉(zhuǎn)文字功能,包括PC端,手機(jī)端和企業(yè)微信自建應(yīng)用端,本文通過實(shí)例代碼介紹vue實(shí)現(xiàn)錄音并轉(zhuǎn)文字功能包括PC端web手機(jī)端web,感興趣的朋友跟隨小編一起看看吧
    2024-08-08
  • 在Nginx上部署前端Vue項(xiàng)目的詳細(xì)步驟(超級(jí)簡(jiǎn)單!)

    在Nginx上部署前端Vue項(xiàng)目的詳細(xì)步驟(超級(jí)簡(jiǎn)單!)

    這篇文章主要介紹了在Nginx上部署前端Vue項(xiàng)目的詳細(xì)步驟,Nginx是一款高效的HTTP和反向代理Web服務(wù)器,作為開源軟件,Nginx以其高性能、可擴(kuò)展性和靈活性廣泛應(yīng)用于Web架構(gòu)中,文中將步驟介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • Vue內(nèi)聯(lián)處理器中訪問方法和訪問事件參數(shù)詳解

    Vue內(nèi)聯(lián)處理器中訪問方法和訪問事件參數(shù)詳解

    在 Vue 3 中,使用組合式 API 時(shí),可以通過內(nèi)聯(lián)事件處理器來直接在模板中編寫事件處理邏輯,內(nèi)聯(lián)事件處理器不僅可以直接執(zhí)行簡(jiǎn)單的操作,還可以調(diào)用組件中的方法,并訪問事件參數(shù),下面將詳細(xì)講解如何在內(nèi)聯(lián)事件處理器中調(diào)用方法以及訪問事件參數(shù),需要的朋友可以參考下
    2024-12-12

最新評(píng)論