kero
Version:
<img src="http://tinper.org/assets/images/kero.png" width="120" style="max-width:100%;"/>
66 lines (61 loc) • 2.26 kB
JavaScript
/***
* Module : kero dataTable row init
* Author : liuyk(liuyk@yonyou.com)
* Date : 2016-08-08 13:54:01
*/
// row的初始化方法
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 const rowInitFunObj = {
init: init
}