UNPKG

2.26 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// row的初始化方法
8const init = function() {
9 var meta = this.parent.meta;
10
11 for (var key in meta) {
12 var targetData;
13 if (key.indexOf('.') > 0) {
14 var keys = key.split('.');
15 targetData = this.data[keys[0]] = this.data[keys[0]] || {};
16 for (var i = 1; i < keys.length; i++) {
17 targetData[keys[i]] = targetData[keys[i]] || {};
18 targetData = targetData[keys[i]];
19 }
20 } else {
21 this.data[key] = this.data[key] || {}
22 targetData = this.data[key];
23 }
24 targetData.value = null;
25 //this.data[key] = {}
26 //处理子表
27 if (meta[key]['type'] && meta[key]['type'] === 'child') {
28 targetData.isChild = true;
29 //ns 是多级数据时的空间名: 最顶层的dataTable没有ns。 f1.f2.f3
30 var ns = this.parent.ns === '' ? key : this.parent.ns + '.' + key
31 targetData.value = new u.DataTable({
32 root: this.parent.root,
33 ns: ns,
34 meta: meta[key]['meta']
35 });
36 }
37 //添加默认值
38 else if (meta[key]['default']) {
39 var defaults = meta[key]['default']
40 if (typeof defaults === 'object') {
41 for (var k in defaults) {
42 if (k == 'value') {
43 if (typeof defaults[k] === 'function')
44 targetData.value = this.formatValue(key, defaults[k]());
45 else
46 targetData.value = this.formatValue(key, defaults[k]);
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 const rowInitFunObj = {
64 init: init
65}