@lambo-design/shared 1.0.0-beta.32 → 1.0.0-beta.321

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.
Files changed (236) hide show
  1. package/config/config.js +20 -3
  2. package/config/index.js +7 -2
  3. package/config/locale.js +61 -0
  4. package/config/themes/atrovirens/atrovirens.css +589 -0
  5. package/config/themes/atrovirens/atrovirens.css.map +1 -0
  6. package/config/themes/atrovirens/atrovirens.less +680 -0
  7. package/config/themes/atrovirens/var.less +688 -0
  8. package/config/themes/blue/blue.css +589 -0
  9. package/config/themes/blue/blue.css.map +1 -0
  10. package/config/themes/blue/blue.less +683 -0
  11. package/config/themes/blue/var.less +691 -0
  12. package/config/themes/blue-white/blue-white.css +589 -0
  13. package/config/themes/blue-white/blue-white.css.map +1 -0
  14. package/config/themes/blue-white/blue-white.less +684 -0
  15. package/config/themes/blue-white/var.less +690 -0
  16. package/config/themes/blue-white-big/blue-white-big.css +589 -0
  17. package/config/themes/blue-white-big/blue-white-big.css.map +1 -0
  18. package/config/themes/blue-white-big/blue-white-big.less +684 -0
  19. package/config/themes/blue-white-big/var.less +690 -0
  20. package/config/themes/blue-white-tight/blue-white-tight.css +590 -0
  21. package/config/themes/blue-white-tight/blue-white-tight.css.map +1 -0
  22. package/config/themes/blue-white-tight/blue-white-tight.less +684 -0
  23. package/config/themes/blue-white-tight/var.less +692 -0
  24. package/config/themes/canglan/canglan.css +588 -0
  25. package/config/themes/canglan/canglan.css.map +1 -0
  26. package/config/themes/canglan/canglan.less +681 -0
  27. package/config/themes/canglan/var.less +692 -0
  28. package/config/themes/cuiwei/cuiwei.css +589 -0
  29. package/config/themes/cuiwei/cuiwei.css.map +1 -0
  30. package/config/themes/cuiwei/cuiwei.less +681 -0
  31. package/config/themes/cuiwei/var.less +690 -0
  32. package/config/themes/danqing/danqing.css +589 -0
  33. package/config/themes/danqing/danqing.css.map +1 -0
  34. package/config/themes/danqing/danqing.less +681 -0
  35. package/config/themes/danqing/danqing.wxss +576 -0
  36. package/config/themes/danqing/var.less +695 -0
  37. package/config/themes/deep/deep.css +589 -0
  38. package/config/themes/deep/deep.css.map +1 -0
  39. package/config/themes/deep/deep.less +681 -0
  40. package/config/themes/deep/var.less +693 -0
  41. package/config/themes/default/default.css +403 -57
  42. package/config/themes/default/default.css.map +1 -1
  43. package/config/themes/default/default.less +380 -16
  44. package/config/themes/default/var.less +389 -11
  45. package/config/themes/eap/eap.css +589 -0
  46. package/config/themes/eap/eap.css.map +1 -0
  47. package/config/themes/eap/eap.less +684 -0
  48. package/config/themes/eap/var.less +692 -0
  49. package/config/themes/gold/gold.css +589 -0
  50. package/config/themes/gold/gold.css.map +1 -0
  51. package/config/themes/gold/gold.less +684 -0
  52. package/config/themes/gold/var.less +385 -5
  53. package/config/themes/index.js +26 -4
  54. package/config/themes/lime/lime.css +589 -0
  55. package/config/themes/lime/lime.css.map +1 -0
  56. package/config/themes/lime/lime.less +684 -0
  57. package/config/themes/lime/var.less +384 -5
  58. package/config/themes/orange/orange.css +353 -7
  59. package/config/themes/orange/orange.css.map +1 -1
  60. package/config/themes/orange/orange.less +365 -0
  61. package/config/themes/orange/var.less +385 -5
  62. package/config/themes/red/red.css +353 -7
  63. package/config/themes/red/red.css.map +1 -1
  64. package/config/themes/red/red.less +365 -0
  65. package/config/themes/red/var.less +385 -5
  66. package/config/themes/sichuan/sichuan.css +589 -0
  67. package/config/themes/sichuan/sichuan.css.map +1 -0
  68. package/config/themes/sichuan/sichuan.less +684 -0
  69. package/config/themes/sichuan/var.less +690 -0
  70. package/config/themes/theme-atrovirens.js +571 -0
  71. package/config/themes/theme-blue.js +571 -0
  72. package/config/themes/theme-bw.js +571 -0
  73. package/config/themes/theme-bwb.js +571 -0
  74. package/config/themes/theme-bwt.js +572 -0
  75. package/config/themes/theme-canglan.js +573 -0
  76. package/config/themes/theme-cuiwei.js +573 -0
  77. package/config/themes/theme-danqing.js +574 -0
  78. package/config/themes/theme-deep.js +571 -0
  79. package/config/themes/theme-default.js +378 -60
  80. package/config/themes/theme-eap.js +571 -0
  81. package/config/themes/theme-gold.js +326 -8
  82. package/config/themes/theme-lime.js +326 -8
  83. package/config/themes/theme-orange.js +560 -29
  84. package/config/themes/theme-red.js +563 -33
  85. package/config/themes/theme-sichuan.js +571 -0
  86. package/config/themes/theme-white.js +571 -0
  87. package/config/themes/white/var.less +691 -0
  88. package/config/themes/white/white.css +589 -0
  89. package/config/themes/white/white.css.map +1 -0
  90. package/config/themes/white/white.less +684 -0
  91. package/directives/module/print.js +1 -0
  92. package/directives/module/vue-print-nb/README.md +63 -0
  93. package/directives/module/vue-print-nb/print.js +94 -0
  94. package/directives/module/vue-print-nb/printarea.js +532 -0
  95. package/index.js +7 -1
  96. package/nstyles/common.less +197 -0
  97. package/nstyles/components/404.less +46 -0
  98. package/nstyles/components/button.less +34 -0
  99. package/nstyles/components/date-picker.less +41 -0
  100. package/nstyles/components/drawer.less +20 -0
  101. package/nstyles/components/dropdown.less +18 -0
  102. package/nstyles/components/excel-flow.less +72 -0
  103. package/nstyles/components/form.less +314 -0
  104. package/nstyles/components/index.less +23 -0
  105. package/nstyles/components/layout/collect.less +10 -0
  106. package/nstyles/components/layout/detail-view.less +107 -0
  107. package/nstyles/components/layout/full-screen.less +7 -0
  108. package/nstyles/components/layout/index.less +7 -0
  109. package/nstyles/components/layout/other-menu.less +142 -0
  110. package/nstyles/components/layout/page-view.less +101 -0
  111. package/nstyles/components/layout/sider-trigger.less +41 -0
  112. package/nstyles/components/layout/tags-nav.less +113 -0
  113. package/nstyles/components/modal.less +90 -0
  114. package/nstyles/components/n-button.less +131 -0
  115. package/nstyles/components/n-image-preview.less +131 -0
  116. package/nstyles/components/n-model/index.less +19 -0
  117. package/nstyles/components/n-model/report-index.less +43 -0
  118. package/nstyles/components/n-panel.less +41 -0
  119. package/nstyles/components/n-picker.less +37 -0
  120. package/nstyles/components/n-sign.less +17 -0
  121. package/nstyles/components/n-tooltip.less +10 -0
  122. package/nstyles/components/panel.less +31 -0
  123. package/nstyles/components/select.less +3 -0
  124. package/nstyles/components/sign.less +27 -0
  125. package/nstyles/components/table.less +413 -0
  126. package/nstyles/components/tree.less +166 -0
  127. package/nstyles/components/upload.less +174 -0
  128. package/nstyles/index.less +5 -0
  129. package/nstyles/reset.less +73 -0
  130. package/nstyles/third/ag.less +226 -0
  131. package/nstyles/third/icons/sort-desc.svg +1 -0
  132. package/nstyles/third/icons/sort-up.svg +1 -0
  133. package/nstyles/third/icons/sorting.svg +1 -0
  134. package/nstyles/third/index.less +11 -0
  135. package/nstyles/third/view-design.less +378 -0
  136. package/nstyles/variables/base.less +143 -0
  137. package/nstyles/variables/index.less +4 -0
  138. package/nstyles/variables/theme/default/button.less +7 -0
  139. package/nstyles/variables/theme/default/common.less +60 -0
  140. package/nstyles/variables/theme/default/index.less +7 -0
  141. package/nstyles/variables/theme/default/layout.less +40 -0
  142. package/nstyles/variables/theme/default/table.less +37 -0
  143. package/nstyles/variables/theme/default/tag.less +3 -0
  144. package/nstyles/variables/theme/default/upload.less +3 -0
  145. package/nstyles/variables/theme/index.less +13 -0
  146. package/nstyles/variables/theme/lsv/button.less +7 -0
  147. package/nstyles/variables/theme/lsv/common.less +39 -0
  148. package/nstyles/variables/theme/lsv/index.less +5 -0
  149. package/nstyles/variables/theme/lsv/layout.less +21 -0
  150. package/nstyles/variables/theme/lsv/table.less +20 -0
  151. package/nstyles/variables/theme/lsv/tag.less +3 -0
  152. package/nstyles/variables/theme/small/button.less +7 -0
  153. package/nstyles/variables/theme/small/common.less +41 -0
  154. package/nstyles/variables/theme/small/index.less +5 -0
  155. package/nstyles/variables/theme/small/layout.less +21 -0
  156. package/nstyles/variables/theme/small/table.less +17 -0
  157. package/nstyles/variables/theme/small/tag.less +3 -0
  158. package/package.json +28 -7
  159. package/plugin/index.js +12 -0
  160. package/plugin/module/date-format.js +30 -0
  161. package/plugin/module/loading.js +26 -0
  162. package/plugin/module/warn-handler.js +11 -0
  163. package/styles/image/indicator-card-header.png +0 -0
  164. package/styles/image/inspur.png +0 -0
  165. package/styles/image/lan_navigator.png +0 -0
  166. package/styles/image/layout-header-bg-canglan.png +0 -0
  167. package/styles/image/layout-header-bg-cuiwei.png +0 -0
  168. package/styles/image/lv_navigator.png +0 -0
  169. package/utils/ajax/abort-controller.js +70 -0
  170. package/utils/ajax/cancel-reason.js +25 -0
  171. package/utils/ajax/cancel-token.js +83 -0
  172. package/utils/ajax/content-type.js +30 -0
  173. package/utils/ajax/headers.js +11 -0
  174. package/utils/ajax/interceptors.js +45 -10
  175. package/utils/ajax/sseFetchUtil.js +118 -0
  176. package/utils/ajax/throttle.js +49 -0
  177. package/utils/assist.js +155 -27
  178. package/utils/base64.js +126 -0
  179. package/utils/blob.js +47 -0
  180. package/utils/context-menu.js +65 -0
  181. package/utils/crypto/aes.js +23 -0
  182. package/utils/crypto/index.js +10 -0
  183. package/utils/crypto/rsa.js +23 -0
  184. package/utils/date.js +334 -305
  185. package/utils/dict/built-in-dict.js +20 -0
  186. package/utils/dict/index.js +191 -0
  187. package/utils/event.js +72 -0
  188. package/utils/excel.js +502 -290
  189. package/utils/file.js +19 -0
  190. package/utils/form/validate.js +29 -0
  191. package/utils/half-year.js +68 -0
  192. package/utils/index.js +37 -0
  193. package/utils/json.js +44 -0
  194. package/utils/locale/en-US.js +174 -0
  195. package/utils/locale/zh-CN.js +174 -0
  196. package/utils/lodop.js +5 -0
  197. package/utils/menu/index.js +292 -15
  198. package/utils/mime_type.js +67 -0
  199. package/utils/modelerUtil.js +4 -1
  200. package/utils/n/api.js +38 -0
  201. package/utils/n/date.js +57 -0
  202. package/utils/n/index.js +10 -0
  203. package/utils/n/is-type.js +176 -0
  204. package/utils/n/number.js +144 -0
  205. package/utils/n/permission-cache.js +11 -0
  206. package/utils/n/reuqest/axiosN.js +17 -0
  207. package/utils/n/reuqest/content-type.js +19 -0
  208. package/utils/n/reuqest/interceptors.js +95 -0
  209. package/utils/n/reuqest/url-params.js +12 -0
  210. package/utils/n/storage.js +51 -0
  211. package/utils/n/token.js +51 -0
  212. package/utils/n/user-cache.js +11 -0
  213. package/utils/n/user.js +34 -0
  214. package/utils/n/uuid.js +16 -0
  215. package/utils/n-generator-routers.js +208 -0
  216. package/utils/n-router.js +205 -0
  217. package/utils/n-theme.js +30 -0
  218. package/utils/number.js +72 -15
  219. package/utils/oss.js +57 -0
  220. package/utils/platform.js +824 -32
  221. package/utils/quarter.js +58 -0
  222. package/utils/storage.js +198 -0
  223. package/utils/style.js +24 -0
  224. package/utils/theme.js +98 -3
  225. package/utils/transfer-queue.js +7 -0
  226. package/utils/transform.js +205 -0
  227. package/utils/type.js +102 -0
  228. package/utils/util.js +795 -0
  229. package/utils/vForm.js +349 -0
  230. package/utils/validator.js +181 -0
  231. package/config/themes/gold/default.css +0 -243
  232. package/config/themes/gold/default.css.map +0 -1
  233. package/config/themes/gold/default.less +0 -320
  234. package/config/themes/lime/default.css +0 -243
  235. package/config/themes/lime/default.css.map +0 -1
  236. package/config/themes/lime/default.less +0 -320
package/utils/date.js CHANGED
@@ -3,350 +3,379 @@ import config from '../config/config'
3
3
  * 时间工具类
4
4
  * 本项目已集成 moment.js (http://momentjs.cn/),推荐使用 moment.js
5
5
  */
6
- import moment from "moment";
6
+ import moment from "moment/dist/moment";
7
7
 
8
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
9
+ * 时间戳转数字时间 2023-01-03 15:48:45
10
+ * @param timestamp
11
+ * @returns {string}
15
12
  */
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
13
  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;
14
+ let date = new Date(timestamp);
15
+ let Y = date.getFullYear() + '-';
16
+ let M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
17
+ let D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
18
+ let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
19
+ let m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
20
+ let s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
21
+ return Y + M + D + " " + h + m + s;
43
22
  }
44
23
 
24
+ /**
25
+ * 时间戳格式化
26
+ * @param timestamp
27
+ * @returns {string}
28
+ */
45
29
  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 + " 秒";
30
+ let days = Math.floor(timestamp / (24 * 3600 * 1000))
31
+ //计算出小时数
32
+ let leave1 = timestamp % (24 * 3600 * 1000) //计算天数后剩余的毫秒数
33
+ let hours = Math.floor(leave1 / (3600 * 1000))
34
+ //计算相差分钟数
35
+ let leave2 = leave1 % (3600 * 1000) //计算小时数后剩余的毫秒数
36
+ let minutes = Math.floor(leave2 / (60 * 1000))
37
+ //计算相差秒数
38
+ let leave3 = leave2 % (60 * 1000) //计算分钟数后剩余的毫秒数
39
+ let seconds = Math.round(leave3 / 1000)
40
+ return days + "天 " + hours + "小时 " + minutes + " 分钟" + seconds + " 秒";
57
41
  }
58
42
 
43
+ /**
44
+ * 处理过期时间
45
+ * @param expiredTime
46
+ * @param handle
47
+ */
59
48
  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
- }
49
+ // 剩余天数
50
+ let leftDays = moment(expiredTime).diff(moment(), "day");
51
+ // 剩余天数小于等于config.LeftLockDays天提醒用户修改密码
52
+ if (leftDays <= config.LeftLockDays) {
53
+ handle(leftDays);
54
+ }
66
55
  }
67
56
 
68
- // 取年
57
+ /**
58
+ * 取年
59
+ */
69
60
  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');
61
+ if (str == null) {
62
+ return new Date().getFullYear();
63
+ }
64
+ return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$1');
74
65
  }
75
- // 取月
66
+
67
+ /**
68
+ * 取月
69
+ */
76
70
  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');
71
+ if (str == null) {
72
+ return new Date().getMonth();
73
+ }
74
+ return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$2');
81
75
  }
82
76
 
83
- // 取日
77
+ /**
78
+ * 取日
79
+ */
84
80
  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');
81
+ if (str == null) {
82
+ return new Date().getDate();
83
+ }
84
+ return str.replace(/(\d{4})(\d{2})(\d{2})/g, '$3');
89
85
  }
90
86
 
91
- // 取时
87
+ /**
88
+ * 取小时
89
+ */
92
90
  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');
91
+ if (str == null) {
92
+ return new Date().getHours();
93
+ }
94
+ return str.replace(/(\d{2})\:(\d{2})\:(\d{2})/g, '$1');
97
95
  }
98
96
 
99
- // 取分
97
+ /**
98
+ * 取分
99
+ */
100
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);
101
+ if (str == null) {
102
+ return new Date().getMinutes();
103
+ }
104
+ return str.replace(/(\d{2})\:(\d{2})\:(\d{2})/g, '$2');
171
105
  }
172
106
 
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";
107
+ /**
108
+ * 日期计算,返回yyyyMMdd
109
+ */
110
+ export const getBeforeOrNextDay = function (day, n, split) {
111
+ if (!split) {
112
+ split = ''
201
113
  }
202
- }
203
- };
114
+ let paramDay = day;
115
+ let newDay = new Date(paramDay.substring(0, 4) + "/" + paramDay.substring(4, 6) + "/" + paramDay.substring(6, 8));
116
+ let ystDay = new Date(newDay.getTime() + 24 * 60 * 60 * 1000 * n);
117
+ let y = ystDay.getFullYear();
118
+ let m = ystDay.getMonth() + 1;
119
+ let d = ystDay.getDate();
120
+ if (m < 10) {
121
+ m = '0' + m;
122
+ }
123
+ if (d < 10) {
124
+ d = '0' + d;
125
+ }
126
+ return y + split + m + split + d;
127
+ }
204
128
 
205
129
  //获取每月有几周(注:从第一个周一开始算该月第一周)
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;
130
+ export const getWeeks = function (year, month) {
131
+ let d = new Date();
132
+ // 该月第一天
133
+ d.setFullYear(year, month - 1, 1);
134
+ let w1 = d.getDay();
135
+ if (w1 == 0) w1 = 7;
136
+ // 该月天数
137
+ d.setFullYear(year, month, 0);
138
+ let dd = d.getDate();
139
+ // 第一个周一
140
+ let d1;
141
+ if (w1 != 1) d1 = 7 - w1 + 2;
142
+ else d1 = 1;
143
+ let week_count= Math.ceil((dd - d1 + 1) / 7);
144
+ return week_count;
221
145
  };
222
146
 
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);
147
+ /**
148
+ * 根据年月周获取该周从周一到周日的日期
149
+ */
150
+ export const getWeekTime = function (year, month, weekday) {
151
+ let d = new Date();
152
+ // 该月第一天
153
+ d.setFullYear(year, month - 1, 1);
154
+ let w1 = d.getDay();
155
+ if (w1 == 0) w1 = 7;
156
+ // 该月天数
157
+ d.setFullYear(year, month, 0);
158
+ let dd = d.getDate();
159
+ // 第一个周一
160
+ let d1;
161
+ if (w1 != 1) d1 = 7 - w1 + 2;
162
+ else d1 = 1;
163
+ let monday = d1 + (weekday - 1) * 7;
164
+ let sunday = monday + 6;
165
+ let from = year + "-" + month;
166
+ let showFrom = month;
167
+ if (monday < 10) {
168
+ from += "-0" + monday;
169
+ showFrom += ".0" + monday;
170
+ } else {
171
+ from += "-" + monday;
172
+ showFrom += "." + monday;
270
173
  }
271
- if(days < 10){
272
- to += "-0"+days;
273
- showTo += ".0"+days;
274
- }else{
275
- to += "-"+days;
276
- showTo += "."+days;
174
+ let to = "";
175
+ let showTo = "";
176
+ if (sunday <= dd) {
177
+ to = year + "-" + month;
178
+ showTo = month;
179
+ if (sunday < 10) {
180
+ to += "-0" + sunday;
181
+ showTo += ".0" + sunday;
182
+ } else {
183
+ to += "-" + sunday;
184
+ showTo += "." + sunday;
185
+ }
186
+ } else {
187
+ d.setFullYear(year, month - 1, sunday);
188
+ let days = d.getDate();
189
+ to = d.getFullYear();
190
+ if (d.getMonth() + 1 < 10) {
191
+ to += "-0" + (d.getMonth() + 1);
192
+ showTo += "0" + (d.getMonth() + 1);
193
+ } else {
194
+ to += "-" + (d.getMonth() + 1);
195
+ showTo += "" + (d.getMonth() + 1);
196
+ }
197
+ if (days < 10) {
198
+ to += "-0" + days;
199
+ showTo += ".0" + days;
200
+ } else {
201
+ to += "-" + days;
202
+ showTo += "." + days;
203
+ }
277
204
  }
278
- }
279
- return {
280
- str:"("+ showFrom + "-" + showTo + ")",
281
- from:from,
282
- to:to
283
- };
205
+ return {
206
+ str: "(" + showFrom + "-" + showTo + ")",
207
+ from: from,
208
+ to: to
209
+ };
284
210
  };
285
211
 
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
- );
212
+ /**
213
+ * 获得当前日期在当月第几周
214
+ */
215
+ export const getMonthWeek = function (a, b, c) {
216
+ let date = new Date(a, parseInt(b) - 1, c), w = date.getDay(), d = date.getDate();
217
+ return Math.ceil(
218
+ (d) / 7
219
+ );
292
220
  };
293
221
 
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;
222
+ /**
223
+ * 获取某月第几周的周一的日期
224
+ */
225
+ export const getMondayTime = function (year, month, weekday) {
226
+ let d = new Date();
227
+ // 该月第一天
228
+ d.setFullYear(year, month - 1, 1);
229
+ let w1 = d.getDay();
230
+ if (w1 == 0) w1 = 7;
231
+ // 该月天数
232
+ d.setFullYear(year, month, 0);
233
+ let dd = d.getDate();
234
+ // 第一个周一
235
+ let d1;
236
+ if (w1 != 1) d1 = 7 - w1 + 2;
237
+ else d1 = 1;
238
+ let monday = d1 + (weekday - 1) * 7;
239
+ return monday;
310
240
  };
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)
241
+
242
+ /**
243
+ * 获取周一的日期
244
+ */
245
+ export const getMonDate = function (year, month, day) {
246
+ let d = new Date();
247
+ if (year && month && day) {
248
+ d.setFullYear(year);
249
+ d.setMonth(month - 1);
250
+ d.setDate(day);
251
+ }
252
+ day = d.getDay();
253
+ let date = d.getDate();
254
+ if (day === 1)
255
+ return d;
256
+ if (day === 0)
257
+ d.setDate(date - 6);
258
+ else
259
+ d.setDate(date - day + 1);
322
260
  return d;
323
- if(day==0)
324
- d.setDate(date-6);
325
- else
326
- d.setDate(date-day+1);
327
- return d;
328
261
  };
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;
262
+
263
+ /**
264
+ * 获取上一周的周数
265
+ */
266
+ export const getLastWeek = function (year, month, day) {
267
+ let date = getMonDate(year, month, day);
268
+ date.setDate(date.getDate() - 7);
269
+ let finalYear = date.getFullYear();
270
+ let finalMonth = date.getMonth() + 1;
271
+ if (finalMonth < 10) {
272
+ finalMonth = "0" + finalMonth;
273
+ }
274
+ let finalWeek = getMonthWeek(finalYear, finalMonth, date.getDate());
275
+ return finalYear + finalMonth + finalWeek;
340
276
  };
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;
277
+
278
+ /**
279
+ *
280
+ * 获取下一周的周数
281
+ */
282
+ export const getNextWeek = function (year, month, day) {
283
+ let date = getMonDate(year, month, day);
284
+ date.setDate(date.getDate() + 7);
285
+ let finalYear = date.getFullYear();
286
+ let finalMonth = date.getMonth() + 1;
287
+ if (finalMonth < 10) {
288
+ finalMonth = "0" + finalMonth;
289
+ }
290
+ let finalWeek = getMonthWeek(finalYear, finalMonth, date.getDate());
291
+ return finalYear + finalMonth + finalWeek;
352
292
  };
293
+
294
+ /**
295
+ * 方法接受一个起始Date对象和月份差值,返回经过调整的新Date对象
296
+ */
297
+ export const addMonth = function (startDate, monthDifference) {
298
+ // 输入验证,确保传入的 startDate 是有效的 Date 对象
299
+ if (!(startDate instanceof Date) || isNaN(startDate.getTime())) {
300
+ throw new Error('Invalid date');
301
+ }
302
+
303
+ // 获取起始日期的年、月、日
304
+ const {year: startYear, month: startMonth, day: startDay} = {
305
+ year: startDate.getFullYear(),
306
+ month: startDate.getMonth(),
307
+ day: startDate.getDate()
308
+ };
309
+
310
+ // 计算月份和年份的调整量
311
+ const [yearAdjustment, endMonth] = [
312
+ Math.floor((startMonth + monthDifference) / 12), // 计算年份调整
313
+ (startMonth + monthDifference) % 12 // 计算月份调整
314
+ ];
315
+
316
+ // 调整年份
317
+ const endYear = startYear + yearAdjustment;
318
+
319
+ // 调整月份,处理负数的情况
320
+ const adjustedMonth = endMonth < 0 ? endMonth + 12 : endMonth;
321
+
322
+ // 获取结束月份的最后一天
323
+ const lastDayOfMonth = new Date(endYear, adjustedMonth + 1, 0).getDate();
324
+
325
+ // 处理月份调整时可能的日期溢出问题
326
+ const endDay = Math.min(startDay, lastDayOfMonth);
327
+
328
+ // 构建新的 Date 对象并返回
329
+ return new Date(
330
+ endYear, adjustedMonth, endDay,
331
+ startDate.getHours(), startDate.getMinutes(), startDate.getSeconds(), startDate.getMilliseconds()
332
+ );
333
+ }
334
+
335
+
336
+ export const formatDate = function(value) {
337
+ if (value) {
338
+ switch (value.length) {
339
+ case 14: {
340
+ return moment(value, 'YYYYMMDDHHmmss').format('YYYY-MM-DD HH:mm:ss')
341
+ }
342
+ case 12: {
343
+ return moment(value, 'YYYYMMDDHHmmss').format('YYYY-MM-DD HH:mm')
344
+ }
345
+ case 8: {
346
+ return moment(value, 'YYYYMMDD').format('YYYY-MM-DD')
347
+ }
348
+ case 6: {
349
+ return moment(value, 'YYYYMM').format('YYYY-MM')
350
+ }
351
+ case 4: {
352
+ return value.substring(0, 2) + '-' + value.substring(2, 2)
353
+ }
354
+ }
355
+ } else {
356
+ return '-'
357
+ }
358
+ }
359
+
360
+ export const formatTimestamp = function(value,format) {
361
+ if (!value) {
362
+ return ''
363
+ }
364
+ if (!format) {
365
+ format = 'YYYYMMDDHHmmss';
366
+ }
367
+ return moment(value).format(format)
368
+ }
369
+
370
+ export const formatStringDate = function(value,sourceFormat,targetFormat) {
371
+ if (!value) {
372
+ return ''
373
+ }
374
+ if (!sourceFormat) {
375
+ sourceFormat = 'YYYY-MM-DD HH:mm:ss';
376
+ }
377
+ if (!targetFormat) {
378
+ targetFormat = 'YYYY-MM-DD HH:mm:ss';
379
+ }
380
+ return moment(value,sourceFormat).format(targetFormat)
381
+ }