bi-eleme 2.1.2 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/lib/alert.js +4 -4
  2. package/lib/aside.js +4 -4
  3. package/lib/autocomplete.js +10 -10
  4. package/lib/avatar.js +4 -4
  5. package/lib/backtop.js +6 -6
  6. package/lib/badge.js +4 -4
  7. package/lib/breadcrumb-item.js +4 -4
  8. package/lib/breadcrumb.js +4 -4
  9. package/lib/button-group.js +4 -4
  10. package/lib/button.js +4 -4
  11. package/lib/calendar.js +15 -15
  12. package/lib/card.js +4 -4
  13. package/lib/carousel-item.js +4 -4
  14. package/lib/carousel.js +6 -6
  15. package/lib/cascader-panel.js +10 -10
  16. package/lib/cascader.js +12 -12
  17. package/lib/checkbox-button.js +4 -4
  18. package/lib/checkbox-group.js +4 -4
  19. package/lib/checkbox.js +4 -4
  20. package/lib/col.js +2 -2
  21. package/lib/collapse-item.js +6 -6
  22. package/lib/collapse.js +4 -4
  23. package/lib/color-picker.js +8 -8
  24. package/lib/container.js +4 -4
  25. package/lib/date-picker.js +131 -105
  26. package/lib/descriptions-item.js +2 -2
  27. package/lib/descriptions.js +2 -2
  28. package/lib/dialog.js +8 -8
  29. package/lib/divider.js +4 -4
  30. package/lib/drawer.js +6 -6
  31. package/lib/dropdown-item.js +4 -4
  32. package/lib/dropdown-menu.js +4 -4
  33. package/lib/dropdown.js +16 -16
  34. package/lib/element-ui.common.js +5221 -734
  35. package/lib/empty.js +4 -4
  36. package/lib/footer.js +4 -4
  37. package/lib/form-item.js +6 -6
  38. package/lib/form.js +11 -11
  39. package/lib/header.js +4 -4
  40. package/lib/icon.js +4 -4
  41. package/lib/image.js +8 -8
  42. package/lib/index.js +1 -1
  43. package/lib/infinite-scroll.js +2 -2
  44. package/lib/input-number.js +6 -6
  45. package/lib/input.js +6 -6
  46. package/lib/link.js +4 -4
  47. package/lib/loading.js +6 -6
  48. package/lib/main.js +4 -4
  49. package/lib/menu-item-group.js +4 -4
  50. package/lib/menu-item.js +6 -6
  51. package/lib/menu.js +6 -6
  52. package/lib/message-box.js +13 -13
  53. package/lib/message.js +8 -8
  54. package/lib/notification.js +8 -8
  55. package/lib/option-group.js +4 -4
  56. package/lib/option.js +4 -4
  57. package/lib/page-header.js +4 -4
  58. package/lib/pagination.js +4 -4
  59. package/lib/popconfirm.js +8 -8
  60. package/lib/popover.js +4 -4
  61. package/lib/progress.js +4 -4
  62. package/lib/radio-button.js +4 -4
  63. package/lib/radio-group.js +4 -4
  64. package/lib/radio.js +4 -4
  65. package/lib/rate.js +6 -6
  66. package/lib/result.js +4 -4
  67. package/lib/row.js +2 -2
  68. package/lib/scrollbar.js +2 -2
  69. package/lib/select.js +16 -16
  70. package/lib/skeleton-item.js +4 -4
  71. package/lib/skeleton.js +4 -4
  72. package/lib/slider.js +8 -8
  73. package/lib/spinner.js +4 -4
  74. package/lib/step.js +4 -4
  75. package/lib/steps.js +6 -6
  76. package/lib/submenu.js +6 -6
  77. package/lib/super-date.js +4833 -0
  78. package/lib/switch.js +6 -6
  79. package/lib/tab-pane.js +4 -4
  80. package/lib/table-column.js +2 -2
  81. package/lib/table.js +20 -18
  82. package/lib/tabs.js +4 -4
  83. package/lib/tag.js +4 -4
  84. package/lib/theme-chalk/index.css +1 -1
  85. package/lib/theme-chalk/super-date.css +1 -0
  86. package/lib/time-picker.js +63 -61
  87. package/lib/time-select.js +20 -18
  88. package/lib/timeline-item.js +4 -4
  89. package/lib/timeline.js +4 -4
  90. package/lib/tooltip.js +2 -2
  91. package/lib/transfer.js +8 -8
  92. package/lib/tree.js +6 -6
  93. package/lib/upload.js +15 -15
  94. package/lib/utils/date-util.js +14 -2
  95. package/lib/utils/date.js +67 -9
  96. package/package.json +1 -1
  97. package/packages/date-picker/src/basic/date-table.vue +10 -5
  98. package/packages/date-picker/src/basic/month-table.vue +9 -6
  99. package/packages/date-picker/src/basic/year-table.vue +6 -2
  100. package/packages/date-picker/src/panel/date.vue +4 -0
  101. package/packages/date-picker/src/picker.vue +2 -0
  102. package/packages/super-date/index.js +8 -0
  103. package/packages/super-date/src/basic/date-table.vue +448 -0
  104. package/packages/super-date/src/basic/month-table.vue +278 -0
  105. package/packages/super-date/src/basic/time-spinner.vue +340 -0
  106. package/packages/super-date/src/basic/year-table.vue +144 -0
  107. package/packages/super-date/src/panel/date-range.vue +1000 -0
  108. package/packages/super-date/src/panel/date.vue +649 -0
  109. package/packages/super-date/src/panel/month-range.vue +289 -0
  110. package/packages/super-date/src/panel/time-range.vue +250 -0
  111. package/packages/super-date/src/panel/time-select.vue +195 -0
  112. package/packages/super-date/src/panel/time.vue +211 -0
  113. package/packages/super-date/src/picker/date-picker.js +29 -0
  114. package/packages/super-date/src/picker/time-picker.js +39 -0
  115. package/packages/super-date/src/picker/time-select.js +21 -0
  116. package/packages/super-date/src/picker.vue +956 -0
  117. package/packages/theme-chalk/lib/index.css +1 -1
  118. package/packages/theme-chalk/lib/super-date.css +1 -0
  119. package/packages/theme-chalk/src/index.scss +1 -0
  120. package/packages/theme-chalk/src/super-date/date-picker.scss +106 -0
  121. package/packages/theme-chalk/src/super-date/date-range-picker.scss +138 -0
  122. package/packages/theme-chalk/src/super-date/date-table.scss +154 -0
  123. package/packages/theme-chalk/src/super-date/month-table.scss +96 -0
  124. package/packages/theme-chalk/src/super-date/picker-panel.scss +130 -0
  125. package/packages/theme-chalk/src/super-date/picker.scss +204 -0
  126. package/packages/theme-chalk/src/super-date/time-picker.scss +94 -0
  127. package/packages/theme-chalk/src/super-date/time-range-picker.scss +32 -0
  128. package/packages/theme-chalk/src/super-date/time-spinner.scss +111 -0
  129. package/packages/theme-chalk/src/super-date/year-table.scss +66 -0
  130. package/packages/theme-chalk/src/super-date.scss +12 -0
  131. package/src/index.js +4 -1
  132. package/src/utils/date-util.js +10 -0
  133. package/src/utils/date.js +291 -195
  134. package/types/element-ui.d.ts +9 -5
  135. package/types/super-date.d.ts +124 -0
package/lib/tree.js CHANGED
@@ -82,12 +82,12 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 60);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 62);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
89
89
 
90
- /***/ 0:
90
+ /***/ 1:
91
91
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
92
 
93
93
  "use strict";
@@ -213,7 +213,7 @@ module.exports = require("bi-eleme/lib/locale");
213
213
 
214
214
  /***/ }),
215
215
 
216
- /***/ 28:
216
+ /***/ 29:
217
217
  /***/ (function(module, exports) {
218
218
 
219
219
  module.exports = require("bi-eleme/lib/transitions/collapse-transition");
@@ -234,7 +234,7 @@ module.exports = require("bi-eleme/lib/mixins/emitter");
234
234
 
235
235
  /***/ }),
236
236
 
237
- /***/ 60:
237
+ /***/ 62:
238
238
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
239
239
 
240
240
  "use strict";
@@ -1421,7 +1421,7 @@ tree_nodevue_type_template_id_2aa52095_render._withStripped = true
1421
1421
  // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=template&id=2aa52095
1422
1422
 
1423
1423
  // EXTERNAL MODULE: external "bi-eleme/lib/transitions/collapse-transition"
1424
- var collapse_transition_ = __webpack_require__(28);
1424
+ var collapse_transition_ = __webpack_require__(29);
1425
1425
  var collapse_transition_default = /*#__PURE__*/__webpack_require__.n(collapse_transition_);
1426
1426
 
1427
1427
  // EXTERNAL MODULE: external "bi-eleme/lib/checkbox"
@@ -1715,7 +1715,7 @@ var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
1715
1715
  // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue?vue&type=script&lang=js
1716
1716
  /* harmony default export */ var src_tree_nodevue_type_script_lang_js = (tree_nodevue_type_script_lang_js);
1717
1717
  // EXTERNAL MODULE: ./node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js
1718
- var componentNormalizer = __webpack_require__(0);
1718
+ var componentNormalizer = __webpack_require__(1);
1719
1719
 
1720
1720
  // CONCATENATED MODULE: ./packages/tree/src/tree-node.vue
1721
1721
 
package/lib/upload.js CHANGED
@@ -82,12 +82,12 @@ module.exports =
82
82
  /******/
83
83
  /******/
84
84
  /******/ // Load entry module and return exports
85
- /******/ return __webpack_require__(__webpack_require__.s = 58);
85
+ /******/ return __webpack_require__(__webpack_require__.s = 60);
86
86
  /******/ })
87
87
  /************************************************************************/
88
88
  /******/ ({
89
89
 
90
- /***/ 0:
90
+ /***/ 1:
91
91
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
92
92
 
93
93
  "use strict";
@@ -192,14 +192,14 @@ function normalizeComponent(
192
192
 
193
193
  /***/ }),
194
194
 
195
- /***/ 11:
195
+ /***/ 12:
196
196
  /***/ (function(module, exports) {
197
197
 
198
198
  module.exports = require("bi-eleme/lib/mixins/migrating");
199
199
 
200
200
  /***/ }),
201
201
 
202
- /***/ 26:
202
+ /***/ 27:
203
203
  /***/ (function(module, exports) {
204
204
 
205
205
  module.exports = require("babel-helper-vue-jsx-merge-props");
@@ -213,7 +213,14 @@ module.exports = require("bi-eleme/lib/progress");
213
213
 
214
214
  /***/ }),
215
215
 
216
- /***/ 58:
216
+ /***/ 6:
217
+ /***/ (function(module, exports) {
218
+
219
+ module.exports = require("bi-eleme/lib/mixins/locale");
220
+
221
+ /***/ }),
222
+
223
+ /***/ 60:
217
224
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
218
225
 
219
226
  "use strict";
@@ -515,7 +522,7 @@ var progress_default = /*#__PURE__*/__webpack_require__.n(progress_);
515
522
  // CONCATENATED MODULE: ./packages/upload/src/upload-list.vue?vue&type=script&lang=js
516
523
  /* harmony default export */ var src_upload_listvue_type_script_lang_js = (upload_listvue_type_script_lang_js);
517
524
  // EXTERNAL MODULE: ./node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js
518
- var componentNormalizer = __webpack_require__(0);
525
+ var componentNormalizer = __webpack_require__(1);
519
526
 
520
527
  // CONCATENATED MODULE: ./packages/upload/src/upload-list.vue
521
528
 
@@ -538,7 +545,7 @@ var component = Object(componentNormalizer["a" /* default */])(
538
545
 
539
546
  /* harmony default export */ var upload_list = (component.exports);
540
547
  // EXTERNAL MODULE: external "babel-helper-vue-jsx-merge-props"
541
- var external_babel_helper_vue_jsx_merge_props_ = __webpack_require__(26);
548
+ var external_babel_helper_vue_jsx_merge_props_ = __webpack_require__(27);
542
549
  var external_babel_helper_vue_jsx_merge_props_default = /*#__PURE__*/__webpack_require__.n(external_babel_helper_vue_jsx_merge_props_);
543
550
 
544
551
  // CONCATENATED MODULE: ./packages/upload/src/ajax.js
@@ -1014,7 +1021,7 @@ var upload_component = Object(componentNormalizer["a" /* default */])(
1014
1021
 
1015
1022
  /* harmony default export */ var src_upload = (upload_component.exports);
1016
1023
  // EXTERNAL MODULE: external "bi-eleme/lib/mixins/migrating"
1017
- var migrating_ = __webpack_require__(11);
1024
+ var migrating_ = __webpack_require__(12);
1018
1025
  var migrating_default = /*#__PURE__*/__webpack_require__.n(migrating_);
1019
1026
 
1020
1027
  // CONCATENATED MODULE: ./node_modules/.store/babel-loader@7.1.5/node_modules/babel-loader/lib!./node_modules/.store/vue-loader@15.11.1/node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/index.vue?vue&type=script&lang=js
@@ -1388,13 +1395,6 @@ src.install = function (Vue) {
1388
1395
 
1389
1396
  /* harmony default export */ var packages_upload = __webpack_exports__["default"] = (src);
1390
1397
 
1391
- /***/ }),
1392
-
1393
- /***/ 6:
1394
- /***/ (function(module, exports) {
1395
-
1396
- module.exports = require("bi-eleme/lib/mixins/locale");
1397
-
1398
1398
  /***/ })
1399
1399
 
1400
1400
  /******/ });
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  exports.__esModule = true;
4
- exports.validateRangeInOneMonth = exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeMinutes = exports.getMonthDays = exports.getPrevMonthLastDays = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = exports.getI18nSettings = undefined;
4
+ exports.setDaysDiff = exports.getDaysDiff = exports.validateRangeInOneMonth = exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.getTimestampInTimezone = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeMinutes = exports.getMonthDays = exports.getPrevMonthLastDays = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = exports.getI18nSettings = undefined;
5
5
 
6
6
  var _date = require('bi-eleme/lib/utils/date');
7
7
 
@@ -222,6 +222,15 @@ var clearTime = exports.clearTime = function clearTime(date) {
222
222
  return new Date(date.getFullYear(), date.getMonth(), date.getDate());
223
223
  };
224
224
 
225
+ var getTimestampInTimezone = exports.getTimestampInTimezone = function getTimestampInTimezone(date) {
226
+ var timezoneOffset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 8;
227
+
228
+ // 将日期转换为指定时区的时间
229
+ var targetDate = new Date(date.getTime() + (date.getTimezoneOffset() + timezoneOffset * 60) * 60000);
230
+ // 返回时间戳
231
+ return targetDate;
232
+ };
233
+
225
234
  var clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {
226
235
  return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
227
236
  };
@@ -305,4 +314,7 @@ var extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(f
305
314
 
306
315
  var validateRangeInOneMonth = exports.validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {
307
316
  return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
308
- };
317
+ };
318
+
319
+ var getDaysDiff = exports.getDaysDiff = _date2.default.getDaysDiff;
320
+ var setDaysDiff = exports.setDaysDiff = _date2.default.setDaysDiff;
package/lib/utils/date.js CHANGED
@@ -27,7 +27,7 @@
27
27
 
28
28
  /*eslint-disable*/
29
29
  // 把 YYYY-MM-DD 改成了 yyyy-MM-dd
30
- (function (main) {
30
+ ;(function (main) {
31
31
  'use strict';
32
32
 
33
33
  /**
@@ -251,15 +251,14 @@
251
251
  shortTime: 'HH:mm',
252
252
  mediumTime: 'HH:mm:ss',
253
253
  longTime: 'HH:mm:ss.SSS'
254
- };
255
254
 
256
- /***
257
- * Format a date
258
- * @method format
259
- * @param {Date|number} dateObj
260
- * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
261
- */
262
- fecha.format = function (dateObj, mask, i18nSettings) {
255
+ /***
256
+ * Format a date
257
+ * @method format
258
+ * @param {Date|number} dateObj
259
+ * @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
260
+ */
261
+ };fecha.format = function (dateObj, mask, i18nSettings) {
263
262
  var i18n = i18nSettings || fecha.i18n;
264
263
 
265
264
  if (typeof dateObj === 'number') {
@@ -356,6 +355,65 @@
356
355
  return date;
357
356
  };
358
357
 
358
+ /**
359
+ * Calculate days difference between two dates
360
+ * @param {Date|string} date1 First date
361
+ * @param {Date|string} date2 Second date (optional, defaults to current date)
362
+ * @returns {number} Days difference
363
+ */
364
+ fecha.getDaysDiff = function (date1, date2) {
365
+ // Convert to Date objects if strings
366
+ if (typeof date1 === 'string') {
367
+ date1 = fecha.parse(date1, 'yyyy-MM-dd');
368
+ }
369
+ if (!date2) {
370
+ date2 = new Date();
371
+ } else if (typeof date2 === 'string') {
372
+ date2 = fecha.parse(date2, 'yyyy-MM-dd');
373
+ }
374
+
375
+ // Validate dates
376
+ if (!date1 || !date2 || isNaN(date1.getTime()) || isNaN(date2.getTime())) {
377
+ throw new Error('Invalid date in fecha.getDaysDiff');
378
+ }
379
+
380
+ // Reset time to midnight to ensure accurate day calculation
381
+ date1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate());
382
+ date2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate());
383
+
384
+ // Calculate difference in days
385
+ var timeDiff = date2.getTime() - date1.getTime();
386
+ return Math.round(timeDiff / (1000 * 60 * 60 * 24));
387
+ };
388
+
389
+ /**
390
+ * Calculate the date that is a specified number of days before the given date
391
+ * @param {Date|string} date The reference date
392
+ * @param {number} diff Number of days to subtract (must be positive)
393
+ * @returns {Date} The resulting date
394
+ */
395
+ fecha.setDaysDiff = function (date, diff) {
396
+ // Validate diff parameter
397
+ if (typeof diff !== 'number' || diff < 0) {
398
+ throw new Error('diff parameter must be a positive number in fecha.setDaysDiff');
399
+ }
400
+
401
+ // Convert to Date object if string
402
+ if (typeof date === 'string') {
403
+ date = fecha.parse(date, 'yyyy-MM-dd');
404
+ }
405
+
406
+ // Validate date
407
+ if (!date || isNaN(date.getTime())) {
408
+ throw new Error('Invalid date in fecha.setDaysDiff');
409
+ }
410
+
411
+ // Reset time to midnight to ensure accurate day calculation
412
+ var result = new Date(date.getFullYear(), date.getMonth(), date.getDate());
413
+ result.setDate(result.getDate() - diff);
414
+ return result;
415
+ };
416
+
359
417
  /* istanbul ignore next */
360
418
  if (typeof module !== 'undefined' && module.exports) {
361
419
  module.exports = fecha;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bi-eleme",
3
- "version": "2.1.2",
3
+ "version": "2.4.1",
4
4
  "description": "A Component Library for Vue.js.from element-ui@2.15.10",
5
5
  "main": "lib/element-ui.common.js",
6
6
  "files": [
@@ -38,16 +38,16 @@
38
38
  </template>
39
39
 
40
40
  <script>
41
- import { getFirstDayOfMonth, getDayCountOfMonth, getWeekNumber, getStartDateOfMonth, prevDate, nextDate, isDate, clearTime as _clearTime } from 'bi-eleme/src/utils/date-util'
41
+ import { getFirstDayOfMonth, getDayCountOfMonth, getWeekNumber, getStartDateOfMonth, prevDate, nextDate, isDate, clearTime as _clearTime, getTimestampInTimezone } from 'bi-eleme/src/utils/date-util'
42
42
  import Locale from 'bi-eleme/src/mixins/locale'
43
43
  import { arrayFindIndex, arrayFind, coerceTruthyValueToArray } from 'bi-eleme/src/utils/util'
44
44
 
45
45
  const WEEKS = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat']
46
- const getDateTimestamp = function (time) {
46
+ const getDateTimestamp = function (time, utc = 8) {
47
47
  if (typeof time === 'number' || typeof time === 'string') {
48
- return _clearTime(new Date(time)).getTime()
48
+ return _clearTime(getTimestampInTimezone(new Date(time), utc)).getTime()
49
49
  } else if (time instanceof Date) {
50
- return _clearTime(time).getTime()
50
+ return _clearTime(getTimestampInTimezone(time, utc)).getTime()
51
51
  } else {
52
52
  return NaN
53
53
  }
@@ -71,6 +71,11 @@ export default {
71
71
  validator: (val) => val >= 1 && val <= 7
72
72
  },
73
73
 
74
+ utc: {
75
+ default: 8,
76
+ type: Number
77
+ },
78
+
74
79
  value: {},
75
80
 
76
81
  defaultValue: {
@@ -150,7 +155,7 @@ export default {
150
155
  const disabledDate = this.disabledDate
151
156
  const cellClassName = this.cellClassName
152
157
  const selectedDate = this.selectionMode === 'dates' ? coerceTruthyValueToArray(this.value) : []
153
- const now = getDateTimestamp(new Date())
158
+ const now = getDateTimestamp(new Date(), this.utc)
154
159
 
155
160
  for (let i = 0; i < 6; i++) {
156
161
  const row = rows[i]
@@ -25,7 +25,7 @@
25
25
 
26
26
  <script type="text/babel">
27
27
  import Locale from 'bi-eleme/src/mixins/locale'
28
- import { isDate, range, getDayCountOfMonth, nextDate } from 'bi-eleme/src/utils/date-util'
28
+ import { isDate, range, getDayCountOfMonth, nextDate, getTimestampInTimezone } from 'bi-eleme/src/utils/date-util'
29
29
  import { hasClass } from 'bi-eleme/src/utils/dom'
30
30
  import { arrayFindIndex, coerceTruthyValueToArray, arrayFind } from 'bi-eleme/src/utils/util'
31
31
 
@@ -39,11 +39,11 @@ const clearDate = (date) => {
39
39
  return new Date(date.getFullYear(), date.getMonth())
40
40
  }
41
41
 
42
- const getMonthTimestamp = function (time) {
42
+ const getMonthTimestamp = function (time, utc = 8) {
43
43
  if (typeof time === 'number' || typeof time === 'string') {
44
- return clearDate(new Date(time)).getTime()
44
+ return clearDate(getTimestampInTimezone(new Date(time), utc)).getTime()
45
45
  } else if (time instanceof Date) {
46
- return clearDate(time).getTime()
46
+ return clearDate(getTimestampInTimezone(time, utc)).getTime()
47
47
  } else {
48
48
  return NaN
49
49
  }
@@ -64,7 +64,10 @@ export default {
64
64
  default: 'month'
65
65
  },
66
66
  minDate: {},
67
-
67
+ utc: {
68
+ default: 8,
69
+ type: Number
70
+ },
68
71
  maxDate: {},
69
72
  defaultValue: {
70
73
  validator(val) {
@@ -238,7 +241,7 @@ export default {
238
241
  const rows = this.tableRows
239
242
  const disabledDate = this.disabledDate
240
243
  const selectedDate = []
241
- const now = getMonthTimestamp(new Date())
244
+ const now = getMonthTimestamp(new Date(), this.utc)
242
245
 
243
246
  for (let i = 0; i < 3; i++) {
244
247
  const row = rows[i]
@@ -78,7 +78,7 @@
78
78
 
79
79
  <script type="text/babel">
80
80
  import { hasClass } from 'bi-eleme/src/utils/dom'
81
- import { isDate, range, nextDate, getDayCountOfYear } from 'bi-eleme/src/utils/date-util'
81
+ import { isDate, range, nextDate, getDayCountOfYear, getTimestampInTimezone } from 'bi-eleme/src/utils/date-util'
82
82
  import { arrayFindIndex, coerceTruthyValueToArray } from 'bi-eleme/src/utils/util'
83
83
 
84
84
  const datesInYear = (year) => {
@@ -97,6 +97,10 @@ export default {
97
97
  return val === null || (val instanceof Date && isDate(val))
98
98
  }
99
99
  },
100
+ utc: {
101
+ default: 8,
102
+ type: Number
103
+ },
100
104
  date: {},
101
105
  selectionMode: {}
102
106
  },
@@ -110,7 +114,7 @@ export default {
110
114
  methods: {
111
115
  getCellStyle(year) {
112
116
  const style = {}
113
- const today = new Date()
117
+ const today = getTimestampInTimezone(new Date(), this.utc)
114
118
 
115
119
  style.disabled = typeof this.disabledDate === 'function' ? datesInYear(year).every(this.disabledDate) : false
116
120
  style.current = arrayFindIndex(coerceTruthyValueToArray(this.value), (date) => date.getFullYear() === year) >= 0
@@ -128,6 +128,7 @@
128
128
  :date="date"
129
129
  :cell-class-name="cellClassName"
130
130
  :disabled-date="disabledDate"
131
+ :utc="utc"
131
132
  >
132
133
  </date-table>
133
134
  <year-table
@@ -138,6 +139,7 @@
138
139
  :default-value="defaultValue ? new Date(defaultValue) : null"
139
140
  :date="date"
140
141
  :disabled-date="disabledDate"
142
+ :utc="utc"
141
143
  >
142
144
  </year-table>
143
145
  <month-table
@@ -148,6 +150,7 @@
148
150
  :default-value="defaultValue ? new Date(defaultValue) : null"
149
151
  :date="date"
150
152
  :disabled-date="disabledDate"
153
+ :utc="utc"
151
154
  >
152
155
  </month-table>
153
156
  </div>
@@ -556,6 +559,7 @@ export default {
556
559
  popperClass: '',
557
560
  date: new Date(),
558
561
  value: '',
562
+ utc: 8,
559
563
  defaultValue: null, // use getDefaultValue() for time computation
560
564
  defaultTime: null,
561
565
  showTime: false,
@@ -370,6 +370,7 @@ export default {
370
370
  validator
371
371
  },
372
372
  popperClass: String,
373
+ utc: Number,
373
374
  editable: {
374
375
  type: Boolean,
375
376
  default: true
@@ -825,6 +826,7 @@ export default {
825
826
  this.picker.defaultValue = this.defaultValue
826
827
  this.picker.defaultTime = this.defaultTime
827
828
  this.picker.popperClass = this.popperClass
829
+ this.picker.utc = this.utc
828
830
  this.popperElm = this.picker.$el
829
831
  this.picker.width = this.reference.getBoundingClientRect().width
830
832
  this.picker.showTime = this.type === 'datetime' || this.type === 'datetimerange'
@@ -0,0 +1,8 @@
1
+ import DatePicker from './src/picker/date-picker';
2
+
3
+ /* istanbul ignore next */
4
+ DatePicker.install = function install(Vue) {
5
+ Vue.component(DatePicker.name, DatePicker);
6
+ };
7
+
8
+ export default DatePicker;