');
minder.on('uiready', function() {
var shareView = minder.getUI('menu/share/m-share');
shareView.ready.then(function(){
treeData = addParentPointer(minder);
renderNodeData(treeData, minder, $curView);
renderNodeData(treeData, minder, $preView);
$('#km-list-view').append($curView);
$('#km-list-view').append($preView);
$preView.css('x', '100%');
$('#km-list-view').css('display', 'none');
});
});
var isListView = false; // mutex : 当前是否是列表视图
$switch.on('click', function(){
if (!isListView ){
$('#kityminder').css('display', 'none');
$('#km-list-view').css('display', 'block');
isListView = true;
} else {
$('#km-list-view').css('display', 'none');
$('#kityminder').css('display', 'block');
isListView = false;
}
});
$('#km-list-view').delegate('li', 'click', function(){
var preViewData = $(this).data();
if (preViewData.children) {
renderNodeData(preViewData, minder, $preView);
// $curView.css('x');
// console.log($preView.css('x'));
$preView.css('x', parseInt($curView.css('x')) + 100 + '%');
// console.log($preView.css('x'));
// $('#km-list-view').css('x', '0');
$('#km-list-view').transition({
x: parseInt($('#km-list-view').css('x')) - 100 + '%',
duration: 200,
easing: 'ease',
complete: function(){
var $temp = $curView;
$curView = $preView;
$preView = $temp;
}
});
if (preViewData.parent){
$('.back').css('display', 'block');
$('#km-cat').css('display', 'none');
}
}
});
$('.back').on('click', function(){
var parentViewData = $('.cur-root', $curView).data();
renderNodeData(parentViewData, minder, $preView);
$preView.css('x', parseInt($curView.css('x')) - 100 + '%');
// $curView.css('x');
// $('#km-list-view').css('x', '-100%');
$('#km-list-view').transition({
x: parseInt($('#km-list-view').css('x')) + 100 + '%',
duration: 200,
easing: 'ease',
complete: function(){
var $temp = $curView;
$curView = $preView;
$preView = $temp;
}
});
if (!parentViewData.parent){
$('.back').css('display', 'none');
$('#km-cat').css('display', 'block');
}
})
return $switch;
});
/**
* addParentPointer - 给 minder 的 json 数据增加 parent 指针
* @param minder - kityminder 实例
* @returns {*} - 增加了 parent 指针之后的 json 结构
*/
function addParentPointer(minder){
var root = minder.exportJson();
return AddParent(root);
}
/**
* AddParent - 递归的增加 parent 指针
* @param root - 传入的根节点
* @returns {*}
*/
function AddParent(root){
if (root.children){
$.each(root.children, function(idx, ele){
ele.parent = root;
AddParent(ele);
});
}
return root;
}
/**
* creadNodeData - 根据 json 结构创建好视图的 jQuery 对象
* @param node
* @param minder
* @returns {*} - 创建好的 jQuery 对象
*/
function renderNodeData(node, minder, $target){
var $curRoot = createRootNode(node, minder);
var $curList = $('
');
if (node.children){
$.each(node.children, function(idx, ele){
var $listNode = createListNode(ele, minder);
$curList.append($listNode);
});
}
// debugger;
return $target.html($curRoot.add($curList));
}
/**
* createRootNode - 创建当前根节点对应的 jQuery 对象
* @param node 节点的 jQuery 对象
* @param minder kityminder 实例
* @returns {*|jQuery|HTMLElement} 当前根节点的 jQuery 对象
*/
function createRootNode(node, minder){
var $root = $('');
$root.append(getNodeHtml(node, minder));
if (node.parent){
$root.data(node.parent);
}
return $root;
}
/**
* createListNode - 创建子节点对应的 jQuery 对象
* @param node 节点的 json 对象
* @param minder kityminder 实例
* @returns {*|jQuery|HTMLElement} 子节点的 jQuery 对象
*/
function createListNode(node, minder){
var $list = $('
- ');
$list.append(getNodeHtml(node, minder));
// 处理子节点
if (node.children){
$list.addClass('clickable');
$list.children().first().before('');
$list.data(node);
}
return $list;
}
/**
* getNodeHtml - 根据传入节点的 json 对象创建该节点的 html 数据
* @param node 节点的 json 对象
* @param minder kityminder 实例
* @returns {string} 返回的 html 字符串
*/
function getNodeHtml (node, minder){
var data = node.data;
var html = '';
// 处理优先级
if (data.priority){
html += ''
}
// 处理进度
if (data.progress){
html += ''
}
// 处理超链接
if (data.hyperlink) {
html +='';
}
// 处理资源
if (data.resource){
$.each(data.resource, function(idx, ele){
html += '' + ele + '' + ' ';
});
}
// 处理文字
if (data.text) {
html += '' + (data.text || '') + '';
}
return html;
}