您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
 
 
 
 

158 行
5.3 KiB

(function () {
//var oldData;
var html = '';
html += '<button class="diy input">',
html += '导入<input type="file" id="fileInput" accept=".km,.txt,.md,.json" >',
html += '</button>',
/*html += '<a class="diy output" href="">导出</a>'
html += '<ul><li><a href="#" class="diy export" data-type="json">导出json</a></li>',
html += '<li><a href="#" class="diy export" data-type="md">导出md</a></li>',
html += '<li><a href="#" class="diy export" data-type="km">导出km</a></li>',
html += '<li><a href="#" class="diy export" data-type="svg">导出svg</a></li>',
html += '<li><a href="#" class="diy export" data-type="txt">导出text</a></li>',
html += '<li><a href="#" class="diy export" data-type="png">导出png</a></li></ul>';*/
//html += '<a href="#" class="diy export" data-type="json">导出json</a>',
html += '<a href="#" class="diy export" data-type="km">导出km</a>',
//html += '<a href="#" class="diy export" data-type="svg">导出svg</a>',
html += '<a href="#" class="diy export" data-type="txt">导出txt</a>',
html += '<a href="#" class="diy export" data-type="md">导出md</a>',
html += '<a href="#" class="diy export" data-type="png">导出png</a>';
$('.editor-title').append(html);
$('.diy').css({
// 'height': '30px',
// 'line-height': '30px',
'margin-top': '0px',
'margin-left': '0px',
'float': 'left',
'background-color': '#393f4f',
'min-width': '60px',
'text-decoration': 'none',
color: '#fff',
'padding': '0 10px',
border: 'none',
//'border-left': '1px solid #ccc',
'border-right': '1px solid #ccc',
});
$('.input').css({
'overflow': 'hidden',
'position': 'relative',
}).find('input').css({
cursor: 'pointer',
position: 'absolute',
top: 0,
bottom: 0,
left: 0,
right: 0,
display: 'inline-block',
opacity: 0
});
$(document).on('click', '.export', function (event) {
event.preventDefault();
var $this = $(this),
type = $this.data('type'),
exportType;
switch (type) {
case 'km':
exportType = 'json';
break;
case 'md':
exportType = 'markdown';
break;
case 'svg':
exportType = 'svg';
break;
case 'txt':
exportType = 'text';
break;
case 'png':
exportType = 'png';
break;
default:
exportType = type;
break;
}
editor.minder.exportData(exportType).then(function (content) {
switch (exportType) {
case 'json':
console.log($.parseJSON(content));
break;
default:
console.log(content);
break;
}
var blob = new Blob();
switch (exportType) {
case 'png':
blob = dataURLtoBlob(content); //将base64编码转换为blob对象
break;
default:
blob = new Blob([content]);
break;
}
var a = document.createElement("a"); //建立标签,模拟点击下载
a.download = $('#node_text1').text() + '.' + type;
a.href = URL.createObjectURL(blob);
a.click();
});
});
// 导入
window.onload = function () {
var fileInput = document.getElementById('fileInput');
fileInput.addEventListener('change', function (e) {
var file = fileInput.files[0],
// textType = /(md|km)/,
fileType = file.name.substr(file.name.lastIndexOf('.') + 1);
console.log(file);
switch (fileType) {
case 'md':
fileType = 'markdown';
break;
case 'txt':
fileType = 'text';
break;
case 'km':
case 'json':
fileType = 'json';
break;
default:
console.log("File not supported!");
alert('只支持.km、.md、、text、.json文件');
return;
}
var reader = new FileReader();
reader.onload = function (e) {
var content = reader.result;
editor.minder.importData(fileType, content).then(function (data) {
console.log(data)
$(fileInput).val('');
});
}
reader.readAsText(file);
});
}
})();
//base64转换为图片blob
function dataURLtoBlob(dataurl) {
var arr = dataurl.split(',');
//注意base64的最后面中括号和引号是不转译的
var _arr = arr[1].substring(0, arr[1].length - 2);
var mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(_arr),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
return new Blob([u8arr], {
type: mime
});
}