/**
*
* @authors yutent (yutent@doui.cc)
* @date 2017-04-14 21:04:50
*
*/
"use strict";
define(['yua', 'css!./skin/def.css'], function(){
//储存版本信息
yua.ui.tree = '0.0.1'
var box = '
',
ul = '',
li = ''
+ '{child}';
function repeat(arr, name){
var html = ''
arr.forEach(function(it, i){
var from = name + '[' + i + ']',
child = '';
html += li.replace(/\{it\}/g, from);
if(it.children){
child += repeat(it.children, from +'.children')
child = ul.replace('{li}', child).replace('{it}', from)
}
if(child){
}
html = html.replace(/\{child\}/, child)
})
return html
}
return yua.component('tree', {
$template: '',
$construct: function(base, opt, attr){
if(!opt.from && !attr.from){
throw new Error('tree组件必须传入「from」属性')
}
var from = attr.from || opt.from,
arr = base.$up[from].$model,
tpl = repeat(arr, from)
delete attr.from
delete opt.from
yua.mix(base, opt, attr)
base.skin = base.skin || 'def'
tpl = box.replace('{li}', tpl).replace('{skin}', base.skin)
base.$template = tpl
return base
},
$init: function(vm){
vm.$click = function(obj){
if(vm.$onClick){
vm.$onClick(obj)
}
}
},
$click: yua.noop,
$toggle: function(obj){
obj.open = !obj.open
}
})
})