UNPKG

5.23 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports._findField = exports._getField = exports.formatValue = exports._triggerChange = exports._dateToUTCString = exports.eq = undefined;
7
8var _util = require('tinper-sparrow/src/util');
9
10var eq = function eq(a, b) {
11 if ((a === null || a === undefined || a === '') && (b === null || b === undefined || b === '')) return true;
12 //判断输入的值是否相等,a,b是字符串直接比较这两个值即可,没必要判断是否是数据,判断是否是数据使用parseFloat转换有时精度不准(431027199110.078573)
13 //if (isNumber(a) && isNumber(b) && parseFloat(a) == parseFloat(b)) return true;
14 if (a + '' == b + '') return true;
15 return false;
16}; /**
17 * Module : kero dataTable row util
18 * Author : liuyk(liuyk@yonyou.com)
19 * Date : 2016-08-08 13:54:01
20 */
21
22
23var _formatDate = function _formatDate(value) {
24 if (!value) return value;
25 var date = new Date();
26 date.setTime(value);
27 //如果不能转为Date 直接返回原值
28 if (isNaN(date)) {
29 return value;
30 }
31 var year = date.getFullYear();
32 var month = date.getMonth() + 1;
33 if (parseInt(month) < 10) month = "0" + month;
34 var day = date.getDate();
35 if (parseInt(day) < 10) day = "0" + day;
36 var hours = date.getHours();
37 if (parseInt(hours) < 10) hours = "0" + hours;
38 var minutes = date.getMinutes();
39 if (parseInt(minutes) < 10) minutes = "0" + minutes;
40 var seconds = date.getSeconds();
41 if (parseInt(seconds) < 10) seconds = "0" + seconds;
42 var mill = date.getMilliseconds();
43 var formatString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; //+ "." + mill;
44 return formatString;
45};
46
47var _dateToUTCString = function _dateToUTCString(date) {
48 if (!date) return '';
49 if (typeof date === 'number') return date;
50 if (date.indexOf("-") > -1) date = date.replace(/\-/g, "/");
51 var utcString = Date.parse(date);
52 if (isNaN(utcString)) return "";
53 return utcString;
54};
55
56var _triggerChange = function _triggerChange(rowObj, fieldName, oldValue, ctx) {
57 _getField(rowObj, fieldName).changed = true;
58 if (rowObj.status != Row.STATUS.NEW) rowObj.status = Row.STATUS.UPDATE;
59 if (rowObj.valueChange[fieldName]) rowObj.valueChange[fieldName](-rowObj.valueChange[fieldName]());
60 if (rowObj.parent.getCurrentRow() == rowObj && rowObj.parent.valueChange[fieldName]) {
61 rowObj.parent.valueChange[fieldName](-rowObj.parent.valueChange[fieldName]());
62 }
63 if (rowObj.parent.ns) {
64 var fName = rowObj.parent.ns + '.' + fieldName;
65 if (rowObj.parent.root.valueChange[fName]) rowObj.parent.root.valueChange[fName](-rowObj.parent.root.valueChange[fName]());
66 }
67
68 var event = {
69 eventType: 'dataTableEvent',
70 dataTable: rowObj.parent.id,
71 rowId: rowObj.rowId,
72 field: fieldName,
73 oldValue: oldValue,
74 newValue: rowObj.getValue(fieldName),
75 ctx: ctx || "",
76 rowObj: rowObj
77 };
78 rowObj.parent.trigger(DataTable.ON_VALUE_CHANGE, event);
79 rowObj.parent.trigger(fieldName + "." + DataTable.ON_VALUE_CHANGE, event);
80 if (rowObj == rowObj.parent.getCurrentRow()) rowObj.parent.trigger(fieldName + "." + DataTable.ON_CURRENT_VALUE_CHANGE, event);
81
82 // 对于多级字表需要触发顶层div的valuechange事件
83 if (rowObj.parent.ns) {
84 event.fullField = fName;
85 event.ns = rowObj.parent.ns;
86 rowObj.parent.root.trigger(DataTable.ON_VALUE_CHANGE, event);
87 rowObj.parent.root.trigger(fName + "." + DataTable.ON_VALUE_CHANGE, event);
88 }
89};
90
91/**
92 * 格式化数据值
93 * @private
94 * @param {Object} field
95 * @param {Object} value
96 */
97var formatValue = function formatValue(field, value) {
98 var type = this.parent.getMeta(field, 'type');
99 if (!type) return value;
100 if (type == 'date' || type == 'datetime') {
101 return _formatDate(value);
102 }
103 return value;
104};
105
106var _findField = function _findField(rowObj, fieldName) {
107 var rat = rowObj.data[fieldName];
108 if (!rat) {
109 var fnames = fieldName.split('.'); //多级field
110 if (fnames.length > 1) {
111 var tempField = rowObj.data;
112 for (var i = 0; i < fnames.length; i++) {
113 tempField = tempField[fnames[i]];
114 if (tempField.value instanceof DataTable) {
115 var row = tempField.value.getCurrentRow();
116 if (row) {
117 tempField = row.data;
118 }
119 }
120 if (!tempField) {
121 break;
122 }
123 }
124 rat = tempField;
125 }
126 }
127 return rat || null;
128};
129
130var _getField = function _getField(rowObj, fieldName) {
131 var rat = _findField(rowObj, fieldName);
132 if (!rat) {
133 var msg = 'field:' + fieldName + ' not exist in dataTable:' + rowObj.parent.root.id + '!';
134 throw new Error(msg);
135 }
136 return rat;
137};
138
139exports.eq = eq;
140exports._dateToUTCString = _dateToUTCString;
141exports._triggerChange = _triggerChange;
142exports.formatValue = formatValue;
143exports._getField = _getField;
144exports._findField = _findField;
\No newline at end of file