vue中使用思维导图(jsmind)

本文介绍了如何在Vue2.x和Vue3的后台管理系统项目中安装并使用jsMind库来创建一个可编辑的思维导图,包括数据结构和组件的设置方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思维导图在开发中也是比较常见的需求了,尤其是后台管理系统之类的项目中,如果你还不会用,那么这篇文章可能对你有帮助

安装jsmind

npm install jsmind --save

vue2.x

<script>
import jsMind from 'jsmind'
import 'jsmind/draggable-node'
import 'jsmind/style/jsmind.css'

export default {
    data() {
        return {
            jsmind_options : {
                editable: true,
                theme: 'primary',
            },
            jsmind_data : {
                meta: {
			        name: 'demo',
			        author: 'test@example.com',
			        version: '0.2',
			    },
			    format: 'node_array',
			    data: [
			        { id: 'root', isroot: true, topic: 'jsMind' },
			        { id: 'sub1', parentid: 'root', topic: 'sub1' },
			        { id: 'sub11', parentid: 'sub1', topic: 'sub11' },
			        { id: 'sub12', parentid: 'sub1', topic: 'sub12' },
			        { id: 'sub13', parentid: 'sub1', topic: 'sub13' },
			
			        { id: 'sub2', parentid: 'root', topic: 'sub2' },
			        { id: 'sub21', parentid: 'sub2', topic: 'sub21' },
			        { id: 'sub22', parentid: 'sub2', topic: 'sub22' },
			
			        { id: 'sub3', parentid: 'root', topic: 'sub3' },
			    ],
            }
        }
    },
    mounted() {
        let options = Object.assign(this.jsmind_options, {
            container: this.$refs.jsmind_container
        });
        let jm = new jsMind(options);
        jm.show(this.jsmind_data);
    }
}
</script>

<style scoped>
    .jsmind-container {
        width: 1024px;
        height: 700px;
        border: solid 1px #ccc;
    }
</style>

<template>
    <div ref="jsmind_container" class="jsmind-container"></div>
</template>

vue3

<template>
  <div>
    <div ref="jsmindContainer" class="jsmind-container"></div>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue';
import JSMind from 'jsmind';
import "jsmind/draggable-node";
import "jsmind/style/jsmind.css";
const jsmindContainer = ref(null);//获取jsmindContainer的ref
let jsmind_options = ref({
  editable: true,
  theme: "primary",
});
let jsmind_data = ref({
  	meta: {
        name: 'demo',
        author: 'test@example.com',
        version: '0.2',
    },
    format: 'node_array',
    data: [
        { id: 'root', isroot: true, topic: 'jsMind' },
        { id: 'sub1', parentid: 'root', topic: 'sub1' },
        { id: 'sub11', parentid: 'sub1', topic: 'sub11' },
        { id: 'sub12', parentid: 'sub1', topic: 'sub12' },
        { id: 'sub13', parentid: 'sub1', topic: 'sub13' },

        { id: 'sub2', parentid: 'root', topic: 'sub2' },
        { id: 'sub21', parentid: 'sub2', topic: 'sub21' },
        { id: 'sub22', parentid: 'sub2', topic: 'sub22' },

        { id: 'sub3', parentid: 'root', topic: 'sub3' },
    ],
});
onMounted(() => {
  createMind();
});

const createMind = () => {
	let options = Object.assign(jsmind_options.value, {
	  container: jsmindContainer ,
	});
	let jm = new jsMind(options);
	jm.show(jsmind_data.value);
}
</script>

<style>
.jsmind-container {
  /* 给脑图容器添加一些样式 */
  border: 1px solid #ccc;
}
</style>

怎么样,是不是很简单

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值