kero
Version:
65 lines (61 loc) • 2.18 kB
JavaScript
/**
* Module : kero dataTable row init
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-08-08 13:54:01
*/
/**
* Row初始化方法
* @private
*/
const init = function () {
var meta = this.parent.meta;
for (var key in meta) {
var targetData;
if (key.indexOf('.') > 0){
var keys = key.split('.');
targetData = this.data[keys[0]] = this.data[keys[0]] || {};
for(var i = 1; i< keys.length; i++){
targetData[keys[i]] = targetData[keys[i]] || {};
targetData = targetData[keys[i]];
}
}else{
this.data[key] = this.data[key] || {}
targetData = this.data[key];
}
targetData.value = null;
//this.data[key] = {}
//处理子表
if (meta[key]['type'] && meta[key]['type'] === 'child'){
targetData.isChild = true;
//ns 是多级数据时的空间名: 最顶层的dataTable没有ns。 f1.f2.f3
var ns = this.parent.ns === '' ? key : this.parent.ns + '.' + key
targetData.value = new u.DataTable({root:this.parent.root,ns:ns,meta:meta[key]['meta']});
}
//添加默认值
else if (meta[key]['default']) {
var defaults = meta[key]['default']
if (typeof defaults === 'object'){
for (var k in defaults) {
if (k == 'value'){
if (typeof defaults[k] === 'function')
targetData.value = this.formatValue(key,defaults[k]());
else
targetData.value = this.formatValue(key,defaults[k]);
}
else {
targetData.meta = targetData.meta || {}
targetData.meta[k] = defaults[k]
}
}
}else{
if (typeof defaults === 'function')
targetData.value = this.formatValue(key, defaults());
else
targetData.value = this.formatValue(key,defaults);
}
}
}
}
export {
init
}