@mdsfe/mds-ui 0.3.0-2 → 0.3.0-20

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 (107) hide show
  1. package/CHANGELOG.md +1013 -0
  2. package/dist/_util/iconfont/index.js +7 -7
  3. package/dist/anchor.js +2 -2
  4. package/dist/bordershadow.js +2 -2
  5. package/dist/breadcrumb.js +2 -2
  6. package/dist/card.js +2 -2
  7. package/dist/carousel.js +18 -18
  8. package/dist/cascader.js +26 -26
  9. package/dist/cascaderpanel.js +30 -30
  10. package/dist/checkbox.js +6 -6
  11. package/dist/col.js +10 -10
  12. package/dist/collapse.js +2 -2
  13. package/dist/datepicker.js +644 -222
  14. package/dist/divider.js +2 -2
  15. package/dist/drawer.js +17 -17
  16. package/dist/dropdown.js +6 -6
  17. package/dist/empty.js +11 -11
  18. package/dist/font/iconfont.ba42e6f.woff +0 -0
  19. package/dist/font/{iconfont.36c3afe.ttf → iconfont.bf5c999.ttf} +0 -0
  20. package/dist/font/iconfont.d8e6666.woff2 +0 -0
  21. package/dist/form.js +8 -8
  22. package/dist/index.js +1 -1
  23. package/dist/input.js +207 -54
  24. package/dist/inputnumber.js +4 -4
  25. package/dist/list.js +2 -2
  26. package/dist/loading.js +2 -2
  27. package/dist/mds-ui.min.css +1 -1
  28. package/dist/mds-ui.min.js +2037 -912
  29. package/dist/menu.js +23 -4
  30. package/dist/message.js +12 -12
  31. package/dist/modal.js +8 -8
  32. package/dist/notification.js +6 -6
  33. package/dist/pagination.js +17 -13
  34. package/dist/popconfirm.js +13 -13
  35. package/dist/popover.js +20 -20
  36. package/dist/radio.js +14 -14
  37. package/dist/rate.js +8 -8
  38. package/dist/row.js +10 -10
  39. package/dist/select.js +31 -31
  40. package/dist/slider.js +2 -2
  41. package/dist/slottable.js +19 -19
  42. package/dist/style/affix.css +382 -1
  43. package/dist/style/alert.css +382 -1
  44. package/dist/style/anchor.css +382 -1
  45. package/dist/style/avatar.css +382 -1
  46. package/dist/style/badge.css +382 -1
  47. package/dist/style/bordershadow.css +382 -1
  48. package/dist/style/breadcrumb.css +382 -1
  49. package/dist/style/button.css +382 -1
  50. package/dist/style/card.css +382 -1
  51. package/dist/style/carousel.css +382 -1
  52. package/dist/style/checkbox.css +382 -1
  53. package/dist/style/col.css +382 -1
  54. package/dist/style/collapse.css +382 -1
  55. package/dist/style/color.css +382 -1
  56. package/dist/style/datepicker.css +442 -1
  57. package/dist/style/divider.css +382 -1
  58. package/dist/style/drawer.css +382 -1
  59. package/dist/style/dropdown.css +382 -1
  60. package/dist/style/empty.css +382 -1
  61. package/dist/style/font.css +382 -1
  62. package/dist/style/form.css +382 -1
  63. package/dist/style/icon.css +382 -1
  64. package/dist/style/input.css +402 -7
  65. package/dist/style/inputnumber.css +382 -1
  66. package/dist/style/layout.css +382 -1
  67. package/dist/style/list.css +382 -1
  68. package/dist/style/loading.css +382 -1
  69. package/dist/style/menu.css +382 -1
  70. package/dist/style/modal.css +382 -1
  71. package/dist/style/notification.css +382 -1
  72. package/dist/style/pagination.css +402 -7
  73. package/dist/style/popconfirm.css +382 -1
  74. package/dist/style/popover.css +382 -1
  75. package/dist/style/progress.css +382 -1
  76. package/dist/style/radio.css +382 -1
  77. package/dist/style/rate.css +382 -1
  78. package/dist/style/row.css +382 -1
  79. package/dist/style/select.css +382 -1
  80. package/dist/style/slider.css +382 -1
  81. package/dist/style/slottable.css +382 -1
  82. package/dist/style/steps.css +382 -1
  83. package/dist/style/switch.css +382 -1
  84. package/dist/style/table.css +382 -1
  85. package/dist/style/tabs.css +382 -1
  86. package/dist/style/tag.css +382 -1
  87. package/dist/style/text.css +382 -1
  88. package/dist/style/timeline.css +382 -1
  89. package/dist/style/timepicker.css +382 -1
  90. package/dist/style/tooltip.css +382 -1
  91. package/dist/style/transfer.css +105 -0
  92. package/dist/style/tree.css +382 -1
  93. package/dist/style/typography.css +382 -1
  94. package/dist/style/upload.css +382 -1
  95. package/dist/switch.js +4 -4
  96. package/dist/table.js +27 -27
  97. package/dist/text.js +207 -54
  98. package/dist/timeline.js +2 -2
  99. package/dist/timepicker.js +32 -32
  100. package/dist/tooltip.js +19 -19
  101. package/dist/transfer.js +976 -22
  102. package/dist/tree.js +26 -26
  103. package/dist/typography.js +2 -2
  104. package/dist/upload.js +11 -11
  105. package/package.json +2 -1
  106. package/dist/font/iconfont.50be7d0.woff2 +0 -0
  107. package/dist/font/iconfont.f586f3d.woff +0 -0
@@ -1,13 +1,13 @@
1
1
  (function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
- module.exports = factory(require("vue"), require("./_util/dateUtil"), require("./icon"), require("./_util/proptype"), require("./_mixin/locale"), require("./_mixin/emitter"), require("./button"), require("./input"), require("./_util/util"), require("./_util/clickoutside"), require("./_util/merge"), require("./_util/repeatClick"), require("./_util/dom"));
3
+ module.exports = factory(require("vue"), require("./_util/dateUtil"), require("./icon"), require("./_util/proptype"), require("./_mixin/locale"), require("./button"), require("./_mixin/emitter"), require("./input"), require("./_util/util"), require("./_util/clickoutside"), require("./_util/merge"), require("./_util/repeatClick"), require("./_util/dom"));
4
4
  else if(typeof define === 'function' && define.amd)
5
- define(["vue", "./_util/dateUtil", "./icon", "./_util/proptype", "./_mixin/locale", "./_mixin/emitter", "./button", "./input", "./_util/util", "./_util/clickoutside", "./_util/merge", "./_util/repeatClick", "./_util/dom"], factory);
5
+ define(["vue", "./_util/dateUtil", "./icon", "./_util/proptype", "./_mixin/locale", "./button", "./_mixin/emitter", "./input", "./_util/util", "./_util/clickoutside", "./_util/merge", "./_util/repeatClick", "./_util/dom"], factory);
6
6
  else {
7
- var a = typeof exports === 'object' ? factory(require("vue"), require("./_util/dateUtil"), require("./icon"), require("./_util/proptype"), require("./_mixin/locale"), require("./_mixin/emitter"), require("./button"), require("./input"), require("./_util/util"), require("./_util/clickoutside"), require("./_util/merge"), require("./_util/repeatClick"), require("./_util/dom")) : factory(root["Vue"], root["./_util/dateUtil"], root["./icon"], root["./_util/proptype"], root["./_mixin/locale"], root["./_mixin/emitter"], root["./button"], root["./input"], root["./_util/util"], root["./_util/clickoutside"], root["./_util/merge"], root["./_util/repeatClick"], root["./_util/dom"]);
7
+ var a = typeof exports === 'object' ? factory(require("vue"), require("./_util/dateUtil"), require("./icon"), require("./_util/proptype"), require("./_mixin/locale"), require("./button"), require("./_mixin/emitter"), require("./input"), require("./_util/util"), require("./_util/clickoutside"), require("./_util/merge"), require("./_util/repeatClick"), require("./_util/dom")) : factory(root["Vue"], root["./_util/dateUtil"], root["./icon"], root["./_util/proptype"], root["./_mixin/locale"], root["./button"], root["./_mixin/emitter"], root["./input"], root["./_util/util"], root["./_util/clickoutside"], root["./_util/merge"], root["./_util/repeatClick"], root["./_util/dom"]);
8
8
  for(var i in a) (typeof exports === 'object' ? exports : root)[i] = a[i];
9
9
  }
10
- })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__10__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__17__, __WEBPACK_EXTERNAL_MODULE__21__, __WEBPACK_EXTERNAL_MODULE__32__, __WEBPACK_EXTERNAL_MODULE__48__, __WEBPACK_EXTERNAL_MODULE__67__, __WEBPACK_EXTERNAL_MODULE__68__) {
10
+ })(window, function(__WEBPACK_EXTERNAL_MODULE__2__, __WEBPACK_EXTERNAL_MODULE__4__, __WEBPACK_EXTERNAL_MODULE__7__, __WEBPACK_EXTERNAL_MODULE__8__, __WEBPACK_EXTERNAL_MODULE__9__, __WEBPACK_EXTERNAL_MODULE__13__, __WEBPACK_EXTERNAL_MODULE__14__, __WEBPACK_EXTERNAL_MODULE__17__, __WEBPACK_EXTERNAL_MODULE__22__, __WEBPACK_EXTERNAL_MODULE__33__, __WEBPACK_EXTERNAL_MODULE__48__, __WEBPACK_EXTERNAL_MODULE__67__, __WEBPACK_EXTERNAL_MODULE__68__) {
11
11
  return /******/ (function(modules) { // webpackBootstrap
12
12
  /******/ // The module cache
13
13
  /******/ var installedModules = {};
@@ -220,7 +220,7 @@ function normalizeComponent (
220
220
  /* unused harmony export isInContainer */
221
221
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return merge; });
222
222
  /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getScrollBarWidth; });
223
- /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
223
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
224
224
  /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
225
225
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
226
226
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
@@ -495,7 +495,7 @@ function getScrollBarWidth() {
495
495
  /***/ 10:
496
496
  /***/ (function(module, exports) {
497
497
 
498
- module.exports = __WEBPACK_EXTERNAL_MODULE__10__;
498
+ module.exports = require("babel-runtime/helpers/typeof");
499
499
 
500
500
  /***/ }),
501
501
 
@@ -996,7 +996,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__17__;
996
996
  var popup_main = __webpack_require__(15);
997
997
 
998
998
  // EXTERNAL MODULE: external "babel-runtime/core-js/object/get-own-property-descriptor"
999
- var get_own_property_descriptor_ = __webpack_require__(19);
999
+ var get_own_property_descriptor_ = __webpack_require__(20);
1000
1000
  var get_own_property_descriptor_default = /*#__PURE__*/__webpack_require__.n(get_own_property_descriptor_);
1001
1001
 
1002
1002
  // EXTERNAL MODULE: external "babel-runtime/core-js/object/keys"
@@ -2462,7 +2462,7 @@ var stop = function stop(e) {
2462
2462
  /***/ 19:
2463
2463
  /***/ (function(module, exports) {
2464
2464
 
2465
- module.exports = require("babel-runtime/core-js/object/get-own-property-descriptor");
2465
+ module.exports = require("babel-runtime/helpers/toConsumableArray");
2466
2466
 
2467
2467
  /***/ }),
2468
2468
 
@@ -2473,14 +2473,21 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__2__;
2473
2473
 
2474
2474
  /***/ }),
2475
2475
 
2476
- /***/ 21:
2476
+ /***/ 20:
2477
2477
  /***/ (function(module, exports) {
2478
2478
 
2479
- module.exports = __WEBPACK_EXTERNAL_MODULE__21__;
2479
+ module.exports = require("babel-runtime/core-js/object/get-own-property-descriptor");
2480
2480
 
2481
2481
  /***/ }),
2482
2482
 
2483
2483
  /***/ 22:
2484
+ /***/ (function(module, exports) {
2485
+
2486
+ module.exports = __WEBPACK_EXTERNAL_MODULE__22__;
2487
+
2488
+ /***/ }),
2489
+
2490
+ /***/ 23:
2484
2491
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2485
2492
 
2486
2493
  "use strict";
@@ -2495,7 +2502,7 @@ module.exports = __WEBPACK_EXTERNAL_MODULE__21__;
2495
2502
  /* unused harmony export isScroll */
2496
2503
  /* unused harmony export getScrollContainer */
2497
2504
  /* unused harmony export isInContainer */
2498
- /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9);
2505
+ /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
2499
2506
  /* harmony import */ var babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_0__);
2500
2507
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(2);
2501
2508
  /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(vue__WEBPACK_IMPORTED_MODULE_1__);
@@ -2725,13 +2732,6 @@ var isInContainer = function isInContainer(el, container) {
2725
2732
 
2726
2733
  /***/ }),
2727
2734
 
2728
- /***/ 25:
2729
- /***/ (function(module, exports) {
2730
-
2731
- module.exports = require("babel-runtime/helpers/toConsumableArray");
2732
-
2733
- /***/ }),
2734
-
2735
2735
  /***/ 27:
2736
2736
  /***/ (function(module, __webpack_exports__, __webpack_require__) {
2737
2737
 
@@ -2825,10 +2825,10 @@ component.options.__file = "components/scroll-bar/scroll-bar.vue"
2825
2825
 
2826
2826
  /***/ }),
2827
2827
 
2828
- /***/ 32:
2828
+ /***/ 33:
2829
2829
  /***/ (function(module, exports) {
2830
2830
 
2831
- module.exports = __WEBPACK_EXTERNAL_MODULE__32__;
2831
+ module.exports = __WEBPACK_EXTERNAL_MODULE__33__;
2832
2832
 
2833
2833
  /***/ }),
2834
2834
 
@@ -3682,7 +3682,7 @@ render._withStripped = true
3682
3682
  // CONCATENATED MODULE: ./components/datepicker/picker/picker.vue?vue&type=template&id=311c2352&
3683
3683
 
3684
3684
  // EXTERNAL MODULE: external "babel-runtime/helpers/toConsumableArray"
3685
- var toConsumableArray_ = __webpack_require__(25);
3685
+ var toConsumableArray_ = __webpack_require__(19);
3686
3686
  var toConsumableArray_default = /*#__PURE__*/__webpack_require__.n(toConsumableArray_);
3687
3687
 
3688
3688
  // EXTERNAL MODULE: external "babel-runtime/core-js/object/keys"
@@ -3694,7 +3694,7 @@ var external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_ = __webpack_require__(
3694
3694
  var external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_default = /*#__PURE__*/__webpack_require__.n(external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_);
3695
3695
 
3696
3696
  // EXTERNAL MODULE: external "./_util/clickoutside"
3697
- var clickoutside_ = __webpack_require__(32);
3697
+ var clickoutside_ = __webpack_require__(33);
3698
3698
  var clickoutside_default = /*#__PURE__*/__webpack_require__.n(clickoutside_);
3699
3699
 
3700
3700
  // EXTERNAL MODULE: external "./_util/dateUtil"
@@ -3704,7 +3704,7 @@ var dateUtil_ = __webpack_require__(4);
3704
3704
  var vue_popper = __webpack_require__(18);
3705
3705
 
3706
3706
  // EXTERNAL MODULE: external "./_mixin/emitter"
3707
- var emitter_ = __webpack_require__(13);
3707
+ var emitter_ = __webpack_require__(14);
3708
3708
  var emitter_default = /*#__PURE__*/__webpack_require__.n(emitter_);
3709
3709
 
3710
3710
  // EXTERNAL MODULE: external "./input"
@@ -3720,7 +3720,7 @@ var merge_ = __webpack_require__(48);
3720
3720
  var merge_default = /*#__PURE__*/__webpack_require__.n(merge_);
3721
3721
 
3722
3722
  // EXTERNAL MODULE: external "./_mixin/locale"
3723
- var locale_ = __webpack_require__(10);
3723
+ var locale_ = __webpack_require__(9);
3724
3724
  var locale_default = /*#__PURE__*/__webpack_require__.n(locale_);
3725
3725
 
3726
3726
  // EXTERNAL MODULE: external "./_util/proptype"
@@ -3856,7 +3856,7 @@ var DEFAULT_FORMATS = {
3856
3856
  datetimerangeflat: 'yyyy-MM-dd HH:mm:ss',
3857
3857
  year: 'yyyy'
3858
3858
  };
3859
- var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates', 'datetimerangeflat'];
3859
+ var HAVE_TRIGGER_TYPES = ['date', 'datetime', 'time', 'time-select', 'week', 'month', 'year', 'daterange', 'monthrange', 'timerange', 'datetimerange', 'dates', 'datetimerangeflat', 'quarter'];
3860
3860
  var pickervue_type_script_lang_js_DATE_FORMATTER = function DATE_FORMATTER(value, format) {
3861
3861
  if (format === 'timestamp') return value.getTime();
3862
3862
  return Object(dateUtil_["formatDate"])(value, format);
@@ -3984,6 +3984,31 @@ var TYPE_VALUE_RESOLVER_MAP = {
3984
3984
  return date instanceof Date ? date : pickervue_type_script_lang_js_DATE_PARSER(date, format);
3985
3985
  });
3986
3986
  }
3987
+ },
3988
+ quarter: {
3989
+ formatter: function formatter(value, format) {
3990
+ // value 是 Date
3991
+ if (!value) return '';
3992
+ var year = value.getFullYear();
3993
+ var month = value.getMonth();
3994
+ var quarter = Math.floor(month / 3) + 1;
3995
+ // 支持自定义格式,否则默认 'yyyy-Qn'
3996
+ if (format) {
3997
+ return format.replace('yyyy', year).replace('Q', quarter);
3998
+ }
3999
+ return year + '-Q' + quarter;
4000
+ },
4001
+ parser: function parser(text, format) {
4002
+ // 支持 'yyyy-Qn' 格式
4003
+ if (!text) return null;
4004
+ var match = text.match(/(\\d{4})-?Q(\\d)/);
4005
+ if (match) {
4006
+ var year = parseInt(match[1]);
4007
+ var quarter = parseInt(match[2]);
4008
+ return new Date(year, (quarter - 1) * 3, 1);
4009
+ }
4010
+ return new Date(text);
4011
+ }
3987
4012
  }
3988
4013
  };
3989
4014
  var PLACEMENT_MAP = {
@@ -4118,6 +4143,10 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4118
4143
  validateEvent: {
4119
4144
  type: Boolean,
4120
4145
  default: true
4146
+ },
4147
+ pickerType: {
4148
+ type: String,
4149
+ default: 'date'
4121
4150
  }
4122
4151
  },
4123
4152
 
@@ -4232,6 +4261,8 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4232
4261
  return 'year';
4233
4262
  } else if (this.type === 'dates') {
4234
4263
  return 'dates';
4264
+ } else if (this.type === 'quarter') {
4265
+ return 'quarter';
4235
4266
  }
4236
4267
 
4237
4268
  return 'day';
@@ -4446,8 +4477,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4446
4477
  this.userInput = initialValue === '' ? null : initialValue;
4447
4478
  },
4448
4479
  handleFocus: function handleFocus() {
4449
- var type = this.type;
4450
- if (HAVE_TRIGGER_TYPES.indexOf(type) !== -1 && !this.pickerVisible) {
4480
+ if (HAVE_TRIGGER_TYPES.indexOf(this.type) !== -1 && !this.pickerVisible) {
4451
4481
  this.pickerVisible = true;
4452
4482
  }
4453
4483
  this.$emit('focus', this);
@@ -4542,7 +4572,20 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4542
4572
  mountPicker: function mountPicker() {
4543
4573
  var _this3 = this;
4544
4574
 
4545
- this.picker = new external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_default.a(this.panel).$mount();
4575
+ var Panel = external_root_Vue_commonjs_vue_commonjs2_vue_amd_vue_default.a.extend(this.panel);
4576
+ this.picker = new Panel({
4577
+ propsData: {
4578
+ pickerType: this.type,
4579
+ referenceElm: this.reference, // 关键:传递 referenceElm
4580
+ popperClass: this.popperClass,
4581
+ appendToBody: true,
4582
+ placement: 'bottom-start' // 关键
4583
+ }
4584
+ }).$mount();
4585
+ // 只对非季度类型 appendChild
4586
+ if (this.type !== 'quarter') {
4587
+ this.$el.appendChild(this.picker.$el);
4588
+ }
4546
4589
  this.picker.defaultValue = this.defaultValue;
4547
4590
  this.picker.defaultTime = this.defaultTime;
4548
4591
  this.picker.popperClass = this.popperClass;
@@ -4554,7 +4597,6 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4554
4597
  this.picker.arrowControl = this.arrowControl || this.timeArrowControl || false;
4555
4598
  this.picker.listenScroll = this.listenScroll;
4556
4599
  this.picker.step = this.step;
4557
- this.picker.pickerType = this.type;
4558
4600
  this.$watch('format', function (format) {
4559
4601
  _this3.picker.format = format;
4560
4602
  });
@@ -4590,7 +4632,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4590
4632
  this.unwatchPickerOptions = this.$watch('pickerOptions', function () {
4591
4633
  return updateOptions();
4592
4634
  }, { deep: true });
4593
- this.$el.appendChild(this.picker.$el);
4635
+ // this.$el.appendChild(this.picker.$el)
4594
4636
  this.picker.resetView && this.picker.resetView();
4595
4637
 
4596
4638
  this.picker.$on('dodestroy', this.doDestroy);
@@ -4602,6 +4644,9 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4602
4644
  _this3.pickerVisible = _this3.picker.visible = visible;
4603
4645
  _this3.emitInput(date);
4604
4646
  _this3.picker.resetView && _this3.picker.resetView();
4647
+ if (!visible) {
4648
+ _this3.unmountPicker();
4649
+ }
4605
4650
  });
4606
4651
 
4607
4652
  this.picker.$on('select-range', function (start, end, pos) {
@@ -4623,6 +4668,7 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4623
4668
  this.unwatchPickerOptions();
4624
4669
  }
4625
4670
  if (this.picker.$el.parentNode) this.picker.$el.parentNode.removeChild(this.picker.$el);
4671
+ this.picker = null;
4626
4672
  }
4627
4673
  },
4628
4674
  emitChange: function emitChange(val) {
@@ -4649,6 +4695,26 @@ var pickervue_type_script_lang_js_validator = function validator(val) {
4649
4695
  } else {
4650
4696
  return true;
4651
4697
  }
4698
+ },
4699
+ selectQuarter: function selectQuarter(quarter) {
4700
+ var selectedDate = new Date(this.currentYear, quarter.startMonth, 1);
4701
+ this.$emit('pick', selectedDate, false);
4702
+ },
4703
+ prevYear: function prevYear() {
4704
+ this.currentYear--;
4705
+ this.$emit('pick', new Date(this.currentYear, 0, 1));
4706
+ },
4707
+ nextYear: function nextYear() {
4708
+ this.currentYear++;
4709
+ this.$emit('pick', new Date(this.currentYear, 0, 1));
4710
+ },
4711
+ isSelected: function isSelected(quarter) {
4712
+ if (!this.value || !(this.value instanceof Date) || isNaN(this.value)) {
4713
+ return false;
4714
+ }
4715
+ var selectedYear = this.value.getFullYear();
4716
+ var selectedMonth = this.value.getMonth();
4717
+ return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
4652
4718
  }
4653
4719
  }
4654
4720
  });
@@ -4725,100 +4791,130 @@ var datevue_type_template_id_1a0bc492_render = function () {
4725
4791
  class: this.prefixCls + "-picker-panel-header",
4726
4792
  },
4727
4793
  [
4728
- _c("i", {
4729
- staticClass: "mdsicon mdsicon-line-caret-left-double",
4730
- class: [
4731
- _vm.prefixCls + "-picker-panel-header-base-icon",
4732
- _vm.prefixCls + "-prev-year",
4733
- _vm.prefixCls + "-other-icon",
4734
- _vm.prefixCls + "-picker-panel-header-base-left",
4735
- ],
4736
- attrs: { "aria-label": _vm.t("mds.datepicker.prevYear") },
4737
- on: { click: _vm.prevYear },
4738
- }),
4739
- _c("i", {
4740
- directives: [
4741
- {
4742
- name: "show",
4743
- rawName: "v-show",
4744
- value: _vm.currentView === "date",
4745
- expression: "currentView === 'date'",
4746
- },
4747
- ],
4748
- staticClass: "mdsicon mdsicon-line-caret-left",
4749
- class: [
4750
- _vm.prefixCls + "-picker-panel-header-base-icon",
4751
- _vm.prefixCls + "-prev-month",
4752
- _vm.prefixCls + "-other-icon",
4753
- _vm.prefixCls + "-picker-panel-header-base-left",
4754
- ],
4755
- attrs: { "aria-label": _vm.t("mds.datepicker.prevMonth") },
4756
- on: { click: _vm.prevMonth },
4757
- }),
4758
- _c(
4759
- "span",
4760
- {
4761
- class: _vm.prefixCls + "-picker-panel-header-label",
4762
- attrs: { role: "button" },
4763
- on: { click: _vm.showYearPicker },
4764
- },
4765
- [_vm._v(_vm._s(_vm.yearLabel))]
4766
- ),
4767
- _c(
4768
- "span",
4769
- {
4770
- directives: [
4771
- {
4772
- name: "show",
4773
- rawName: "v-show",
4774
- value: _vm.currentView === "date",
4775
- expression: "currentView === 'date'",
4776
- },
4777
- ],
4778
- class: [
4779
- _vm.prefixCls + "-picker-panel-header-label",
4780
- { active: _vm.currentView === "month" },
4794
+ _vm.pickerType === "quarter"
4795
+ ? [
4796
+ _c(
4797
+ "span",
4798
+ { staticClass: "mds-date-picker-quarter-header" },
4799
+ [
4800
+ _vm._v(
4801
+ "\n " +
4802
+ _vm._s(_vm.year) +
4803
+ " " +
4804
+ _vm._s(_vm.t("mds.datepicker.year")) +
4805
+ "\n "
4806
+ ),
4807
+ ]
4808
+ ),
4809
+ ]
4810
+ : [
4811
+ _c("i", {
4812
+ staticClass: "mdsicon mdsicon-line-caret-left-double",
4813
+ class: [
4814
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4815
+ _vm.prefixCls + "-prev-year",
4816
+ _vm.prefixCls + "-other-icon",
4817
+ _vm.prefixCls + "-picker-panel-header-base-left",
4818
+ ],
4819
+ attrs: {
4820
+ "aria-label": _vm.t("mds.datepicker.prevYear"),
4821
+ },
4822
+ on: { click: _vm.prevYear },
4823
+ }),
4824
+ _c("i", {
4825
+ directives: [
4826
+ {
4827
+ name: "show",
4828
+ rawName: "v-show",
4829
+ value: _vm.currentView === "date",
4830
+ expression: "currentView === 'date'",
4831
+ },
4832
+ ],
4833
+ staticClass: "mdsicon mdsicon-line-caret-left",
4834
+ class: [
4835
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4836
+ _vm.prefixCls + "-prev-month",
4837
+ _vm.prefixCls + "-other-icon",
4838
+ _vm.prefixCls + "-picker-panel-header-base-left",
4839
+ ],
4840
+ attrs: {
4841
+ "aria-label": _vm.t("mds.datepicker.prevMonth"),
4842
+ },
4843
+ on: { click: _vm.prevMonth },
4844
+ }),
4845
+ _c(
4846
+ "span",
4847
+ {
4848
+ class: _vm.prefixCls + "-picker-panel-header-label",
4849
+ attrs: { role: "button" },
4850
+ on: { click: _vm.showYearPicker },
4851
+ },
4852
+ [_vm._v(_vm._s(_vm.yearLabel))]
4853
+ ),
4854
+ _c(
4855
+ "span",
4856
+ {
4857
+ directives: [
4858
+ {
4859
+ name: "show",
4860
+ rawName: "v-show",
4861
+ value: _vm.currentView === "date",
4862
+ expression: "currentView === 'date'",
4863
+ },
4864
+ ],
4865
+ class: [
4866
+ _vm.prefixCls + "-picker-panel-header-label",
4867
+ { active: _vm.currentView === "month" },
4868
+ ],
4869
+ attrs: { role: "button" },
4870
+ on: { click: _vm.showMonthPicker },
4871
+ },
4872
+ [
4873
+ _vm._v(
4874
+ _vm._s(
4875
+ _vm.t("mds.datepicker.month" + (_vm.month + 1))
4876
+ )
4877
+ ),
4878
+ ]
4879
+ ),
4880
+ _c("i", {
4881
+ staticClass:
4882
+ "mdsicon mdsicon-line-caret-right-double",
4883
+ class: [
4884
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4885
+ _vm.prefixCls + "-next-year",
4886
+ _vm.prefixCls + "-other-icon",
4887
+ _vm.prefixCls + "-picker-panel-header-base-right",
4888
+ ],
4889
+ attrs: {
4890
+ "aria-label": _vm.t("mds.datepicker.nextYear"),
4891
+ },
4892
+ on: { click: _vm.nextYear },
4893
+ }),
4894
+ _c("i", {
4895
+ directives: [
4896
+ {
4897
+ name: "show",
4898
+ rawName: "v-show",
4899
+ value: _vm.currentView === "date",
4900
+ expression: "currentView === 'date'",
4901
+ },
4902
+ ],
4903
+ staticClass: "mdsicon mdsicon-line-caret-right",
4904
+ class: [
4905
+ _vm.prefixCls + "-picker-panel-header-base-icon",
4906
+ _vm.prefixCls + "-next-month",
4907
+ _vm.prefixCls + "-other-icon",
4908
+ _vm.prefixCls + "-picker-panel-header-base-right",
4909
+ ],
4910
+ attrs: {
4911
+ "aria-label": _vm.t("mds.datepicker.nextMonth"),
4912
+ },
4913
+ on: { click: _vm.nextMonth },
4914
+ }),
4781
4915
  ],
4782
- attrs: { role: "button" },
4783
- on: { click: _vm.showMonthPicker },
4784
- },
4785
- [
4786
- _vm._v(
4787
- _vm._s(_vm.t("mds.datepicker.month" + (_vm.month + 1)))
4788
- ),
4789
- ]
4790
- ),
4791
- _c("i", {
4792
- staticClass: "mdsicon mdsicon-line-caret-right-double",
4793
- class: [
4794
- _vm.prefixCls + "-picker-panel-header-base-icon",
4795
- _vm.prefixCls + "-next-year",
4796
- _vm.prefixCls + "-other-icon",
4797
- _vm.prefixCls + "-picker-panel-header-base-right",
4798
- ],
4799
- attrs: { "aria-label": _vm.t("mds.datepicker.nextYear") },
4800
- on: { click: _vm.nextYear },
4801
- }),
4802
- _c("i", {
4803
- directives: [
4804
- {
4805
- name: "show",
4806
- rawName: "v-show",
4807
- value: _vm.currentView === "date",
4808
- expression: "currentView === 'date'",
4809
- },
4810
- ],
4811
- staticClass: "mdsicon mdsicon-line-caret-right",
4812
- class: [
4813
- _vm.prefixCls + "-picker-panel-header-base-icon",
4814
- _vm.prefixCls + "-next-month",
4815
- _vm.prefixCls + "-other-icon",
4816
- _vm.prefixCls + "-picker-panel-header-base-right",
4817
- ],
4818
- attrs: { "aria-label": _vm.t("mds.datepicker.nextMonth") },
4819
- on: { click: _vm.nextMonth },
4820
- }),
4821
- ]
4916
+ ],
4917
+ 2
4822
4918
  ),
4823
4919
  _vm.timePickerVisible
4824
4920
  ? _c(
@@ -4843,98 +4939,105 @@ var datevue_type_template_id_1a0bc492_render = function () {
4843
4939
  "div",
4844
4940
  { class: this.prefixCls + "-picker-panel-content" },
4845
4941
  [
4846
- _c("date-table", {
4847
- directives: [
4848
- {
4849
- name: "show",
4850
- rawName: "v-show",
4851
- value:
4852
- _vm.currentView === "date" &&
4853
- _vm.timePickerVisible === false,
4854
- expression:
4855
- "currentView === 'date' && timePickerVisible === false",
4856
- },
4857
- ],
4858
- attrs: {
4859
- "selection-mode": _vm.selectionMode,
4860
- "first-day-of-week": _vm.firstDayOfWeek,
4861
- value: _vm.value,
4862
- "default-value": _vm.defaultValue
4863
- ? new Date(_vm.defaultValue)
4864
- : null,
4865
- date: _vm.date,
4866
- "cell-class-name": _vm.cellClassName,
4867
- "disabled-date": _vm.disabledDate,
4868
- },
4869
- on: { pick: _vm.handleDatePick },
4870
- }),
4871
- _c("year-table", {
4872
- directives: [
4873
- {
4874
- name: "show",
4875
- rawName: "v-show",
4876
- value:
4877
- _vm.currentView === "year" &&
4878
- _vm.timePickerVisible === false,
4879
- expression:
4880
- "currentView === 'year' && timePickerVisible === false",
4881
- },
4882
- ],
4883
- attrs: {
4884
- value: _vm.value,
4885
- "default-value": _vm.defaultValue
4886
- ? new Date(_vm.defaultValue)
4887
- : null,
4888
- date: _vm.date,
4889
- "disabled-date": _vm.disabledDate,
4890
- },
4891
- on: { pick: _vm.handleYearPick },
4892
- }),
4893
- _c("month-table", {
4894
- directives: [
4895
- {
4896
- name: "show",
4897
- rawName: "v-show",
4898
- value:
4899
- _vm.currentView === "month" &&
4900
- _vm.timePickerVisible === false,
4901
- expression:
4902
- "currentView === 'month' && timePickerVisible === false",
4903
- },
4904
- ],
4905
- attrs: {
4906
- value: _vm.value,
4907
- "default-value": _vm.defaultValue
4908
- ? new Date(_vm.defaultValue)
4909
- : null,
4910
- date: _vm.date,
4911
- "disabled-date": _vm.disabledDate,
4912
- },
4913
- on: { pick: _vm.handleMonthPick },
4914
- }),
4915
- _c("time-picker", {
4916
- directives: [
4917
- {
4918
- name: "show",
4919
- rawName: "v-show",
4920
- value: _vm.timePickerVisible && _vm.showTime,
4921
- expression: "timePickerVisible && showTime",
4922
- },
4923
- ],
4924
- ref: "timepicker",
4925
- attrs: {
4926
- "time-arrow-control": _vm.arrowControl,
4927
- visible: true,
4928
- "listen-scroll": _vm.listenScroll,
4929
- step: _vm.step,
4930
- },
4931
- on: {
4932
- pick: _vm.handleTimePick,
4933
- mounted: _vm.proxyTimePickerDataProperties,
4934
- },
4935
- }),
4942
+ _vm.pickerType === "quarter"
4943
+ ? _c("quarter-panel", {
4944
+ attrs: { value: _vm.value, date: _vm.date },
4945
+ on: { pick: _vm.handleQuarterPick },
4946
+ })
4947
+ : [
4948
+ _c("date-table", {
4949
+ directives: [
4950
+ {
4951
+ name: "show",
4952
+ rawName: "v-show",
4953
+ value:
4954
+ _vm.currentView === "date" &&
4955
+ _vm.timePickerVisible === false,
4956
+ expression:
4957
+ "currentView === 'date' && timePickerVisible === false",
4958
+ },
4959
+ ],
4960
+ attrs: {
4961
+ "selection-mode": _vm.selectionMode,
4962
+ "first-day-of-week": _vm.firstDayOfWeek,
4963
+ value: _vm.value,
4964
+ "default-value": _vm.defaultValue
4965
+ ? new Date(_vm.defaultValue)
4966
+ : null,
4967
+ date: _vm.date,
4968
+ "cell-class-name": _vm.cellClassName,
4969
+ "disabled-date": _vm.disabledDate,
4970
+ },
4971
+ on: { pick: _vm.handleDatePick },
4972
+ }),
4973
+ _c("year-table", {
4974
+ directives: [
4975
+ {
4976
+ name: "show",
4977
+ rawName: "v-show",
4978
+ value:
4979
+ _vm.currentView === "year" &&
4980
+ _vm.timePickerVisible === false,
4981
+ expression:
4982
+ "currentView === 'year' && timePickerVisible === false",
4983
+ },
4984
+ ],
4985
+ attrs: {
4986
+ value: _vm.value,
4987
+ "default-value": _vm.defaultValue
4988
+ ? new Date(_vm.defaultValue)
4989
+ : null,
4990
+ date: _vm.date,
4991
+ "disabled-date": _vm.disabledDate,
4992
+ },
4993
+ on: { pick: _vm.handleYearPick },
4994
+ }),
4995
+ _c("month-table", {
4996
+ directives: [
4997
+ {
4998
+ name: "show",
4999
+ rawName: "v-show",
5000
+ value:
5001
+ _vm.currentView === "month" &&
5002
+ _vm.timePickerVisible === false,
5003
+ expression:
5004
+ "currentView === 'month' && timePickerVisible === false",
5005
+ },
5006
+ ],
5007
+ attrs: {
5008
+ value: _vm.value,
5009
+ "default-value": _vm.defaultValue
5010
+ ? new Date(_vm.defaultValue)
5011
+ : null,
5012
+ date: _vm.date,
5013
+ "disabled-date": _vm.disabledDate,
5014
+ },
5015
+ on: { pick: _vm.handleMonthPick },
5016
+ }),
5017
+ _c("time-picker", {
5018
+ directives: [
5019
+ {
5020
+ name: "show",
5021
+ rawName: "v-show",
5022
+ value: _vm.timePickerVisible && _vm.showTime,
5023
+ expression: "timePickerVisible && showTime",
5024
+ },
5025
+ ],
5026
+ ref: "timepicker",
5027
+ attrs: {
5028
+ "time-arrow-control": _vm.arrowControl,
5029
+ visible: true,
5030
+ "listen-scroll": _vm.listenScroll,
5031
+ step: _vm.step,
5032
+ },
5033
+ on: {
5034
+ pick: _vm.handleTimePick,
5035
+ mounted: _vm.proxyTimePickerDataProperties,
5036
+ },
5037
+ }),
5038
+ ],
4936
5039
  ],
4937
- 1
5040
+ 2
4938
5041
  ),
4939
5042
  ]),
4940
5043
  ]),
@@ -4945,8 +5048,12 @@ var datevue_type_template_id_1a0bc492_render = function () {
4945
5048
  {
4946
5049
  name: "show",
4947
5050
  rawName: "v-show",
4948
- value: _vm.footerVisible && _vm.currentView === "date",
4949
- expression: "footerVisible && currentView === 'date'",
5051
+ value:
5052
+ _vm.footerVisible &&
5053
+ _vm.currentView === "date" &&
5054
+ _vm.pickerType !== "quarter",
5055
+ expression:
5056
+ "footerVisible && currentView === 'date' && pickerType !== 'quarter'",
4950
5057
  },
4951
5058
  ],
4952
5059
  class: this.prefixCls + "-picker-panel-footer",
@@ -5036,7 +5143,7 @@ datevue_type_template_id_1a0bc492_render._withStripped = true
5036
5143
  // CONCATENATED MODULE: ./components/datepicker/picker/date.vue?vue&type=template&id=1a0bc492&
5037
5144
 
5038
5145
  // EXTERNAL MODULE: external "./button"
5039
- var external_button_ = __webpack_require__(14);
5146
+ var external_button_ = __webpack_require__(13);
5040
5147
  var external_button_default = /*#__PURE__*/__webpack_require__.n(external_button_);
5041
5148
 
5042
5149
  // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/time.vue?vue&type=template&id=0c4cd956&
@@ -6296,7 +6403,7 @@ year_tablevue_type_template_id_aa64ca38_render._withStripped = true
6296
6403
  var dom_ = __webpack_require__(68);
6297
6404
 
6298
6405
  // EXTERNAL MODULE: external "./_util/util"
6299
- var util_ = __webpack_require__(21);
6406
+ var util_ = __webpack_require__(22);
6300
6407
 
6301
6408
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/base/year-table.vue?vue&type=script&lang=js&
6302
6409
  //
@@ -6508,7 +6615,7 @@ month_tablevue_type_template_id_c295c5ea_render._withStripped = true
6508
6615
  // CONCATENATED MODULE: ./components/datepicker/base/month-table.vue?vue&type=template&id=c295c5ea&
6509
6616
 
6510
6617
  // EXTERNAL MODULE: ./components/_util/dom.js
6511
- var dom = __webpack_require__(22);
6618
+ var dom = __webpack_require__(23);
6512
6619
 
6513
6620
  // EXTERNAL MODULE: ./components/_util/util.js
6514
6621
  var util = __webpack_require__(16);
@@ -7395,6 +7502,288 @@ var date_table_component = Object(componentNormalizer["a" /* default */])(
7395
7502
  if (false) { var date_table_api; }
7396
7503
  date_table_component.options.__file = "components/datepicker/base/date-table.vue"
7397
7504
  /* harmony default export */ var date_table = (date_table_component.exports);
7505
+ // CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&
7506
+ var quartervue_type_template_id_76a5899a_render = function () {
7507
+ var _vm = this
7508
+ var _h = _vm.$createElement
7509
+ var _c = _vm._self._c || _h
7510
+ return _c(
7511
+ "div",
7512
+ {
7513
+ directives: [
7514
+ {
7515
+ name: "show",
7516
+ rawName: "v-show",
7517
+ value: _vm.visible,
7518
+ expression: "visible",
7519
+ },
7520
+ ],
7521
+ ref: "popper",
7522
+ class: ["mds-quarter-panel", _vm.popperClass],
7523
+ style: _vm.popperStyle,
7524
+ },
7525
+ [
7526
+ _c("div", { staticClass: "mds-quarter-panel__header" }, [
7527
+ _c("i", {
7528
+ staticClass: "mdsicon mdsicon-line-caret-left-double",
7529
+ class: [
7530
+ _vm.prefixCls + "-picker-panel-header-base-icon",
7531
+ _vm.prefixCls + "-left-prev-year",
7532
+ _vm.prefixCls + "-other-icon",
7533
+ _vm.prefixCls + "-picker-panel-header-base-left",
7534
+ ],
7535
+ attrs: { "aria-label": _vm.t("mds.datepicker.prevYear") },
7536
+ on: { click: _vm.prevYear },
7537
+ }),
7538
+ _c("span", [_vm._v(_vm._s(_vm.currentYear))]),
7539
+ _c("i", {
7540
+ staticClass: "mdsicon mdsicon-line-caret-right-double",
7541
+ class: [
7542
+ _vm.prefixCls + "-picker-panel-header-base-icon",
7543
+ _vm.prefixCls + "-next-year",
7544
+ _vm.prefixCls + "-other-icon",
7545
+ _vm.prefixCls + "-picker-panel-header-base-right",
7546
+ ],
7547
+ attrs: { "aria-label": _vm.t("mds.datepicker.nextYear") },
7548
+ on: { click: _vm.nextYear },
7549
+ }),
7550
+ ]),
7551
+ _c(
7552
+ "div",
7553
+ { staticClass: "mds-quarter-panel__body" },
7554
+ _vm._l(_vm.quarters, function (quarter) {
7555
+ return _c(
7556
+ "div",
7557
+ {
7558
+ key: quarter.value,
7559
+ class: [
7560
+ "mds-quarter-panel__quarter",
7561
+ {
7562
+ "is-selected": _vm.isSelected(quarter),
7563
+ today: _vm.isTodayQuarter(quarter), // 只判断是否今天
7564
+ },
7565
+ ],
7566
+ on: {
7567
+ click: function ($event) {
7568
+ return _vm.selectQuarter(quarter)
7569
+ },
7570
+ },
7571
+ },
7572
+ [_vm._v("\n " + _vm._s(quarter.label) + "\n ")]
7573
+ )
7574
+ }),
7575
+ 0
7576
+ ),
7577
+ ]
7578
+ )
7579
+ }
7580
+ var quartervue_type_template_id_76a5899a_staticRenderFns = []
7581
+ quartervue_type_template_id_76a5899a_render._withStripped = true
7582
+
7583
+
7584
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=template&id=76a5899a&
7585
+
7586
+ // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
7587
+ //
7588
+ //
7589
+ //
7590
+ //
7591
+ //
7592
+ //
7593
+ //
7594
+ //
7595
+ //
7596
+ //
7597
+ //
7598
+ //
7599
+ //
7600
+ //
7601
+ //
7602
+ //
7603
+ //
7604
+ //
7605
+ //
7606
+ //
7607
+ //
7608
+ //
7609
+ //
7610
+ //
7611
+ //
7612
+ //
7613
+ //
7614
+ //
7615
+ //
7616
+ //
7617
+ //
7618
+ //
7619
+ //
7620
+ //
7621
+ //
7622
+ //
7623
+ //
7624
+ //
7625
+ //
7626
+ //
7627
+ //
7628
+ //
7629
+ //
7630
+ //
7631
+ //
7632
+ //
7633
+ //
7634
+ //
7635
+ //
7636
+ //
7637
+ //
7638
+
7639
+
7640
+
7641
+
7642
+ /* harmony default export */ var quartervue_type_script_lang_js_ = ({
7643
+ mixins: [locale_default.a, vue_popper["a" /* default */]],
7644
+ name: 'QuarterPanel',
7645
+ props: {
7646
+ prefixCls: {
7647
+ type: String,
7648
+ default: 'mds-date'
7649
+ },
7650
+ value: {
7651
+ type: [Date, String],
7652
+ default: null
7653
+ },
7654
+ date: {
7655
+ type: Date,
7656
+ default: function _default() {
7657
+ return new Date();
7658
+ }
7659
+ },
7660
+ pickerType: {
7661
+ type: String,
7662
+ default: 'quarter'
7663
+ },
7664
+ popperClass: {
7665
+ type: String,
7666
+ default: ''
7667
+ },
7668
+ referenceElm: {
7669
+ type: null,
7670
+ default: null
7671
+ },
7672
+ appendToBody: {
7673
+ type: Boolean,
7674
+ default: true
7675
+ },
7676
+ placement: {
7677
+ type: String,
7678
+ default: 'bottom-start'
7679
+ }
7680
+ },
7681
+ data: function data() {
7682
+ return {
7683
+ currentYear: new Date().getFullYear(),
7684
+ visible: true // 控制面板显示
7685
+ };
7686
+ },
7687
+
7688
+ computed: {
7689
+ quarters: function quarters() {
7690
+ return [{ label: 'Q1', value: 1, startMonth: 0, endMonth: 2 }, { label: 'Q2', value: 2, startMonth: 3, endMonth: 5 }, { label: 'Q3', value: 3, startMonth: 6, endMonth: 8 }, { label: 'Q4', value: 4, startMonth: 9, endMonth: 11 }];
7691
+ },
7692
+ hasSelected: function hasSelected() {
7693
+ return this.value && this.value instanceof Date && !isNaN(this.value);
7694
+ }
7695
+ },
7696
+ watch: {
7697
+ date: {
7698
+ immediate: true,
7699
+ handler: function handler(newDate) {
7700
+ if (newDate instanceof Date && !isNaN(newDate)) {
7701
+ this.currentYear = newDate.getFullYear();
7702
+ }
7703
+ }
7704
+ },
7705
+ value: {
7706
+ immediate: true,
7707
+ handler: function handler(newValue) {
7708
+ if (newValue instanceof Date && !isNaN(newValue)) {
7709
+ this.currentYear = newValue.getFullYear();
7710
+ }
7711
+ }
7712
+ }
7713
+ },
7714
+ mounted: function mounted() {
7715
+ var _this = this;
7716
+
7717
+ if (this.appendToBody && this.$el.parentNode !== document.body) {
7718
+ document.body.appendChild(this.$el);
7719
+ }
7720
+ // 关键:必须在 append 到 body 后再 updatePopper
7721
+ this.$nextTick(function () {
7722
+ if (_this.referenceElm) {
7723
+ _this.updatePopper();
7724
+ }
7725
+ });
7726
+ },
7727
+ beforeDestroy: function beforeDestroy() {
7728
+ if (this.appendToBody && this.$el && this.$el.parentNode === document.body) {
7729
+ document.body.removeChild(this.$el);
7730
+ }
7731
+ },
7732
+
7733
+ methods: {
7734
+ prevYear: function prevYear() {
7735
+ this.currentYear--;
7736
+ // this.$emit('pick', new Date(this.currentYear, 0, 1))
7737
+ },
7738
+ nextYear: function nextYear() {
7739
+ this.currentYear++;
7740
+ // this.$emit('pick', new Date(this.currentYear, 0, 1))
7741
+ },
7742
+ selectQuarter: function selectQuarter(quarter) {
7743
+ var selectedDate = new Date(this.currentYear, quarter.startMonth, 1);
7744
+ this.$emit('pick', selectedDate, false); // 关键:false自动收起
7745
+ },
7746
+ isSelected: function isSelected(quarter) {
7747
+ if (this.hasSelected) {
7748
+ var selectedYear = this.value.getFullYear();
7749
+ var selectedMonth = this.value.getMonth();
7750
+ return selectedYear === this.currentYear && selectedMonth >= quarter.startMonth && selectedMonth <= quarter.endMonth;
7751
+ }
7752
+ return false;
7753
+ },
7754
+ isTodayQuarter: function isTodayQuarter(quarter) {
7755
+ var today = new Date();
7756
+ var year = today.getFullYear();
7757
+ var month = today.getMonth();
7758
+ return year === this.currentYear && month >= quarter.startMonth && month <= quarter.endMonth;
7759
+ }
7760
+ }
7761
+ });
7762
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue?vue&type=script&lang=js&
7763
+ /* harmony default export */ var picker_quartervue_type_script_lang_js_ = (quartervue_type_script_lang_js_);
7764
+ // CONCATENATED MODULE: ./components/datepicker/picker/quarter.vue
7765
+
7766
+
7767
+
7768
+
7769
+
7770
+ /* normalize component */
7771
+
7772
+ var quarter_component = Object(componentNormalizer["a" /* default */])(
7773
+ picker_quartervue_type_script_lang_js_,
7774
+ quartervue_type_template_id_76a5899a_render,
7775
+ quartervue_type_template_id_76a5899a_staticRenderFns,
7776
+ false,
7777
+ null,
7778
+ null,
7779
+ null
7780
+
7781
+ )
7782
+
7783
+ /* hot reload */
7784
+ if (false) { var quarter_api; }
7785
+ quarter_component.options.__file = "components/datepicker/picker/quarter.vue"
7786
+ /* harmony default export */ var quarter = (quarter_component.exports);
7398
7787
  // CONCATENATED MODULE: ./node_modules/babel-loader/lib!./node_modules/vue-loader/lib??vue-loader-options!./components/datepicker/picker/date.vue?vue&type=script&lang=js&
7399
7788
 
7400
7789
  //
@@ -7548,6 +7937,22 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
7548
7937
  //
7549
7938
  //
7550
7939
  //
7940
+ //
7941
+ //
7942
+ //
7943
+ //
7944
+ //
7945
+ //
7946
+ //
7947
+ //
7948
+ //
7949
+ //
7950
+ //
7951
+ //
7952
+ //
7953
+ //
7954
+ //
7955
+
7551
7956
 
7552
7957
 
7553
7958
 
@@ -7565,6 +7970,10 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
7565
7970
  prefixCls: {
7566
7971
  type: String,
7567
7972
  default: 'mds-date'
7973
+ },
7974
+ pickerType: {
7975
+ type: String,
7976
+ default: 'date'
7568
7977
  }
7569
7978
  },
7570
7979
  watch: {
@@ -7876,11 +8285,18 @@ date_table_component.options.__file = "components/datepicker/base/date-table.vue
7876
8285
  },
7877
8286
  checkDateWithinRange: function checkDateWithinRange(date) {
7878
8287
  return this.selectableRange.length > 0 ? Object(dateUtil_["timeWithinRange"])(date, this.selectableRange, this.format || 'HH:mm:ss') : true;
8288
+ },
8289
+ handleQuarterPick: function handleQuarterPick(date) {
8290
+ this.date = date;
8291
+ this.emit(date, false);
8292
+ },
8293
+ showQuarterPicker: function showQuarterPicker() {
8294
+ this.currentView = 'quarter';
7879
8295
  }
7880
8296
  },
7881
8297
 
7882
8298
  components: {
7883
- TimePicker: picker_time, YearTable: year_table, MonthTable: month_table, DateTable: date_table, MdsButton: external_button_default.a
8299
+ TimePicker: picker_time, YearTable: year_table, MonthTable: month_table, DateTable: date_table, MdsButton: external_button_default.a, QuarterPanel: quarter
7884
8300
  },
7885
8301
 
7886
8302
  data: function data() {
@@ -10257,11 +10673,14 @@ month_range_component.options.__file = "components/datepicker/range/month-range.
10257
10673
 
10258
10674
 
10259
10675
 
10676
+
10260
10677
  var picker_getPanel = function getPanel(type) {
10261
10678
  if (type === 'daterange' || type === 'datetimerange' || type === 'datetimerangeflat') {
10262
10679
  return date_range;
10263
10680
  } else if (type === 'monthrange') {
10264
10681
  return month_range;
10682
+ } else if (type === 'quarter') {
10683
+ return quarter;
10265
10684
  }
10266
10685
  return picker_date;
10267
10686
  };
@@ -10276,7 +10695,10 @@ var picker_getPanel = function getPanel(type) {
10276
10695
  props: {
10277
10696
  type: {
10278
10697
  type: String,
10279
- default: 'date'
10698
+ default: 'date',
10699
+ validator: function validator(value) {
10700
+ return ['date', 'datetime', 'week', 'month', 'year', 'daterange', 'datetimerange', 'datetimerangeflat', 'monthrange', 'quarter', 'dates'].includes(value);
10701
+ }
10280
10702
  },
10281
10703
  timeArrowControl: Boolean
10282
10704
  },
@@ -10311,7 +10733,7 @@ datepicker_picker.install = function (Vue) {
10311
10733
  /***/ 9:
10312
10734
  /***/ (function(module, exports) {
10313
10735
 
10314
- module.exports = require("babel-runtime/helpers/typeof");
10736
+ module.exports = __WEBPACK_EXTERNAL_MODULE__9__;
10315
10737
 
10316
10738
  /***/ })
10317
10739