Feat:新增自定义节点粘贴图片时的处理函数选项
This commit is contained in:
parent
c0db185ca6
commit
bac174c8df
@ -244,5 +244,17 @@ export const defaultOpt = {
|
|||||||
// 比如向右拖动时,思维导图图形的最左侧到达画布中心时将无法继续向右拖动,其他同理
|
// 比如向右拖动时,思维导图图形的最左侧到达画布中心时将无法继续向右拖动,其他同理
|
||||||
isLimitMindMapInCanvas: false,
|
isLimitMindMapInCanvas: false,
|
||||||
// 当注册了滚动条插件(Scrollbar)时,是否将思维导图限制在画布内,isLimitMindMapInCanvas不再起作用
|
// 当注册了滚动条插件(Scrollbar)时,是否将思维导图限制在画布内,isLimitMindMapInCanvas不再起作用
|
||||||
isLimitMindMapInCanvasWhenHasScrollbar: true
|
isLimitMindMapInCanvasWhenHasScrollbar: true,
|
||||||
|
// 在节点上粘贴剪贴板中的图片的处理方法,默认是转换为data:url数据插入到节点中,你可以通过该方法来将图片数据上传到服务器,实现保存图片的url
|
||||||
|
// 可以传递一个异步方法,接收Blob类型的图片数据,需要返回如下结构:
|
||||||
|
/*
|
||||||
|
{
|
||||||
|
url, // 图片url
|
||||||
|
size: {
|
||||||
|
width, // 图片的宽度
|
||||||
|
height //图片的高度
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
handleNodePasteImg: null
|
||||||
}
|
}
|
||||||
|
|||||||
@ -895,8 +895,11 @@ class Render {
|
|||||||
|
|
||||||
// 粘贴
|
// 粘贴
|
||||||
async paste() {
|
async paste() {
|
||||||
const { errorHandler, handleIsSplitByWrapOnPasteCreateNewNode } =
|
const {
|
||||||
this.mindMap.opt
|
errorHandler,
|
||||||
|
handleIsSplitByWrapOnPasteCreateNewNode,
|
||||||
|
handleNodePasteImg
|
||||||
|
} = this.mindMap.opt
|
||||||
// 读取剪贴板的文字和图片
|
// 读取剪贴板的文字和图片
|
||||||
let text = null
|
let text = null
|
||||||
let img = null
|
let img = null
|
||||||
@ -999,7 +1002,13 @@ class Render {
|
|||||||
// 存在图片,则添加到当前激活节点
|
// 存在图片,则添加到当前激活节点
|
||||||
if (img) {
|
if (img) {
|
||||||
try {
|
try {
|
||||||
let imgData = await loadImage(img)
|
let imgData = null
|
||||||
|
// 自定义图片处理函数
|
||||||
|
if (handleNodePasteImg && typeof handleNodePasteImg === 'function') {
|
||||||
|
imgData = await handleNodePasteImg(img)
|
||||||
|
} else {
|
||||||
|
imgData = await loadImage(img)
|
||||||
|
}
|
||||||
if (this.activeNodeList.length > 0) {
|
if (this.activeNodeList.length > 0) {
|
||||||
this.activeNodeList.forEach(node => {
|
this.activeNodeList.forEach(node => {
|
||||||
this.mindMap.execCommand('SET_NODE_IMAGE', node, {
|
this.mindMap.execCommand('SET_NODE_IMAGE', node, {
|
||||||
|
|||||||
@ -338,6 +338,20 @@ export default {
|
|||||||
break
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// handleNodePasteImg: img => {
|
||||||
|
// console.log(img)
|
||||||
|
// return new Promise(resolve => {
|
||||||
|
// setTimeout(() => {
|
||||||
|
// resolve({
|
||||||
|
// url: require('../../../assets/img/themes/autumn.jpg'),
|
||||||
|
// size: {
|
||||||
|
// width: 100,
|
||||||
|
// height: 100
|
||||||
|
// }
|
||||||
|
// })
|
||||||
|
// }, 200)
|
||||||
|
// })
|
||||||
|
// }
|
||||||
// isUseCustomNodeContent: true,
|
// isUseCustomNodeContent: true,
|
||||||
// 示例1:组件里用到了router、store、i18n等实例化vue组件时需要用到的东西
|
// 示例1:组件里用到了router、store、i18n等实例化vue组件时需要用到的东西
|
||||||
// customCreateNodeContent: (node) => {
|
// customCreateNodeContent: (node) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user