@lambo-design/shared 1.0.0-beta.1
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/config/config.js +25 -0
- package/config/env.js +4 -0
- package/config/index.js +3 -0
- package/config/themes/default/default.css +241 -0
- package/config/themes/default/default.less +319 -0
- package/config/themes/default/var.less +314 -0
- package/config/themes/gold/default.css +241 -0
- package/config/themes/gold/default.less +319 -0
- package/config/themes/gold/var.less +314 -0
- package/config/themes/index.js +10 -0
- package/config/themes/lime/default.css +241 -0
- package/config/themes/lime/default.less +319 -0
- package/config/themes/lime/var.less +314 -0
- package/config/themes/theme-default.js +252 -0
- package/config/themes/theme-gold.js +252 -0
- package/config/themes/theme-lime.js +252 -0
- package/index.js +3 -0
- package/package.json +20 -0
- package/styles/variables.less +21 -0
- package/utils/ajax/cacheconf.js +19 -0
- package/utils/ajax/index.js +12 -0
- package/utils/ajax/interceptors.js +90 -0
- package/utils/assist.js +79 -0
- package/utils/bus.js +3 -0
- package/utils/crypto/index.js +38 -0
- package/utils/crypto/md5.js +152 -0
- package/utils/crypto/sm3.js +235 -0
- package/utils/date.js +352 -0
- package/utils/dom.js +38 -0
- package/utils/excel.js +523 -0
- package/utils/index.js +5 -0
- package/utils/lodop.js +160 -0
- package/utils/modelerUtil.js +224 -0
- package/utils/number.js +123 -0
- package/utils/platform.js +519 -0
- package/utils/theme.js +43 -0
- package/utils/zoomScroll.js +9 -0
- package/vendor/xlsx-0.19.1.tgz +0 -0
package/utils/date.js
ADDED
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import config from '../config/config'
|
|
2
|
+
/**
|
|
3
|
+
* 时间工具类
|
|
4
|
+
* 本项目已集成 moment.js (http://momentjs.cn/),推荐使用 moment.js
|
|
5
|
+
*/
|
|
6
|
+
import moment from "moment";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* 对Date的扩展,将 Date 转化为指定格式的String
|
|
10
|
+
* 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符,
|
|
11
|
+
* 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
|
|
12
|
+
* 例:
|
|
13
|
+
* (new Date()).Format("yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
|
|
14
|
+
* (new Date()).Format("yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
|
|
15
|
+
*/
|
|
16
|
+
Date.prototype.Format = function (fmt) {
|
|
17
|
+
let o = {
|
|
18
|
+
"M+": this.getMonth() + 1, //月份
|
|
19
|
+
"d+": this.getDate(), //日
|
|
20
|
+
"H+": this.getHours(), //小时
|
|
21
|
+
"m+": this.getMinutes(), //分
|
|
22
|
+
"s+": this.getSeconds(), //秒
|
|
23
|
+
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
|
|
24
|
+
"S": this.getMilliseconds() //毫秒
|
|
25
|
+
};
|
|
26
|
+
if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
|
|
27
|
+
for (let k in o)
|
|
28
|
+
if (new RegExp("(" + k + ")").test(fmt)){
|
|
29
|
+
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)))
|
|
30
|
+
}
|
|
31
|
+
return fmt;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export function timestampToTime(timestamp) {
|
|
35
|
+
let date = new Date(timestamp);
|
|
36
|
+
let Y = date.getFullYear() + '-';
|
|
37
|
+
let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
|
|
38
|
+
let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
|
|
39
|
+
let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
|
|
40
|
+
let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
|
|
41
|
+
let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
|
|
42
|
+
return Y + M + D + " " + h + m + s;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export function formatterTimestamp(timestamp) {
|
|
46
|
+
let days = Math.floor(timestamp / (24 * 3600 * 1000))
|
|
47
|
+
//计算出小时数
|
|
48
|
+
let leave1 = timestamp % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
|
|
49
|
+
let hours = Math.floor(leave1 / (3600 * 1000))
|
|
50
|
+
//计算相差分钟数
|
|
51
|
+
let leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
|
|
52
|
+
let minutes = Math.floor(leave2 / (60 * 1000))
|
|
53
|
+
//计算相差秒数
|
|
54
|
+
let leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
|
|
55
|
+
let seconds = Math.round(leave3 / 1000)
|
|
56
|
+
return days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒";
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
export const handleExpiredTime = (expiredTime, handle) => {
|
|
60
|
+
// 剩余天数
|
|
61
|
+
let leftDays = moment(expiredTime).diff(moment(), "day");
|
|
62
|
+
// 剩余天数小于等于config.LeftLockDays天提醒用户修改密码
|
|
63
|
+
if (leftDays <= config.LeftLockDays) {
|
|
64
|
+
handle(leftDays);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// 取年
|
|
69
|
+
export const getFullYear = function (str) {
|
|
70
|
+
if (str == null) {
|
|
71
|
+
return new Date().getFullYear();
|
|
72
|
+
}
|
|
73
|
+
return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$1');
|
|
74
|
+
}
|
|
75
|
+
// 取月
|
|
76
|
+
export const getMonth = function (str) {
|
|
77
|
+
if (str == null) {
|
|
78
|
+
return new Date().getMonth();
|
|
79
|
+
}
|
|
80
|
+
return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$2');
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
// 取日
|
|
84
|
+
export const getDate = function (str) {
|
|
85
|
+
if (str == null) {
|
|
86
|
+
return new Date().getDate();
|
|
87
|
+
}
|
|
88
|
+
return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$3');
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// 取时
|
|
92
|
+
export const getHours = function (str) {
|
|
93
|
+
if (str == null) {
|
|
94
|
+
return new Date().getHours();
|
|
95
|
+
}
|
|
96
|
+
return str.replace(/(\d{2})\:(\d{2})\:(\d{2})/g, '$1');
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
// 取分
|
|
100
|
+
export const getMinutes = function (str) {
|
|
101
|
+
if (str == null) {
|
|
102
|
+
return new Date().getMinutes();
|
|
103
|
+
}
|
|
104
|
+
return str.replace(/(\d{2})\:(\d{2})\:(\d{2})/g, '$2');
|
|
105
|
+
}
|
|
106
|
+
//日期计算,返回yyyyMMdd
|
|
107
|
+
export const getBeforeOrNextDay = function (day, n , split) {
|
|
108
|
+
if (!split) {
|
|
109
|
+
split = ''
|
|
110
|
+
}
|
|
111
|
+
let paramDay = day;
|
|
112
|
+
let newDay = new Date(paramDay.substring(0, 4) + "/" + paramDay.substring(4, 6) + "/" + paramDay.substring(6, 8));
|
|
113
|
+
let ystDay = new Date(newDay.getTime() + 24 * 60 * 60 * 1000 * n);
|
|
114
|
+
let y = ystDay.getFullYear();
|
|
115
|
+
let m = ystDay.getMonth() + 1;
|
|
116
|
+
let d = ystDay.getDate();
|
|
117
|
+
if (m < 10) {
|
|
118
|
+
m = '0' + m;
|
|
119
|
+
}
|
|
120
|
+
if (d < 10) {
|
|
121
|
+
d = '0' + d;
|
|
122
|
+
}
|
|
123
|
+
return y + split + m + split + d;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
//js除法计算
|
|
127
|
+
export const accDiv = function (arg1, arg2) {
|
|
128
|
+
let t1 = 0, t2 = 0, r1, r2;
|
|
129
|
+
try {
|
|
130
|
+
t1 = arg1.toString().split(".")[1].length
|
|
131
|
+
} catch (e) {
|
|
132
|
+
}
|
|
133
|
+
try {
|
|
134
|
+
t2 = arg2.toString().split(".")[1].length
|
|
135
|
+
} catch (e) {
|
|
136
|
+
}
|
|
137
|
+
r1 = Number(arg1.toString().replace(".", ""))
|
|
138
|
+
r2 = Number(arg2.toString().replace(".", ""))
|
|
139
|
+
return (r1 / r2) * Math.pow(10, t2 - t1);
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
//js乘法计算
|
|
143
|
+
export const accMul = function (arg1, arg2) {
|
|
144
|
+
let m = 0, s1 = arg1.toString(), s2 = arg2.toString();
|
|
145
|
+
try {
|
|
146
|
+
m += s1.split(".")[1].length
|
|
147
|
+
} catch (e) {
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
m += s2.split(".")[1].length
|
|
151
|
+
} catch (e) {
|
|
152
|
+
}
|
|
153
|
+
return accDiv(Number(s1.replace(".", "")) * Number(s2.replace(".", "")), Math.pow(10, m));
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
//js加法计算
|
|
157
|
+
export const accAdd = function (arg1, arg2) {
|
|
158
|
+
let r1, r2, m;
|
|
159
|
+
try {
|
|
160
|
+
r1 = arg1.toString().split(".")[1].length
|
|
161
|
+
} catch (e) {
|
|
162
|
+
r1 = 0
|
|
163
|
+
}
|
|
164
|
+
try {
|
|
165
|
+
r2 = arg2.toString().split(".")[1].length
|
|
166
|
+
} catch (e) {
|
|
167
|
+
r2 = 0
|
|
168
|
+
}
|
|
169
|
+
m = Math.pow(10, Math.max(r1, r2));
|
|
170
|
+
return accDiv((accMul(arg1, m) + accMul(arg2, m)), m);
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
//js减法计算
|
|
174
|
+
export const accSub = function (arg1, arg2) {
|
|
175
|
+
let r1, r2, m;
|
|
176
|
+
try {
|
|
177
|
+
r1 = arg1.toString().split(".")[1].length
|
|
178
|
+
} catch (e) {
|
|
179
|
+
r1 = 0
|
|
180
|
+
}
|
|
181
|
+
try {
|
|
182
|
+
r2 = arg2.toString().split(".")[1].length
|
|
183
|
+
} catch (e) {
|
|
184
|
+
r2 = 0
|
|
185
|
+
}
|
|
186
|
+
m = Math.pow(10, Math.max(r1, r2));
|
|
187
|
+
return accDiv((accMul(arg1, m) - accMul(arg2, m)), m);
|
|
188
|
+
};
|
|
189
|
+
|
|
190
|
+
export const formatterSizeUnit = function (size) {
|
|
191
|
+
if (size) {
|
|
192
|
+
let result = parseInt(size);
|
|
193
|
+
if (result < 1024) {
|
|
194
|
+
return result + " B";
|
|
195
|
+
} else if (result < 1024 * 1024) {
|
|
196
|
+
return parseInt(result / 1024) + " KB";
|
|
197
|
+
} else if (result < 1024 * 1024 * 1024) {
|
|
198
|
+
return parseInt(result / (1024 * 1024)) + " MB";
|
|
199
|
+
} else {
|
|
200
|
+
return parseInt(result / (1024 * 1024 * 1024)) + " GB";
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
//获取每月有几周(注:从第一个周一开始算该月第一周)
|
|
206
|
+
export const getWeeks=function(year, month) {
|
|
207
|
+
let d = new Date();
|
|
208
|
+
// 该月第一天
|
|
209
|
+
d.setFullYear(year, month-1, 1);
|
|
210
|
+
let w1 = d.getDay();
|
|
211
|
+
if (w1 == 0) w1 = 7;
|
|
212
|
+
// 该月天数
|
|
213
|
+
d.setFullYear(year, month, 0);
|
|
214
|
+
let dd = d.getDate();
|
|
215
|
+
// 第一个周一
|
|
216
|
+
let d1;
|
|
217
|
+
if (w1 != 1) d1 = 7 - w1 + 2;
|
|
218
|
+
else d1 = 1;
|
|
219
|
+
let week_count = Math.ceil((dd-d1+1)/7);
|
|
220
|
+
return week_count;
|
|
221
|
+
};
|
|
222
|
+
|
|
223
|
+
//根据年月周获取该周从周一到周日的日期
|
|
224
|
+
export const getWeekTime=function(year, month,weekday) {
|
|
225
|
+
let d = new Date();
|
|
226
|
+
// 该月第一天
|
|
227
|
+
d.setFullYear(year, month-1, 1);
|
|
228
|
+
let w1 = d.getDay();
|
|
229
|
+
if (w1 == 0) w1 = 7;
|
|
230
|
+
// 该月天数
|
|
231
|
+
d.setFullYear(year, month, 0);
|
|
232
|
+
let dd = d.getDate();
|
|
233
|
+
// 第一个周一
|
|
234
|
+
let d1;
|
|
235
|
+
if (w1 != 1) d1 = 7 - w1 + 2;
|
|
236
|
+
else d1 = 1;
|
|
237
|
+
let monday = d1+(weekday-1)*7;
|
|
238
|
+
let sunday = monday + 6;
|
|
239
|
+
let from = year+"-"+month;
|
|
240
|
+
let showFrom = month;
|
|
241
|
+
if(monday < 10){
|
|
242
|
+
from += "-0"+ monday;
|
|
243
|
+
showFrom += ".0" + monday;
|
|
244
|
+
}else{
|
|
245
|
+
from += "-"+ monday;
|
|
246
|
+
showFrom += "." + monday;
|
|
247
|
+
}
|
|
248
|
+
let to = "";
|
|
249
|
+
let showTo = "";
|
|
250
|
+
if (sunday <= dd) {
|
|
251
|
+
to = year+"-"+month;
|
|
252
|
+
showTo = month;
|
|
253
|
+
if(sunday < 10){
|
|
254
|
+
to += "-0"+sunday;
|
|
255
|
+
showTo += ".0"+sunday;
|
|
256
|
+
}else{
|
|
257
|
+
to += "-"+sunday;
|
|
258
|
+
showTo += "."+sunday;
|
|
259
|
+
}
|
|
260
|
+
} else {
|
|
261
|
+
d.setFullYear(year, month-1, sunday);
|
|
262
|
+
let days=d.getDate();
|
|
263
|
+
to = d.getFullYear();
|
|
264
|
+
if(d.getMonth()+1 < 10){
|
|
265
|
+
to += "-0"+ (d.getMonth()+1);
|
|
266
|
+
showTo += "0"+ (d.getMonth()+1);
|
|
267
|
+
}else{
|
|
268
|
+
to += "-"+ (d.getMonth()+1);
|
|
269
|
+
showTo += "" + (d.getMonth()+1);
|
|
270
|
+
}
|
|
271
|
+
if(days < 10){
|
|
272
|
+
to += "-0"+days;
|
|
273
|
+
showTo += ".0"+days;
|
|
274
|
+
}else{
|
|
275
|
+
to += "-"+days;
|
|
276
|
+
showTo += "."+days;
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return {
|
|
280
|
+
str:"("+ showFrom + "-" + showTo + ")",
|
|
281
|
+
from:from,
|
|
282
|
+
to:to
|
|
283
|
+
};
|
|
284
|
+
};
|
|
285
|
+
|
|
286
|
+
//获得当前日期在当月第几周
|
|
287
|
+
export const getMonthWeek=function(a, b, c) {
|
|
288
|
+
let date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate();
|
|
289
|
+
return Math.ceil(
|
|
290
|
+
(d) / 7
|
|
291
|
+
);
|
|
292
|
+
};
|
|
293
|
+
|
|
294
|
+
//获取每月第几周的周一的日期
|
|
295
|
+
export const getMondayTime =function(year, month,weekday) {
|
|
296
|
+
let d = new Date();
|
|
297
|
+
// 该月第一天
|
|
298
|
+
d.setFullYear(year, month-1, 1);
|
|
299
|
+
let w1 = d.getDay();
|
|
300
|
+
if (w1 == 0) w1 = 7;
|
|
301
|
+
// 该月天数
|
|
302
|
+
d.setFullYear(year, month, 0);
|
|
303
|
+
let dd = d.getDate();
|
|
304
|
+
// 第一个周一
|
|
305
|
+
let d1;
|
|
306
|
+
if (w1 != 1) d1 = 7 - w1 + 2;
|
|
307
|
+
else d1 = 1;
|
|
308
|
+
let monday = d1+(weekday-1)*7;
|
|
309
|
+
return monday;
|
|
310
|
+
};
|
|
311
|
+
//获取周一的日期
|
|
312
|
+
export const getMonDate = function(year,month,day) {
|
|
313
|
+
let d=new Date();
|
|
314
|
+
if(year && month && day){
|
|
315
|
+
d.setFullYear(year);
|
|
316
|
+
d.setMonth(month-1);
|
|
317
|
+
d.setDate(day);
|
|
318
|
+
}
|
|
319
|
+
day = d.getDay();
|
|
320
|
+
let date=d.getDate();
|
|
321
|
+
if(day==1)
|
|
322
|
+
return d;
|
|
323
|
+
if(day==0)
|
|
324
|
+
d.setDate(date-6);
|
|
325
|
+
else
|
|
326
|
+
d.setDate(date-day+1);
|
|
327
|
+
return d;
|
|
328
|
+
};
|
|
329
|
+
//获取上一周的周数
|
|
330
|
+
export const getLastWeek=function(year,month,day){
|
|
331
|
+
let date = getMonDate(year,month,day);
|
|
332
|
+
date.setDate(date.getDate()-7);
|
|
333
|
+
let finalYear = date.getFullYear();
|
|
334
|
+
let finalMonth = date.getMonth()+1;
|
|
335
|
+
if(finalMonth<10){
|
|
336
|
+
finalMonth = "0" + finalMonth;
|
|
337
|
+
}
|
|
338
|
+
let finalWeek = getMonthWeek(finalYear,finalMonth,date.getDate());
|
|
339
|
+
return finalYear + finalMonth + finalWeek;
|
|
340
|
+
};
|
|
341
|
+
//获取下一周的周数
|
|
342
|
+
export const getNextWeek=function(year,month,day){
|
|
343
|
+
let date = getMonDate(year,month,day);
|
|
344
|
+
date.setDate(date.getDate()+7);
|
|
345
|
+
let finalYear = date.getFullYear();
|
|
346
|
+
let finalMonth = date.getMonth()+1;
|
|
347
|
+
if(finalMonth<10){
|
|
348
|
+
finalMonth = "0" + finalMonth;
|
|
349
|
+
}
|
|
350
|
+
let finalWeek = getMonthWeek(finalYear,finalMonth,date.getDate());
|
|
351
|
+
return finalYear + finalMonth + finalWeek;
|
|
352
|
+
};
|
package/utils/dom.js
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
|
|
2
|
+
/**
|
|
3
|
+
* @description 绑定事件 on(element, event, handler)
|
|
4
|
+
*/
|
|
5
|
+
export const on = (function () {
|
|
6
|
+
if (document.addEventListener) {
|
|
7
|
+
return function (element, event, handler) {
|
|
8
|
+
if (element && event && handler) {
|
|
9
|
+
element.addEventListener(event, handler, false)
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
} else {
|
|
13
|
+
return function (element, event, handler) {
|
|
14
|
+
if (element && event && handler) {
|
|
15
|
+
element.attachEvent('on' + event, handler)
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
})()
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* @description 解绑事件 off(element, event, handler)
|
|
23
|
+
*/
|
|
24
|
+
export const off = (function () {
|
|
25
|
+
if (document.removeEventListener) {
|
|
26
|
+
return function (element, event, handler) {
|
|
27
|
+
if (element && event) {
|
|
28
|
+
element.removeEventListener(event, handler, false)
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
} else {
|
|
32
|
+
return function (element, event, handler) {
|
|
33
|
+
if (element && event) {
|
|
34
|
+
element.detachEvent('on' + event, handler)
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
})()
|