vue-minder-editor-extended

1.3.0 • Public • Published

Vue Minder Editor

基于 kityminder-core 实现的 Vue2 脑图编辑器组件。

Install

npm install vue-minder-editor-extended --save

Usage

注册组件:

import vueMinderEditor from 'vue-minder-editor-extended'
import Vue from 'vue'
Vue.use(vueMinderEditor)

使用组件:

<template>
  <div>
    <minder-editor :progress-enable="false" :import-json="importJson"/>
  </div>
</template>

<script>
import minderEditor from '../../dist/static/vue-minder-editor-extended'
import vue from 'vue'
vue.use(minderEditor);
export default {
  name: 'test-plugin',
  data() {
    return {
      importJson: {
        // 节点数据
        root: {
          data: {
            // 文本内容
            text: 'vue-minder-editor-extended',
            // 标签
            resource: ['模块1'],
            // 是否禁止修改
            disable: true,
            // 默认展开或折叠,默认是展开的,collapse 可设为折叠
            // expandState: 'collapse',
            // 在 disable 为 true 的情况下,允许添加标签
            tagEnable: true,
            // 在 disable 为 true 的情况下,允许删除节点
            allowDelete: true,
            // 在 disable 为 true 的情况下,允许添加标签,优先级比 tagEnable 高
            allowDisabledTag: true,
          },
          // 子节点
          children: [
            {
              data: {
                text: 'child1',
                disable: true,
                expandState: 'collapse',
                resource: ['模块2']
              },
              children: [
                {
                  data: {
                    text: 'child11',
                    disable: true,
                    resource: ['模块2']
                  },
                },
                {
                  data: {
                    text: 'child12',
                  }
                }
              ]
            },
            {
              data: {
                text: 'child2',
              }
            }
          ]
        },
      },
      tags:  ['模块1','模块2']
    }
  }
}
</script>

国际化

// 方式一
import locale from '/src/locale/lang/en-US'
Vue.use(vueMinderEditorExtended, {
  locale
});

// 方式二
import lang from '/src/locale/lang/en-US'
import locale from '/src/locale'
locale.use(lang)
Vue.use(vueMinderEditorExtended);

// 方式三
import Vue from 'vue';
import VueI18n from 'vue-i18n';
import enLocale from 'vue-minder-editor-extended/src/locale/lang/en-US';
import zhLocale from 'vue-minder-editor-extended/src/locale/lang/zh-CN';
import vueMinderEditor from 'vue-minder-editor-extended';

const messages = {
  en: {
    message: 'hello',
    ...enLocale
  },
  zh: {
    message: '你好',
    ...zhLocale
  }
}

Vue.use(VueI18n);

const i18n = new VueI18n({
  locale: 'en', // set locale
  messages, // set locale messages
})

Vue.use(vueMinderEditor, {
  i18n: (key, value) => i18n.t(key, value)
});

主题

Vue Minder Editor 组件已支持初始化时设置主题及注册主题,默认主题为 fresh-blue。

如需手动注册设置主题,允许使用的主题及其配置项可以使用 window.kityminder.Minder.getThemeList() 查询。

// 注册主题
window.kityminder.Theme.register('my-minder-theme', minderThemeItems)
// 设置主题
window.minder.useTheme('my-minder-theme')
// 或者
window.minder.execCommand('theme', 'my-minder-theme')

Props

以下配置部分为 kityminder-core 扩展的功能,kityminder-core 本身的 minder 对象提供了丰富的功能,使用该组件时可通过 window.minder 对象获取 minder 对象具体的使用方法,可以参考它的文档扩展 kityminder-core wiki 以及 #API 章节补充。

基础配置

Name Description Type Default
importJson 需要脑图解析的 js 对象,参数详情可参考上文 demo,或者调用 minder.exportJson() 查看具体参数 Object null
height 显示高度,默认 500px Number 500
theme 设置初始化主题,可选值使用 window.kityminder.Minder.getThemeList() 查询 String fresh-blue
disabled 是否禁止编辑 Boolean null
defaultMold 外观设置中样式的默认值 Number 3

启用配置

Name Description Type Default
sequenceEnable 是否启用优先级功能 Boolean true
tagEnable 是否启用标签功能 Boolean true
progressEnable 是否启用完成进度功能 Boolean true
moveEnable 是否启用上移下移功能 Boolean true

优先级配置

Name Description Type Default
priorities 优先级选项,当该参数不为空时 priorityCount, priorityStartWithZero, priorityPrefix 不生效 Array []
priorityCount 优先级最大显示数量,最多支持显示 9 个级别 Number 4
priorityStartWithZero 优先级是否从 0 开始 Boolean true
priorityPrefix 优先级显示的前缀 String 'P'
priorityDisableCheck 优先级设置的回调函数,如果返回 true 则无法设置优先级 Function null

标签配置

Name Description Type Default
tags 标签选项 Array []
distinctTags 定义排他标签,比如 ['tag1','tag2'], 则 tag1 不能和 tag2 共存 Array []
tagDisableCheck 菜单栏是否允许打标签的回调函数,返回 true 则不允许打标签 Function null
tagEditCheck 打标签时的回调函数,返回 false 则打标签不成功,参数为当前节点的标签数组 Function null

Slots

Name Description
- 在脑图区域自定义额外内容
edit-menu 在思维导图 tab 最后自定义额外内容
view-menu 在外观样式 tab 最后自定义额外内容

API

补充 kityminder-core wiki 中未说明的 API 文档。

minder

更多请查看 window.minder 对象或者 window.km 对象

  • window.minder.setTheme() 设置主题
  • window.minder.useTheme() 设置主题 (同 setTheme)
  • window.minder.getTheme() 获取当前主题
  • window.minder.getThemeItems() 获取当前主题的所有样式
  • window.minder.execCommand(command, params) 执行命令

execCommand 函数可用命令:

Name Description Params
theme 设置主题 String

kityminder

更多请查看 window.kityminder 对象

  • window.kityminder.Minder.getThemeList() 获取所有主题及主题配置项

minderEditor

更多请查看 window.minderEditor 对象

kity

更多请查看 window.kity 对象

HotBox

更多请查看 window.HotBox 对象

Build Setup

# npm install -g node-gyp
# install npm dependencies
npm install

# serve with hot reload at localhost:8088
npm run dev

# build for plugin with minification
npm run build

# License
BSD-3-Clause License

参考

Readme

Keywords

Package Sidebar

Install

npm i vue-minder-editor-extended

Weekly Downloads

1

Version

1.3.0

License

BSD 3-Clause

Unpacked Size

1.97 MB

Total Files

108

Last publish

Collaborators

  • lruihao