eoss 0.1.0-alpha.39 → 0.1.0-alpha.40

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 (233) hide show
  1. package/lib/0.js +1 -1
  2. package/lib/1.js +1 -1
  3. package/lib/10.js +1 -1
  4. package/lib/11.js +1 -1
  5. package/lib/12.js +1 -1
  6. package/lib/13.js +1 -1
  7. package/lib/14.js +1 -1
  8. package/lib/15.js +1 -1
  9. package/lib/16.js +1 -1
  10. package/lib/17.js +1 -1
  11. package/lib/18.js +1 -1
  12. package/lib/19.js +1 -1
  13. package/lib/20.js +1 -1
  14. package/lib/21.js +1 -1
  15. package/lib/22.js +1 -1
  16. package/lib/23.js +1 -1
  17. package/lib/24.js +1 -1
  18. package/lib/25.js +1 -1
  19. package/lib/26.js +1 -1
  20. package/lib/27.js +1 -1
  21. package/lib/28.js +1 -1
  22. package/lib/29.js +1 -1
  23. package/lib/3.js +1 -1
  24. package/lib/30.js +1 -1
  25. package/lib/31.js +1 -1
  26. package/lib/32.js +1 -1
  27. package/lib/33.js +1 -1
  28. package/lib/34.js +1 -1
  29. package/lib/35.js +1 -1
  30. package/lib/36.js +1 -1
  31. package/lib/37.js +1 -1
  32. package/lib/38.js +1 -1
  33. package/lib/39.js +1 -1
  34. package/lib/4.js +1 -1
  35. package/lib/40.js +1 -1
  36. package/lib/41.js +1 -1
  37. package/lib/42.js +1 -1
  38. package/lib/43.js +1 -1
  39. package/lib/44.js +1 -1
  40. package/lib/45.js +1 -1
  41. package/lib/46.js +1 -1
  42. package/lib/47.js +1 -1
  43. package/lib/48.js +1 -1
  44. package/lib/49.js +1 -1
  45. package/lib/5.js +1 -1
  46. package/lib/50.js +1 -1
  47. package/lib/51.js +1 -1
  48. package/lib/52.js +1 -1
  49. package/lib/53.js +1 -1
  50. package/lib/54.js +1 -1
  51. package/lib/55.js +1 -1
  52. package/lib/56.js +1 -1
  53. package/lib/57.js +1 -1
  54. package/lib/58.js +1 -1
  55. package/lib/59.js +1 -1
  56. package/lib/6.js +1 -1
  57. package/lib/60.js +1 -1
  58. package/lib/61.js +1 -1
  59. package/lib/62.js +1 -1
  60. package/lib/63.js +1 -1
  61. package/lib/64.js +1 -1
  62. package/lib/65.js +1 -1
  63. package/lib/66.js +1 -1
  64. package/lib/67.js +1 -1
  65. package/lib/68.js +1 -1
  66. package/lib/69.js +1 -1
  67. package/lib/7.js +1 -1
  68. package/lib/70.js +1 -1
  69. package/lib/71.js +1 -1
  70. package/lib/72.js +1 -1
  71. package/lib/73.js +1 -1
  72. package/lib/74.js +1 -1
  73. package/lib/75.js +1 -1
  74. package/lib/76.js +1 -1
  75. package/lib/77.js +1 -1
  76. package/lib/78.js +1 -1
  77. package/lib/79.js +1 -1
  78. package/lib/8.js +1 -1
  79. package/lib/80.js +1 -1
  80. package/lib/81.js +1 -1
  81. package/lib/9.js +1 -1
  82. package/lib/account-login.js +837 -862
  83. package/lib/alert.js +2 -2
  84. package/lib/aside.js +2 -2
  85. package/lib/audit-trajectory.js +4 -4
  86. package/lib/autocomplete.js +1813 -1988
  87. package/lib/avatar.js +2 -2
  88. package/lib/backtop.js +2 -2
  89. package/lib/badge.js +2 -2
  90. package/lib/breadcrumb-item.js +4 -4
  91. package/lib/breadcrumb.js +4 -4
  92. package/lib/button-group.js +4 -4
  93. package/lib/button.js +2 -2
  94. package/lib/ca-login.js +837 -862
  95. package/lib/calendar.js +839 -864
  96. package/lib/card.js +2 -2
  97. package/lib/carousel-item.js +846 -871
  98. package/lib/carousel.js +839 -864
  99. package/lib/cascader-panel.js +852 -877
  100. package/lib/cascader.js +2048 -2223
  101. package/lib/checkbox-button.js +4 -4
  102. package/lib/checkbox-group.js +859 -884
  103. package/lib/checkbox.js +4 -4
  104. package/lib/col.js +2 -2
  105. package/lib/collapse-item.js +1040 -1065
  106. package/lib/collapse.js +1040 -1065
  107. package/lib/color-picker.js +972 -1122
  108. package/lib/container.js +2 -2
  109. package/lib/cron.js +12 -12
  110. package/lib/data-table.js +843 -868
  111. package/lib/date-picker.js +10520 -10695
  112. package/lib/descriptions-item.js +4 -4
  113. package/lib/descriptions.js +4 -4
  114. package/lib/dialog.js +837 -862
  115. package/lib/divider.js +2 -2
  116. package/lib/drawer.js +2 -2
  117. package/lib/dropdown-item.js +4 -4
  118. package/lib/dropdown-menu.js +974 -1124
  119. package/lib/dropdown.js +841 -866
  120. package/lib/email-login.js +837 -862
  121. package/lib/empty.js +2 -2
  122. package/lib/eoss.common.js +4023 -2668
  123. package/lib/flip.js +2 -2
  124. package/lib/flow-group.js +853 -878
  125. package/lib/flow.js +868 -893
  126. package/lib/flows.js +854 -879
  127. package/lib/footer.js +2 -2
  128. package/lib/form-item.js +860 -885
  129. package/lib/form.js +933 -950
  130. package/lib/guide.js +2 -2
  131. package/lib/header.js +2 -2
  132. package/lib/icon.js +837 -862
  133. package/lib/icons.js +2 -2
  134. package/lib/image-viewer.js +837 -862
  135. package/lib/image.js +4 -4
  136. package/lib/index.js +1 -1
  137. package/lib/infinite-scroll.js +2 -2
  138. package/lib/input-number.js +6 -6
  139. package/lib/input.js +839 -864
  140. package/lib/link.js +2 -2
  141. package/lib/loading.js +2 -2
  142. package/lib/login.js +867 -891
  143. package/lib/lowcode-view.js +1843 -1185
  144. package/lib/lowcode.js +3050 -1569
  145. package/lib/main.js +970 -988
  146. package/lib/marquee.js +837 -862
  147. package/lib/menu-item-group.js +15 -15
  148. package/lib/menu-item.js +6 -6
  149. package/lib/menu.js +2227 -2368
  150. package/lib/message-box.js +843 -868
  151. package/lib/message.js +839 -864
  152. package/lib/notification.js +861 -886
  153. package/lib/option-group.js +4 -4
  154. package/lib/option.js +839 -864
  155. package/lib/page-header.js +2 -2
  156. package/lib/pagination.js +839 -864
  157. package/lib/phone-login.js +847 -866
  158. package/lib/popconfirm.js +4 -4
  159. package/lib/popover.js +1831 -2006
  160. package/lib/process-config.js +839 -864
  161. package/lib/process-module.js +846 -871
  162. package/lib/process-rule.js +905 -930
  163. package/lib/progress.js +2 -2
  164. package/lib/qr-code.js +4 -4
  165. package/lib/qrcode-login.js +839 -864
  166. package/lib/radio-button.js +4 -4
  167. package/lib/radio-group.js +850 -875
  168. package/lib/radio.js +4 -4
  169. package/lib/rate.js +837 -862
  170. package/lib/retrial-auth.js +837 -862
  171. package/lib/row.js +2 -2
  172. package/lib/scrollbar.js +839 -864
  173. package/lib/select.js +2139 -2314
  174. package/lib/selector-panel.js +940 -965
  175. package/lib/selector.js +852 -877
  176. package/lib/slider.js +4 -4
  177. package/lib/step.js +32 -32
  178. package/lib/steps.js +874 -899
  179. package/lib/submenu.js +1269 -1385
  180. package/lib/switch.js +839 -864
  181. package/lib/tab-pane.js +4 -4
  182. package/lib/table-column.js +840 -865
  183. package/lib/table.js +1825 -2000
  184. package/lib/tabs.js +846 -871
  185. package/lib/tag.js +2 -2
  186. package/lib/theme-chalk/fonts/iconfont.ttf +0 -0
  187. package/lib/theme-chalk/fonts/iconfont.woff +0 -0
  188. package/lib/theme-chalk/index.css +1 -1
  189. package/lib/theme-chalk/lowcode.css +1 -1
  190. package/lib/time-picker.js +6471 -6646
  191. package/lib/time-select.js +5039 -5214
  192. package/lib/timeline-item.js +2 -2
  193. package/lib/timeline.js +2 -2
  194. package/lib/tips.js +837 -862
  195. package/lib/toolbar.js +4 -4
  196. package/lib/tooltip.js +1813 -1988
  197. package/lib/transfer.js +837 -862
  198. package/lib/tree-group.js +853 -878
  199. package/lib/tree.js +1026 -1051
  200. package/lib/update-history.js +4 -4
  201. package/lib/upload.js +859 -884
  202. package/lib/wujie.js +841 -866
  203. package/package.json +1 -1
  204. package/packages/flow-group/src/main.vue +2 -2
  205. package/packages/form/src/form-item-render.vue +1 -0
  206. package/packages/form/src/form-item.vue +12 -6
  207. package/packages/form/src/form.vue +5 -5
  208. package/packages/login/src/login.vue +1 -0
  209. package/packages/lowcode/src/attribute/function.vue +28 -9
  210. package/packages/lowcode/src/attribute/props.vue +202 -0
  211. package/packages/lowcode/src/attribute/styles.vue +79 -5
  212. package/packages/lowcode/src/attribute.vue +61 -4
  213. package/packages/lowcode/src/canvas.vue +159 -2
  214. package/packages/lowcode/src/form-render.vue +305 -0
  215. package/packages/lowcode/src/lowcode.vue +33 -13
  216. package/packages/lowcode/src/modules.vue +53 -37
  217. package/packages/lowcode/src/render.vue +80 -25
  218. package/packages/lowcode/src/util/components.js +100 -0
  219. package/packages/lowcode/src/util/props-util.js +67 -0
  220. package/packages/lowcode/src/util/source-generator.js +69 -9
  221. package/packages/lowcode/src/util/source-parser.js +64 -10
  222. package/packages/lowcode-view/src/render.vue +48 -18
  223. package/packages/main/src/components/userinfo.vue +0 -1
  224. package/packages/menu/src/menu-item-group.vue +1 -1
  225. package/packages/menu/src/mixins.js +8 -4
  226. package/packages/menu/src/submenu.vue +35 -5
  227. package/packages/phone-login/src/phone-login.vue +5 -2
  228. package/packages/theme-chalk/dist/fonts/iconfont.ttf +0 -0
  229. package/packages/theme-chalk/dist/fonts/iconfont.woff +0 -0
  230. package/packages/theme-chalk/src/fonts/iconfont.ttf +0 -0
  231. package/packages/theme-chalk/src/fonts/iconfont.woff +0 -0
  232. package/packages/theme-chalk/src/lowcode.scss +21 -2
  233. package/src/index.js +336 -336
package/lib/form.js CHANGED
@@ -136,7 +136,7 @@ module.exports =
136
136
  /******/
137
137
  /******/
138
138
  /******/ // Load entry module and return exports
139
- /******/ return __webpack_require__(__webpack_require__.s = 189);
139
+ /******/ return __webpack_require__(__webpack_require__.s = 196);
140
140
  /******/ })
141
141
  /************************************************************************/
142
142
  /******/ ([
@@ -4392,759 +4392,736 @@ var changeInTime = '/baseIssueRules/changeInTime';
4392
4392
  /* unused harmony export getSecond */
4393
4393
  /* unused harmony export getWeekday */
4394
4394
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "F", function() { return timeCycle; });
4395
- /* Modified from https://github.com/taylorhakes/fecha
4396
- *
4397
- * The MIT License (MIT)
4398
- *
4399
- * Copyright (c) 2015 Taylor Hakes
4400
- *
4401
- * Permission is hereby granted, free of charge, to any person obtaining a copy
4402
- * of this software and associated documentation files (the "Software"), to deal
4403
- * in the Software without restriction, including without limitation the rights
4404
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
4405
- * copies of the Software, and to permit persons to whom the Software is
4406
- * furnished to do so, subject to the following conditions:
4407
- *
4408
- * The above copyright notice and this permission notice shall be included in all
4409
- * copies or substantial portions of the Software.
4410
- *
4411
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
4412
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
4413
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
4414
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
4415
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
4416
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
4417
- * SOFTWARE.
4418
- */
4419
-
4420
- /*eslint-disable*/
4421
- // 把 YYYY-MM-DD 改成了 yyyy-MM-dd
4422
-
4423
-
4395
+
4396
+
4424
4397
  /**
4425
4398
  * Parse or format dates
4426
4399
  * @class fecha
4427
- */
4428
- const fecha = {};
4429
- const token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
4430
- const twoDigits = '\\d\\d?';
4431
- const threeDigits = '\\d{3}';
4432
- const fourDigits = '\\d{4}';
4433
- const word = '[^\\s]+';
4434
- const literal = /\[([^]*?)\]/gm;
4435
- const noop = function () {};
4436
-
4437
- function regexEscape(str) {
4438
- return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
4439
- }
4440
-
4441
- function shorten(arr, sLen) {
4442
- const newArr = [];
4443
- for (let i = 0, len = arr.length; i < len; i++) {
4444
- newArr.push(arr[i].substr(0, sLen));
4445
- }
4446
- return newArr;
4447
- }
4448
-
4449
- function monthUpdate() {
4450
- return function (d, v) {
4451
- const index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
4452
- if (~index) {
4453
- d.month = index;
4454
- }
4455
- };
4456
- }
4457
-
4458
- function pad(val, len) {
4459
- val = String(val);
4460
- len = len || 2;
4461
- while (val.length < len) {
4462
- val = '0' + val;
4463
- }
4464
- return val;
4465
- }
4466
-
4467
- // 直接使用中文日期名称常量
4468
- const dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
4469
- const monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
4470
- const monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
4471
- const dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
4472
- const amPm = ['上午', '下午'];
4473
- const DoFn = function DoFn(D) {
4474
- return D + '日';
4475
- };
4476
-
4477
- const formatFlags = {
4478
- D: function(dateObj) {
4479
- return dateObj.getDay();
4480
- },
4481
- DD: function(dateObj) {
4482
- return pad(dateObj.getDay());
4483
- },
4484
- Do: function(dateObj) {
4485
- return DoFn(dateObj.getDate());
4486
- },
4487
- d: function(dateObj) {
4488
- return dateObj.getDate();
4489
- },
4490
- dd: function(dateObj) {
4491
- return pad(dateObj.getDate());
4492
- },
4493
- ddd: function(dateObj) {
4494
- return dayNamesShort[dateObj.getDay()];
4495
- },
4496
- dddd: function(dateObj) {
4497
- return dayNames[dateObj.getDay()];
4498
- },
4499
- M: function(dateObj) {
4500
- return dateObj.getMonth() + 1;
4501
- },
4502
- MM: function(dateObj) {
4503
- return pad(dateObj.getMonth() + 1);
4504
- },
4505
- MMM: function(dateObj) {
4506
- return monthNamesShort[dateObj.getMonth()];
4507
- },
4508
- MMMM: function(dateObj) {
4509
- return monthNames[dateObj.getMonth()];
4510
- },
4511
- yy: function(dateObj) {
4512
- return pad(String(dateObj.getFullYear()), 4).substr(2);
4513
- },
4514
- yyyy: function(dateObj) {
4515
- return pad(dateObj.getFullYear(), 4);
4516
- },
4517
- h: function(dateObj) {
4518
- return dateObj.getHours() % 12 || 12;
4519
- },
4520
- hh: function(dateObj) {
4521
- return pad(dateObj.getHours() % 12 || 12);
4522
- },
4523
- H: function(dateObj) {
4524
- return dateObj.getHours();
4525
- },
4526
- HH: function(dateObj) {
4527
- return pad(dateObj.getHours());
4528
- },
4529
- m: function(dateObj) {
4530
- return dateObj.getMinutes();
4531
- },
4532
- mm: function(dateObj) {
4533
- return pad(dateObj.getMinutes());
4534
- },
4535
- s: function(dateObj) {
4536
- return dateObj.getSeconds();
4537
- },
4538
- ss: function(dateObj) {
4539
- return pad(dateObj.getSeconds());
4540
- },
4541
- S: function(dateObj) {
4542
- return Math.round(dateObj.getMilliseconds() / 100);
4543
- },
4544
- SS: function(dateObj) {
4545
- return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
4546
- },
4547
- SSS: function(dateObj) {
4548
- return pad(dateObj.getMilliseconds(), 3);
4549
- },
4550
- a: function(dateObj) {
4551
- return dateObj.getHours() < 12 ? '上午' : '下午';
4552
- },
4553
- A: function(dateObj) {
4554
- return dateObj.getHours() < 12 ? '上午' : '下午';
4555
- },
4556
- ZZ: function(dateObj) {
4557
- const o = dateObj.getTimezoneOffset();
4558
- return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
4559
- }
4560
- };
4561
-
4562
- const parseFlags = {
4563
- d: [twoDigits, function (d, v) {
4564
- d.day = v;
4565
- }],
4566
- Do: [twoDigits + word, function (d, v) {
4567
- d.day = parseInt(v, 10);
4568
- }],
4569
- M: [twoDigits, function (d, v) {
4570
- d.month = v - 1;
4571
- }],
4572
- yy: [twoDigits, function (d, v) {
4573
- const da = new Date(), cent = +('' + da.getFullYear()).substr(0, 2);
4574
- d.year = '' + (v > 68 ? cent - 1 : cent) + v;
4575
- }],
4576
- h: [twoDigits, function (d, v) {
4577
- d.hour = v;
4578
- }],
4579
- m: [twoDigits, function (d, v) {
4580
- d.minute = v;
4581
- }],
4582
- s: [twoDigits, function (d, v) {
4583
- d.second = v;
4584
- }],
4585
- yyyy: [fourDigits, function (d, v) {
4586
- d.year = v;
4587
- }],
4588
- S: ['\\d', function (d, v) {
4589
- d.millisecond = v * 100;
4590
- }],
4591
- SS: ['\\d{2}', function (d, v) {
4592
- d.millisecond = v * 10;
4593
- }],
4594
- SSS: [threeDigits, function (d, v) {
4595
- d.millisecond = v;
4596
- }],
4597
- D: [twoDigits, noop],
4598
- ddd: [word, noop],
4599
- MMM: [word, monthUpdate('monthNamesShort')],
4600
- MMMM: [word, monthUpdate('monthNames')],
4601
- a: [word, function (d, v) {
4602
- const val = v.toLowerCase();
4603
- if (val === '上午') {
4604
- d.isPm = false;
4605
- } else if (val === '下午') {
4606
- d.isPm = true;
4607
- }
4608
- }],
4609
- ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
4610
- let parts = (v + '').match(/([+-]|\d\d)/gi), minutes;
4611
-
4612
- if (parts) {
4613
- minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
4614
- d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
4615
- }
4616
- }]
4617
- };
4618
- parseFlags.dd = parseFlags.d;
4619
- parseFlags.dddd = parseFlags.ddd;
4620
- parseFlags.DD = parseFlags.D;
4621
- parseFlags.mm = parseFlags.m;
4622
- parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
4623
- parseFlags.MM = parseFlags.M;
4624
- parseFlags.ss = parseFlags.s;
4625
- parseFlags.A = parseFlags.a;
4626
-
4627
-
4628
- // Some common format strings
4629
- fecha.masks = {
4630
- default: 'ddd MMM dd yyyy HH:mm:ss',
4631
- shortDate: 'M/D/yy',
4632
- mediumDate: 'MMM d, yyyy',
4633
- longDate: 'MMMM d, yyyy',
4634
- fullDate: 'dddd, MMMM d, yyyy',
4635
- shortTime: 'HH:mm',
4636
- mediumTime: 'HH:mm:ss',
4637
- longTime: 'HH:mm:ss.SSS'
4638
- };
4639
-
4400
+ */
4401
+ var fecha = {};
4402
+ var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
4403
+ var twoDigits = '\\d\\d?';
4404
+ var threeDigits = '\\d{3}';
4405
+ var fourDigits = '\\d{4}';
4406
+ var word = '[^\\s]+';
4407
+ var literal = /\[([^]*?)\]/gm;
4408
+ var noop = function noop() {};
4409
+
4410
+ function regexEscape(str) {
4411
+ return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
4412
+ }
4413
+
4414
+ function shorten(arr, sLen) {
4415
+ var newArr = [];
4416
+ for (var i = 0, len = arr.length; i < len; i++) {
4417
+ newArr.push(arr[i].substr(0, sLen));
4418
+ }
4419
+ return newArr;
4420
+ }
4421
+
4422
+ function monthUpdate() {
4423
+ return function (d, v) {
4424
+ var index = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'].indexOf(v.toLowerCase());
4425
+ if (~index) {
4426
+ d.month = index;
4427
+ }
4428
+ };
4429
+ }
4430
+
4431
+ function pad(val, len) {
4432
+ val = String(val);
4433
+ len = len || 2;
4434
+ while (val.length < len) {
4435
+ val = '0' + val;
4436
+ }
4437
+ return val;
4438
+ }
4439
+
4440
+ // 直接使用中文日期名称常量
4441
+ var dayNames = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
4442
+ var monthNames = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'];
4443
+ var monthNamesShort = ['一', '二', '三', '四', '五', '六', '七', '八', '九', '十', '十一', '十二'];
4444
+ var dayNamesShort = ['日', '一', '二', '三', '四', '五', '六'];
4445
+ var amPm = ['上午', '下午'];
4446
+ var DoFn = function DoFn(D) {
4447
+ return D + '日';
4448
+ };
4449
+
4450
+ var formatFlags = {
4451
+ D: function D(dateObj) {
4452
+ return dateObj.getDay();
4453
+ },
4454
+ DD: function DD(dateObj) {
4455
+ return pad(dateObj.getDay());
4456
+ },
4457
+ Do: function Do(dateObj) {
4458
+ return DoFn(dateObj.getDate());
4459
+ },
4460
+ d: function d(dateObj) {
4461
+ return dateObj.getDate();
4462
+ },
4463
+ dd: function dd(dateObj) {
4464
+ return pad(dateObj.getDate());
4465
+ },
4466
+ ddd: function ddd(dateObj) {
4467
+ return dayNamesShort[dateObj.getDay()];
4468
+ },
4469
+ dddd: function dddd(dateObj) {
4470
+ return dayNames[dateObj.getDay()];
4471
+ },
4472
+ M: function M(dateObj) {
4473
+ return dateObj.getMonth() + 1;
4474
+ },
4475
+ MM: function MM(dateObj) {
4476
+ return pad(dateObj.getMonth() + 1);
4477
+ },
4478
+ MMM: function MMM(dateObj) {
4479
+ return monthNamesShort[dateObj.getMonth()];
4480
+ },
4481
+ MMMM: function MMMM(dateObj) {
4482
+ return monthNames[dateObj.getMonth()];
4483
+ },
4484
+ yy: function yy(dateObj) {
4485
+ return pad(String(dateObj.getFullYear()), 4).substr(2);
4486
+ },
4487
+ yyyy: function yyyy(dateObj) {
4488
+ return pad(dateObj.getFullYear(), 4);
4489
+ },
4490
+ h: function h(dateObj) {
4491
+ return dateObj.getHours() % 12 || 12;
4492
+ },
4493
+ hh: function hh(dateObj) {
4494
+ return pad(dateObj.getHours() % 12 || 12);
4495
+ },
4496
+ H: function H(dateObj) {
4497
+ return dateObj.getHours();
4498
+ },
4499
+ HH: function HH(dateObj) {
4500
+ return pad(dateObj.getHours());
4501
+ },
4502
+ m: function m(dateObj) {
4503
+ return dateObj.getMinutes();
4504
+ },
4505
+ mm: function mm(dateObj) {
4506
+ return pad(dateObj.getMinutes());
4507
+ },
4508
+ s: function s(dateObj) {
4509
+ return dateObj.getSeconds();
4510
+ },
4511
+ ss: function ss(dateObj) {
4512
+ return pad(dateObj.getSeconds());
4513
+ },
4514
+ S: function S(dateObj) {
4515
+ return Math.round(dateObj.getMilliseconds() / 100);
4516
+ },
4517
+ SS: function SS(dateObj) {
4518
+ return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
4519
+ },
4520
+ SSS: function SSS(dateObj) {
4521
+ return pad(dateObj.getMilliseconds(), 3);
4522
+ },
4523
+ a: function a(dateObj) {
4524
+ return dateObj.getHours() < 12 ? '上午' : '下午';
4525
+ },
4526
+ A: function A(dateObj) {
4527
+ return dateObj.getHours() < 12 ? '上午' : '下午';
4528
+ },
4529
+ ZZ: function ZZ(dateObj) {
4530
+ var o = dateObj.getTimezoneOffset();
4531
+ return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
4532
+ }
4533
+ };
4534
+
4535
+ var parseFlags = {
4536
+ d: [twoDigits, function (d, v) {
4537
+ d.day = v;
4538
+ }],
4539
+ Do: [twoDigits + word, function (d, v) {
4540
+ d.day = parseInt(v, 10);
4541
+ }],
4542
+ M: [twoDigits, function (d, v) {
4543
+ d.month = v - 1;
4544
+ }],
4545
+ yy: [twoDigits, function (d, v) {
4546
+ var da = new Date(),
4547
+ cent = +('' + da.getFullYear()).substr(0, 2);
4548
+ d.year = '' + (v > 68 ? cent - 1 : cent) + v;
4549
+ }],
4550
+ h: [twoDigits, function (d, v) {
4551
+ d.hour = v;
4552
+ }],
4553
+ m: [twoDigits, function (d, v) {
4554
+ d.minute = v;
4555
+ }],
4556
+ s: [twoDigits, function (d, v) {
4557
+ d.second = v;
4558
+ }],
4559
+ yyyy: [fourDigits, function (d, v) {
4560
+ d.year = v;
4561
+ }],
4562
+ S: ['\\d', function (d, v) {
4563
+ d.millisecond = v * 100;
4564
+ }],
4565
+ SS: ['\\d{2}', function (d, v) {
4566
+ d.millisecond = v * 10;
4567
+ }],
4568
+ SSS: [threeDigits, function (d, v) {
4569
+ d.millisecond = v;
4570
+ }],
4571
+ D: [twoDigits, noop],
4572
+ ddd: [word, noop],
4573
+ MMM: [word, monthUpdate('monthNamesShort')],
4574
+ MMMM: [word, monthUpdate('monthNames')],
4575
+ a: [word, function (d, v) {
4576
+ var val = v.toLowerCase();
4577
+ if (val === '上午') {
4578
+ d.isPm = false;
4579
+ } else if (val === '下午') {
4580
+ d.isPm = true;
4581
+ }
4582
+ }],
4583
+ ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
4584
+ var parts = (v + '').match(/([+-]|\d\d)/gi),
4585
+ minutes = void 0;
4586
+
4587
+ if (parts) {
4588
+ minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
4589
+ d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
4590
+ }
4591
+ }]
4592
+ };
4593
+ parseFlags.dd = parseFlags.d;
4594
+ parseFlags.dddd = parseFlags.ddd;
4595
+ parseFlags.DD = parseFlags.D;
4596
+ parseFlags.mm = parseFlags.m;
4597
+ parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
4598
+ parseFlags.MM = parseFlags.M;
4599
+ parseFlags.ss = parseFlags.s;
4600
+ parseFlags.A = parseFlags.a;
4601
+
4602
+ // Some common format strings
4603
+ fecha.masks = {
4604
+ default: 'ddd MMM dd yyyy HH:mm:ss',
4605
+ shortDate: 'M/D/yy',
4606
+ mediumDate: 'MMM d, yyyy',
4607
+ longDate: 'MMMM d, yyyy',
4608
+ fullDate: 'dddd, MMMM d, yyyy',
4609
+ shortTime: 'HH:mm',
4610
+ mediumTime: 'HH:mm:ss',
4611
+ longTime: 'HH:mm:ss.SSS'
4612
+ };
4613
+
4640
4614
  /***
4641
4615
  * Format a date
4642
4616
  * @method format
4643
4617
  * @param {Date|number} dateObj
4644
4618
  * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
4645
- */
4646
- fecha.format = function (dateObj, mask) {
4647
- if (typeof dateObj === 'number') {
4648
- dateObj = new Date(dateObj);
4649
- }
4650
-
4651
- if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
4652
- throw new Error('Invalid Date in fecha.format');
4653
- }
4654
-
4655
- mask = fecha.masks[mask] || mask || fecha.masks['default'];
4656
-
4657
- const literals = [];
4658
-
4659
- // Make literals inactive by replacing them with ??
4660
- mask = mask.replace(literal, function($0, $1) {
4661
- literals.push($1);
4662
- return '@@@';
4663
- });
4664
- // Apply formatting rules
4665
- mask = mask.replace(token, function ($0) {
4666
- return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
4667
- });
4668
- // Inline literal values back into the formatted value
4669
- return mask.replace(/@@@/g, function() {
4670
- return literals.shift();
4671
- });
4672
- };
4673
-
4619
+ */
4620
+ fecha.format = function (dateObj, mask) {
4621
+ if (typeof dateObj === 'number') {
4622
+ dateObj = new Date(dateObj);
4623
+ }
4624
+
4625
+ if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
4626
+ throw new Error('Invalid Date in fecha.format');
4627
+ }
4628
+
4629
+ mask = fecha.masks[mask] || mask || fecha.masks['default'];
4630
+
4631
+ var literals = [];
4632
+
4633
+ // Make literals inactive by replacing them with ??
4634
+ mask = mask.replace(literal, function ($0, $1) {
4635
+ literals.push($1);
4636
+ return '@@@';
4637
+ });
4638
+ // Apply formatting rules
4639
+ mask = mask.replace(token, function ($0) {
4640
+ return $0 in formatFlags ? formatFlags[$0](dateObj) : $0.slice(1, $0.length - 1);
4641
+ });
4642
+ // Inline literal values back into the formatted value
4643
+ return mask.replace(/@@@/g, function () {
4644
+ return literals.shift();
4645
+ });
4646
+ };
4647
+
4674
4648
  /**
4675
4649
  * Parse a date string into an object, changes - into /
4676
4650
  * @method parse
4677
4651
  * @param {string} dateStr Date string
4678
4652
  * @param {string} format Date parse format
4679
4653
  * @returns {Date|boolean}
4680
- */
4681
- fecha.parse = function (dateStr, format) {
4682
- if (typeof format !== 'string') {
4683
- throw new Error('Invalid format in fecha.parse');
4684
- }
4685
-
4686
- format = fecha.masks[format] || format;
4687
-
4688
- // Avoid regular expression denial of service, fail early for really long strings
4689
- // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
4690
- if (dateStr.length > 1000) {
4691
- return null;
4692
- }
4693
-
4694
- const dateInfo = {};
4695
- const parseInfo = [];
4696
- const literals = [];
4697
- format = format.replace(literal, function($0, $1) {
4698
- literals.push($1);
4699
- return '@@@';
4700
- });
4701
- let newFormat = regexEscape(format).replace(token, function ($0) {
4702
- if (parseFlags[$0]) {
4703
- const info = parseFlags[$0];
4704
- parseInfo.push(info[1]);
4705
- return '(' + info[0] + ')';
4706
- }
4707
-
4708
- return $0;
4709
- });
4710
- newFormat = newFormat.replace(/@@@/g, function() {
4711
- return literals.shift();
4712
- });
4713
- const matches = dateStr.match(new RegExp(newFormat, 'i'));
4714
- if (!matches) {
4715
- return null;
4716
- }
4717
-
4718
- for (let i = 1; i < matches.length; i++) {
4719
- parseInfo[i - 1](dateInfo, matches[i]);
4720
- }
4721
-
4722
- const today = new Date();
4723
- if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
4724
- dateInfo.hour = +dateInfo.hour + 12;
4725
- } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
4726
- dateInfo.hour = 0;
4727
- }
4728
-
4729
- let date;
4730
- if (dateInfo.timezoneOffset != null) {
4731
- dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
4732
- date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
4733
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
4734
- } else {
4735
- date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1,
4736
- dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
4737
- }
4738
- return date;
4739
- };
4740
-
4741
- // 导出fecha对象
4742
-
4743
-
4744
- // 以下是从date-util.js合并的函数
4745
- const newArray = function(start, end) {
4746
- let result = [];
4747
- for (let i = start; i <= end; i++) {
4748
- result.push(i);
4749
- }
4750
- return result;
4751
- };
4752
-
4753
- const getSettings = () => {
4754
- return {
4755
- dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
4756
- dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
4757
- monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
4758
- monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
4759
- amPm: ['上午', '下午']
4760
- };
4761
- };
4762
-
4763
- const toDate = function(date) {
4764
- return isDate(date) ? new Date(date) : null;
4765
- };
4766
-
4767
- const isDate = function(date) {
4768
- if (date === null || date === undefined) return false;
4769
- if (isNaN(new Date(date).getTime())) return false;
4770
- if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
4771
- return true;
4772
- };
4773
-
4774
- const isDateObject = function(val) {
4775
- return val instanceof Date;
4776
- };
4777
-
4778
- const formatDate = function (date, format = 'yyyy-MM-dd') {
4779
- // 处理多种输入类型
4780
- if (!date) return '';
4781
-
4782
- // 如果是时间戳,转成日期对象
4783
- if (typeof date === 'number') {
4784
- date = new Date(date);
4785
- }
4786
- // 如果是字符串,转成日期对象
4787
- if (typeof date === 'string') {
4788
- date = new Date(date);
4789
- }
4790
-
4791
- // 调用toDate进一步验证和转换
4792
- date = toDate(date);
4793
- if (!date) return '';
4794
-
4795
- // 兼容大写和小写的格式标记
4796
- // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
4797
- const lowercaseFormat = format
4798
- .replace(/YYYY/g, 'yyyy')
4799
- .replace(/D/g, 'd')
4800
-
4801
- // 使用fecha库进行格式化,支持中文配置
4802
- const str = fecha.format(date, lowercaseFormat, getSettings());
4803
- return str;
4804
- };
4805
-
4806
- const parseDate = function(string, format) {
4807
- return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
4808
- };
4809
-
4810
- const getDayCountOfMonth = function(year, month) {
4811
- if (month === 3 || month === 5 || month === 8 || month === 10) {
4812
- return 30;
4813
- }
4814
-
4815
- if (month === 1) {
4816
- if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
4817
- return 29;
4818
- } else {
4819
- return 28;
4820
- }
4821
- }
4822
-
4823
- return 31;
4824
- };
4825
-
4826
- const getDayCountOfYear = function(year) {
4827
- const isLeapYear = year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0);
4828
- return isLeapYear ? 366 : 365;
4829
- };
4830
-
4831
- const getFirstDayOfMonth = function(date) {
4832
- const temp = new Date(date.getTime());
4833
- temp.setDate(1);
4834
- return temp.getDay();
4835
- };
4836
-
4837
- // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
4838
- // {prev, next} Date should work for Daylight Saving Time
4839
- // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
4840
- const prevDate = function(date, amount = 1) {
4841
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
4842
- };
4843
-
4844
- const nextDate = function(date, amount = 1) {
4845
- return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
4846
- };
4847
-
4848
- const getStartDateOfMonth = function(year, month) {
4849
- const result = new Date(year, month, 1);
4850
- const day = result.getDay();
4851
-
4852
- if (day === 0) {
4853
- return prevDate(result, 7);
4854
- } else {
4855
- return prevDate(result, day);
4856
- }
4857
- };
4858
-
4859
- const getWeekNumber = function(date) {
4860
- // 支持多种输入类型
4861
- if (!date||!isDate(date)) {
4862
- date = new Date();
4863
- }
4864
- if (typeof date === 'string') {
4865
- date = new Date(date);
4866
- }
4867
-
4868
- // 验证日期有效性
4869
- if (!isDate(date)) return null;
4870
-
4871
- const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
4872
- // 设置为最近的星期四:当前日期 + 4 - 当前星期数
4873
- // 将星期日的星期数设为7
4874
- d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
4875
- // 获取当年的第一天
4876
- const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
4877
- // 计算到最近的星期四的完整周数
4878
- const weekNo = Math.ceil((((d - yearStart) / 86400000) + 1) / 7);
4879
- // 返回周数
4880
- return weekNo;
4881
- };
4882
-
4883
- const getRangeHours = function(ranges) {
4884
- const hours = [];
4885
- let disabledHours = [];
4886
-
4887
- (ranges || []).forEach(range => {
4888
- const value = range.map(date => date.getHours());
4889
-
4890
- disabledHours = disabledHours.concat(newArray(value[0], value[1]));
4891
- });
4892
-
4893
- if (disabledHours.length) {
4894
- for (let i = 0; i < 24; i++) {
4895
- hours[i] = disabledHours.indexOf(i) === -1;
4896
- }
4897
- } else {
4898
- for (let i = 0; i < 24; i++) {
4899
- hours[i] = false;
4900
- }
4901
- }
4902
-
4903
- return hours;
4904
- };
4905
-
4906
- const getPrevMonthLastDays = (date, amount) => {
4907
- if (amount <= 0) return [];
4908
- const temp = new Date(date.getTime());
4909
- temp.setDate(0);
4910
- const lastDay = temp.getDate();
4911
- return range(amount).map((_, index) => lastDay - (amount - index - 1));
4912
- };
4913
-
4914
- const getMonthDays = (date) => {
4915
- const temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
4916
- const days = temp.getDate();
4917
- return range(days).map((_, index) => index + 1);
4918
- };
4919
-
4920
- function setRangeData(arr, start, end, value) {
4921
- for (let i = start; i < end; i++) {
4922
- arr[i] = value;
4923
- }
4924
- }
4925
-
4926
- const getRangeMinutes = function(ranges, hour) {
4927
- const minutes = new Array(60);
4928
-
4929
- if (ranges.length > 0) {
4930
- ranges.forEach(range => {
4931
- const start = range[0];
4932
- const end = range[1];
4933
- const startHour = start.getHours();
4934
- const startMinute = start.getMinutes();
4935
- const endHour = end.getHours();
4936
- const endMinute = end.getMinutes();
4937
- if (startHour === hour && endHour !== hour) {
4938
- setRangeData(minutes, startMinute, 60, true);
4939
- } else if (startHour === hour && endHour === hour) {
4940
- setRangeData(minutes, startMinute, endMinute + 1, true);
4941
- } else if (startHour !== hour && endHour === hour) {
4942
- setRangeData(minutes, 0, endMinute + 1, true);
4943
- } else if (startHour < hour && endHour > hour) {
4944
- setRangeData(minutes, 0, 60, true);
4945
- }
4946
- });
4947
- } else {
4948
- setRangeData(minutes, 0, 60, true);
4949
- }
4950
- return minutes;
4951
- };
4952
-
4953
- const range = function(n) {
4954
- // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
4955
- return Array.apply(null, {length: n}).map((_, n) => n);
4956
- };
4957
-
4958
- const modifyDate = function(date, y, m, d) {
4959
- return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
4960
- };
4961
-
4962
- const modifyTime = function(date, h, m, s) {
4963
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
4964
- };
4965
-
4966
- const modifyWithTimeString = (date, time) => {
4967
- if (date == null || !time) {
4968
- return date;
4969
- }
4970
- time = parseDate(time, 'HH:mm:ss');
4971
- return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
4972
- };
4973
-
4974
- const clearTime = function(date) {
4975
- return new Date(date.getFullYear(), date.getMonth(), date.getDate());
4976
- };
4977
-
4978
- const clearMilliseconds = function(date) {
4979
- return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
4980
- };
4981
-
4982
- const limitTimeRange = function(date, ranges, format = 'HH:mm:ss') {
4983
- // TODO: refactory a more elegant solution
4984
- if (ranges.length === 0) return date;
4985
- const normalizeDate = date => fecha.parse(fecha.format(date, format), format);
4986
- const ndate = normalizeDate(date);
4987
- const nranges = ranges.map(range => range.map(normalizeDate));
4988
- if (nranges.some(nrange => ndate >= nrange[0] && ndate <= nrange[1])) return date;
4989
-
4990
- let minDate = nranges[0][0];
4991
- let maxDate = nranges[0][0];
4992
-
4993
- nranges.forEach(nrange => {
4994
- minDate = new Date(Math.min(nrange[0], minDate));
4995
- maxDate = new Date(Math.max(nrange[1], minDate));
4996
- });
4997
-
4998
- const ret = ndate < minDate ? minDate : maxDate;
4999
- // preserve Year/Month/Date
5000
- return modifyDate(
5001
- ret,
5002
- date.getFullYear(),
5003
- date.getMonth(),
5004
- date.getDate()
5005
- );
5006
- };
5007
-
5008
- const timeWithinRange = function(date, selectableRange, format) {
5009
- const limitedDate = limitTimeRange(date, selectableRange, format);
5010
- return limitedDate.getTime() === date.getTime();
5011
- };
5012
-
5013
- const changeYearMonthAndClampDate = function(date, year, month) {
5014
- // clamp date to the number of days in `year`, `month`
5015
- // eg: (2010-1-31, 2010, 2) => 2010-2-28
5016
- const monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
5017
- return modifyDate(date, year, month, monthDate);
5018
- };
5019
-
5020
- const prevMonth = function(date) {
5021
- const year = date.getFullYear();
5022
- const month = date.getMonth();
5023
- return month === 0
5024
- ? changeYearMonthAndClampDate(date, year - 1, 11)
5025
- : changeYearMonthAndClampDate(date, year, month - 1);
5026
- };
5027
-
5028
- const nextMonth = function(date) {
5029
- const year = date.getFullYear();
5030
- const month = date.getMonth();
5031
- return month === 11
5032
- ? changeYearMonthAndClampDate(date, year + 1, 0)
5033
- : changeYearMonthAndClampDate(date, year, month + 1);
5034
- };
5035
-
5036
- const prevYear = function(date, amount = 1) {
5037
- const year = date.getFullYear();
5038
- const month = date.getMonth();
5039
- return changeYearMonthAndClampDate(date, year - amount, month);
5040
- };
5041
-
5042
- const nextYear = function(date, amount = 1) {
5043
- const year = date.getFullYear();
5044
- const month = date.getMonth();
5045
- return changeYearMonthAndClampDate(date, year + amount, month);
5046
- };
5047
-
5048
- const extractDateFormat = function(format) {
5049
- return format
5050
- .replace(/\W?m{1,2}|\W?ZZ/g, '')
5051
- .replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '')
5052
- .trim();
5053
- };
5054
-
5055
- const extractTimeFormat = function(format) {
5056
- return format
5057
- .replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '')
5058
- .trim();
5059
- };
5060
-
5061
- const validateRangeInOneMonth = function(start, end) {
5062
- return (start.getMonth() === end.getMonth()) && (start.getFullYear() === end.getFullYear());
5063
- };
5064
-
4654
+ */
4655
+ fecha.parse = function (dateStr, format) {
4656
+ if (typeof format !== 'string') {
4657
+ throw new Error('Invalid format in fecha.parse');
4658
+ }
4659
+
4660
+ format = fecha.masks[format] || format;
4661
+
4662
+ // Avoid regular expression denial of service, fail early for really long strings
4663
+ // https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
4664
+ if (dateStr.length > 1000) {
4665
+ return null;
4666
+ }
4667
+
4668
+ var dateInfo = {};
4669
+ var parseInfo = [];
4670
+ var literals = [];
4671
+ format = format.replace(literal, function ($0, $1) {
4672
+ literals.push($1);
4673
+ return '@@@';
4674
+ });
4675
+ var newFormat = regexEscape(format).replace(token, function ($0) {
4676
+ if (parseFlags[$0]) {
4677
+ var info = parseFlags[$0];
4678
+ parseInfo.push(info[1]);
4679
+ return '(' + info[0] + ')';
4680
+ }
4681
+
4682
+ return $0;
4683
+ });
4684
+ newFormat = newFormat.replace(/@@@/g, function () {
4685
+ return literals.shift();
4686
+ });
4687
+ var matches = dateStr.match(new RegExp(newFormat, 'i'));
4688
+ if (!matches) {
4689
+ return null;
4690
+ }
4691
+
4692
+ for (var i = 1; i < matches.length; i++) {
4693
+ parseInfo[i - 1](dateInfo, matches[i]);
4694
+ }
4695
+
4696
+ var today = new Date();
4697
+ if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
4698
+ dateInfo.hour = +dateInfo.hour + 12;
4699
+ } else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
4700
+ dateInfo.hour = 0;
4701
+ }
4702
+
4703
+ var date = void 0;
4704
+ if (dateInfo.timezoneOffset != null) {
4705
+ dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
4706
+ date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
4707
+ } else {
4708
+ date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
4709
+ }
4710
+ return date;
4711
+ };
4712
+
4713
+ // 导出fecha对象
4714
+
4715
+
4716
+ // 以下是从date-util.js合并的函数
4717
+ var newArray = function newArray(start, end) {
4718
+ var result = [];
4719
+ for (var i = start; i <= end; i++) {
4720
+ result.push(i);
4721
+ }
4722
+ return result;
4723
+ };
4724
+
4725
+ var getSettings = function getSettings() {
4726
+ return {
4727
+ dayNamesShort: ['日', '一', '二', '三', '四', '五', '六'],
4728
+ dayNames: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],
4729
+ monthNamesShort: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],
4730
+ monthNames: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],
4731
+ amPm: ['上午', '下午']
4732
+ };
4733
+ };
4734
+
4735
+ var toDate = function toDate(date) {
4736
+ return isDate(date) ? new Date(date) : null;
4737
+ };
4738
+
4739
+ var isDate = function isDate(date) {
4740
+ if (date === null || date === undefined) return false;
4741
+ if (isNaN(new Date(date).getTime())) return false;
4742
+ if (Array.isArray(date)) return false; // deal with `new Date([ new Date() ]) -> new Date()`
4743
+ return true;
4744
+ };
4745
+
4746
+ var isDateObject = function isDateObject(val) {
4747
+ return val instanceof Date;
4748
+ };
4749
+
4750
+ var formatDate = function formatDate(date) {
4751
+ var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'yyyy-MM-dd';
4752
+
4753
+ // 处理多种输入类型
4754
+ if (!date) return '';
4755
+
4756
+ // 如果是时间戳,转成日期对象
4757
+ if (typeof date === 'number') {
4758
+ date = new Date(date);
4759
+ }
4760
+ // 如果是字符串,转成日期对象
4761
+ if (typeof date === 'string') {
4762
+ date = new Date(date);
4763
+ }
4764
+
4765
+ // 调用toDate进一步验证和转换
4766
+ date = toDate(date);
4767
+ if (!date) return '';
4768
+
4769
+ // 兼容大写和小写的格式标记
4770
+ // 将大写的YYYY/MM/DD/HH/mm/ss转换为小写的yyyy/mm/dd/hh/mm/ss
4771
+ var lowercaseFormat = format.replace(/YYYY/g, 'yyyy').replace(/D/g, 'd');
4772
+
4773
+ // 使用fecha库进行格式化,支持中文配置
4774
+ var str = fecha.format(date, lowercaseFormat, getSettings());
4775
+ return str;
4776
+ };
4777
+
4778
+ var parseDate = function parseDate(string, format) {
4779
+ return fecha.parse(string, format || 'yyyy-MM-dd', getSettings());
4780
+ };
4781
+
4782
+ var getDayCountOfMonth = function getDayCountOfMonth(year, month) {
4783
+ if (month === 3 || month === 5 || month === 8 || month === 10) {
4784
+ return 30;
4785
+ }
4786
+
4787
+ if (month === 1) {
4788
+ if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
4789
+ return 29;
4790
+ } else {
4791
+ return 28;
4792
+ }
4793
+ }
4794
+
4795
+ return 31;
4796
+ };
4797
+
4798
+ var getDayCountOfYear = function getDayCountOfYear(year) {
4799
+ var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
4800
+ return isLeapYear ? 366 : 365;
4801
+ };
4802
+
4803
+ var getFirstDayOfMonth = function getFirstDayOfMonth(date) {
4804
+ var temp = new Date(date.getTime());
4805
+ temp.setDate(1);
4806
+ return temp.getDay();
4807
+ };
4808
+
4809
+ // see: https://stackoverflow.com/questions/3674539/incrementing-a-date-in-javascript
4810
+ // {prev, next} Date should work for Daylight Saving Time
4811
+ // Adding 24 * 60 * 60 * 1000 does not work in the above scenario
4812
+ var prevDate = function prevDate(date) {
4813
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4814
+
4815
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
4816
+ };
4817
+
4818
+ var nextDate = function nextDate(date) {
4819
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
4820
+
4821
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
4822
+ };
4823
+
4824
+ var getStartDateOfMonth = function getStartDateOfMonth(year, month) {
4825
+ var result = new Date(year, month, 1);
4826
+ var day = result.getDay();
4827
+
4828
+ if (day === 0) {
4829
+ return prevDate(result, 7);
4830
+ } else {
4831
+ return prevDate(result, day);
4832
+ }
4833
+ };
4834
+
4835
+ var getWeekNumber = function getWeekNumber(date) {
4836
+ // 支持多种输入类型
4837
+ if (!date || !isDate(date)) {
4838
+ date = new Date();
4839
+ }
4840
+ if (typeof date === 'string') {
4841
+ date = new Date(date);
4842
+ }
4843
+
4844
+ // 验证日期有效性
4845
+ if (!isDate(date)) return null;
4846
+
4847
+ var d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
4848
+ // 设置为最近的星期四:当前日期 + 4 - 当前星期数
4849
+ // 将星期日的星期数设为7
4850
+ d.setUTCDate(d.getUTCDate() + 4 - (d.getUTCDay() || 7));
4851
+ // 获取当年的第一天
4852
+ var yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1));
4853
+ // 计算到最近的星期四的完整周数
4854
+ var weekNo = Math.ceil(((d - yearStart) / 86400000 + 1) / 7);
4855
+ // 返回周数
4856
+ return weekNo;
4857
+ };
4858
+
4859
+ var getRangeHours = function getRangeHours(ranges) {
4860
+ var hours = [];
4861
+ var disabledHours = [];
4862
+
4863
+ (ranges || []).forEach(function (range) {
4864
+ var value = range.map(function (date) {
4865
+ return date.getHours();
4866
+ });
4867
+
4868
+ disabledHours = disabledHours.concat(newArray(value[0], value[1]));
4869
+ });
4870
+
4871
+ if (disabledHours.length) {
4872
+ for (var i = 0; i < 24; i++) {
4873
+ hours[i] = disabledHours.indexOf(i) === -1;
4874
+ }
4875
+ } else {
4876
+ for (var _i = 0; _i < 24; _i++) {
4877
+ hours[_i] = false;
4878
+ }
4879
+ }
4880
+
4881
+ return hours;
4882
+ };
4883
+
4884
+ var getPrevMonthLastDays = function getPrevMonthLastDays(date, amount) {
4885
+ if (amount <= 0) return [];
4886
+ var temp = new Date(date.getTime());
4887
+ temp.setDate(0);
4888
+ var lastDay = temp.getDate();
4889
+ return range(amount).map(function (_, index) {
4890
+ return lastDay - (amount - index - 1);
4891
+ });
4892
+ };
4893
+
4894
+ var getMonthDays = function getMonthDays(date) {
4895
+ var temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
4896
+ var days = temp.getDate();
4897
+ return range(days).map(function (_, index) {
4898
+ return index + 1;
4899
+ });
4900
+ };
4901
+
4902
+ function setRangeData(arr, start, end, value) {
4903
+ for (var i = start; i < end; i++) {
4904
+ arr[i] = value;
4905
+ }
4906
+ }
4907
+
4908
+ var getRangeMinutes = function getRangeMinutes(ranges, hour) {
4909
+ var minutes = new Array(60);
4910
+
4911
+ if (ranges.length > 0) {
4912
+ ranges.forEach(function (range) {
4913
+ var start = range[0];
4914
+ var end = range[1];
4915
+ var startHour = start.getHours();
4916
+ var startMinute = start.getMinutes();
4917
+ var endHour = end.getHours();
4918
+ var endMinute = end.getMinutes();
4919
+ if (startHour === hour && endHour !== hour) {
4920
+ setRangeData(minutes, startMinute, 60, true);
4921
+ } else if (startHour === hour && endHour === hour) {
4922
+ setRangeData(minutes, startMinute, endMinute + 1, true);
4923
+ } else if (startHour !== hour && endHour === hour) {
4924
+ setRangeData(minutes, 0, endMinute + 1, true);
4925
+ } else if (startHour < hour && endHour > hour) {
4926
+ setRangeData(minutes, 0, 60, true);
4927
+ }
4928
+ });
4929
+ } else {
4930
+ setRangeData(minutes, 0, 60, true);
4931
+ }
4932
+ return minutes;
4933
+ };
4934
+
4935
+ var range = function range(n) {
4936
+ // see https://stackoverflow.com/questions/3746725/create-a-javascript-array-containing-1-n
4937
+ return Array.apply(null, { length: n }).map(function (_, n) {
4938
+ return n;
4939
+ });
4940
+ };
4941
+
4942
+ var modifyDate = function modifyDate(date, y, m, d) {
4943
+ return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
4944
+ };
4945
+
4946
+ var modifyTime = function modifyTime(date, h, m, s) {
4947
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
4948
+ };
4949
+
4950
+ var modifyWithTimeString = function modifyWithTimeString(date, time) {
4951
+ if (date == null || !time) {
4952
+ return date;
4953
+ }
4954
+ time = parseDate(time, 'HH:mm:ss');
4955
+ return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
4956
+ };
4957
+
4958
+ var clearTime = function clearTime(date) {
4959
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate());
4960
+ };
4961
+
4962
+ var clearMilliseconds = function clearMilliseconds(date) {
4963
+ return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
4964
+ };
4965
+
4966
+ var limitTimeRange = function limitTimeRange(date, ranges) {
4967
+ var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';
4968
+
4969
+ // TODO: refactory a more elegant solution
4970
+ if (ranges.length === 0) return date;
4971
+ var normalizeDate = function normalizeDate(date) {
4972
+ return fecha.parse(fecha.format(date, format), format);
4973
+ };
4974
+ var ndate = normalizeDate(date);
4975
+ var nranges = ranges.map(function (range) {
4976
+ return range.map(normalizeDate);
4977
+ });
4978
+ if (nranges.some(function (nrange) {
4979
+ return ndate >= nrange[0] && ndate <= nrange[1];
4980
+ })) return date;
4981
+
4982
+ var minDate = nranges[0][0];
4983
+ var maxDate = nranges[0][0];
4984
+
4985
+ nranges.forEach(function (nrange) {
4986
+ minDate = new Date(Math.min(nrange[0], minDate));
4987
+ maxDate = new Date(Math.max(nrange[1], minDate));
4988
+ });
4989
+
4990
+ var ret = ndate < minDate ? minDate : maxDate;
4991
+ // preserve Year/Month/Date
4992
+ return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
4993
+ };
4994
+
4995
+ var timeWithinRange = function timeWithinRange(date, selectableRange, format) {
4996
+ var limitedDate = limitTimeRange(date, selectableRange, format);
4997
+ return limitedDate.getTime() === date.getTime();
4998
+ };
4999
+
5000
+ var changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {
5001
+ // clamp date to the number of days in `year`, `month`
5002
+ // eg: (2010-1-31, 2010, 2) => 2010-2-28
5003
+ var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
5004
+ return modifyDate(date, year, month, monthDate);
5005
+ };
5006
+
5007
+ var prevMonth = function prevMonth(date) {
5008
+ var year = date.getFullYear();
5009
+ var month = date.getMonth();
5010
+ return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);
5011
+ };
5012
+
5013
+ var nextMonth = function nextMonth(date) {
5014
+ var year = date.getFullYear();
5015
+ var month = date.getMonth();
5016
+ return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);
5017
+ };
5018
+
5019
+ var prevYear = function prevYear(date) {
5020
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
5021
+
5022
+ var year = date.getFullYear();
5023
+ var month = date.getMonth();
5024
+ return changeYearMonthAndClampDate(date, year - amount, month);
5025
+ };
5026
+
5027
+ var nextYear = function nextYear(date) {
5028
+ var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
5029
+
5030
+ var year = date.getFullYear();
5031
+ var month = date.getMonth();
5032
+ return changeYearMonthAndClampDate(date, year + amount, month);
5033
+ };
5034
+
5035
+ var extractDateFormat = function extractDateFormat(format) {
5036
+ return format.replace(/\W?m{1,2}|\W?ZZ/g, '').replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '').trim();
5037
+ };
5038
+
5039
+ var extractTimeFormat = function extractTimeFormat(format) {
5040
+ return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
5041
+ };
5042
+
5043
+ var validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {
5044
+ return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
5045
+ };
5046
+
5065
5047
  /**
5066
5048
  * 计算两个日期之间的工作日数量(不包括周末和节假日)
5067
5049
  * @param {string} start_date - 开始日期字符串,格式为 "YYYY-MM-DD"
5068
5050
  * @param {string} end_date - 结束日期字符串,格式为 "YYYY-MM-DD"
5069
5051
  * @param {Array<string>} holidays - 假期日期字符串数组,格式为 "YYYY-MM-DD"
5070
5052
  * @returns {number} 工作日数量
5071
- */
5072
- const calculateNetworkDays = function (start_date, end_date, holidays = []) {
5073
- if (typeof start_date !== 'string' || typeof end_date !== 'string') {
5074
- throw new Error(
5075
- "Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'."
5076
- );
5077
- }
5078
-
5079
- const startDateObj = new Date(start_date);
5080
- const endDateObj = new Date(end_date);
5081
-
5082
- if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
5083
- throw new Error(
5084
- "Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'."
5085
- );
5086
- }
5087
-
5088
- if (startDateObj > endDateObj) {
5089
- throw new Error('Start date should be earlier than or equal to end date.');
5090
- }
5091
-
5092
- let workdays = 0;
5093
-
5094
- // Iterate through each day in the date range
5095
- for (
5096
- let currentDate = new Date(startDateObj);
5097
- currentDate <= endDateObj;
5098
- currentDate.setDate(currentDate.getDate() + 1)
5099
- ) {
5100
- // Check if the current day is a weekend (Saturday or Sunday)
5101
- const isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
5102
-
5103
- // Check if the current day is a holiday
5104
- const isHoliday = holidays.some((holiday) => {
5105
- const holidayDate = new Date(holiday);
5106
- return currentDate.toDateString() === holidayDate.toDateString();
5107
- });
5108
-
5109
- // If it's a workday (not a weekend or holiday), increment the workdays count
5110
- if (!isWeekend && !isHoliday) {
5111
- workdays++;
5112
- }
5113
- }
5114
-
5115
- return workdays;
5116
- };
5117
-
5053
+ */
5054
+ var calculateNetworkDays = function calculateNetworkDays(start_date, end_date) {
5055
+ var holidays = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
5056
+
5057
+ if (typeof start_date !== 'string' || typeof end_date !== 'string') {
5058
+ throw new Error("Invalid input. Please provide valid date strings in the format 'YYYY-MM-DD'.");
5059
+ }
5060
+
5061
+ var startDateObj = new Date(start_date);
5062
+ var endDateObj = new Date(end_date);
5063
+
5064
+ if (isNaN(startDateObj.getTime()) || isNaN(endDateObj.getTime())) {
5065
+ throw new Error("Invalid date format. Please provide valid date strings in the format 'YYYY-MM-DD'.");
5066
+ }
5067
+
5068
+ if (startDateObj > endDateObj) {
5069
+ throw new Error('Start date should be earlier than or equal to end date.');
5070
+ }
5071
+
5072
+ var workdays = 0;
5073
+
5074
+ // Iterate through each day in the date range
5075
+
5076
+ var _loop = function _loop(currentDate) {
5077
+ // Check if the current day is a weekend (Saturday or Sunday)
5078
+ var isWeekend = currentDate.getDay() === 0 || currentDate.getDay() === 6;
5079
+
5080
+ // Check if the current day is a holiday
5081
+ var isHoliday = holidays.some(function (holiday) {
5082
+ var holidayDate = new Date(holiday);
5083
+ return currentDate.toDateString() === holidayDate.toDateString();
5084
+ });
5085
+
5086
+ // If it's a workday (not a weekend or holiday), increment the workdays count
5087
+ if (!isWeekend && !isHoliday) {
5088
+ workdays++;
5089
+ }
5090
+ };
5091
+
5092
+ for (var currentDate = new Date(startDateObj); currentDate <= endDateObj; currentDate.setDate(currentDate.getDate() + 1)) {
5093
+ _loop(currentDate);
5094
+ }
5095
+
5096
+ return workdays;
5097
+ };
5098
+
5118
5099
  /**
5119
5100
  * 日期加减天数
5120
5101
  * @param {string} start_date - 起始日期字符串,格式为 "YYYY-MM-DD"
5121
5102
  * @param {number} days - 要加上或减去的天数,正数表示加,负数表示减
5122
5103
  * @returns {string} 结果日期,格式为 "YYYY-MM-DD"
5123
- */
5124
- const dateAddDays = function (start_date, days) {
5125
- if (typeof start_date !== 'string' || !Number.isInteger(days)) {
5126
- throw new Error(
5127
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days."
5128
- );
5129
- }
5130
-
5131
- const startDateObj = new Date(start_date);
5132
- if (isNaN(startDateObj.getTime())) {
5133
- throw new Error(
5134
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
5135
- );
5136
- }
5137
-
5138
- const resultDateObj = new Date(startDateObj);
5139
- resultDateObj.setDate(resultDateObj.getDate() + days);
5140
-
5141
- const resultYear = resultDateObj.getFullYear();
5142
- const resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
5143
- const resultDay = String(resultDateObj.getDate()).padStart(2, '0');
5144
-
5145
- return `${resultYear}-${resultMonth}-${resultDay}`;
5146
- };
5147
-
5104
+ */
5105
+ var dateAddDays = function dateAddDays(start_date, days) {
5106
+ if (typeof start_date !== 'string' || !Number.isInteger(days)) {
5107
+ throw new Error("Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD' and a valid integer for the number of days.");
5108
+ }
5109
+
5110
+ var startDateObj = new Date(start_date);
5111
+ if (isNaN(startDateObj.getTime())) {
5112
+ throw new Error("Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5113
+ }
5114
+
5115
+ var resultDateObj = new Date(startDateObj);
5116
+ resultDateObj.setDate(resultDateObj.getDate() + days);
5117
+
5118
+ var resultYear = resultDateObj.getFullYear();
5119
+ var resultMonth = String(resultDateObj.getMonth() + 1).padStart(2, '0');
5120
+ var resultDay = String(resultDateObj.getDate()).padStart(2, '0');
5121
+
5122
+ return resultYear + '-' + resultMonth + '-' + resultDay;
5123
+ };
5124
+
5148
5125
  /**
5149
5126
  * 计算两个日期之间的差值
5150
5127
  * @date 2023年12月14日
@@ -5152,182 +5129,180 @@ const dateAddDays = function (start_date, days) {
5152
5129
  * @param {String} end_date - 结束日期字符串
5153
5130
  * @param {String} unit - 单位:year/month/day
5154
5131
  * @returns {Number} 差值
5155
- */
5156
- const dateDiff = function (start_date, end_date, unit = 'day') {
5157
- // Assuming date strings are in "YYYY-MM-DD" format
5158
- var startDate = new Date(start_date);
5159
- var endDate = new Date(end_date);
5160
-
5161
- // If the date is invalid, return 0
5162
- if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
5163
- return 0;
5164
- }
5165
-
5166
- if (unit === 'year') {
5167
- return endDate.getFullYear() - startDate.getFullYear();
5168
- } else if (unit === 'month') {
5169
- return (
5170
- (endDate.getFullYear() - startDate.getFullYear()) * 12 +
5171
- (endDate.getMonth() - startDate.getMonth())
5172
- );
5173
- } else {
5174
- // Default to day
5175
- var timeDifference = endDate - startDate;
5176
- // Calculate days (86400000 milliseconds per day)
5177
- return Math.floor(timeDifference / 86400000);
5178
- }
5179
- };
5180
-
5132
+ */
5133
+ var dateDiff = function dateDiff(start_date, end_date) {
5134
+ var unit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'day';
5135
+
5136
+ // Assuming date strings are in "YYYY-MM-DD" format
5137
+ var startDate = new Date(start_date);
5138
+ var endDate = new Date(end_date);
5139
+
5140
+ // If the date is invalid, return 0
5141
+ if (isNaN(startDate.getTime()) || isNaN(endDate.getTime())) {
5142
+ return 0;
5143
+ }
5144
+
5145
+ if (unit === 'year') {
5146
+ return endDate.getFullYear() - startDate.getFullYear();
5147
+ } else if (unit === 'month') {
5148
+ return (endDate.getFullYear() - startDate.getFullYear()) * 12 + (endDate.getMonth() - startDate.getMonth());
5149
+ } else {
5150
+ // Default to day
5151
+ var timeDifference = endDate - startDate;
5152
+ // Calculate days (86400000 milliseconds per day)
5153
+ return Math.floor(timeDifference / 86400000);
5154
+ }
5155
+ };
5156
+
5181
5157
  /**
5182
5158
  * 获取月份中的日期
5183
5159
  * @param {string} date - 日期字符串,格式为 "YYYY-MM-DD"
5184
5160
  * @returns {number} 月份中的日期(1-31)
5185
- */
5186
- const dayOfMonth = function (date) {
5187
- if (typeof date !== 'string') {
5188
- throw new Error(
5189
- "Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'."
5190
- );
5191
- }
5192
-
5193
- const dateObj = new Date(date);
5194
- if (isNaN(dateObj.getTime())) {
5195
- throw new Error(
5196
- "Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'."
5197
- );
5198
- }
5199
-
5200
- return dateObj.getDate();
5201
- };
5202
-
5161
+ */
5162
+ var dayOfMonth = function dayOfMonth(date) {
5163
+ if (typeof date !== 'string') {
5164
+ throw new Error("Invalid input. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5165
+ }
5166
+
5167
+ var dateObj = new Date(date);
5168
+ if (isNaN(dateObj.getTime())) {
5169
+ throw new Error("Invalid date format. Please provide a valid date string in the format 'YYYY-MM-DD'.");
5170
+ }
5171
+
5172
+ return dateObj.getDate();
5173
+ };
5174
+
5203
5175
  /**
5204
5176
  * 获取当前日期
5205
5177
  * @date 2022年5月7日
5206
5178
  * @param {string} format - 日期格式,默认为'YYYY-MM-DD'
5207
5179
  * @returns {string} 当前日期的格式化字符串
5208
- */
5209
- const getCurrentDate = function (format = 'YYYY-MM-DD') {
5210
- return formatDate(new Date(), format);
5211
- };
5212
-
5180
+ */
5181
+ var getCurrentDate = function getCurrentDate() {
5182
+ var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'YYYY-MM-DD';
5183
+
5184
+ return formatDate(new Date(), format);
5185
+ };
5186
+
5213
5187
  /**
5214
5188
  * 获取当前日期时间
5215
5189
  * @date 2022年5月7日
5216
5190
  * @param {string} format - 日期时间格式,默认为'YYYY-MM-DD HH:mm:ss'
5217
5191
  * @returns {string} 当前日期时间的格式化字符串
5218
- */
5219
- const getCurrentDateTime = function (format = 'YYYY-MM-DD HH:mm:ss') {
5220
- return formatDate(new Date(), format);
5221
- };
5222
-
5192
+ */
5193
+ var getCurrentDateTime = function getCurrentDateTime() {
5194
+ var format = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'YYYY-MM-DD HH:mm:ss';
5195
+
5196
+ return formatDate(new Date(), format);
5197
+ };
5198
+
5223
5199
  /**
5224
5200
  * 获取小时
5225
5201
  * @date 2022年5月7日
5226
5202
  * @param {Date|string} [date] - 日期对象或日期字符串
5227
5203
  * @returns {number} 小时数(0-23)
5228
- */
5229
- const getHour = function (date) {
5230
- if (!date) {
5231
- return new Date().getHours();
5232
- }
5233
- if (typeof date === 'string') {
5234
- date = new Date(date);
5235
- }
5236
- return date.getHours();
5237
- };
5238
-
5204
+ */
5205
+ var getHour = function getHour(date) {
5206
+ if (!date) {
5207
+ return new Date().getHours();
5208
+ }
5209
+ if (typeof date === 'string') {
5210
+ date = new Date(date);
5211
+ }
5212
+ return date.getHours();
5213
+ };
5214
+
5239
5215
  /**
5240
5216
  * 获取分钟
5241
5217
  * @date 2022年5月7日
5242
5218
  * @param {Date|string} [date] - 日期对象或日期字符串
5243
5219
  * @returns {number} 分钟数(0-59)
5244
- */
5245
- const getMinute = function (date) {
5246
- if (!date) {
5247
- return new Date().getMinutes();
5248
- }
5249
- if (typeof date === 'string') {
5250
- date = new Date(date);
5251
- }
5252
- return date.getMinutes();
5253
- };
5254
-
5220
+ */
5221
+ var getMinute = function getMinute(date) {
5222
+ if (!date) {
5223
+ return new Date().getMinutes();
5224
+ }
5225
+ if (typeof date === 'string') {
5226
+ date = new Date(date);
5227
+ }
5228
+ return date.getMinutes();
5229
+ };
5230
+
5255
5231
  /**
5256
5232
  * 获取月份
5257
5233
  * @date 2022年5月7日
5258
5234
  * @param {Date|string} [date] - 日期对象或日期字符串
5259
5235
  * @returns {number} 月份数(1-12)
5260
- */
5261
- const getMonth = function (date) {
5262
- if (!date) {
5263
- return new Date().getMonth() + 1;
5264
- }
5265
- if (typeof date === 'string') {
5266
- date = new Date(date);
5267
- }
5268
- return date.getMonth() + 1;
5269
- };
5270
-
5236
+ */
5237
+ var getMonth = function getMonth(date) {
5238
+ if (!date) {
5239
+ return new Date().getMonth() + 1;
5240
+ }
5241
+ if (typeof date === 'string') {
5242
+ date = new Date(date);
5243
+ }
5244
+ return date.getMonth() + 1;
5245
+ };
5246
+
5271
5247
  /**
5272
5248
  * 获取秒
5273
5249
  * @date 2022年5月7日
5274
5250
  * @param {Date|string} [date] - 日期对象或日期字符串
5275
5251
  * @returns {number} 秒数(0-59)
5276
- */
5277
- const getSecond = function (date) {
5278
- if (!date) {
5279
- return new Date().getSeconds();
5280
- }
5281
- if (typeof date === 'string') {
5282
- date = new Date(date);
5283
- }
5284
- return date.getSeconds();
5285
- };
5286
-
5252
+ */
5253
+ var getSecond = function getSecond(date) {
5254
+ if (!date) {
5255
+ return new Date().getSeconds();
5256
+ }
5257
+ if (typeof date === 'string') {
5258
+ date = new Date(date);
5259
+ }
5260
+ return date.getSeconds();
5261
+ };
5262
+
5287
5263
  /**
5288
5264
  * 获取星期几
5289
5265
  * @date 2022年5月7日
5290
5266
  * @param {Date|string} [date] - 日期对象或日期字符串
5291
5267
  * @returns {number} 星期几(0-6,0表示星期日)
5292
- */
5293
- const getWeekday = function (date) {
5294
- if (!date) {
5295
- return new Date().getDay();
5296
- }
5297
- if (typeof date === 'string') {
5298
- date = new Date(date);
5299
- }
5300
- return date.getDay();
5301
- };
5302
-
5303
-
5268
+ */
5269
+ var getWeekday = function getWeekday(date) {
5270
+ if (!date) {
5271
+ return new Date().getDay();
5272
+ }
5273
+ if (typeof date === 'string') {
5274
+ date = new Date(date);
5275
+ }
5276
+ return date.getDay();
5277
+ };
5278
+
5304
5279
  /**
5305
5280
  * @desc 获取上午/下午/晚上
5306
5281
  * @author huangbo
5307
5282
  * @date 2022年5月7日
5308
5283
  * @param {String} [time] - 时间
5309
- **/
5310
- const timeCycle = function (time) {
5311
- let hour = 0;
5312
- if (!time) {
5313
- hour = new Date().getHours();
5314
- } else if (typeof time === 'string') {
5315
- // 从时间字符串中提取小时
5316
- const match = time.match(/^(\d{1,2})/);
5317
- if (match) {
5318
- hour = parseInt(match[1], 10);
5319
- }
5320
- } else if (typeof time === 'number') {
5321
- hour = time;
5322
- }
5323
- // 判断时间段
5324
- if (hour >= 5 && hour < 12) {
5325
- return '上午';
5326
- } else if (hour >= 12 && hour < 18) {
5327
- return '下午';
5328
- } else {
5329
- return '晚上';
5330
- }
5284
+ **/
5285
+ var timeCycle = function timeCycle(time) {
5286
+ var hour = 0;
5287
+ if (!time) {
5288
+ hour = new Date().getHours();
5289
+ } else if (typeof time === 'string') {
5290
+ // 从时间字符串中提取小时
5291
+ var match = time.match(/^(\d{1,2})/);
5292
+ if (match) {
5293
+ hour = parseInt(match[1], 10);
5294
+ }
5295
+ } else if (typeof time === 'number') {
5296
+ hour = time;
5297
+ }
5298
+ // 判断时间段
5299
+ if (hour >= 5 && hour < 12) {
5300
+ return '上午';
5301
+ } else if (hour >= 12 && hour < 18) {
5302
+ return '下午';
5303
+ } else {
5304
+ return '晚上';
5305
+ }
5331
5306
  };
5332
5307
 
5333
5308
  /***/ }),
@@ -7315,36 +7290,37 @@ module.exports = require("eoss/lib/radio-group");
7315
7290
  /* 46 */,
7316
7291
  /* 47 */,
7317
7292
  /* 48 */,
7318
- /* 49 */
7293
+ /* 49 */,
7294
+ /* 50 */
7319
7295
  /***/ (function(module, exports) {
7320
7296
 
7321
7297
  module.exports = require("eoss/lib/upload");
7322
7298
 
7323
7299
  /***/ }),
7324
- /* 50 */
7300
+ /* 51 */
7325
7301
  /***/ (function(module, exports) {
7326
7302
 
7327
7303
  module.exports = require("eoss/lib/tree");
7328
7304
 
7329
7305
  /***/ }),
7330
- /* 51 */,
7331
7306
  /* 52 */,
7332
- /* 53 */
7307
+ /* 53 */,
7308
+ /* 54 */
7333
7309
  /***/ (function(module, exports) {
7334
7310
 
7335
7311
  module.exports = require("eoss/lib/button-group");
7336
7312
 
7337
7313
  /***/ }),
7338
- /* 54 */
7314
+ /* 55 */,
7315
+ /* 56 */
7339
7316
  /***/ (function(module, exports) {
7340
7317
 
7341
7318
  module.exports = require("eoss/lib/input-number");
7342
7319
 
7343
7320
  /***/ }),
7344
- /* 55 */,
7345
- /* 56 */,
7346
7321
  /* 57 */,
7347
- /* 58 */
7322
+ /* 58 */,
7323
+ /* 59 */
7348
7324
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7349
7325
 
7350
7326
  "use strict";
@@ -7701,75 +7677,75 @@ function renderThumbStyle(_ref3) {
7701
7677
  });
7702
7678
 
7703
7679
  /***/ }),
7704
- /* 59 */,
7705
7680
  /* 60 */,
7706
7681
  /* 61 */,
7707
7682
  /* 62 */,
7708
7683
  /* 63 */,
7709
- /* 64 */
7684
+ /* 64 */,
7685
+ /* 65 */
7710
7686
  /***/ (function(module, exports) {
7711
7687
 
7712
7688
  module.exports = require("eoss/lib/switch");
7713
7689
 
7714
7690
  /***/ }),
7715
- /* 65 */
7691
+ /* 66 */
7716
7692
  /***/ (function(module, exports) {
7717
7693
 
7718
7694
  module.exports = require("eoss/lib/color-picker");
7719
7695
 
7720
7696
  /***/ }),
7721
- /* 66 */
7697
+ /* 67 */
7722
7698
  /***/ (function(module, exports) {
7723
7699
 
7724
7700
  module.exports = require("eoss/lib/selector");
7725
7701
 
7726
7702
  /***/ }),
7727
- /* 67 */,
7728
7703
  /* 68 */,
7729
7704
  /* 69 */,
7730
- /* 70 */
7705
+ /* 70 */,
7706
+ /* 71 */
7731
7707
  /***/ (function(module, exports) {
7732
7708
 
7733
7709
  module.exports = require("eoss/lib/cascader");
7734
7710
 
7735
7711
  /***/ }),
7736
- /* 71 */
7712
+ /* 72 */
7737
7713
  /***/ (function(module, exports) {
7738
7714
 
7739
7715
  module.exports = require("eoss/lib/date-picker");
7740
7716
 
7741
7717
  /***/ }),
7742
- /* 72 */
7718
+ /* 73 */
7743
7719
  /***/ (function(module, exports) {
7744
7720
 
7745
7721
  module.exports = require("eoss/lib/time-picker");
7746
7722
 
7747
7723
  /***/ }),
7748
- /* 73 */
7724
+ /* 74 */
7749
7725
  /***/ (function(module, exports) {
7750
7726
 
7751
7727
  module.exports = require("eoss/lib/time-select");
7752
7728
 
7753
7729
  /***/ }),
7754
- /* 74 */
7730
+ /* 75 */
7755
7731
  /***/ (function(module, exports) {
7756
7732
 
7757
7733
  module.exports = require("eoss/lib/rate");
7758
7734
 
7759
7735
  /***/ }),
7760
- /* 75 */
7736
+ /* 76 */
7761
7737
  /***/ (function(module, exports) {
7762
7738
 
7763
7739
  module.exports = require("eoss/lib/slider");
7764
7740
 
7765
7741
  /***/ }),
7766
- /* 76 */
7742
+ /* 77 */
7767
7743
  /***/ (function(module, exports) {
7768
7744
 
7769
7745
  module.exports = require("eoss/lib/transfer");
7770
7746
 
7771
7747
  /***/ }),
7772
- /* 77 */
7748
+ /* 78 */
7773
7749
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
7774
7750
 
7775
7751
  "use strict";
@@ -7821,7 +7797,7 @@ render._withStripped = true
7821
7797
  // CONCATENATED MODULE: ./src/components/field-render.vue?vue&type=template&id=0751ef51&
7822
7798
 
7823
7799
  // EXTERNAL MODULE: external "eoss/lib/input-number"
7824
- var input_number_ = __webpack_require__(54);
7800
+ var input_number_ = __webpack_require__(56);
7825
7801
  var input_number_default = /*#__PURE__*/__webpack_require__.n(input_number_);
7826
7802
 
7827
7803
  // EXTERNAL MODULE: external "eoss/lib/radio-group"
@@ -7837,11 +7813,11 @@ var select_ = __webpack_require__(41);
7837
7813
  var select_default = /*#__PURE__*/__webpack_require__.n(select_);
7838
7814
 
7839
7815
  // EXTERNAL MODULE: external "eoss/lib/cascader"
7840
- var cascader_ = __webpack_require__(70);
7816
+ var cascader_ = __webpack_require__(71);
7841
7817
  var cascader_default = /*#__PURE__*/__webpack_require__.n(cascader_);
7842
7818
 
7843
7819
  // EXTERNAL MODULE: external "eoss/lib/switch"
7844
- var switch_ = __webpack_require__(64);
7820
+ var switch_ = __webpack_require__(65);
7845
7821
  var switch_default = /*#__PURE__*/__webpack_require__.n(switch_);
7846
7822
 
7847
7823
  // EXTERNAL MODULE: external "eoss/lib/input"
@@ -7849,39 +7825,39 @@ var input_ = __webpack_require__(14);
7849
7825
  var input_default = /*#__PURE__*/__webpack_require__.n(input_);
7850
7826
 
7851
7827
  // EXTERNAL MODULE: external "eoss/lib/date-picker"
7852
- var date_picker_ = __webpack_require__(71);
7828
+ var date_picker_ = __webpack_require__(72);
7853
7829
  var date_picker_default = /*#__PURE__*/__webpack_require__.n(date_picker_);
7854
7830
 
7855
7831
  // EXTERNAL MODULE: external "eoss/lib/time-picker"
7856
- var time_picker_ = __webpack_require__(72);
7832
+ var time_picker_ = __webpack_require__(73);
7857
7833
  var time_picker_default = /*#__PURE__*/__webpack_require__.n(time_picker_);
7858
7834
 
7859
7835
  // EXTERNAL MODULE: external "eoss/lib/time-select"
7860
- var time_select_ = __webpack_require__(73);
7836
+ var time_select_ = __webpack_require__(74);
7861
7837
  var time_select_default = /*#__PURE__*/__webpack_require__.n(time_select_);
7862
7838
 
7863
7839
  // EXTERNAL MODULE: external "eoss/lib/upload"
7864
- var upload_ = __webpack_require__(49);
7840
+ var upload_ = __webpack_require__(50);
7865
7841
  var upload_default = /*#__PURE__*/__webpack_require__.n(upload_);
7866
7842
 
7867
7843
  // EXTERNAL MODULE: external "eoss/lib/rate"
7868
- var rate_ = __webpack_require__(74);
7844
+ var rate_ = __webpack_require__(75);
7869
7845
  var rate_default = /*#__PURE__*/__webpack_require__.n(rate_);
7870
7846
 
7871
7847
  // EXTERNAL MODULE: external "eoss/lib/slider"
7872
- var slider_ = __webpack_require__(75);
7848
+ var slider_ = __webpack_require__(76);
7873
7849
  var slider_default = /*#__PURE__*/__webpack_require__.n(slider_);
7874
7850
 
7875
7851
  // EXTERNAL MODULE: external "eoss/lib/color-picker"
7876
- var color_picker_ = __webpack_require__(65);
7852
+ var color_picker_ = __webpack_require__(66);
7877
7853
  var color_picker_default = /*#__PURE__*/__webpack_require__.n(color_picker_);
7878
7854
 
7879
7855
  // EXTERNAL MODULE: external "eoss/lib/transfer"
7880
- var transfer_ = __webpack_require__(76);
7856
+ var transfer_ = __webpack_require__(77);
7881
7857
  var transfer_default = /*#__PURE__*/__webpack_require__.n(transfer_);
7882
7858
 
7883
7859
  // EXTERNAL MODULE: external "eoss/lib/tree"
7884
- var tree_ = __webpack_require__(50);
7860
+ var tree_ = __webpack_require__(51);
7885
7861
  var tree_default = /*#__PURE__*/__webpack_require__.n(tree_);
7886
7862
 
7887
7863
  // EXTERNAL MODULE: external "eoss/lib/button"
@@ -8013,7 +7989,7 @@ var CLASS_INLINE_MAP = {
8013
7989
  EsCascader: cascader_default.a,
8014
7990
  // 异步加载:断开 form → field-render → selector → selector-panel → form 的循环依赖
8015
7991
  EsSelector: function EsSelector() {
8016
- return Promise.resolve(/* import() */).then(__webpack_require__.t.bind(null, 66, 7));
7992
+ return Promise.resolve(/* import() */).then(__webpack_require__.t.bind(null, 67, 7));
8017
7993
  },
8018
7994
  EsSwitch: switch_default.a,
8019
7995
  EsInput: input_default.a,
@@ -8163,19 +8139,18 @@ var component = Object(componentNormalizer["a" /* default */])(
8163
8139
  /* harmony default export */ var field_render = __webpack_exports__["a"] = (component.exports);
8164
8140
 
8165
8141
  /***/ }),
8166
- /* 78 */
8142
+ /* 79 */
8167
8143
  /***/ (function(module, exports) {
8168
8144
 
8169
8145
  module.exports = require("eoss/lib/collapse");
8170
8146
 
8171
8147
  /***/ }),
8172
- /* 79 */
8148
+ /* 80 */
8173
8149
  /***/ (function(module, exports) {
8174
8150
 
8175
8151
  module.exports = require("eoss/lib/collapse-item");
8176
8152
 
8177
8153
  /***/ }),
8178
- /* 80 */,
8179
8154
  /* 81 */,
8180
8155
  /* 82 */,
8181
8156
  /* 83 */,
@@ -8187,15 +8162,17 @@ module.exports = require("eoss/lib/collapse-item");
8187
8162
  /* 89 */,
8188
8163
  /* 90 */,
8189
8164
  /* 91 */,
8190
- /* 92 */
8165
+ /* 92 */,
8166
+ /* 93 */,
8167
+ /* 94 */
8191
8168
  /***/ (function(module, exports) {
8192
8169
 
8193
8170
  module.exports = require("eoss/lib/table");
8194
8171
 
8195
8172
  /***/ }),
8196
- /* 93 */,
8197
- /* 94 */,
8198
- /* 95 */
8173
+ /* 95 */,
8174
+ /* 96 */,
8175
+ /* 97 */
8199
8176
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8200
8177
 
8201
8178
  "use strict";
@@ -8224,18 +8201,18 @@ var bankCard = { pattern: new RegExp('^([1-9]{1})(\\d{14}|\\d{18})$'), message:
8224
8201
  });
8225
8202
 
8226
8203
  /***/ }),
8227
- /* 96 */,
8228
- /* 97 */,
8229
8204
  /* 98 */,
8230
8205
  /* 99 */,
8231
8206
  /* 100 */,
8232
8207
  /* 101 */,
8233
- /* 102 */
8208
+ /* 102 */,
8209
+ /* 103 */,
8210
+ /* 104 */
8234
8211
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
8235
8212
 
8236
8213
  "use strict";
8237
8214
 
8238
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=template&id=5f256888&
8215
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item.vue?vue&type=template&id=53ae977c&
8239
8216
  var render = function () {
8240
8217
  var _vm = this
8241
8218
  var _h = _vm.$createElement
@@ -8336,10 +8313,10 @@ var staticRenderFns = []
8336
8313
  render._withStripped = true
8337
8314
 
8338
8315
 
8339
- // CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=template&id=5f256888&
8316
+ // CONCATENATED MODULE: ./packages/form/src/form-item.vue?vue&type=template&id=53ae977c&
8340
8317
 
8341
8318
  // EXTERNAL MODULE: external "async-validator"
8342
- var external_async_validator_ = __webpack_require__(118);
8319
+ var external_async_validator_ = __webpack_require__(122);
8343
8320
  var external_async_validator_default = /*#__PURE__*/__webpack_require__.n(external_async_validator_);
8344
8321
 
8345
8322
  // EXTERNAL MODULE: ./src/mixins/emitter.js
@@ -8429,7 +8406,7 @@ var icon_ = __webpack_require__(26);
8429
8406
  var icon_default = /*#__PURE__*/__webpack_require__.n(icon_);
8430
8407
 
8431
8408
  // EXTERNAL MODULE: external "eoss/lib/tips"
8432
- var tips_ = __webpack_require__(119);
8409
+ var tips_ = __webpack_require__(123);
8433
8410
  var tips_default = /*#__PURE__*/__webpack_require__.n(tips_);
8434
8411
 
8435
8412
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/label-wrap.vue?vue&type=script&lang=js&
@@ -8891,10 +8868,10 @@ function debounce(fn) {
8891
8868
  width: this.span / 12 * 100 + '%'
8892
8869
  };
8893
8870
  }
8894
- var col = this.esForm.col;
8895
- if (col > 1) {
8871
+ var columns = this.esForm.columns;
8872
+ if (columns > 1) {
8896
8873
  return {
8897
- width: 100 / col + '%'
8874
+ width: 100 / columns + '%'
8898
8875
  };
8899
8876
  }
8900
8877
  return {};
@@ -9223,8 +9200,6 @@ var form_item_component = Object(componentNormalizer["a" /* default */])(
9223
9200
  /* harmony default export */ var form_item = __webpack_exports__["a"] = (form_item_component.exports);
9224
9201
 
9225
9202
  /***/ }),
9226
- /* 103 */,
9227
- /* 104 */,
9228
9203
  /* 105 */,
9229
9204
  /* 106 */,
9230
9205
  /* 107 */,
@@ -9238,22 +9213,22 @@ var form_item_component = Object(componentNormalizer["a" /* default */])(
9238
9213
  /* 115 */,
9239
9214
  /* 116 */,
9240
9215
  /* 117 */,
9241
- /* 118 */
9216
+ /* 118 */,
9217
+ /* 119 */,
9218
+ /* 120 */,
9219
+ /* 121 */,
9220
+ /* 122 */
9242
9221
  /***/ (function(module, exports) {
9243
9222
 
9244
9223
  module.exports = require("async-validator");
9245
9224
 
9246
9225
  /***/ }),
9247
- /* 119 */
9226
+ /* 123 */
9248
9227
  /***/ (function(module, exports) {
9249
9228
 
9250
9229
  module.exports = require("eoss/lib/tips");
9251
9230
 
9252
9231
  /***/ }),
9253
- /* 120 */,
9254
- /* 121 */,
9255
- /* 122 */,
9256
- /* 123 */,
9257
9232
  /* 124 */,
9258
9233
  /* 125 */,
9259
9234
  /* 126 */,
@@ -9267,16 +9242,16 @@ module.exports = require("eoss/lib/tips");
9267
9242
  /* 134 */,
9268
9243
  /* 135 */,
9269
9244
  /* 136 */,
9270
- /* 137 */
9245
+ /* 137 */,
9246
+ /* 138 */,
9247
+ /* 139 */,
9248
+ /* 140 */,
9249
+ /* 141 */
9271
9250
  /***/ (function(module, exports) {
9272
9251
 
9273
9252
  module.exports = require("eoss/lib/steps");
9274
9253
 
9275
9254
  /***/ }),
9276
- /* 138 */,
9277
- /* 139 */,
9278
- /* 140 */,
9279
- /* 141 */,
9280
9255
  /* 142 */,
9281
9256
  /* 143 */,
9282
9257
  /* 144 */,
@@ -9324,14 +9299,21 @@ module.exports = require("eoss/lib/steps");
9324
9299
  /* 186 */,
9325
9300
  /* 187 */,
9326
9301
  /* 188 */,
9327
- /* 189 */
9302
+ /* 189 */,
9303
+ /* 190 */,
9304
+ /* 191 */,
9305
+ /* 192 */,
9306
+ /* 193 */,
9307
+ /* 194 */,
9308
+ /* 195 */,
9309
+ /* 196 */
9328
9310
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
9329
9311
 
9330
9312
  "use strict";
9331
9313
  // ESM COMPAT FLAG
9332
9314
  __webpack_require__.r(__webpack_exports__);
9333
9315
 
9334
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=template&id=02fd4912&
9316
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=template&id=ae18cd56&
9335
9317
  var render = function () {
9336
9318
  var _vm = this
9337
9319
  var _h = _vm.$createElement
@@ -9551,7 +9533,7 @@ var staticRenderFns = []
9551
9533
  render._withStripped = true
9552
9534
 
9553
9535
 
9554
- // CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=template&id=02fd4912&
9536
+ // CONCATENATED MODULE: ./packages/form/src/form.vue?vue&type=template&id=ae18cd56&
9555
9537
 
9556
9538
  // EXTERNAL MODULE: ./src/utils/merge.js
9557
9539
  var merge = __webpack_require__(22);
@@ -9575,7 +9557,7 @@ var resize_event = __webpack_require__(38);
9575
9557
  var ajax = __webpack_require__(10);
9576
9558
 
9577
9559
  // EXTERNAL MODULE: ./src/utils/rules.js
9578
- var utils_rules = __webpack_require__(95);
9560
+ var utils_rules = __webpack_require__(97);
9579
9561
 
9580
9562
  // EXTERNAL MODULE: external "vue"
9581
9563
  var external_vue_ = __webpack_require__(2);
@@ -9675,7 +9657,7 @@ var loading_ = __webpack_require__(16);
9675
9657
  var loading_default = /*#__PURE__*/__webpack_require__.n(loading_);
9676
9658
 
9677
9659
  // EXTERNAL MODULE: ./src/components/bar.js
9678
- var bar = __webpack_require__(58);
9660
+ var bar = __webpack_require__(59);
9679
9661
 
9680
9662
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/steps.vue?vue&type=template&id=24c0c00a&scoped=true&
9681
9663
  var stepsvue_type_template_id_24c0c00a_scoped_true_render = function () {
@@ -9722,8 +9704,8 @@ stepsvue_type_template_id_24c0c00a_scoped_true_render._withStripped = true
9722
9704
 
9723
9705
  // CONCATENATED MODULE: ./packages/form/src/steps.vue?vue&type=template&id=24c0c00a&scoped=true&
9724
9706
 
9725
- // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item-render.vue?vue&type=template&id=ae141792&
9726
- var form_item_rendervue_type_template_id_ae141792_render = function () {
9707
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item-render.vue?vue&type=template&id=503bafda&
9708
+ var form_item_rendervue_type_template_id_503bafda_render = function () {
9727
9709
  var _vm = this
9728
9710
  var _h = _vm.$createElement
9729
9711
  var _c = _vm._self._c || _h
@@ -10010,20 +9992,20 @@ var form_item_rendervue_type_template_id_ae141792_render = function () {
10010
9992
  2
10011
9993
  )
10012
9994
  }
10013
- var form_item_rendervue_type_template_id_ae141792_staticRenderFns = []
10014
- form_item_rendervue_type_template_id_ae141792_render._withStripped = true
9995
+ var form_item_rendervue_type_template_id_503bafda_staticRenderFns = []
9996
+ form_item_rendervue_type_template_id_503bafda_render._withStripped = true
10015
9997
 
10016
9998
 
10017
- // CONCATENATED MODULE: ./packages/form/src/form-item-render.vue?vue&type=template&id=ae141792&
9999
+ // CONCATENATED MODULE: ./packages/form/src/form-item-render.vue?vue&type=template&id=503bafda&
10018
10000
 
10019
10001
  // EXTERNAL MODULE: ./src/components/field-render.vue + 4 modules
10020
- var field_render = __webpack_require__(77);
10002
+ var field_render = __webpack_require__(78);
10021
10003
 
10022
10004
  // EXTERNAL MODULE: ./packages/form/src/form-item.vue + 9 modules
10023
- var form_item = __webpack_require__(102);
10005
+ var form_item = __webpack_require__(104);
10024
10006
 
10025
10007
  // EXTERNAL MODULE: external "eoss/lib/table"
10026
- var table_ = __webpack_require__(92);
10008
+ var table_ = __webpack_require__(94);
10027
10009
  var table_default = /*#__PURE__*/__webpack_require__.n(table_);
10028
10010
 
10029
10011
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form-item-render.vue?vue&type=script&lang=js&
@@ -10375,7 +10357,8 @@ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in ob
10375
10357
  inline = fieldItem.inline,
10376
10358
  plain = fieldItem.plain,
10377
10359
  span = fieldItem.span,
10378
- config = _objectWithoutProperties(fieldItem, ['value', 'key', 'label', 'labelWidth', 'name', 'index', 'required', 'rules', 'error', 'validateStatus', 'inlineMessage', 'labelClass', 'contentClass', 'showMessage', 'size', 'fixed', 'flex', 'inline', 'plain', 'span']);
10360
+ _default = fieldItem.default,
10361
+ config = _objectWithoutProperties(fieldItem, ['value', 'key', 'label', 'labelWidth', 'name', 'index', 'required', 'rules', 'error', 'validateStatus', 'inlineMessage', 'labelClass', 'contentClass', 'showMessage', 'size', 'fixed', 'flex', 'inline', 'plain', 'span', 'default']);
10379
10362
 
10380
10363
  return _extends({}, config, {
10381
10364
  index: index,
@@ -10478,8 +10461,8 @@ var componentNormalizer = __webpack_require__(4);
10478
10461
 
10479
10462
  var component = Object(componentNormalizer["a" /* default */])(
10480
10463
  src_form_item_rendervue_type_script_lang_js_,
10481
- form_item_rendervue_type_template_id_ae141792_render,
10482
- form_item_rendervue_type_template_id_ae141792_staticRenderFns,
10464
+ form_item_rendervue_type_template_id_503bafda_render,
10465
+ form_item_rendervue_type_template_id_503bafda_staticRenderFns,
10483
10466
  false,
10484
10467
  null,
10485
10468
  null,
@@ -10489,7 +10472,7 @@ var component = Object(componentNormalizer["a" /* default */])(
10489
10472
 
10490
10473
  /* harmony default export */ var form_item_render = (component.exports);
10491
10474
  // EXTERNAL MODULE: external "eoss/lib/steps"
10492
- var steps_ = __webpack_require__(137);
10475
+ var steps_ = __webpack_require__(141);
10493
10476
  var steps_default = /*#__PURE__*/__webpack_require__.n(steps_);
10494
10477
 
10495
10478
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/steps.vue?vue&type=script&lang=js&
@@ -10767,11 +10750,11 @@ collapsevue_type_template_id_43aae6ce_render._withStripped = true
10767
10750
  // CONCATENATED MODULE: ./packages/form/src/collapse.vue?vue&type=template&id=43aae6ce&
10768
10751
 
10769
10752
  // EXTERNAL MODULE: external "eoss/lib/collapse"
10770
- var collapse_ = __webpack_require__(78);
10753
+ var collapse_ = __webpack_require__(79);
10771
10754
  var collapse_default = /*#__PURE__*/__webpack_require__.n(collapse_);
10772
10755
 
10773
10756
  // EXTERNAL MODULE: external "eoss/lib/collapse-item"
10774
- var collapse_item_ = __webpack_require__(79);
10757
+ var collapse_item_ = __webpack_require__(80);
10775
10758
  var collapse_item_default = /*#__PURE__*/__webpack_require__.n(collapse_item_);
10776
10759
 
10777
10760
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/collapse.vue?vue&type=script&lang=js&
@@ -10940,7 +10923,7 @@ var collapse_component = Object(componentNormalizer["a" /* default */])(
10940
10923
 
10941
10924
  /* harmony default export */ var collapse = (collapse_component.exports);
10942
10925
  // EXTERNAL MODULE: external "eoss/lib/button-group"
10943
- var button_group_ = __webpack_require__(53);
10926
+ var button_group_ = __webpack_require__(54);
10944
10927
  var button_group_default = /*#__PURE__*/__webpack_require__.n(button_group_);
10945
10928
 
10946
10929
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./packages/form/src/form.vue?vue&type=script&lang=js&
@@ -11182,7 +11165,7 @@ var win = Object(util["w" /* getWinTop */])();
11182
11165
  default: '120px'
11183
11166
  },
11184
11167
  // 列数
11185
- col: {
11168
+ columns: {
11186
11169
  type: Number,
11187
11170
  default: 1
11188
11171
  },
@@ -11192,8 +11175,8 @@ var win = Object(util["w" /* getWinTop */])();
11192
11175
  contents: Array,
11193
11176
  //按钮组配置
11194
11177
  buttons: [Object, Array],
11195
- // 显示提交按钮组
11196
- showButton: {
11178
+ // 显示配置生成的默认按钮组(buttons prop / contents 中 buttons 条目)
11179
+ showDefaultButtons: {
11197
11180
  type: Boolean,
11198
11181
  default: true
11199
11182
  },
@@ -11247,7 +11230,7 @@ var win = Object(util["w" /* getWinTop */])();
11247
11230
  type: Boolean,
11248
11231
  default: true
11249
11232
  },
11250
- // 是否显示提交按钮组
11233
+ // 是否显示按钮区容器(含 buttons 插槽)
11251
11234
  showButtons: {
11252
11235
  type: Boolean,
11253
11236
  default: true
@@ -11274,7 +11257,7 @@ var win = Object(util["w" /* getWinTop */])();
11274
11257
  // 表单按钮
11275
11258
  formButtons: function formButtons() {
11276
11259
  // 优化按钮生成逻辑,减少重复条件判断
11277
- if (!this.showButton) {
11260
+ if (!this.showDefaultButtons) {
11278
11261
  return null;
11279
11262
  }
11280
11263
  var buttons = this.buttons;