cloud-web-corejs 1.0.54-dev.706 → 1.0.54-dev.707
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/xform/utils/format.js +195 -169
package/package.json
CHANGED
|
@@ -1,97 +1,118 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
function parseToDate(input) {
|
|
2
|
+
if (input == null || input === "") {
|
|
3
|
+
return null;
|
|
4
|
+
}
|
|
5
|
+
if (input instanceof Date) {
|
|
6
|
+
return isNaN(input.getTime()) ? null : input;
|
|
7
|
+
}
|
|
8
|
+
if (typeof input === "number") {
|
|
9
|
+
const ms = String(input).length === 10 ? input * 1000 : input;
|
|
10
|
+
const date = new Date(ms);
|
|
11
|
+
return isNaN(date.getTime()) ? null : date;
|
|
12
|
+
}
|
|
13
|
+
if (typeof input === "string") {
|
|
14
|
+
const trimmed = input.trim();
|
|
15
|
+
if (!trimmed) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
if (/^[0-9]+$/.test(trimmed)) {
|
|
19
|
+
const num = parseInt(trimmed, 10);
|
|
20
|
+
const ms = trimmed.length === 10 ? num * 1000 : num;
|
|
21
|
+
const date = new Date(ms);
|
|
22
|
+
return isNaN(date.getTime()) ? null : date;
|
|
23
|
+
}
|
|
24
|
+
const date = new Date(
|
|
25
|
+
trimmed.includes("-") ? trimmed.replace(/-/g, "/") : trimmed
|
|
26
|
+
);
|
|
27
|
+
return isNaN(date.getTime()) ? null : date;
|
|
28
|
+
}
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
3
31
|
|
|
4
|
-
function
|
|
5
|
-
|
|
6
|
-
|
|
32
|
+
function formatByPattern(date, pattern) {
|
|
33
|
+
const parsedDate = parseToDate(date);
|
|
34
|
+
if (!parsedDate) {
|
|
35
|
+
return date;
|
|
36
|
+
}
|
|
37
|
+
const pad = (n) => String(n).padStart(2, "0");
|
|
38
|
+
const tokens = {
|
|
39
|
+
YYYY: String(parsedDate.getFullYear()),
|
|
40
|
+
MM: pad(parsedDate.getMonth() + 1),
|
|
41
|
+
DD: pad(parsedDate.getDate()),
|
|
42
|
+
HH: pad(parsedDate.getHours()),
|
|
43
|
+
mm: pad(parsedDate.getMinutes()),
|
|
44
|
+
ss: pad(parsedDate.getSeconds()),
|
|
45
|
+
hh: pad(parsedDate.getHours() % 12 || 12),
|
|
46
|
+
};
|
|
47
|
+
let result = pattern;
|
|
48
|
+
Object.keys(tokens).forEach((key) => {
|
|
49
|
+
result = result.replace(key, tokens[key]);
|
|
50
|
+
});
|
|
51
|
+
return result;
|
|
7
52
|
}
|
|
8
53
|
|
|
9
54
|
export function formatDate1(date) {
|
|
10
|
-
|
|
11
|
-
return date;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// return dayjs(date).format('YYYY-MM-DD')
|
|
15
|
-
return moment(date).format('YYYY-MM-DD')
|
|
55
|
+
return formatByPattern(date, "YYYY-MM-DD");
|
|
16
56
|
}
|
|
17
57
|
|
|
18
58
|
export function formatDate2(date) {
|
|
19
|
-
|
|
20
|
-
return date;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
// return dayjs(date).format('YYYY/MM/DD')
|
|
24
|
-
return moment(date).format('YYYY/MM/DD')
|
|
59
|
+
return formatByPattern(date, "YYYY/MM/DD");
|
|
25
60
|
}
|
|
26
61
|
|
|
27
62
|
export function formatDate3(date) {
|
|
28
|
-
|
|
29
|
-
return date;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
// return dayjs(date).format('YYYY年MM月DD日')
|
|
33
|
-
return moment(date).format('YYYY年MM月DD日')
|
|
63
|
+
return formatByPattern(date, "YYYY年MM月DD日");
|
|
34
64
|
}
|
|
35
65
|
|
|
36
66
|
export function formatDate4(date) {
|
|
37
|
-
|
|
38
|
-
return date;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
// return dayjs(date).format('YYYY-MM-DD HH:mm:ss')
|
|
42
|
-
return moment(date).format('YYYY-MM-DD HH:mm:ss')
|
|
67
|
+
return formatByPattern(date, "YYYY-MM-DD HH:mm:ss");
|
|
43
68
|
}
|
|
44
69
|
|
|
45
70
|
export function formatDate5(date) {
|
|
46
|
-
|
|
47
|
-
return date;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
// return dayjs(date).format('YYYY-MM-DD hh:mm:ss')
|
|
51
|
-
return moment(date).format('YYYY-MM-DD hh:mm:ss')
|
|
71
|
+
return formatByPattern(date, "YYYY-MM-DD hh:mm:ss");
|
|
52
72
|
}
|
|
53
73
|
|
|
54
74
|
// ###,###,###,##0.######
|
|
55
75
|
export function formatNumber1(v) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
76
|
+
if (typeof v != "number") {
|
|
77
|
+
return v;
|
|
78
|
+
}
|
|
59
79
|
let length = getFixedSize(v);
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
80
|
+
switch (length) {
|
|
81
|
+
case 0:
|
|
82
|
+
v = v.toFixed(0);
|
|
83
|
+
break;
|
|
84
|
+
case 1:
|
|
85
|
+
v = v.toFixed(1);
|
|
86
|
+
break;
|
|
87
|
+
case 2:
|
|
88
|
+
v = v.toFixed(2);
|
|
89
|
+
break;
|
|
90
|
+
case 3:
|
|
91
|
+
v = v.toFixed(3);
|
|
92
|
+
break;
|
|
93
|
+
case 4:
|
|
94
|
+
v = v.toFixed(4);
|
|
95
|
+
break;
|
|
96
|
+
case 5:
|
|
97
|
+
v = v.toFixed(5);
|
|
98
|
+
break;
|
|
99
|
+
default:
|
|
100
|
+
v = v.toFixed(6);
|
|
101
|
+
}
|
|
102
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
103
|
+
// 先提取整数部分
|
|
104
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
105
|
+
return $1 + ",";
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
return res;
|
|
88
109
|
}
|
|
89
110
|
|
|
90
|
-
function getFixedSize(v){
|
|
111
|
+
function getFixedSize(v) {
|
|
91
112
|
let size = 0;
|
|
92
|
-
if(v!==null && v!==undefined){
|
|
113
|
+
if (v !== null && v !== undefined) {
|
|
93
114
|
let arr = v.toString().split(".");
|
|
94
|
-
if(arr.length>1){
|
|
115
|
+
if (arr.length > 1) {
|
|
95
116
|
size = arr[1].length;
|
|
96
117
|
}
|
|
97
118
|
}
|
|
@@ -99,123 +120,128 @@ function getFixedSize(v){
|
|
|
99
120
|
}
|
|
100
121
|
//###,###,###,##0.00####
|
|
101
122
|
export function formatNumber2(v) {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
123
|
+
if (typeof v != "number") {
|
|
124
|
+
return v;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
let length = getFixedSize(v);
|
|
128
|
+
switch (length) {
|
|
129
|
+
case 0:
|
|
130
|
+
case 1:
|
|
131
|
+
case 2:
|
|
132
|
+
v = v.toFixed(2);
|
|
133
|
+
break;
|
|
134
|
+
case 3:
|
|
135
|
+
v = v.toFixed(3);
|
|
136
|
+
break;
|
|
137
|
+
case 4:
|
|
138
|
+
v = v.toFixed(4);
|
|
139
|
+
break;
|
|
140
|
+
case 5:
|
|
141
|
+
v = v.toFixed(5);
|
|
142
|
+
break;
|
|
143
|
+
default:
|
|
144
|
+
v = v.toFixed(6);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
148
|
+
// 先提取整数部分
|
|
149
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
150
|
+
return $1 + ",";
|
|
151
|
+
});
|
|
152
|
+
});
|
|
153
|
+
return res;
|
|
132
154
|
}
|
|
133
155
|
|
|
134
156
|
// ###,###,###,##0.000000
|
|
135
157
|
export function formatNumber3(v) {
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
158
|
+
if (typeof v != "number") {
|
|
159
|
+
return v;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
v = v.toFixed(6);
|
|
163
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
164
|
+
// 先提取整数部分
|
|
165
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
166
|
+
return $1 + ",";
|
|
167
|
+
});
|
|
168
|
+
});
|
|
169
|
+
return res;
|
|
147
170
|
}
|
|
148
171
|
// ###,###,###,##0.000
|
|
149
172
|
export function formatNumber4(v) {
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
173
|
+
if (typeof v != "number") {
|
|
174
|
+
return v;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
v = v.toFixed(3);
|
|
178
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
179
|
+
// 先提取整数部分
|
|
180
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
181
|
+
return $1 + ",";
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
return res;
|
|
161
185
|
}
|
|
162
186
|
|
|
163
187
|
// ###,###,###,##0.00
|
|
164
188
|
export function formatNumber5(v) {
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
189
|
+
if (typeof v != "number") {
|
|
190
|
+
return v;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
v = v.toFixed(2);
|
|
194
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
195
|
+
// 先提取整数部分
|
|
196
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
197
|
+
return $1 + ",";
|
|
198
|
+
});
|
|
199
|
+
});
|
|
200
|
+
return res;
|
|
176
201
|
}
|
|
177
202
|
|
|
178
203
|
// ###,###,###,##0
|
|
179
204
|
export function formatNumber6(v) {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
205
|
+
if (typeof v != "number") {
|
|
206
|
+
return v;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
v = v.toFixed(0);
|
|
210
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
211
|
+
// 先提取整数部分
|
|
212
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
213
|
+
return $1 + ",";
|
|
214
|
+
});
|
|
215
|
+
});
|
|
216
|
+
return res;
|
|
191
217
|
}
|
|
192
218
|
|
|
193
219
|
// ###,##0.00##%
|
|
194
220
|
export function formatNumber7(v) {
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
let length = getFixedSize(v);
|
|
200
|
-
v = v*100
|
|
201
|
-
switch(length){
|
|
202
|
-
case 0:
|
|
203
|
-
case 1:
|
|
204
|
-
case 2:
|
|
205
|
-
v = v.toFixed(2)
|
|
206
|
-
break;
|
|
207
|
-
case 3:
|
|
208
|
-
v = v.toFixed(3)
|
|
209
|
-
break;
|
|
210
|
-
default:
|
|
211
|
-
v = v.toFixed(4)
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
let res = v.toString().replace(/\d+/, function(n){ // 先提取整数部分
|
|
215
|
-
return n.replace(/(\d)(?=(\d{3})+$)/g,function($1){
|
|
216
|
-
return $1+",";
|
|
217
|
-
});
|
|
218
|
-
})
|
|
219
|
-
return res+'%';
|
|
220
|
-
}
|
|
221
|
+
if (typeof v != "number") {
|
|
222
|
+
return v;
|
|
223
|
+
}
|
|
221
224
|
|
|
225
|
+
let length = getFixedSize(v);
|
|
226
|
+
v = v * 100;
|
|
227
|
+
switch (length) {
|
|
228
|
+
case 0:
|
|
229
|
+
case 1:
|
|
230
|
+
case 2:
|
|
231
|
+
v = v.toFixed(2);
|
|
232
|
+
break;
|
|
233
|
+
case 3:
|
|
234
|
+
v = v.toFixed(3);
|
|
235
|
+
break;
|
|
236
|
+
default:
|
|
237
|
+
v = v.toFixed(4);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
let res = v.toString().replace(/\d+/, function (n) {
|
|
241
|
+
// 先提取整数部分
|
|
242
|
+
return n.replace(/(\d)(?=(\d{3})+$)/g, function ($1) {
|
|
243
|
+
return $1 + ",";
|
|
244
|
+
});
|
|
245
|
+
});
|
|
246
|
+
return res + "%";
|
|
247
|
+
}
|