eoss-ui 0.7.85 → 0.7.86

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 (361) hide show
  1. package/lib/button-group.js +155 -143
  2. package/lib/button.js +155 -143
  3. package/lib/calogin.js +388 -376
  4. package/lib/checkbox-group.js +157 -145
  5. package/lib/config/api.js +8 -0
  6. package/lib/data-table-form.js +157 -145
  7. package/lib/data-table.js +160 -148
  8. package/lib/date-picker.js +155 -143
  9. package/lib/dialog.js +155 -143
  10. package/lib/eoss-ui.common.js +1702 -1005
  11. package/lib/flow-group.js +155 -143
  12. package/lib/flow-list.js +1030 -333
  13. package/lib/flow.js +537 -521
  14. package/lib/form.js +157 -145
  15. package/lib/handle-user.js +156 -144
  16. package/lib/handler.js +156 -144
  17. package/lib/icon.js +156 -144
  18. package/lib/index.js +1 -1
  19. package/lib/input-number.js +155 -143
  20. package/lib/input.js +155 -143
  21. package/lib/login.js +170 -158
  22. package/lib/main.js +502 -490
  23. package/lib/nav.js +155 -143
  24. package/lib/notify.js +158 -146
  25. package/lib/page.js +155 -143
  26. package/lib/pagination.js +155 -143
  27. package/lib/player.js +155 -143
  28. package/lib/qr-code.js +168 -156
  29. package/lib/radio-group.js +157 -145
  30. package/lib/retrial-auth.js +159 -147
  31. package/lib/select-ganged.js +157 -145
  32. package/lib/select.js +157 -145
  33. package/lib/selector-panel.js +173 -161
  34. package/lib/selector.js +157 -145
  35. package/lib/sizer.js +157 -145
  36. package/lib/steps.js +155 -143
  37. package/lib/switch.js +155 -143
  38. package/lib/table-form.js +155 -143
  39. package/lib/tabs.js +155 -143
  40. package/lib/theme-chalk/flow-list.css +1 -1
  41. package/lib/theme-chalk/index.css +1 -1
  42. package/lib/tips.js +156 -144
  43. package/lib/tree-group.js +155 -143
  44. package/lib/tree.js +156 -144
  45. package/lib/upload.js +168 -156
  46. package/lib/wujie.js +155 -143
  47. package/lib/wxlogin.js +155 -143
  48. package/package.json +161 -161
  49. package/packages/button/index.js +5 -5
  50. package/packages/button/src/main.vue +418 -418
  51. package/packages/button-group/index.js +5 -5
  52. package/packages/button-group/src/main.vue +346 -346
  53. package/packages/calendar/index.js +5 -5
  54. package/packages/calogin/index.js +5 -5
  55. package/packages/calogin/src/main.vue +412 -412
  56. package/packages/calogin/src/plugin.js +915 -915
  57. package/packages/card/index.js +5 -5
  58. package/packages/card/src/main.vue +156 -156
  59. package/packages/cascader/index.js +5 -5
  60. package/packages/cascader/src/main.vue +168 -168
  61. package/packages/checkbox-group/index.js +5 -5
  62. package/packages/checkbox-group/src/main.vue +333 -333
  63. package/packages/clients/index.js +5 -5
  64. package/packages/clients/src/main.vue +151 -151
  65. package/packages/data-table/index.js +5 -5
  66. package/packages/data-table/src/children.vue +39 -39
  67. package/packages/data-table/src/column.vue +992 -992
  68. package/packages/data-table/src/main.vue +1840 -1840
  69. package/packages/data-table/src/sizer.vue +195 -195
  70. package/packages/data-table-form/index.js +5 -5
  71. package/packages/data-table-form/src/checkbox.vue +101 -101
  72. package/packages/data-table-form/src/colgroup.vue +17 -17
  73. package/packages/data-table-form/src/main.vue +181 -181
  74. package/packages/data-table-form/src/radio.vue +65 -65
  75. package/packages/data-table-form/src/table.vue +233 -233
  76. package/packages/data-table-form/src/tbody.vue +336 -336
  77. package/packages/data-table-form/src/thead.vue +68 -68
  78. package/packages/date-picker/index.js +5 -5
  79. package/packages/date-picker/src/main.vue +236 -236
  80. package/packages/dialog/index.js +5 -5
  81. package/packages/enable-drag/index.js +5 -5
  82. package/packages/enterprise/index.js +5 -5
  83. package/packages/enterprise/src/main.vue +66 -66
  84. package/packages/error-page/index.js +5 -5
  85. package/packages/error-page/src/main.vue +44 -44
  86. package/packages/flow/index.js +5 -5
  87. package/packages/flow/src/component/Circulate.vue +417 -417
  88. package/packages/flow/src/component/CommonOpinions.vue +376 -376
  89. package/packages/flow/src/component/CustomPreset.vue +324 -324
  90. package/packages/flow/src/component/FileList.vue +97 -97
  91. package/packages/flow/src/component/FreeCirculation.vue +244 -244
  92. package/packages/flow/src/component/Preset.vue +257 -257
  93. package/packages/flow/src/component/SendMsg.vue +242 -242
  94. package/packages/flow/src/component/SortFlow.vue +110 -110
  95. package/packages/flow/src/component/TimeLimit.vue +190 -190
  96. package/packages/flow/src/component/taskUnionExamine.vue +761 -761
  97. package/packages/flow/src/form.vue +123 -123
  98. package/packages/flow/src/freeStartFlow.vue +2855 -2855
  99. package/packages/flow/src/main.vue +4139 -4135
  100. package/packages/flow/src/processForm.vue +1671 -1671
  101. package/packages/flow/src/processReject.vue +309 -309
  102. package/packages/flow/src/reset.vue +946 -946
  103. package/packages/flow/src/startTaskRead.vue +695 -695
  104. package/packages/flow/src/supervise.vue +159 -159
  105. package/packages/flow/src/table.vue +58 -58
  106. package/packages/flow-group/index.js +5 -5
  107. package/packages/flow-group/src/main.vue +727 -727
  108. package/packages/flow-list/index.js +5 -5
  109. package/packages/flow-list/src/main.vue +2306 -1803
  110. package/packages/form/index.js +5 -5
  111. package/packages/form/src/main.vue +3901 -3901
  112. package/packages/form/src/table.vue +1512 -1512
  113. package/packages/handle-user/index.js +5 -5
  114. package/packages/handle-user/src/main.vue +137 -137
  115. package/packages/handler/index.js +5 -5
  116. package/packages/handler/src/main.vue +496 -496
  117. package/packages/icon/index.js +5 -5
  118. package/packages/icon/src/main.vue +104 -104
  119. package/packages/icons/index.js +5 -5
  120. package/packages/icons/src/main.vue +81 -81
  121. package/packages/input/index.js +5 -5
  122. package/packages/input/src/main.vue +356 -356
  123. package/packages/input-number/index.js +5 -5
  124. package/packages/input-number/src/main.vue +106 -106
  125. package/packages/label/index.js +5 -5
  126. package/packages/label/src/main.vue +457 -457
  127. package/packages/layout/index.js +5 -5
  128. package/packages/layout/src/item.vue +152 -152
  129. package/packages/layout/src/main.vue +31 -31
  130. package/packages/login/index.js +5 -5
  131. package/packages/login/src/main.vue +2087 -2087
  132. package/packages/login/src/resetPassword.vue +557 -557
  133. package/packages/main/index.js +5 -5
  134. package/packages/main/src/default/message.vue +249 -249
  135. package/packages/main/src/default/notice.vue +157 -157
  136. package/packages/main/src/default/userinfo.vue +503 -503
  137. package/packages/main/src/public/online.vue +89 -89
  138. package/packages/main/src/public/search.vue +464 -464
  139. package/packages/main/src/public/settings.vue +273 -273
  140. package/packages/main/src/simplicity/apps.vue +388 -388
  141. package/packages/main/src/simplicity/avatar.vue +82 -82
  142. package/packages/main/src/simplicity/handler.vue +158 -158
  143. package/packages/main/src/simplicity/index.vue +2328 -2328
  144. package/packages/main/src/simplicity/lists.vue +84 -84
  145. package/packages/main/src/simplicity/menu-list.vue +135 -135
  146. package/packages/main/src/simplicity/message.vue +293 -293
  147. package/packages/main/src/simplicity/notice.vue +222 -222
  148. package/packages/main/src/simplicity/router-page.vue +45 -45
  149. package/packages/main/src/simplicity/sub-menu.vue +276 -276
  150. package/packages/main/src/simplicity/user.vue +259 -259
  151. package/packages/main/src/simplicity/userinfo.vue +401 -401
  152. package/packages/main/src/simplicityTop/apps.vue +388 -388
  153. package/packages/main/src/simplicityTop/avatar.vue +82 -82
  154. package/packages/main/src/simplicityTop/handler.vue +215 -215
  155. package/packages/main/src/simplicityTop/index.vue +2618 -2618
  156. package/packages/main/src/simplicityTop/lists.vue +84 -84
  157. package/packages/main/src/simplicityTop/menu-list.vue +135 -135
  158. package/packages/main/src/simplicityTop/message.vue +293 -293
  159. package/packages/main/src/simplicityTop/notice.vue +222 -222
  160. package/packages/main/src/simplicityTop/router-page.vue +45 -45
  161. package/packages/main/src/simplicityTop/sub-menu.vue +274 -274
  162. package/packages/main/src/simplicityTop/user.vue +259 -259
  163. package/packages/main/src/simplicityTop/userinfo.vue +401 -401
  164. package/packages/menu/index.js +5 -5
  165. package/packages/menu/src/main.vue +595 -595
  166. package/packages/nav/index.js +5 -5
  167. package/packages/nav/src/main.vue +351 -351
  168. package/packages/notify/index.js +5 -5
  169. package/packages/notify/src/main.vue +538 -538
  170. package/packages/page/index.js +5 -5
  171. package/packages/page/src/main.vue +167 -167
  172. package/packages/pagination/index.js +5 -5
  173. package/packages/pagination/src/main.vue +96 -96
  174. package/packages/player/index.js +5 -5
  175. package/packages/player/src/main.vue +194 -194
  176. package/packages/qr-code/index.js +5 -5
  177. package/packages/qr-code/src/main.vue +170 -170
  178. package/packages/radio-group/index.js +6 -6
  179. package/packages/radio-group/src/main.vue +319 -319
  180. package/packages/retrial-auth/index.js +5 -5
  181. package/packages/retrial-auth/src/main.vue +280 -280
  182. package/packages/select/index.js +5 -5
  183. package/packages/select/src/main.vue +782 -782
  184. package/packages/select-ganged/index.js +5 -5
  185. package/packages/select-ganged/src/main.vue +724 -724
  186. package/packages/selector/index.js +5 -5
  187. package/packages/selector/src/main.vue +761 -761
  188. package/packages/selector-panel/index.js +5 -5
  189. package/packages/selector-panel/src/main.vue +1036 -1036
  190. package/packages/selector-panel/src/selection.vue +174 -174
  191. package/packages/selector-panel/src/tree.vue +129 -129
  192. package/packages/sizer/index.js +5 -5
  193. package/packages/sizer/src/main.vue +254 -254
  194. package/packages/steps/index.js +5 -5
  195. package/packages/steps/src/main.vue +181 -181
  196. package/packages/switch/index.js +5 -5
  197. package/packages/switch/src/main.vue +170 -170
  198. package/packages/table-form/index.js +5 -5
  199. package/packages/tabs/index.js +5 -5
  200. package/packages/tabs/src/main.vue +788 -788
  201. package/packages/tabs-panel/index.js +5 -5
  202. package/packages/tabs-panel/src/main.vue +29 -29
  203. package/packages/theme-chalk/gulpfile.js +25 -0
  204. package/packages/theme-chalk/src/base.scss +261 -261
  205. package/packages/theme-chalk/src/button-group.scss +176 -176
  206. package/packages/theme-chalk/src/button.scss +24 -24
  207. package/packages/theme-chalk/src/calendar.scss +113 -113
  208. package/packages/theme-chalk/src/card.scss +99 -99
  209. package/packages/theme-chalk/src/checkbox-group.scss +8 -8
  210. package/packages/theme-chalk/src/clients.scss +87 -87
  211. package/packages/theme-chalk/src/data-table-form.scss +67 -67
  212. package/packages/theme-chalk/src/data-table.scss +297 -297
  213. package/packages/theme-chalk/src/date-picker.scss +7 -7
  214. package/packages/theme-chalk/src/dialog.scss +77 -77
  215. package/packages/theme-chalk/src/enable-drag.scss +181 -181
  216. package/packages/theme-chalk/src/enterprise.scss +5 -5
  217. package/packages/theme-chalk/src/error-page.scss +18 -18
  218. package/packages/theme-chalk/src/flow-group.scss +110 -110
  219. package/packages/theme-chalk/src/flow-list.scss +55 -39
  220. package/packages/theme-chalk/src/flow.scss +373 -373
  221. package/packages/theme-chalk/src/form.scss +501 -501
  222. package/packages/theme-chalk/src/handle-user.scss +40 -40
  223. package/packages/theme-chalk/src/handler.scss +148 -148
  224. package/packages/theme-chalk/src/icon.scss +3452 -3452
  225. package/packages/theme-chalk/src/icons.scss +99 -99
  226. package/packages/theme-chalk/src/input.scss +9 -9
  227. package/packages/theme-chalk/src/label.scss +24 -24
  228. package/packages/theme-chalk/src/layout.scss +46 -46
  229. package/packages/theme-chalk/src/login.scss +1006 -1006
  230. package/packages/theme-chalk/src/main.scss +664 -664
  231. package/packages/theme-chalk/src/menu.scss +224 -224
  232. package/packages/theme-chalk/src/mixins/color.scss +117 -117
  233. package/packages/theme-chalk/src/nav.scss +111 -111
  234. package/packages/theme-chalk/src/page.scss +3 -3
  235. package/packages/theme-chalk/src/pagination.scss +29 -29
  236. package/packages/theme-chalk/src/player.scss +9 -9
  237. package/packages/theme-chalk/src/qr-code.scss +17 -17
  238. package/packages/theme-chalk/src/radio-group.scss +9 -9
  239. package/packages/theme-chalk/src/retrial-auth.scss +38 -38
  240. package/packages/theme-chalk/src/select-ganged.scss +8 -8
  241. package/packages/theme-chalk/src/select.scss +8 -8
  242. package/packages/theme-chalk/src/selector-panel.scss +204 -204
  243. package/packages/theme-chalk/src/selector.scss +114 -114
  244. package/packages/theme-chalk/src/simplicity-top.scss +1845 -1845
  245. package/packages/theme-chalk/src/simplicity.scss +1403 -1403
  246. package/packages/theme-chalk/src/sizer.scss +36 -36
  247. package/packages/theme-chalk/src/steps.scss +88 -88
  248. package/packages/theme-chalk/src/switch.scss +3 -3
  249. package/packages/theme-chalk/src/table-form.scss +1 -1
  250. package/packages/theme-chalk/src/tabs.scss +87 -87
  251. package/packages/theme-chalk/src/tips.scss +7 -7
  252. package/packages/theme-chalk/src/toolbar.scss +179 -179
  253. package/packages/theme-chalk/src/tree-group.scss +72 -72
  254. package/packages/theme-chalk/src/tree.scss +165 -165
  255. package/packages/theme-chalk/src/upload.scss +172 -172
  256. package/packages/theme-chalk/src/wxlogin.scss +3 -3
  257. package/packages/tips/index.js +5 -5
  258. package/packages/tips/src/main.vue +141 -141
  259. package/packages/toolbar/index.js +5 -5
  260. package/packages/toolbar/src/main.vue +430 -430
  261. package/packages/tree/index.js +5 -5
  262. package/packages/tree-group/index.js +5 -5
  263. package/packages/upload/index.js +5 -5
  264. package/packages/upload/src/main.vue +1344 -1344
  265. package/packages/upload/src/picture.js +15 -15
  266. package/packages/wujie/index.js +5 -5
  267. package/packages/wujie/src/main.vue +146 -146
  268. package/packages/wxlogin/index.js +5 -5
  269. package/packages/wxlogin/src/main.vue +128 -128
  270. package/src/config/api.js +348 -340
  271. package/src/config/image.js +2 -2
  272. package/src/index.js +163 -163
  273. package/src/utils/bus.js +3 -3
  274. package/src/utils/date-util.js +312 -312
  275. package/src/utils/http.js +50 -50
  276. package/src/utils/rules.js +18 -18
  277. package/src/utils/store.js +21 -21
  278. package/src/utils/webSocket.js +107 -107
  279. package/packages/.DS_Store +0 -0
  280. package/packages/calogin/.DS_Store +0 -0
  281. package/packages/date-picker/.DS_Store +0 -0
  282. package/packages/date-picker/src/.DS_Store +0 -0
  283. package/packages/dialog/.DS_Store +0 -0
  284. package/packages/flow/.DS_Store +0 -0
  285. package/packages/flow/src/.DS_Store +0 -0
  286. package/packages/flow-list/.DS_Store +0 -0
  287. package/packages/form/.DS_Store +0 -0
  288. package/packages/icon/.DS_Store +0 -0
  289. package/packages/login/.DS_Store +0 -0
  290. package/packages/main/.DS_Store +0 -0
  291. package/packages/main/src/.DS_Store +0 -0
  292. package/packages/menu/.DS_Store +0 -0
  293. package/packages/select/.DS_Store +0 -0
  294. package/packages/selector/.DS_Store +0 -0
  295. package/packages/selector-panel/.DS_Store +0 -0
  296. package/packages/theme-chalk/lib/base.css +0 -1
  297. package/packages/theme-chalk/lib/button-group.css +0 -1
  298. package/packages/theme-chalk/lib/button.css +0 -1
  299. package/packages/theme-chalk/lib/calendar.css +0 -1
  300. package/packages/theme-chalk/lib/calogin.css +0 -0
  301. package/packages/theme-chalk/lib/card.css +0 -1
  302. package/packages/theme-chalk/lib/cascader.css +0 -0
  303. package/packages/theme-chalk/lib/checkbox-group.css +0 -1
  304. package/packages/theme-chalk/lib/clients.css +0 -1
  305. package/packages/theme-chalk/lib/data-table-form.css +0 -1
  306. package/packages/theme-chalk/lib/data-table.css +0 -1
  307. package/packages/theme-chalk/lib/date-picker.css +0 -1
  308. package/packages/theme-chalk/lib/dialog.css +0 -1
  309. package/packages/theme-chalk/lib/enable-drag.css +0 -1
  310. package/packages/theme-chalk/lib/enterprise.css +0 -1
  311. package/packages/theme-chalk/lib/error-page.css +0 -1
  312. package/packages/theme-chalk/lib/flow-chart.css +0 -0
  313. package/packages/theme-chalk/lib/flow-group.css +0 -1
  314. package/packages/theme-chalk/lib/flow-list.css +0 -1
  315. package/packages/theme-chalk/lib/flow.css +0 -1
  316. package/packages/theme-chalk/lib/fonts/iconfont.ttf +0 -0
  317. package/packages/theme-chalk/lib/fonts/iconfont.woff +0 -0
  318. package/packages/theme-chalk/lib/form.css +0 -1
  319. package/packages/theme-chalk/lib/handle-user.css +0 -1
  320. package/packages/theme-chalk/lib/handler.css +0 -1
  321. package/packages/theme-chalk/lib/icon.css +0 -1
  322. package/packages/theme-chalk/lib/icons.css +0 -1
  323. package/packages/theme-chalk/lib/index.css +0 -1
  324. package/packages/theme-chalk/lib/input-number.css +0 -0
  325. package/packages/theme-chalk/lib/input.css +0 -1
  326. package/packages/theme-chalk/lib/label.css +0 -1
  327. package/packages/theme-chalk/lib/layout.css +0 -1
  328. package/packages/theme-chalk/lib/login.css +0 -1
  329. package/packages/theme-chalk/lib/main.css +0 -1
  330. package/packages/theme-chalk/lib/menu.css +0 -1
  331. package/packages/theme-chalk/lib/nav.css +0 -1
  332. package/packages/theme-chalk/lib/notify.css +0 -0
  333. package/packages/theme-chalk/lib/page.css +0 -1
  334. package/packages/theme-chalk/lib/pagination.css +0 -1
  335. package/packages/theme-chalk/lib/player.css +0 -1
  336. package/packages/theme-chalk/lib/qr-code.css +0 -1
  337. package/packages/theme-chalk/lib/radio-group.css +0 -1
  338. package/packages/theme-chalk/lib/retrial-auth.css +0 -1
  339. package/packages/theme-chalk/lib/select-ganged.css +0 -1
  340. package/packages/theme-chalk/lib/select.css +0 -1
  341. package/packages/theme-chalk/lib/selector-panel.css +0 -1
  342. package/packages/theme-chalk/lib/selector.css +0 -1
  343. package/packages/theme-chalk/lib/simplicity-top.css +0 -1
  344. package/packages/theme-chalk/lib/simplicity.css +0 -1
  345. package/packages/theme-chalk/lib/sizer.css +0 -1
  346. package/packages/theme-chalk/lib/steps.css +0 -1
  347. package/packages/theme-chalk/lib/switch.css +0 -1
  348. package/packages/theme-chalk/lib/table-form.css +0 -0
  349. package/packages/theme-chalk/lib/tabs-panel.css +0 -0
  350. package/packages/theme-chalk/lib/tabs.css +0 -1
  351. package/packages/theme-chalk/lib/tips.css +0 -1
  352. package/packages/theme-chalk/lib/toolbar.css +0 -1
  353. package/packages/theme-chalk/lib/tree-group.css +0 -1
  354. package/packages/theme-chalk/lib/tree.css +0 -1
  355. package/packages/theme-chalk/lib/upload.css +0 -1
  356. package/packages/theme-chalk/lib/wujie.css +0 -0
  357. package/packages/theme-chalk/lib/wxlogin.css +0 -1
  358. package/packages/theme-chalk/src/.DS_Store +0 -0
  359. package/packages/upload/.DS_Store +0 -0
  360. package/src/.DS_Store +0 -0
  361. package/src/utils/.DS_Store +0 -0
@@ -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
+ };