eoss-ui 0.7.84 → 0.7.85

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 (338) hide show
  1. package/lib/calogin.js +233 -233
  2. package/lib/eoss-ui.common.js +952 -952
  3. package/lib/flow-list.js +81 -81
  4. package/lib/flow.js +280 -280
  5. package/lib/handler.js +4 -4
  6. package/lib/icons.js +1 -1
  7. package/lib/index.js +1 -1
  8. package/lib/login.js +9 -9
  9. package/lib/main.js +320 -320
  10. package/lib/qr-code.js +13 -13
  11. package/lib/theme-chalk/base.css +1 -1
  12. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  13. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  14. package/lib/theme-chalk/icon.css +1 -1
  15. package/lib/theme-chalk/index.css +1 -1
  16. package/lib/theme-chalk/main.css +1 -1
  17. package/lib/theme-chalk/menu.css +1 -1
  18. package/lib/theme-chalk/simplicity-top.css +1 -1
  19. package/lib/theme-chalk/simplicity.css +1 -1
  20. package/lib/theme-chalk/sizer.css +1 -1
  21. package/lib/theme-chalk/upload.css +1 -1
  22. package/package.json +161 -161
  23. package/packages/.DS_Store +0 -0
  24. package/packages/button/index.js +5 -5
  25. package/packages/button/src/main.vue +418 -418
  26. package/packages/button-group/index.js +5 -5
  27. package/packages/button-group/src/main.vue +346 -346
  28. package/packages/calendar/index.js +5 -5
  29. package/packages/calogin/.DS_Store +0 -0
  30. package/packages/calogin/index.js +5 -5
  31. package/packages/calogin/src/main.vue +412 -412
  32. package/packages/calogin/src/plugin.js +915 -915
  33. package/packages/card/index.js +5 -5
  34. package/packages/card/src/main.vue +156 -156
  35. package/packages/cascader/index.js +5 -5
  36. package/packages/cascader/src/main.vue +168 -168
  37. package/packages/checkbox-group/index.js +5 -5
  38. package/packages/checkbox-group/src/main.vue +333 -333
  39. package/packages/clients/index.js +5 -5
  40. package/packages/clients/src/main.vue +151 -151
  41. package/packages/data-table/index.js +5 -5
  42. package/packages/data-table/src/children.vue +39 -39
  43. package/packages/data-table/src/column.vue +992 -992
  44. package/packages/data-table/src/main.vue +1840 -1840
  45. package/packages/data-table/src/sizer.vue +195 -195
  46. package/packages/data-table-form/index.js +5 -5
  47. package/packages/data-table-form/src/checkbox.vue +101 -101
  48. package/packages/data-table-form/src/colgroup.vue +17 -17
  49. package/packages/data-table-form/src/main.vue +181 -181
  50. package/packages/data-table-form/src/radio.vue +65 -65
  51. package/packages/data-table-form/src/table.vue +233 -233
  52. package/packages/data-table-form/src/tbody.vue +336 -336
  53. package/packages/data-table-form/src/thead.vue +68 -68
  54. package/packages/date-picker/.DS_Store +0 -0
  55. package/packages/date-picker/index.js +5 -5
  56. package/packages/date-picker/src/.DS_Store +0 -0
  57. package/packages/date-picker/src/main.vue +236 -236
  58. package/packages/dialog/.DS_Store +0 -0
  59. package/packages/dialog/index.js +5 -5
  60. package/packages/enable-drag/index.js +5 -5
  61. package/packages/enterprise/index.js +5 -5
  62. package/packages/enterprise/src/main.vue +66 -66
  63. package/packages/error-page/index.js +5 -5
  64. package/packages/error-page/src/main.vue +44 -44
  65. package/packages/flow/.DS_Store +0 -0
  66. package/packages/flow/index.js +5 -5
  67. package/packages/flow/src/.DS_Store +0 -0
  68. package/packages/flow/src/component/Circulate.vue +417 -417
  69. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  70. package/packages/flow/src/component/CustomPreset.vue +324 -324
  71. package/packages/flow/src/component/FileList.vue +97 -97
  72. package/packages/flow/src/component/FreeCirculation.vue +244 -244
  73. package/packages/flow/src/component/Preset.vue +257 -257
  74. package/packages/flow/src/component/SendMsg.vue +242 -242
  75. package/packages/flow/src/component/SortFlow.vue +110 -110
  76. package/packages/flow/src/component/TimeLimit.vue +190 -190
  77. package/packages/flow/src/component/taskUnionExamine.vue +761 -761
  78. package/packages/flow/src/form.vue +123 -123
  79. package/packages/flow/src/freeStartFlow.vue +2855 -2855
  80. package/packages/flow/src/main.vue +4135 -4135
  81. package/packages/flow/src/processForm.vue +1671 -1671
  82. package/packages/flow/src/processReject.vue +309 -309
  83. package/packages/flow/src/reset.vue +946 -946
  84. package/packages/flow/src/startTaskRead.vue +695 -695
  85. package/packages/flow/src/supervise.vue +159 -159
  86. package/packages/flow/src/table.vue +58 -58
  87. package/packages/flow-group/index.js +5 -5
  88. package/packages/flow-group/src/main.vue +727 -727
  89. package/packages/flow-list/.DS_Store +0 -0
  90. package/packages/flow-list/index.js +5 -5
  91. package/packages/flow-list/src/main.vue +1803 -1803
  92. package/packages/form/.DS_Store +0 -0
  93. package/packages/form/index.js +5 -5
  94. package/packages/form/src/main.vue +3901 -3901
  95. package/packages/form/src/table.vue +1512 -1512
  96. package/packages/handle-user/index.js +5 -5
  97. package/packages/handle-user/src/main.vue +137 -137
  98. package/packages/handler/index.js +5 -5
  99. package/packages/handler/src/main.vue +496 -496
  100. package/packages/icon/.DS_Store +0 -0
  101. package/packages/icon/index.js +5 -5
  102. package/packages/icon/src/main.vue +104 -104
  103. package/packages/icons/index.js +5 -5
  104. package/packages/icons/src/icon.json +1 -1
  105. package/packages/icons/src/main.vue +81 -81
  106. package/packages/input/index.js +5 -5
  107. package/packages/input/src/main.vue +356 -356
  108. package/packages/input-number/index.js +5 -5
  109. package/packages/input-number/src/main.vue +106 -106
  110. package/packages/label/index.js +5 -5
  111. package/packages/label/src/main.vue +457 -457
  112. package/packages/layout/index.js +5 -5
  113. package/packages/layout/src/item.vue +152 -152
  114. package/packages/layout/src/main.vue +31 -31
  115. package/packages/login/.DS_Store +0 -0
  116. package/packages/login/index.js +5 -5
  117. package/packages/login/src/main.vue +2087 -2087
  118. package/packages/login/src/resetPassword.vue +557 -557
  119. package/packages/main/.DS_Store +0 -0
  120. package/packages/main/index.js +5 -5
  121. package/packages/main/src/.DS_Store +0 -0
  122. package/packages/main/src/default/message.vue +249 -249
  123. package/packages/main/src/default/notice.vue +157 -157
  124. package/packages/main/src/default/userinfo.vue +503 -503
  125. package/packages/main/src/public/online.vue +89 -89
  126. package/packages/main/src/public/search.vue +464 -464
  127. package/packages/main/src/public/settings.vue +273 -273
  128. package/packages/main/src/simplicity/apps.vue +388 -388
  129. package/packages/main/src/simplicity/avatar.vue +82 -82
  130. package/packages/main/src/simplicity/handler.vue +158 -158
  131. package/packages/main/src/simplicity/index.vue +2328 -2328
  132. package/packages/main/src/simplicity/lists.vue +84 -84
  133. package/packages/main/src/simplicity/menu-list.vue +135 -135
  134. package/packages/main/src/simplicity/message.vue +293 -293
  135. package/packages/main/src/simplicity/notice.vue +222 -222
  136. package/packages/main/src/simplicity/router-page.vue +45 -45
  137. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  138. package/packages/main/src/simplicity/user.vue +259 -259
  139. package/packages/main/src/simplicity/userinfo.vue +401 -401
  140. package/packages/main/src/simplicityTop/apps.vue +388 -388
  141. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  142. package/packages/main/src/simplicityTop/handler.vue +215 -215
  143. package/packages/main/src/simplicityTop/index.vue +2618 -2618
  144. package/packages/main/src/simplicityTop/lists.vue +84 -84
  145. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  146. package/packages/main/src/simplicityTop/message.vue +293 -293
  147. package/packages/main/src/simplicityTop/notice.vue +222 -222
  148. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  149. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  150. package/packages/main/src/simplicityTop/user.vue +259 -259
  151. package/packages/main/src/simplicityTop/userinfo.vue +401 -401
  152. package/packages/menu/.DS_Store +0 -0
  153. package/packages/menu/index.js +5 -5
  154. package/packages/menu/src/main.vue +595 -595
  155. package/packages/nav/index.js +5 -5
  156. package/packages/nav/src/main.vue +351 -351
  157. package/packages/notify/index.js +5 -5
  158. package/packages/notify/src/main.vue +538 -538
  159. package/packages/page/index.js +5 -5
  160. package/packages/page/src/main.vue +167 -167
  161. package/packages/pagination/index.js +5 -5
  162. package/packages/pagination/src/main.vue +96 -96
  163. package/packages/player/index.js +5 -5
  164. package/packages/player/src/main.vue +194 -194
  165. package/packages/qr-code/index.js +5 -5
  166. package/packages/qr-code/src/main.vue +170 -170
  167. package/packages/radio-group/index.js +6 -6
  168. package/packages/radio-group/src/main.vue +319 -319
  169. package/packages/retrial-auth/index.js +5 -5
  170. package/packages/retrial-auth/src/main.vue +280 -280
  171. package/packages/select/.DS_Store +0 -0
  172. package/packages/select/index.js +5 -5
  173. package/packages/select/src/main.vue +782 -782
  174. package/packages/select-ganged/index.js +5 -5
  175. package/packages/select-ganged/src/main.vue +724 -724
  176. package/packages/selector/.DS_Store +0 -0
  177. package/packages/selector/index.js +5 -5
  178. package/packages/selector/src/main.vue +761 -761
  179. package/packages/selector-panel/.DS_Store +0 -0
  180. package/packages/selector-panel/index.js +5 -5
  181. package/packages/selector-panel/src/main.vue +1036 -1036
  182. package/packages/selector-panel/src/selection.vue +174 -174
  183. package/packages/selector-panel/src/tree.vue +129 -129
  184. package/packages/sizer/index.js +5 -5
  185. package/packages/sizer/src/main.vue +254 -254
  186. package/packages/steps/index.js +5 -5
  187. package/packages/steps/src/main.vue +181 -181
  188. package/packages/switch/index.js +5 -5
  189. package/packages/switch/src/main.vue +170 -170
  190. package/packages/table-form/index.js +5 -5
  191. package/packages/tabs/index.js +5 -5
  192. package/packages/tabs/src/main.vue +788 -788
  193. package/packages/tabs-panel/index.js +5 -5
  194. package/packages/tabs-panel/src/main.vue +29 -29
  195. package/packages/theme-chalk/lib/base.css +1 -0
  196. package/packages/theme-chalk/lib/button-group.css +1 -0
  197. package/packages/theme-chalk/lib/button.css +1 -0
  198. package/packages/theme-chalk/lib/calendar.css +1 -0
  199. package/packages/theme-chalk/lib/calogin.css +0 -0
  200. package/packages/theme-chalk/lib/card.css +1 -0
  201. package/packages/theme-chalk/lib/cascader.css +0 -0
  202. package/packages/theme-chalk/lib/checkbox-group.css +1 -0
  203. package/packages/theme-chalk/lib/clients.css +1 -0
  204. package/packages/theme-chalk/lib/data-table-form.css +1 -0
  205. package/packages/theme-chalk/lib/data-table.css +1 -0
  206. package/packages/theme-chalk/lib/date-picker.css +1 -0
  207. package/packages/theme-chalk/lib/dialog.css +1 -0
  208. package/packages/theme-chalk/lib/enable-drag.css +1 -0
  209. package/packages/theme-chalk/lib/enterprise.css +1 -0
  210. package/packages/theme-chalk/lib/error-page.css +1 -0
  211. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  212. package/packages/theme-chalk/lib/flow-group.css +1 -0
  213. package/packages/theme-chalk/lib/flow-list.css +1 -0
  214. package/packages/theme-chalk/lib/flow.css +1 -0
  215. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  216. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  217. package/packages/theme-chalk/lib/form.css +1 -0
  218. package/packages/theme-chalk/lib/handle-user.css +1 -0
  219. package/packages/theme-chalk/lib/handler.css +1 -0
  220. package/packages/theme-chalk/lib/icon.css +1 -0
  221. package/packages/theme-chalk/lib/icons.css +1 -0
  222. package/packages/theme-chalk/lib/index.css +1 -0
  223. package/packages/theme-chalk/lib/input-number.css +0 -0
  224. package/packages/theme-chalk/lib/input.css +1 -0
  225. package/packages/theme-chalk/lib/label.css +1 -0
  226. package/packages/theme-chalk/lib/layout.css +1 -0
  227. package/packages/theme-chalk/lib/login.css +1 -0
  228. package/packages/theme-chalk/lib/main.css +1 -0
  229. package/packages/theme-chalk/lib/menu.css +1 -0
  230. package/packages/theme-chalk/lib/nav.css +1 -0
  231. package/packages/theme-chalk/lib/notify.css +0 -0
  232. package/packages/theme-chalk/lib/page.css +1 -0
  233. package/packages/theme-chalk/lib/pagination.css +1 -0
  234. package/packages/theme-chalk/lib/player.css +1 -0
  235. package/packages/theme-chalk/lib/qr-code.css +1 -0
  236. package/packages/theme-chalk/lib/radio-group.css +1 -0
  237. package/packages/theme-chalk/lib/retrial-auth.css +1 -0
  238. package/packages/theme-chalk/lib/select-ganged.css +1 -0
  239. package/packages/theme-chalk/lib/select.css +1 -0
  240. package/packages/theme-chalk/lib/selector-panel.css +1 -0
  241. package/packages/theme-chalk/lib/selector.css +1 -0
  242. package/packages/theme-chalk/lib/simplicity-top.css +1 -0
  243. package/packages/theme-chalk/lib/simplicity.css +1 -0
  244. package/packages/theme-chalk/lib/sizer.css +1 -0
  245. package/packages/theme-chalk/lib/steps.css +1 -0
  246. package/packages/theme-chalk/lib/switch.css +1 -0
  247. package/packages/theme-chalk/lib/table-form.css +0 -0
  248. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  249. package/packages/theme-chalk/lib/tabs.css +1 -0
  250. package/packages/theme-chalk/lib/tips.css +1 -0
  251. package/packages/theme-chalk/lib/toolbar.css +1 -0
  252. package/packages/theme-chalk/lib/tree-group.css +1 -0
  253. package/packages/theme-chalk/lib/tree.css +1 -0
  254. package/packages/theme-chalk/lib/upload.css +1 -0
  255. package/packages/theme-chalk/lib/wujie.css +0 -0
  256. package/packages/theme-chalk/lib/wxlogin.css +1 -0
  257. package/packages/theme-chalk/src/.DS_Store +0 -0
  258. package/packages/theme-chalk/src/base.scss +261 -261
  259. package/packages/theme-chalk/src/button-group.scss +176 -176
  260. package/packages/theme-chalk/src/button.scss +24 -24
  261. package/packages/theme-chalk/src/calendar.scss +113 -113
  262. package/packages/theme-chalk/src/card.scss +99 -99
  263. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  264. package/packages/theme-chalk/src/clients.scss +87 -87
  265. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  266. package/packages/theme-chalk/src/data-table.scss +297 -297
  267. package/packages/theme-chalk/src/date-picker.scss +7 -7
  268. package/packages/theme-chalk/src/dialog.scss +77 -77
  269. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  270. package/packages/theme-chalk/src/enterprise.scss +5 -5
  271. package/packages/theme-chalk/src/error-page.scss +18 -18
  272. package/packages/theme-chalk/src/flow-group.scss +110 -110
  273. package/packages/theme-chalk/src/flow-list.scss +39 -39
  274. package/packages/theme-chalk/src/flow.scss +373 -373
  275. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  276. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  277. package/packages/theme-chalk/src/form.scss +501 -501
  278. package/packages/theme-chalk/src/handle-user.scss +40 -40
  279. package/packages/theme-chalk/src/handler.scss +148 -148
  280. package/packages/theme-chalk/src/icon.scss +3452 -1612
  281. package/packages/theme-chalk/src/icons.scss +99 -99
  282. package/packages/theme-chalk/src/input.scss +9 -9
  283. package/packages/theme-chalk/src/label.scss +24 -24
  284. package/packages/theme-chalk/src/layout.scss +46 -46
  285. package/packages/theme-chalk/src/login.scss +1006 -1006
  286. package/packages/theme-chalk/src/main.scss +664 -664
  287. package/packages/theme-chalk/src/menu.scss +224 -224
  288. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  289. package/packages/theme-chalk/src/nav.scss +111 -111
  290. package/packages/theme-chalk/src/page.scss +3 -3
  291. package/packages/theme-chalk/src/pagination.scss +29 -29
  292. package/packages/theme-chalk/src/player.scss +9 -9
  293. package/packages/theme-chalk/src/qr-code.scss +17 -17
  294. package/packages/theme-chalk/src/radio-group.scss +9 -9
  295. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  296. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  297. package/packages/theme-chalk/src/select.scss +8 -8
  298. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  299. package/packages/theme-chalk/src/selector.scss +114 -114
  300. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  301. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  302. package/packages/theme-chalk/src/sizer.scss +36 -36
  303. package/packages/theme-chalk/src/steps.scss +88 -88
  304. package/packages/theme-chalk/src/switch.scss +3 -3
  305. package/packages/theme-chalk/src/table-form.scss +1 -1
  306. package/packages/theme-chalk/src/tabs.scss +87 -87
  307. package/packages/theme-chalk/src/tips.scss +7 -7
  308. package/packages/theme-chalk/src/toolbar.scss +179 -179
  309. package/packages/theme-chalk/src/tree-group.scss +72 -72
  310. package/packages/theme-chalk/src/tree.scss +165 -165
  311. package/packages/theme-chalk/src/upload.scss +172 -172
  312. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  313. package/packages/tips/index.js +5 -5
  314. package/packages/tips/src/main.vue +141 -141
  315. package/packages/toolbar/index.js +5 -5
  316. package/packages/toolbar/src/main.vue +430 -430
  317. package/packages/tree/index.js +5 -5
  318. package/packages/tree-group/index.js +5 -5
  319. package/packages/upload/.DS_Store +0 -0
  320. package/packages/upload/index.js +5 -5
  321. package/packages/upload/src/main.vue +1344 -1344
  322. package/packages/upload/src/picture.js +15 -15
  323. package/packages/wujie/index.js +5 -5
  324. package/packages/wujie/src/main.vue +146 -146
  325. package/packages/wxlogin/index.js +5 -5
  326. package/packages/wxlogin/src/main.vue +128 -128
  327. package/src/.DS_Store +0 -0
  328. package/src/config/api.js +340 -340
  329. package/src/config/image.js +2 -2
  330. package/src/index.js +163 -163
  331. package/src/utils/.DS_Store +0 -0
  332. package/src/utils/bus.js +3 -3
  333. package/src/utils/date-util.js +312 -312
  334. package/src/utils/http.js +50 -50
  335. package/src/utils/rules.js +18 -18
  336. package/src/utils/store.js +21 -21
  337. package/src/utils/webSocket.js +107 -107
  338. package/packages/theme-chalk/gulpfile.js +0 -25
@@ -1,312 +1,312 @@
1
- import fecha from 'element-ui/src/utils/date';
2
- import { t } from 'element-ui/src/locale';
3
-
4
- const weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
5
- const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
6
-
7
- const newArray = function(start, end) {
8
- let result = [];
9
- for (let i = start; i <= end; i++) {
10
- result.push(i);
11
- }
12
- return result;
13
- };
14
-
15
- export const getI18nSettings = () => {
16
- return {
17
- dayNamesShort: weeks.map(week => t(`el.datepicker.weeks.${week}`)),
18
- dayNames: weeks.map(week => t(`el.datepicker.weeks.${week}`)),
19
- monthNamesShort: months.map(month => t(`el.datepicker.months.${month}`)),
20
- monthNames: months.map((month, index) => t(`el.datepicker.month${index + 1}`)),
21
- amPm: ['am', 'pm']
22
- };
23
- };
24
-
25
- export const toDate = function(date) {
26
- return isDate(date) ? new Date(date) : null;
27
- };
28
-
29
- export const isDate = function(date) {
30
- if (date === null || date === undefined) return false;
31
- if (isNaN(new Date(date).getTime())) return false;
32
- if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
33
- return true;
34
- };
35
-
36
- export const isDateObject = function(val) {
37
- return val instanceof Date;
38
- };
39
-
40
- export const formatDate = function(date, format) {
41
- date = toDate(date);
42
- if (!date) return '';
43
- return fecha.format(date, format || 'yyyy-MM-dd', getI18nSettings());
44
- };
45
-
46
- export const parseDate = function(string, format) {
47
- return fecha.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
48
- };
49
-
50
- export const getDayCountOfMonth = function(year, month) {
51
- if (month === 3 || month === 5 || month === 8 || month === 10) {
52
- return 30;
53
- }
54
-
55
- if (month === 1) {
56
- if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
57
- return 29;
58
- } else {
59
- return 28;
60
- }
61
- }
62
-
63
- return 31;
64
- };
65
-
66
- export const getDayCountOfYear = function(year) {
67
- const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
68
- return isLeapYear ? 366 : 365;
69
- };
70
-
71
- export const getFirstDayOfMonth = function(date) {
72
- const temp = new Date(date.getTime());
73
- temp.setDate(1);
74
- return temp.getDay();
75
- };
76
-
77
- // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
78
- // {prev, next} Date should work for Daylight Saving Time
79
- // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
80
- export const prevDate = function(date, amount = 1) {
81
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
82
- };
83
-
84
- export const nextDate = function(date, amount = 1) {
85
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
86
- };
87
-
88
- export const getStartDateOfMonth = function(year, month) {
89
- const result = new Date(year, month, 1);
90
- const day = result.getDay();
91
-
92
- if (day === 0) {
93
- return prevDate(result, 7);
94
- } else {
95
- return prevDate(result, day);
96
- }
97
- };
98
-
99
- export const getWeekNumber = function(src) {
100
- if (!isDate(src)) return null;
101
- const date = new Date(src.getTime());
102
- date.setHours(0, 0, 0, 0);
103
- // Thursday in current week decides the year.
104
- date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
105
- // January 4 is always in week 1.
106
- const week1 = new Date(date.getFullYear(), 0, 4);
107
- // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
108
- // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
109
- return (
110
- 1 +
111
- Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7)
112
- );
113
- };
114
-
115
- export const getRangeHours = function(ranges) {
116
- const hours = [];
117
- let disabledHours = [];
118
-
119
- (ranges || []).forEach(range => {
120
- const value = range.map(date => date.getHours());
121
-
122
- disabledHours = disabledHours.concat(newArray(value[0], value[1]));
123
- });
124
-
125
- if (disabledHours.length) {
126
- for (let i = 0; i < 24; i++) {
127
- hours[i] = disabledHours.indexOf(i) === -1;
128
- }
129
- } else {
130
- for (let i = 0; i < 24; i++) {
131
- hours[i] = false;
132
- }
133
- }
134
-
135
- return hours;
136
- };
137
-
138
- export const getPrevMonthLastDays = (date, amount) => {
139
- if (amount <= 0) return [];
140
- const temp = new Date(date.getTime());
141
- temp.setDate(0);
142
- const lastDay = temp.getDate();
143
- return range(amount).map((_, index) => lastDay - (amount - index - 1));
144
- };
145
-
146
- export const getMonthDays = date => {
147
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
148
- const days = temp.getDate();
149
- return range(days).map((_, index) => index + 1);
150
- };
151
-
152
- function setRangeData(arr, start, end, value) {
153
- for (let i = start; i < end; i++) {
154
- arr[i] = value;
155
- }
156
- }
157
-
158
- export const getRangeMinutes = function(ranges, hour) {
159
- const minutes = new Array(60);
160
-
161
- if (ranges.length > 0) {
162
- ranges.forEach(range => {
163
- const start = range[0];
164
- const end = range[1];
165
- const startHour = start.getHours();
166
- const startMinute = start.getMinutes();
167
- const endHour = end.getHours();
168
- const endMinute = end.getMinutes();
169
- if (startHour === hour && endHour !== hour) {
170
- setRangeData(minutes, startMinute, 60, true);
171
- } else if (startHour === hour && endHour === hour) {
172
- setRangeData(minutes, startMinute, endMinute + 1, true);
173
- } else if (startHour !== hour && endHour === hour) {
174
- setRangeData(minutes, 0, endMinute + 1, true);
175
- } else if (startHour < hour && endHour > hour) {
176
- setRangeData(minutes, 0, 60, true);
177
- }
178
- });
179
- } else {
180
- setRangeData(minutes, 0, 60, true);
181
- }
182
- return minutes;
183
- };
184
-
185
- export const range = function(n) {
186
- // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
187
- return Array.apply(null, { length: n }).map((_, n) => n);
188
- };
189
-
190
- export const modifyDate = function(date, y, m, d) {
191
- return new Date(
192
- y,
193
- m,
194
- d,
195
- date.getHours(),
196
- date.getMinutes(),
197
- date.getSeconds(),
198
- date.getMilliseconds()
199
- );
200
- };
201
-
202
- export const modifyTime = function(date, h, m, s) {
203
- return new Date(
204
- date.getFullYear(),
205
- date.getMonth(),
206
- date.getDate(),
207
- h,
208
- m,
209
- s,
210
- date.getMilliseconds()
211
- );
212
- };
213
-
214
- export const modifyWithTimeString = (date, time) => {
215
- if (date == null || !time) {
216
- return date;
217
- }
218
- time = parseDate(time, 'HH:mm:ss');
219
- return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
220
- };
221
-
222
- export const clearTime = function(date) {
223
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
224
- };
225
-
226
- export const clearMilliseconds = function(date) {
227
- return new Date(
228
- date.getFullYear(),
229
- date.getMonth(),
230
- date.getDate(),
231
- date.getHours(),
232
- date.getMinutes(),
233
- date.getSeconds(),
234
- 0
235
- );
236
- };
237
-
238
- export const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
239
- // TODO: refactory a more elegant solution
240
- if (ranges.length === 0) return date;
241
- const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
242
- const ndate = normalizeDate(date);
243
- const nranges = ranges.map(range => range.map(normalizeDate));
244
- if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
245
-
246
- let minDate = nranges[0][0];
247
- let maxDate = nranges[0][0];
248
-
249
- nranges.forEach(nrange => {
250
- minDate = new Date(Math.min(nrange[0], minDate));
251
- maxDate = new Date(Math.max(nrange[1], minDate));
252
- });
253
-
254
- const ret = ndate < minDate ? minDate : maxDate;
255
- // preserve Year/Month/Date
256
- return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
257
- };
258
-
259
- export const timeWithinRange = function(date, selectableRange, format) {
260
- const limitedDate = limitTimeRange(date, selectableRange, format);
261
- return limitedDate.getTime() === date.getTime();
262
- };
263
-
264
- export const changeYearMonthAndClampDate = function(date, year, month) {
265
- // clamp date to the number of days in `year`, `month`
266
- // eg: (2010-1-31, 2010, 2) => 2010-2-28
267
- const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
268
- return modifyDate(date, year, month, monthDate);
269
- };
270
-
271
- export const prevMonth = function(date) {
272
- const year = date.getFullYear();
273
- const month = date.getMonth();
274
- return month === 0
275
- ? changeYearMonthAndClampDate(date, year - 1, 11)
276
- : changeYearMonthAndClampDate(date, year, month - 1);
277
- };
278
-
279
- export const nextMonth = function(date) {
280
- const year = date.getFullYear();
281
- const month = date.getMonth();
282
- return month === 11
283
- ? changeYearMonthAndClampDate(date, year + 1, 0)
284
- : changeYearMonthAndClampDate(date, year, month + 1);
285
- };
286
-
287
- export const prevYear = function(date, amount = 1) {
288
- const year = date.getFullYear();
289
- const month = date.getMonth();
290
- return changeYearMonthAndClampDate(date, year - amount, month);
291
- };
292
-
293
- export const nextYear = function(date, amount = 1) {
294
- const year = date.getFullYear();
295
- const month = date.getMonth();
296
- return changeYearMonthAndClampDate(date, year + amount, month);
297
- };
298
-
299
- export const extractDateFormat = function(format) {
300
- return format
301
- .replace(/\W?m{1,2}|\W?ZZ/g, '')
302
- .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
303
- .trim();
304
- };
305
-
306
- export const extractTimeFormat = function(format) {
307
- return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
308
- };
309
-
310
- export const validateRangeInOneMonth = function(start, end) {
311
- return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
312
- };
1
+ import fecha from 'element-ui/src/utils/date';
2
+ import { t } from 'element-ui/src/locale';
3
+
4
+ const weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
5
+ const months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
6
+
7
+ const newArray = function(start, end) {
8
+ let result = [];
9
+ for (let i = start; i <= end; i++) {
10
+ result.push(i);
11
+ }
12
+ return result;
13
+ };
14
+
15
+ export const getI18nSettings = () => {
16
+ return {
17
+ dayNamesShort: weeks.map(week => t(`el.datepicker.weeks.${week}`)),
18
+ dayNames: weeks.map(week => t(`el.datepicker.weeks.${week}`)),
19
+ monthNamesShort: months.map(month => t(`el.datepicker.months.${month}`)),
20
+ monthNames: months.map((month, index) => t(`el.datepicker.month${index + 1}`)),
21
+ amPm: ['am', 'pm']
22
+ };
23
+ };
24
+
25
+ export const toDate = function(date) {
26
+ return isDate(date) ? new Date(date) : null;
27
+ };
28
+
29
+ export const isDate = function(date) {
30
+ if (date === null || date === undefined) return false;
31
+ if (isNaN(new Date(date).getTime())) return false;
32
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
33
+ return true;
34
+ };
35
+
36
+ export const isDateObject = function(val) {
37
+ return val instanceof Date;
38
+ };
39
+
40
+ export const formatDate = function(date, format) {
41
+ date = toDate(date);
42
+ if (!date) return '';
43
+ return fecha.format(date, format || 'yyyy-MM-dd', getI18nSettings());
44
+ };
45
+
46
+ export const parseDate = function(string, format) {
47
+ return fecha.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
48
+ };
49
+
50
+ export const getDayCountOfMonth = function(year, month) {
51
+ if (month === 3 || month === 5 || month === 8 || month === 10) {
52
+ return 30;
53
+ }
54
+
55
+ if (month === 1) {
56
+ if ((year % 4 === 0 && year % 100 !== 0) || year % 400 === 0) {
57
+ return 29;
58
+ } else {
59
+ return 28;
60
+ }
61
+ }
62
+
63
+ return 31;
64
+ };
65
+
66
+ export const getDayCountOfYear = function(year) {
67
+ const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
68
+ return isLeapYear ? 366 : 365;
69
+ };
70
+
71
+ export const getFirstDayOfMonth = function(date) {
72
+ const temp = new Date(date.getTime());
73
+ temp.setDate(1);
74
+ return temp.getDay();
75
+ };
76
+
77
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
78
+ // {prev, next} Date should work for Daylight Saving Time
79
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
80
+ export const prevDate = function(date, amount = 1) {
81
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
82
+ };
83
+
84
+ export const nextDate = function(date, amount = 1) {
85
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
86
+ };
87
+
88
+ export const getStartDateOfMonth = function(year, month) {
89
+ const result = new Date(year, month, 1);
90
+ const day = result.getDay();
91
+
92
+ if (day === 0) {
93
+ return prevDate(result, 7);
94
+ } else {
95
+ return prevDate(result, day);
96
+ }
97
+ };
98
+
99
+ export const getWeekNumber = function(src) {
100
+ if (!isDate(src)) return null;
101
+ const date = new Date(src.getTime());
102
+ date.setHours(0, 0, 0, 0);
103
+ // Thursday in current week decides the year.
104
+ date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));
105
+ // January 4 is always in week 1.
106
+ const week1 = new Date(date.getFullYear(), 0, 4);
107
+ // Adjust to Thursday in week 1 and count number of weeks from date to week 1.
108
+ // Rounding should be fine for Daylight Saving Time. Its shift should never be more than 12 hours.
109
+ return (
110
+ 1 +
111
+ Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + ((week1.getDay() + 6) % 7)) / 7)
112
+ );
113
+ };
114
+
115
+ export const getRangeHours = function(ranges) {
116
+ const hours = [];
117
+ let disabledHours = [];
118
+
119
+ (ranges || []).forEach(range => {
120
+ const value = range.map(date => date.getHours());
121
+
122
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
123
+ });
124
+
125
+ if (disabledHours.length) {
126
+ for (let i = 0; i < 24; i++) {
127
+ hours[i] = disabledHours.indexOf(i) === -1;
128
+ }
129
+ } else {
130
+ for (let i = 0; i < 24; i++) {
131
+ hours[i] = false;
132
+ }
133
+ }
134
+
135
+ return hours;
136
+ };
137
+
138
+ export const getPrevMonthLastDays = (date, amount) => {
139
+ if (amount <= 0) return [];
140
+ const temp = new Date(date.getTime());
141
+ temp.setDate(0);
142
+ const lastDay = temp.getDate();
143
+ return range(amount).map((_, index) => lastDay - (amount - index - 1));
144
+ };
145
+
146
+ export const getMonthDays = date => {
147
+ const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
148
+ const days = temp.getDate();
149
+ return range(days).map((_, index) => index + 1);
150
+ };
151
+
152
+ function setRangeData(arr, start, end, value) {
153
+ for (let i = start; i < end; i++) {
154
+ arr[i] = value;
155
+ }
156
+ }
157
+
158
+ export const getRangeMinutes = function(ranges, hour) {
159
+ const minutes = new Array(60);
160
+
161
+ if (ranges.length > 0) {
162
+ ranges.forEach(range => {
163
+ const start = range[0];
164
+ const end = range[1];
165
+ const startHour = start.getHours();
166
+ const startMinute = start.getMinutes();
167
+ const endHour = end.getHours();
168
+ const endMinute = end.getMinutes();
169
+ if (startHour === hour && endHour !== hour) {
170
+ setRangeData(minutes, startMinute, 60, true);
171
+ } else if (startHour === hour && endHour === hour) {
172
+ setRangeData(minutes, startMinute, endMinute + 1, true);
173
+ } else if (startHour !== hour && endHour === hour) {
174
+ setRangeData(minutes, 0, endMinute + 1, true);
175
+ } else if (startHour < hour && endHour > hour) {
176
+ setRangeData(minutes, 0, 60, true);
177
+ }
178
+ });
179
+ } else {
180
+ setRangeData(minutes, 0, 60, true);
181
+ }
182
+ return minutes;
183
+ };
184
+
185
+ export const range = function(n) {
186
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
187
+ return Array.apply(null, { length: n }).map((_, n) => n);
188
+ };
189
+
190
+ export const modifyDate = function(date, y, m, d) {
191
+ return new Date(
192
+ y,
193
+ m,
194
+ d,
195
+ date.getHours(),
196
+ date.getMinutes(),
197
+ date.getSeconds(),
198
+ date.getMilliseconds()
199
+ );
200
+ };
201
+
202
+ export const modifyTime = function(date, h, m, s) {
203
+ return new Date(
204
+ date.getFullYear(),
205
+ date.getMonth(),
206
+ date.getDate(),
207
+ h,
208
+ m,
209
+ s,
210
+ date.getMilliseconds()
211
+ );
212
+ };
213
+
214
+ export const modifyWithTimeString = (date, time) => {
215
+ if (date == null || !time) {
216
+ return date;
217
+ }
218
+ time = parseDate(time, 'HH:mm:ss');
219
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
220
+ };
221
+
222
+ export const clearTime = function(date) {
223
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
224
+ };
225
+
226
+ export const clearMilliseconds = function(date) {
227
+ return new Date(
228
+ date.getFullYear(),
229
+ date.getMonth(),
230
+ date.getDate(),
231
+ date.getHours(),
232
+ date.getMinutes(),
233
+ date.getSeconds(),
234
+ 0
235
+ );
236
+ };
237
+
238
+ export const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
239
+ // TODO: refactory a more elegant solution
240
+ if (ranges.length === 0) return date;
241
+ const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
242
+ const ndate = normalizeDate(date);
243
+ const nranges = ranges.map(range => range.map(normalizeDate));
244
+ if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
245
+
246
+ let minDate = nranges[0][0];
247
+ let maxDate = nranges[0][0];
248
+
249
+ nranges.forEach(nrange => {
250
+ minDate = new Date(Math.min(nrange[0], minDate));
251
+ maxDate = new Date(Math.max(nrange[1], minDate));
252
+ });
253
+
254
+ const ret = ndate < minDate ? minDate : maxDate;
255
+ // preserve Year/Month/Date
256
+ return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
257
+ };
258
+
259
+ export const timeWithinRange = function(date, selectableRange, format) {
260
+ const limitedDate = limitTimeRange(date, selectableRange, format);
261
+ return limitedDate.getTime() === date.getTime();
262
+ };
263
+
264
+ export const changeYearMonthAndClampDate = function(date, year, month) {
265
+ // clamp date to the number of days in `year`, `month`
266
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
267
+ const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
268
+ return modifyDate(date, year, month, monthDate);
269
+ };
270
+
271
+ export const prevMonth = function(date) {
272
+ const year = date.getFullYear();
273
+ const month = date.getMonth();
274
+ return month === 0
275
+ ? changeYearMonthAndClampDate(date, year - 1, 11)
276
+ : changeYearMonthAndClampDate(date, year, month - 1);
277
+ };
278
+
279
+ export const nextMonth = function(date) {
280
+ const year = date.getFullYear();
281
+ const month = date.getMonth();
282
+ return month === 11
283
+ ? changeYearMonthAndClampDate(date, year + 1, 0)
284
+ : changeYearMonthAndClampDate(date, year, month + 1);
285
+ };
286
+
287
+ export const prevYear = function(date, amount = 1) {
288
+ const year = date.getFullYear();
289
+ const month = date.getMonth();
290
+ return changeYearMonthAndClampDate(date, year - amount, month);
291
+ };
292
+
293
+ export const nextYear = function(date, amount = 1) {
294
+ const year = date.getFullYear();
295
+ const month = date.getMonth();
296
+ return changeYearMonthAndClampDate(date, year + amount, month);
297
+ };
298
+
299
+ export const extractDateFormat = function(format) {
300
+ return format
301
+ .replace(/\W?m{1,2}|\W?ZZ/g, '')
302
+ .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
303
+ .trim();
304
+ };
305
+
306
+ export const extractTimeFormat = function(format) {
307
+ return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
308
+ };
309
+
310
+ export const validateRangeInOneMonth = function(start, end) {
311
+ return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
312
+ };