feat: 增加默认配置fit,支持初始化的时候是否fit view

This commit is contained in:
wanghao1993 2023-09-17 18:42:29 +08:00
parent 1452fd2a28
commit e063724ab6
3 changed files with 34 additions and 33 deletions

View File

@ -36,7 +36,8 @@ class MindMap {
// 画布宽高 // 画布宽高
this.width = this.elRect.width this.width = this.elRect.width
this.height = this.elRect.height this.height = this.elRect.height
if (this.width <= 0 || this.height <= 0) throw new Error('容器元素el的宽高不能为0') if (this.width <= 0 || this.height <= 0)
throw new Error('容器元素el的宽高不能为0')
// 添加css // 添加css
this.cssEl = null this.cssEl = null
@ -87,7 +88,7 @@ class MindMap {
}) })
// 初始渲染 // 初始渲染
this.render() this.render(this.opt.fit ? () => this.view.fit() : () => {})
setTimeout(() => { setTimeout(() => {
this.command.addHistory() this.command.addHistory()
}, 0) }, 0)
@ -360,7 +361,7 @@ class MindMap {
// 克隆一份数据 // 克隆一份数据
let clone = svg.clone() let clone = svg.clone()
// 添加必要的样式 // 添加必要的样式
clone.add(SVG(`<style>${ cssContent }</style>`)) clone.add(SVG(`<style>${cssContent}</style>`))
// 如果实际图形宽高超出了屏幕宽高,且存在水印的话需要重新绘制水印,否则会出现超出部分没有水印的问题 // 如果实际图形宽高超出了屏幕宽高,且存在水印的话需要重新绘制水印,否则会出现超出部分没有水印的问题
if ( if (
(rect.width > origWidth || rect.height > origHeight) && (rect.width > origWidth || rect.height > origHeight) &&

View File

@ -186,5 +186,7 @@ export const defaultOpt = {
// 删除节点后激活相邻节点 // 删除节点后激活相邻节点
deleteNodeActive: true, deleteNodeActive: true,
// 拖拽节点时鼠标移动到画布边缘是否开启画布自动移动 // 拖拽节点时鼠标移动到画布边缘是否开启画布自动移动
autoMoveWhenMouseInEdgeOnDrag: true autoMoveWhenMouseInEdgeOnDrag: true,
// 是否首次加载fit view
fit: false
} }

View File

@ -12,10 +12,7 @@
<ShortcutKey></ShortcutKey> <ShortcutKey></ShortcutKey>
<Contextmenu v-if="mindMap" :mindMap="mindMap"></Contextmenu> <Contextmenu v-if="mindMap" :mindMap="mindMap"></Contextmenu>
<RichTextToolbar v-if="mindMap" :mindMap="mindMap"></RichTextToolbar> <RichTextToolbar v-if="mindMap" :mindMap="mindMap"></RichTextToolbar>
<NodeNoteContentShow <NodeNoteContentShow v-if="mindMap" :mindMap="mindMap"></NodeNoteContentShow>
v-if="mindMap"
:mindMap="mindMap"
></NodeNoteContentShow>
<NodeImgPreview v-if="mindMap" :mindMap="mindMap"></NodeImgPreview> <NodeImgPreview v-if="mindMap" :mindMap="mindMap"></NodeImgPreview>
<SidebarTrigger v-if="!isZenMode"></SidebarTrigger> <SidebarTrigger v-if="!isZenMode"></SidebarTrigger>
<Search v-if="mindMap" :mindMap="mindMap"></Search> <Search v-if="mindMap" :mindMap="mindMap"></Search>
@ -268,7 +265,7 @@ export default {
if (hasFileURL) { if (hasFileURL) {
root = { root = {
"data": { "data": {
"text": "根节点" "text": "根节点"
}, },
"children": [] "children": []
} }
@ -279,6 +276,7 @@ export default {
this.mindMap = new MindMap({ this.mindMap = new MindMap({
el: this.$refs.mindMapContainer, el: this.$refs.mindMapContainer,
data: root, data: root,
fit: true,
layout: layout, layout: layout,
theme: theme.template, theme: theme.template,
themeConfig: theme.config, themeConfig: theme.config,
@ -346,31 +344,31 @@ export default {
this.mindMap.keyCommand.addShortcut('Control+s', () => { this.mindMap.keyCommand.addShortcut('Control+s', () => {
this.manualSave() this.manualSave()
}) })
// //
;[ ;[
'node_active', 'node_active',
'data_change', 'data_change',
'view_data_change', 'view_data_change',
'back_forward', 'back_forward',
'node_contextmenu', 'node_contextmenu',
'node_click', 'node_click',
'draw_click', 'draw_click',
'expand_btn_click', 'expand_btn_click',
'svg_mousedown', 'svg_mousedown',
'mouseup', 'mouseup',
'mode_change', 'mode_change',
'node_tree_render_end', 'node_tree_render_end',
'rich_text_selection_change', 'rich_text_selection_change',
'transforming-dom-to-images', 'transforming-dom-to-images',
'generalization_node_contextmenu', 'generalization_node_contextmenu',
'painter_start', 'painter_start',
'painter_end', 'painter_end',
'scrollbar_change' 'scrollbar_change'
].forEach(event => { ].forEach(event => {
this.mindMap.on(event, (...args) => { this.mindMap.on(event, (...args) => {
this.$bus.$emit(event, ...args) this.$bus.$emit(event, ...args)
})
}) })
})
this.bindSaveEvent() this.bindSaveEvent()
// setTimeout(() => { // setTimeout(() => {
// //