# js生成思维导图
**Repository Path**: zjq528/js_generate_mind_map
## Basic Information
- **Project Name**: js生成思维导图
- **Description**: js生成思维导图xmind
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 6
- **Created**: 2021-11-25
- **Last Updated**: 2021-11-25
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## kmsjsmap
思维导图JS库,对hizzgdev大神的库进行二次封装,扩展右键菜单,包含拖拽节点等功能。
## DEMO
https://leochan2017.github.io/kms-jsmind/
## 如何使用
- 引入样式
```
```
- 引入JS库
```
```
## API 说明
### kmsjsmap.init(Object)
地图初始化函数
参数 | 类型 | 是否必填 | 说明
--------- | ------------- | -------- | -----
container | String | 是 | 容器元素ID
data | Array(Object) | 否 | 初始数据
editable | Boolean | 否 | 是否允许编辑
onRelation | Function | 否 | 点击右键菜单"关联"时的回调,返回当前操作节点的信息
#### data 说明
参数 | 类型 | 是否必填 | 说明
--------- | ------- | -------- | -----
id | String | 是 | 当前节点的ID
parentid | String | 是 | 父节点的ID
topic | String | 是 | 当前节点的内容文字
direction | Boolean | 否 | 当前节点的方向,此数据仅在第一层节点上有效,目前仅支持 left 和 right[默认] 两种
badge | Number | 否 | 当前节点的右上角小图标,如不传或传入0则不显示
expanded | Boolean | 否 | 是否默认展开该节点
isLink | Boolean | 否 | 是否链接状态
#### 调用示例
```
kmsjsmap.init({
container: "jsmind_container",
data: [
{ "id": "root", "isroot": true, "topic": "华北大魏有限公司" },
{ "id": "sub1", "parentid": "root", "topic": "君主", "badge": 20, "direction": "left" },
{ "id": "sub12", "parentid": "sub1", "topic": "曹操", "badge": 30 },
{ "id": "sub121", "parentid": "sub1", "topic": "曹丕", "badge": 44 },
{ "id": "sub122", "parentid": "sub1", "topic": "曹叡", "badge": 44 },
{ "id": "sub123", "parentid": "sub1", "topic": "曹芳", "badge": 44 },
{ "id": "sub2", "parentid": "root", "topic": "军师", "badge": 66, "direction": "right" },
{ "id": "sub21", "parentid": "sub2", "topic": "郭嘉", "badge": 233 },
{ "id": "sub22", "parentid": "sub2", "topic": "荀彧", "badge": 9 },
{ "id": "sub23", "parentid": "sub2", "topic": "司马懿", "badge": 7, "isLink": true },
{ "id": "sub24", "parentid": "sub2", "topic": "贾诩", "badge": 77 },
{ "id": "sub3", "parentid": "root", "topic": "大将", "badge": 45, "direction": "right" },
{ "id": "sub31", "parentid": "sub3", "topic": "典韦", "badge": 1 },
{ "id": "sub32", "parentid": "sub3", "topic": "夏侯惇", "badge": 2 },
{ "id": "sub33", "parentid": "sub3", "topic": "于禁", "badge": 3 },
{ "id": "sub34", "parentid": "sub3", "topic": "许褚", "badge": 4, "expanded": false },
{ "id": "sub341", "parentid": "sub34", "topic": "士兵甲"},
{ "id": "sub342", "parentid": "sub34", "topic": "士兵乙"}
],
editable: true,
onRelation: function(item) {
console.log('当前选择中的是', item)
kmsjsmap.setLinkStatus({
id: item.id,
isLink: true
})
}
})
```
---
### kmsjsmap.save(Function)
获取当前视图数据
### 返回参数
参数 | 类型 | 说明
-----| ---- | -----
data | Array(Object) | 当前视图数据
#### 调用示例
```
// html:
保存
// js:
$('#saveBtn').click(function() {
kmsjsmap.save(function(data) {
console.log('啦啦啦啦', data)
})
})
```
---
### kmsjsmap.screenshot()
对当前视图进行截图
### 返回参数
参数 | 类型 | 说明
-----| ---- | -----
File | PNG | 当前title.png
#### 调用示例
```
// html:
截图
// js:
$('#screenShot').click(function() {
kmsjsmap.screenshot()
})
```
---
### kmsjsmap.setLinkStatus(Object)
对某个节点设置链接状态
### 参数
参数 | 类型 | 是否必填 | 说明
------ | ------- | -------- | -----
id | String | 是 | 节点id
isLink | Boolean | 是 | 是否链接状态,默认:FALSE
#### 调用示例
```
kmsjsmap.setLinkStatus({
id: item.id,
isLink: true
})
```