UNPKG

2.88 kBJavaScriptView Raw
1/**
2 * Module : kero dataTable row getSimpleData
3 * Author : liuyk(liuyk@yonyou.com)
4 * Date : 2016-08-08 13:54:01
5 */
6import { rowUtilFunObj } from './row-util';
7import { isEmptyObject } from 'tinper-sparrow/src/util';
8
9// 获取数据的核心方法
10var _getSimpleData = function _getSimpleData(rowObj, data) {
11 var _data = {};
12 var meta = rowObj.parent.getMeta() || {};
13 for (var key in data) {
14 if (key === 'meta' || isEmptyObject(data[key])) {
15 continue;
16 } else if (data[key].isChild) {
17 _data[key] = data[key].value ? data[key].value.getSimpleData() : {};
18 } else if (key === '$data') {
19 //处理一维数组: [1,2,3]
20 _data = data[key].value;
21 } else if (typeof data[key].value !== 'undefined') {
22 //如果类型为boolean,无论值为false、true都应该等于他本身
23 if (meta[key] && meta[key].type === 'boolean') {
24 _data[key] = data[key].value ? true : false; //默认值可能是null
25 } else {
26 _data[key] = data[key].value;
27 }
28 if (meta[key] && meta[key].type) {
29 var obj = {
30 meta: meta,
31 data: data,
32 key: key
33 };
34 _data[key] = rowObj.formatValueFun(obj, rowObj.parent.dateNoConvert);
35 }
36 } else if (!data[key].value) {
37 _data[key] = data[key].value;
38 } else {
39 _data[key] = _getSimpleData(rowObj, data[key]);
40 }
41 }
42 return _data;
43};
44
45// 对于日期获取值时进行转换
46var formatValueFun = function formatValueFun(obj, isDateNoConvert) {
47 var meta = obj.meta,
48 data = obj.data,
49 key = obj.key;
50 if (!isDateNoConvert && (meta[key].type == 'date' || meta[key].type == 'datetime')) {
51 return rowUtilFunObj._dateToUTCString(data[key].value);
52 }
53 return data[key].value;
54};
55
56/**
57 * 获取数据信息
58 * @memberof Row
59 * @param {object} [options] 获取数据信息时的配置参数
60 * @param {array} [options.fields] 获取数据信息时是否制定字段值
61 * @return {object} 数据信息
62 * @example
63 * row.getSimpleData()
64 * row.getSimpleData({fields:['field1','field2']})
65 */
66var getSimpleData = function getSimpleData(options) {
67 options = options || {};
68 var fields = options['fields'] || null;
69 var meta = this.parent.getMeta();
70 var data = this.data;
71 var _data = _getSimpleData(this, data); //{};
72 var _fieldsData = {};
73 if (fields) {
74 for (var key in _data) {
75 if (fields.indexOf(key) != -1) {
76 _fieldsData[key] = _data[key];
77 }
78 }
79 return _fieldsData;
80 }
81 return _data;
82};
83
84export var rowGetSimpleDataFunObj = {
85 formatValueFun: formatValueFun,
86 getSimpleData: getSimpleData
87};
\No newline at end of file