UNPKG

2.18 kBJavaScriptView Raw
1/**
2 * Module : kero dataTable row init
3 * Author : liuyk(liuyk@yonyou.com)
4 * Date : 2016-08-08 13:54:01
5 */
6
7 /**
8 * Row初始化方法
9 * @private
10 */
11const init = function () {
12 var meta = this.parent.meta;
13
14 for (var key in meta) {
15 var targetData;
16 if (key.indexOf('.') > 0){
17 var keys = key.split('.');
18 targetData = this.data[keys[0]] = this.data[keys[0]] || {};
19 for(var i = 1; i< keys.length; i++){
20 targetData[keys[i]] = targetData[keys[i]] || {};
21 targetData = targetData[keys[i]];
22 }
23 }else{
24 this.data[key] = this.data[key] || {}
25 targetData = this.data[key];
26 }
27 targetData.value = null;
28 //this.data[key] = {}
29 //处理子表
30 if (meta[key]['type'] && meta[key]['type'] === 'child'){
31 targetData.isChild = true;
32 //ns 是多级数据时的空间名: 最顶层的dataTable没有ns。 f1.f2.f3
33 var ns = this.parent.ns === '' ? key : this.parent.ns + '.' + key
34 targetData.value = new u.DataTable({root:this.parent.root,ns:ns,meta:meta[key]['meta']});
35 }
36 //添加默认值
37 else if (meta[key]['default']) {
38 var defaults = meta[key]['default']
39 if (typeof defaults === 'object'){
40 for (var k in defaults) {
41 if (k == 'value'){
42 if (typeof defaults[k] === 'function')
43 targetData.value = this.formatValue(key,defaults[k]());
44 else
45 targetData.value = this.formatValue(key,defaults[k]);
46 }
47 else {
48 targetData.meta = targetData.meta || {}
49 targetData.meta[k] = defaults[k]
50 }
51 }
52 }else{
53 if (typeof defaults === 'function')
54 targetData.value = this.formatValue(key, defaults());
55 else
56 targetData.value = this.formatValue(key,defaults);
57 }
58 }
59 }
60}
61
62
63export {
64 init
65}
\No newline at end of file