1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 | import {isNumber} from 'tinper-sparrow/src/util';
|
7 |
|
8 | const eq = function (a, b) {
|
9 | if ((a === null || a === undefined || a === '') && (b === null || b === undefined || b === '')) return true;
|
10 |
|
11 |
|
12 | if (a + '' == b + '') return true;
|
13 | return false;
|
14 | }
|
15 |
|
16 |
|
17 | const _formatDate = function (value) {
|
18 | if (!value) return value
|
19 | var date = new Date();
|
20 | date.setTime(value);
|
21 |
|
22 | if (isNaN(date)){
|
23 | return value
|
24 | }
|
25 | var year = date.getFullYear();
|
26 | var month = date.getMonth() + 1;
|
27 | if (parseInt(month) < 10) month = "0" + month;
|
28 | var day = date.getDate();
|
29 | if (parseInt(day) < 10) day = "0" + day;
|
30 | var hours = date.getHours();
|
31 | if (parseInt(hours) < 10) hours = "0" + hours;
|
32 | var minutes = date.getMinutes();
|
33 | if (parseInt(minutes) < 10) minutes = "0" + minutes;
|
34 | var seconds = date.getSeconds();
|
35 | if (parseInt(seconds) < 10) seconds = "0" + seconds;
|
36 | var mill = date.getMilliseconds();
|
37 | var formatString = year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds ;
|
38 | return formatString;
|
39 | }
|
40 |
|
41 | const _dateToUTCString = function (date) {
|
42 | if (!date) return ''
|
43 | if(typeof date==='number')
|
44 | return date
|
45 | if (date.indexOf("-") > -1)
|
46 | date = date.replace(/\-/g, "/");
|
47 | var utcString = Date.parse(date);
|
48 | if (isNaN(utcString)) return "";
|
49 | return utcString;
|
50 | }
|
51 |
|
52 | const _triggerChange = function(rowObj,fieldName, oldValue, ctx){
|
53 | _getField(rowObj, fieldName).changed = true
|
54 | if (rowObj.status != Row.STATUS.NEW)
|
55 | rowObj.status = Row.STATUS.UPDATE
|
56 | if (rowObj.valueChange[fieldName])
|
57 | rowObj.valueChange[fieldName](-rowObj.valueChange[fieldName]())
|
58 | if (rowObj.parent.getCurrentRow() == rowObj && rowObj.parent.valueChange[fieldName]){
|
59 | rowObj.parent.valueChange[fieldName](-rowObj.parent.valueChange[fieldName]());
|
60 | }
|
61 | if (rowObj.parent.ns){
|
62 | var fName = rowObj.parent.ns + '.' + fieldName;
|
63 | if (rowObj.parent.root.valueChange[fName])
|
64 | rowObj.parent.root.valueChange[fName](-rowObj.parent.root.valueChange[fName]());
|
65 | }
|
66 |
|
67 | var event = {
|
68 | eventType: 'dataTableEvent',
|
69 | dataTable: rowObj.parent.id,
|
70 | rowId: rowObj.rowId,
|
71 | field: fieldName,
|
72 | oldValue: oldValue,
|
73 | newValue: rowObj.getValue(fieldName),
|
74 | ctx: ctx || "",
|
75 | rowObj: rowObj
|
76 | }
|
77 | rowObj.parent.trigger(DataTable.ON_VALUE_CHANGE, event);
|
78 | rowObj.parent.trigger(fieldName + "." + DataTable.ON_VALUE_CHANGE, event);
|
79 | if (rowObj == rowObj.parent.getCurrentRow())
|
80 | rowObj.parent.trigger(fieldName + "." + DataTable.ON_CURRENT_VALUE_CHANGE, event);
|
81 |
|
82 |
|
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 |
|
94 |
|
95 |
|
96 |
|
97 |
|
98 | const formatValue = function (field, value) {
|
99 | var type = this.parent.getMeta(field, 'type')
|
100 | if (!type) return value
|
101 | if (type == 'date' || type == 'datetime') {
|
102 | return _formatDate(value)
|
103 | }
|
104 | return value
|
105 | }
|
106 |
|
107 |
|
108 | const _findField = function(rowObj, fieldName){
|
109 | var rat = rowObj.data[fieldName];
|
110 | if (!rat) {
|
111 | var fnames = fieldName.split('.');
|
112 | if (fnames.length > 1){
|
113 | var tempField = rowObj.data;
|
114 | for (var i = 0; i < fnames.length; i++){
|
115 | tempField = tempField[fnames[i]];
|
116 | if(tempField.value instanceof DataTable){
|
117 | var row = tempField.value.getCurrentRow();
|
118 | if(row){
|
119 | tempField = row.data;
|
120 | }
|
121 | }
|
122 | if (!tempField){
|
123 | break;
|
124 | }
|
125 | }
|
126 | rat = tempField;
|
127 | }
|
128 | }
|
129 | return rat || null;
|
130 |
|
131 | }
|
132 |
|
133 | const _getField = function (rowObj, fieldName) {
|
134 | var rat = _findField(rowObj, fieldName);
|
135 | if (!rat) {
|
136 | var msg = 'field:' + fieldName + ' not exist in dataTable:' + rowObj.parent.root.id + '!'
|
137 | throw new Error(msg);
|
138 | }
|
139 | return rat;
|
140 | }
|
141 |
|
142 |
|
143 | export {
|
144 | eq,
|
145 | _dateToUTCString,
|
146 | _triggerChange,
|
147 | formatValue,
|
148 | _getField,
|
149 | _findField
|
150 | }
|