vxe-pc-ui 3.15.1 → 3.15.3

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 (148) hide show
  1. package/es/backtop/src/backtop.js +8 -7
  2. package/es/button/src/button.js +3 -2
  3. package/es/calendar/src/calendar.js +2 -1
  4. package/es/cascader/src/cascader.js +5 -7
  5. package/es/checkbox/src/group.js +16 -7
  6. package/es/context-menu/src/context-menu.js +2 -6
  7. package/es/date-panel/src/util.js +27 -4
  8. package/es/date-picker/src/date-picker.js +656 -57
  9. package/es/date-range-picker/src/date-range-picker.js +23 -8
  10. package/es/drawer/src/drawer.js +3 -0
  11. package/es/form/render/index.js +3 -2
  12. package/es/form/src/form.js +11 -12
  13. package/es/form/src/itemInfo.js +6 -5
  14. package/es/image/src/image.js +5 -6
  15. package/es/input/src/input.js +2 -1
  16. package/es/layout-body/src/layout-body.js +13 -6
  17. package/es/list/src/list.js +3 -6
  18. package/es/menu/src/menu.js +2 -1
  19. package/es/modal/src/modal.js +5 -1
  20. package/es/number-input/src/number-input.js +2 -3
  21. package/es/pager/src/pager.js +4 -3
  22. package/es/radio/src/group.js +11 -8
  23. package/es/select/src/select.js +34 -30
  24. package/es/splitter/src/splitter.js +12 -6
  25. package/es/table-select/src/table-select.js +27 -22
  26. package/es/tabs/src/tabs.js +4 -3
  27. package/es/textarea/src/textarea.js +2 -1
  28. package/es/tree/src/tree.js +6 -11
  29. package/es/tree-select/src/tree-select.js +5 -7
  30. package/es/ui/index.js +1 -1
  31. package/es/ui/src/log.js +7 -1
  32. package/es/upload/src/upload.js +11 -9
  33. package/lib/backtop/src/backtop.js +10 -6
  34. package/lib/backtop/src/backtop.min.js +1 -1
  35. package/lib/button/src/button.js +3 -1
  36. package/lib/button/src/button.min.js +1 -1
  37. package/lib/calendar/src/calendar.js +3 -1
  38. package/lib/calendar/src/calendar.min.js +1 -1
  39. package/lib/cascader/src/cascader.js +7 -6
  40. package/lib/cascader/src/cascader.min.js +1 -1
  41. package/lib/checkbox/src/group.js +18 -6
  42. package/lib/checkbox/src/group.min.js +1 -1
  43. package/lib/context-menu/src/context-menu.js +3 -4
  44. package/lib/context-menu/src/context-menu.min.js +1 -1
  45. package/lib/date-panel/src/util.js +37 -5
  46. package/lib/date-panel/src/util.min.js +1 -1
  47. package/lib/date-picker/src/date-picker.js +698 -55
  48. package/lib/date-picker/src/date-picker.min.js +1 -1
  49. package/lib/date-range-picker/src/date-range-picker.js +21 -7
  50. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  51. package/lib/drawer/src/drawer.js +3 -0
  52. package/lib/drawer/src/drawer.min.js +1 -1
  53. package/lib/form/render/index.js +3 -1
  54. package/lib/form/render/index.min.js +1 -1
  55. package/lib/form/src/form.js +12 -8
  56. package/lib/form/src/form.min.js +1 -1
  57. package/lib/form/src/itemInfo.js +6 -4
  58. package/lib/form/src/itemInfo.min.js +1 -1
  59. package/lib/image/src/image.js +7 -5
  60. package/lib/image/src/image.min.js +1 -1
  61. package/lib/index.umd.js +1051 -217
  62. package/lib/index.umd.min.js +1 -1
  63. package/lib/input/src/input.js +5 -3
  64. package/lib/input/src/input.min.js +1 -1
  65. package/lib/layout-body/src/layout-body.js +13 -4
  66. package/lib/layout-body/src/layout-body.min.js +1 -1
  67. package/lib/list/src/list.js +4 -5
  68. package/lib/list/src/list.min.js +1 -1
  69. package/lib/menu/src/menu.js +3 -1
  70. package/lib/menu/src/menu.min.js +1 -1
  71. package/lib/modal/src/modal.js +8 -2
  72. package/lib/modal/src/modal.min.js +1 -1
  73. package/lib/number-input/src/number-input.js +2 -3
  74. package/lib/pager/src/pager.js +5 -2
  75. package/lib/pager/src/pager.min.js +1 -1
  76. package/lib/radio/src/group.js +13 -6
  77. package/lib/radio/src/group.min.js +1 -1
  78. package/lib/select/src/select.js +36 -29
  79. package/lib/select/src/select.min.js +1 -1
  80. package/lib/splitter/src/splitter.js +15 -7
  81. package/lib/splitter/src/splitter.min.js +1 -1
  82. package/lib/table-select/src/table-select.js +27 -19
  83. package/lib/table-select/src/table-select.min.js +1 -1
  84. package/lib/tabs/src/tabs.js +6 -3
  85. package/lib/tabs/src/tabs.min.js +1 -1
  86. package/lib/textarea/src/textarea.js +3 -1
  87. package/lib/textarea/src/textarea.min.js +1 -1
  88. package/lib/tree/src/tree.js +9 -8
  89. package/lib/tree/src/tree.min.js +1 -1
  90. package/lib/tree-select/src/tree-select.js +10 -8
  91. package/lib/tree-select/src/tree-select.min.js +1 -1
  92. package/lib/ui/index.js +1 -1
  93. package/lib/ui/index.min.js +1 -1
  94. package/lib/ui/src/log.js +8 -1
  95. package/lib/ui/src/log.min.js +1 -1
  96. package/lib/upload/src/upload.js +22 -7
  97. package/lib/upload/src/upload.min.js +1 -1
  98. package/package.json +1 -1
  99. package/packages/backtop/src/backtop.ts +11 -3
  100. package/packages/button/src/button.ts +4 -2
  101. package/packages/calendar/src/calendar.ts +3 -1
  102. package/packages/cascader/src/cascader.ts +9 -4
  103. package/packages/checkbox/src/group.ts +22 -5
  104. package/packages/context-menu/src/context-menu.ts +5 -2
  105. package/packages/date-panel/src/util.ts +28 -3
  106. package/packages/date-picker/src/date-picker.ts +673 -60
  107. package/packages/date-range-picker/src/date-range-picker.ts +22 -8
  108. package/packages/drawer/src/drawer.ts +3 -0
  109. package/packages/form/render/index.ts +4 -2
  110. package/packages/form/src/form.ts +14 -7
  111. package/packages/form/src/itemInfo.ts +7 -5
  112. package/packages/image/src/image.ts +9 -3
  113. package/packages/input/src/input.ts +3 -1
  114. package/packages/layout-body/src/layout-body.ts +16 -2
  115. package/packages/list/src/list.ts +6 -3
  116. package/packages/menu/src/menu.ts +3 -1
  117. package/packages/modal/src/modal.ts +6 -1
  118. package/packages/number-input/src/number-input.ts +2 -6
  119. package/packages/pager/src/pager.ts +5 -3
  120. package/packages/radio/src/group.ts +16 -5
  121. package/packages/select/src/select.ts +41 -29
  122. package/packages/splitter/src/splitter.ts +13 -6
  123. package/packages/table-select/src/table-select.ts +31 -20
  124. package/packages/tabs/src/tabs.ts +5 -3
  125. package/packages/textarea/src/textarea.ts +3 -1
  126. package/packages/tree/src/tree.ts +9 -4
  127. package/packages/tree-select/src/tree-select.ts +9 -4
  128. package/packages/ui/src/log.ts +7 -0
  129. package/packages/upload/src/upload.ts +16 -6
  130. package/types/components/date-picker.d.ts +27 -1
  131. package/types/components/date-range-picker.d.ts +4 -0
  132. package/types/components/drawer.d.ts +2 -0
  133. package/types/components/modal.d.ts +2 -0
  134. package/types/components/splitter.d.ts +1 -0
  135. package/types/components/table.d.ts +33 -4
  136. package/types/components/upload.d.ts +28 -1
  137. /package/es/icon/{iconfont.1781675403709.ttf → iconfont.1781852732213.ttf} +0 -0
  138. /package/es/icon/{iconfont.1781675403709.woff → iconfont.1781852732213.woff} +0 -0
  139. /package/es/icon/{iconfont.1781675403709.woff2 → iconfont.1781852732213.woff2} +0 -0
  140. /package/es/{iconfont.1781675403709.ttf → iconfont.1781852732213.ttf} +0 -0
  141. /package/es/{iconfont.1781675403709.woff → iconfont.1781852732213.woff} +0 -0
  142. /package/es/{iconfont.1781675403709.woff2 → iconfont.1781852732213.woff2} +0 -0
  143. /package/lib/icon/style/{iconfont.1781675403709.ttf → iconfont.1781852732213.ttf} +0 -0
  144. /package/lib/icon/style/{iconfont.1781675403709.woff → iconfont.1781852732213.woff} +0 -0
  145. /package/lib/icon/style/{iconfont.1781675403709.woff2 → iconfont.1781852732213.woff2} +0 -0
  146. /package/lib/{iconfont.1781675403709.ttf → iconfont.1781852732213.ttf} +0 -0
  147. /package/lib/{iconfont.1781675403709.woff → iconfont.1781852732213.woff} +0 -0
  148. /package/lib/{iconfont.1781675403709.woff2 → iconfont.1781852732213.woff2} +0 -0
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
 
3
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
3
4
  Object.defineProperty(exports, "__esModule", {
4
5
  value: true
5
6
  });
@@ -16,10 +17,44 @@ var _datePanel = _interopRequireDefault(require("../../date-panel/src/date-panel
16
17
  var _button = _interopRequireDefault(require("../../button/src/button"));
17
18
  var _buttonGroup = _interopRequireDefault(require("../../button/src/button-group"));
18
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
- function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
20
20
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
21
21
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
22
22
  function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
23
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
24
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
25
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
26
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
27
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
28
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
29
+ var _createComponentLog = (0, _log.createComponentLog)('date-picker'),
30
+ warnLog = _createComponentLog.warnLog,
31
+ errLog = _createComponentLog.errLog;
32
+ var maskedTypes = ['year', 'month', 'date', 'datetime', 'time'];
33
+ var inputMaskedKeys = ['y', 'M', 'd', 'H', 'm', 'n', 's'];
34
+ var parseInputKayMaps = {};
35
+ inputMaskedKeys.forEach(function (key) {
36
+ parseInputKayMaps[key] = true;
37
+ });
38
+ function createReactData() {
39
+ return {
40
+ initialized: false,
41
+ panelIndex: 0,
42
+ visiblePanel: false,
43
+ isAniVisible: false,
44
+ panelStyle: {},
45
+ panelPlacement: '',
46
+ isActivated: false,
47
+ inputValue: '',
48
+ labelFlag: 0
49
+ };
50
+ }
51
+ function createInternalData() {
52
+ return {
53
+ // hpTimeout: undefined,
54
+ inputLabel: '',
55
+ laseFocusMasked: 0
56
+ };
57
+ }
23
58
  var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
24
59
  name: 'VxeDatePicker',
25
60
  mixins: [_ui.globalMixins.sizeMixin],
@@ -140,6 +175,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
140
175
  return (0, _ui.getConfig)().datePicker.autoClose;
141
176
  }
142
177
  },
178
+ maskedConfig: Object,
143
179
  prefixIcon: String,
144
180
  suffixIcon: String,
145
181
  placement: String,
@@ -179,25 +215,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
179
215
  },
180
216
  data: function data() {
181
217
  var xID = _xeUtils.default.uniqueId();
182
- var reactData = {
183
- initialized: false,
184
- panelIndex: 0,
185
- visiblePanel: false,
186
- isAniVisible: false,
187
- panelStyle: {},
188
- panelPlacement: '',
189
- isActivated: false,
190
- inputValue: '',
191
- inputLabel: ''
192
- };
193
- var internalData = {
194
- hpTimeout: undefined
195
- };
196
- return {
218
+ var reactData = createReactData();
219
+ return Object.assign(Object.assign({}, {}), {
197
220
  xID: xID,
198
- reactData: reactData,
199
- internalData: internalData
200
- };
221
+ reactData: reactData
222
+ });
201
223
  },
202
224
  computed: Object.assign(Object.assign({}, {}), {
203
225
  computeBtnTransfer: function computeBtnTransfer() {
@@ -266,6 +288,57 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
266
288
  var props = $xeDatePicker;
267
289
  return props.clearable;
268
290
  },
291
+ computeIsDatePanelType: function computeIsDatePanelType() {
292
+ var $xeDatePicker = this;
293
+ var props = $xeDatePicker;
294
+ var isDateTimeType = $xeDatePicker.computeIsDateTimeType;
295
+ return isDateTimeType || ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
296
+ },
297
+ computeDateListValue: function computeDateListValue() {
298
+ var $xeDatePicker = this;
299
+ var props = $xeDatePicker;
300
+ var modelValue = props.value,
301
+ type = props.type,
302
+ multiple = props.multiple;
303
+ var isDatePanelType = $xeDatePicker.computeIsDatePanelType;
304
+ var dateValueFormat = $xeDatePicker.computeDateValueFormat;
305
+ if (multiple && modelValue && isDatePanelType) {
306
+ return _xeUtils.default.toValueString(modelValue).split(',').map(function (item) {
307
+ var date = (0, _util.parseDateValue)(item, type, {
308
+ valueFormat: dateValueFormat
309
+ });
310
+ if (_xeUtils.default.isValidDate(date)) {
311
+ return date;
312
+ }
313
+ return date;
314
+ });
315
+ }
316
+ return [];
317
+ },
318
+ computeLimitMaxCount: function computeLimitMaxCount() {
319
+ var $xeDatePicker = this;
320
+ var props = $xeDatePicker;
321
+ return props.multiple ? _xeUtils.default.toNumber(props.limitCount) : 0;
322
+ },
323
+ computeDateMultipleValue: function computeDateMultipleValue() {
324
+ var $xeDatePicker = this;
325
+ var dateListValue = $xeDatePicker.computeDateListValue;
326
+ var dateValueFormat = $xeDatePicker.computeDateValueFormat;
327
+ return dateListValue.map(function (date) {
328
+ return _xeUtils.default.toDateString(date, dateValueFormat);
329
+ });
330
+ },
331
+ computeOverCount: function computeOverCount() {
332
+ var $xeDatePicker = this;
333
+ var props = $xeDatePicker;
334
+ var multiple = props.multiple;
335
+ var limitMaxCount = $xeDatePicker.computeLimitMaxCount;
336
+ var dateMultipleValue = $xeDatePicker.computeDateMultipleValue;
337
+ if (multiple && limitMaxCount) {
338
+ return dateMultipleValue.length >= limitMaxCount;
339
+ }
340
+ return false;
341
+ },
269
342
  computeInputReadonly: function computeInputReadonly() {
270
343
  var $xeDatePicker = this;
271
344
  var props = $xeDatePicker;
@@ -335,6 +408,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
335
408
  valueFormat = props.valueFormat;
336
409
  return (0, _util.handleValueFormat)(type, valueFormat);
337
410
  },
411
+ computeDateMaskedFormat: function computeDateMaskedFormat() {
412
+ var $xeDatePicker = this;
413
+ var dateLabelFormat = $xeDatePicker.computeDateLabelFormat;
414
+ return dateLabelFormat;
415
+ },
338
416
  computeFirstDayOfWeek: function computeFirstDayOfWeek() {
339
417
  var $xeDatePicker = this;
340
418
  var props = $xeDatePicker;
@@ -360,6 +438,17 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
360
438
  });
361
439
  return dateObj.label;
362
440
  }).join(', ');
441
+ },
442
+ computeMaskedOpts: function computeMaskedOpts() {
443
+ var $xeDatePicker = this;
444
+ var props = $xeDatePicker;
445
+ return Object.assign({}, (0, _ui.getConfig)().datePicker.maskedConfig, props.maskedConfig);
446
+ },
447
+ computeMaskChar: function computeMaskChar() {
448
+ var $xeDatePicker = this;
449
+ var maskedOpts = $xeDatePicker.computeMaskedOpts;
450
+ var maskPlaceholder = maskedOpts.maskPlaceholder;
451
+ return (maskPlaceholder ? ('' + maskPlaceholder)[0] : '') || '*';
363
452
  }
364
453
  }),
365
454
  methods: {
@@ -396,6 +485,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
396
485
  }
397
486
  reactData.inputValue = val;
398
487
  },
488
+ handleInputLabel: function handleInputLabel(text, isUpdate) {
489
+ var $xeDatePicker = this;
490
+ var reactData = $xeDatePicker.reactData;
491
+ var internalData = $xeDatePicker.internalData;
492
+ internalData.inputLabel = text;
493
+ if (isUpdate) {
494
+ reactData.labelFlag++;
495
+ }
496
+ },
399
497
  triggerEvent: function triggerEvent(evnt) {
400
498
  var $xeDatePicker = this;
401
499
  var reactData = $xeDatePicker.reactData;
@@ -459,10 +557,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
459
557
  },
460
558
  inputEvent: function inputEvent(evnt) {
461
559
  var $xeDatePicker = this;
462
- var reactData = $xeDatePicker.reactData;
463
560
  var inputElem = evnt.target;
464
561
  var value = inputElem.value;
465
- reactData.inputLabel = value;
562
+ $xeDatePicker.handleInputLabel(value, true);
466
563
  $xeDatePicker.dispatchEvent('input', {
467
564
  value: value
468
565
  }, evnt);
@@ -474,17 +571,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
474
571
  $xeDatePicker.triggerEvent(evnt);
475
572
  }
476
573
  },
477
- focusEvent: function focusEvent(evnt) {
478
- var $xeDatePicker = this;
479
- var reactData = $xeDatePicker.reactData;
480
- var popupOpts = $xeDatePicker.computePopupOpts;
481
- var trigger = popupOpts.trigger;
482
- reactData.isActivated = true;
483
- if (!trigger || trigger === 'default') {
484
- $xeDatePicker.datePickerOpenEvent(evnt);
485
- }
486
- $xeDatePicker.triggerEvent(evnt);
487
- },
488
574
  clickPrefixEvent: function clickPrefixEvent(evnt) {
489
575
  var $xeDatePicker = this;
490
576
  var reactData = $xeDatePicker.reactData;
@@ -508,6 +594,134 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
508
594
  }, 350);
509
595
  });
510
596
  },
597
+ dateChange: function dateChange(date, isReload) {
598
+ var $xeDatePicker = this;
599
+ var props = $xeDatePicker;
600
+ var modelValue = props.value,
601
+ multiple = props.multiple;
602
+ var isDateTimeType = $xeDatePicker.computeIsDateTimeType;
603
+ var dateValueFormat = $xeDatePicker.computeDateValueFormat;
604
+ var firstDayOfWeek = $xeDatePicker.computeFirstDayOfWeek;
605
+ if (props.type === 'week') {
606
+ var sWeek = _xeUtils.default.toNumber(props.selectDay);
607
+ date = _xeUtils.default.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
608
+ }
609
+ var inpVal = _xeUtils.default.toDateString(date, dateValueFormat, {
610
+ firstDay: firstDayOfWeek
611
+ });
612
+ if (multiple) {
613
+ var overCount = $xeDatePicker.computeOverCount;
614
+ // 如果为多选
615
+ if (isDateTimeType) {
616
+ // 如果是datetime特殊类型
617
+ var dateListValue = isReload ? [] : _toConsumableArray($xeDatePicker.computeDateListValue);
618
+ var datetimeRest = [];
619
+ var eqIndex = _xeUtils.default.findIndexOf(dateListValue, function (val) {
620
+ return _xeUtils.default.isDateSame(date, val, 'yyyyMMdd');
621
+ });
622
+ if (eqIndex === -1) {
623
+ if (overCount) {
624
+ // 如果超出最大多选数量
625
+ return;
626
+ }
627
+ dateListValue.push(date);
628
+ } else {
629
+ dateListValue.splice(eqIndex, 1);
630
+ }
631
+ dateListValue.forEach(function (item) {
632
+ if (item) {
633
+ datetimeRest.push(item);
634
+ }
635
+ });
636
+ $xeDatePicker.handleChange(datetimeRest.map(function (date) {
637
+ return _xeUtils.default.toDateString(date, dateValueFormat);
638
+ }).join(','), {
639
+ type: 'update'
640
+ });
641
+ } else {
642
+ var dateMultipleValue = isReload ? [] : $xeDatePicker.computeDateMultipleValue;
643
+ // 如果是日期类型
644
+ if (dateMultipleValue.some(function (val) {
645
+ return _xeUtils.default.isEqual(val, inpVal);
646
+ })) {
647
+ $xeDatePicker.handleChange(dateMultipleValue.filter(function (val) {
648
+ return !_xeUtils.default.isEqual(val, inpVal);
649
+ }).join(','), {
650
+ type: 'update'
651
+ });
652
+ } else {
653
+ if (overCount) {
654
+ // 如果超出最大多选数量
655
+ return;
656
+ }
657
+ $xeDatePicker.handleChange(dateMultipleValue.concat([inpVal]).join(','), {
658
+ type: 'update'
659
+ });
660
+ }
661
+ }
662
+ } else {
663
+ // 如果为单选
664
+ if (!_xeUtils.default.isEqual(modelValue, inpVal)) {
665
+ $xeDatePicker.handleChange(inpVal, {
666
+ type: 'update'
667
+ });
668
+ }
669
+ }
670
+ },
671
+ dateRevert: function dateRevert() {
672
+ var $xeDatePicker = this;
673
+ var panelLabel = $xeDatePicker.computePanelLabel;
674
+ $xeDatePicker.handleInputLabel(panelLabel, true);
675
+ },
676
+ afterCheckValue: function afterCheckValue(inpVal) {
677
+ var $xeDatePicker = this;
678
+ var props = $xeDatePicker;
679
+ var reactData = $xeDatePicker.reactData;
680
+ var internalData = $xeDatePicker.internalData;
681
+ var type = props.type;
682
+ var inputLabel = internalData.inputLabel;
683
+ var dateLabelFormat = $xeDatePicker.computeDateLabelFormat;
684
+ if (!inpVal) {
685
+ $xeDatePicker.handleChange('', {
686
+ type: 'check'
687
+ });
688
+ return;
689
+ }
690
+ var inpDateVal = (0, _util.parseDateValue)(inpVal, type, {
691
+ valueFormat: dateLabelFormat
692
+ });
693
+ if (!_xeUtils.default.isValidDate(inpDateVal)) {
694
+ $xeDatePicker.dateRevert();
695
+ return;
696
+ }
697
+ if (type === 'time') {
698
+ inpDateVal = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat);
699
+ if (inputLabel !== inpDateVal) {
700
+ $xeDatePicker.handleChange(inpDateVal, {
701
+ type: 'check'
702
+ });
703
+ }
704
+ $xeDatePicker.handleInputLabel(inpDateVal, true);
705
+ return;
706
+ }
707
+ var isChange = false;
708
+ var firstDayOfWeek = $xeDatePicker.computeFirstDayOfWeek;
709
+ if (type === 'datetime') {
710
+ var dateValue = reactData.inputValue;
711
+ if (inpVal !== _xeUtils.default.toDateString(dateValue, dateLabelFormat) || inpVal !== _xeUtils.default.toDateString(inpDateVal, dateLabelFormat)) {
712
+ isChange = true;
713
+ }
714
+ } else {
715
+ isChange = true;
716
+ }
717
+ var label = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat, {
718
+ firstDay: firstDayOfWeek
719
+ });
720
+ $xeDatePicker.handleInputLabel(label, true);
721
+ if (isChange) {
722
+ $xeDatePicker.dateChange(inpDateVal);
723
+ }
724
+ },
511
725
  clearValueEvent: function clearValueEvent(evnt, value) {
512
726
  var $xeDatePicker = this;
513
727
  var isDatePickerType = $xeDatePicker.computeIsDatePickerType;
@@ -530,9 +744,322 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
530
744
  }, evnt);
531
745
  }
532
746
  },
747
+ handleArrowInputDate: function handleArrowInputDate(evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow) {
748
+ var $xeDatePicker = this;
749
+ var props = $xeDatePicker;
750
+ var internalData = $xeDatePicker.internalData;
751
+ var type = props.type,
752
+ multiple = props.multiple;
753
+ if (multiple) {
754
+ return;
755
+ }
756
+ var targetElem = $xeDatePicker.$refs.refInputTarget;
757
+ if (!targetElem) {
758
+ return;
759
+ }
760
+ var inpValue = targetElem.value;
761
+ if (!inpValue) {
762
+ return;
763
+ }
764
+ var dateMaskedFormat = $xeDatePicker.computeDateMaskedFormat;
765
+ var dateLabelFormat = $xeDatePicker.computeDateLabelFormat;
766
+ var firstDayOfWeek = $xeDatePicker.computeFirstDayOfWeek;
767
+ var maskChar = $xeDatePicker.computeMaskChar;
768
+ var selectionStart = targetElem.selectionStart || 0;
769
+ var selectKey = dateMaskedFormat[selectionStart];
770
+ if (!parseInputKayMaps[selectKey]) {
771
+ selectKey = dateMaskedFormat[selectionStart - 1];
772
+ }
773
+ var skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
774
+ if (!skRest) {
775
+ return;
776
+ }
777
+ if (isUpArrow || isDwArrow) {
778
+ var chunkFormat = skRest[0] || '';
779
+ var chunkStartIndex = skRest.index || 0;
780
+ var chunkEndIndex = chunkStartIndex + chunkFormat.length;
781
+ var chunkValue = inpValue.slice(chunkStartIndex, chunkEndIndex);
782
+ if (parseInputKayMaps[selectKey]) {
783
+ var chunkNum = ((0, _util.isAllSameChar)(chunkValue, maskChar) ? (0, _util.getChunkDefaultNum)(selectKey) : _xeUtils.default.toNumber(chunkValue)) + (isUpArrow ? 1 : -1);
784
+ var restValue = inpValue.slice(0, chunkStartIndex) + _xeUtils.default.padStart(chunkNum, chunkFormat.length, '0') + inpValue.slice(chunkEndIndex);
785
+ evnt.preventDefault();
786
+ if (restValue.indexOf(maskChar) === -1) {
787
+ // 解析日期
788
+ var inpDateVal = (0, _util.parseDateValue)(restValue, type, {
789
+ valueFormat: dateLabelFormat
790
+ });
791
+ if (_xeUtils.default.isValidDate(inpDateVal)) {
792
+ var label = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat, {
793
+ firstDay: firstDayOfWeek
794
+ });
795
+ targetElem.value = label;
796
+ $xeDatePicker.handleInputLabel(label, false);
797
+ }
798
+ } else {
799
+ targetElem.value = restValue;
800
+ $xeDatePicker.handleInputLabel(restValue, false);
801
+ }
802
+ }
803
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
804
+ } else if (isLtArrow || isRtArrow) {
805
+ var currKeyIndex = inputMaskedKeys.indexOf(selectKey);
806
+ if (currKeyIndex > -1) {
807
+ var allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp("(".concat(inputMaskedKeys.join('|'), ")+"), 'g')) || [], function (fullKey) {
808
+ return fullKey[0];
809
+ });
810
+ var currIndex = _xeUtils.default.findIndexOf(allMaskedKeys, function (key) {
811
+ return selectKey === key[0];
812
+ });
813
+ var targetFormatKey = isLtArrow ? allMaskedKeys[currIndex - 1] || allMaskedKeys[0] : allMaskedKeys[currIndex + 1] || allMaskedKeys[allMaskedKeys.length - 1];
814
+ var targetKey = targetFormatKey ? targetFormatKey[0] : '';
815
+ var sktRest = dateMaskedFormat.match(new RegExp(targetKey + '+'));
816
+ if (sktRest) {
817
+ evnt.preventDefault();
818
+ var mtStartIndex = sktRest.index || 0;
819
+ var mtEndIndex = mtStartIndex + sktRest[0].length;
820
+ targetElem.setSelectionRange(mtStartIndex, mtEndIndex);
821
+ }
822
+ }
823
+ }
824
+ internalData.isTriggerMasked = true;
825
+ },
826
+ handleMaskedInputDate: function handleMaskedInputDate(evnt) {
827
+ var $xeDatePicker = this;
828
+ var props = $xeDatePicker;
829
+ var internalData = $xeDatePicker.internalData;
830
+ var multiple = props.multiple;
831
+ if (multiple) {
832
+ return;
833
+ }
834
+ var targetElem = $xeDatePicker.$refs.refInputTarget;
835
+ if (!targetElem) {
836
+ return;
837
+ }
838
+ var isControlKey = (0, _dom.hasControlKey)(evnt);
839
+ if (isControlKey) {
840
+ return;
841
+ }
842
+ evnt.preventDefault();
843
+ var eKey = evnt.key;
844
+ var isDeleleKey = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.DELETE);
845
+ var isBackspaceKey = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.BACKSPACE);
846
+ var isNumKey = eKey >= '0' && eKey <= '9';
847
+ var numKey = isNumKey ? evnt.key : '';
848
+ if (!(isDeleleKey || isBackspaceKey || isNumKey)) {
849
+ return;
850
+ }
851
+ var isTriggerMasked = internalData.isTriggerMasked;
852
+ var dateMaskedFormat = $xeDatePicker.computeDateMaskedFormat;
853
+ var maskChar = $xeDatePicker.computeMaskChar;
854
+ var inpValue = targetElem.value || dateMaskedFormat;
855
+ var selectionStart = targetElem.selectionStart || 0;
856
+ var selectionEnd = targetElem.selectionEnd || 0;
857
+ var selectKey = dateMaskedFormat[selectionStart];
858
+ if (!parseInputKayMaps[selectKey]) {
859
+ selectKey = dateMaskedFormat[selectionStart - 1];
860
+ }
861
+ var skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
862
+ if (!skRest) {
863
+ return;
864
+ }
865
+ var allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp("(".concat(inputMaskedKeys.join('|'), ")+"), 'g')) || [], function (fullKey) {
866
+ return fullKey[0];
867
+ });
868
+ var chunkFormat = skRest[0] || '';
869
+ var chunkStartIndex = skRest.index || 0;
870
+ var chunkEndIndex = chunkStartIndex + chunkFormat.length;
871
+ var currKeyIndex = allMaskedKeys.indexOf(selectKey);
872
+ // 全选 | 如果无效字符
873
+ var isAllSelected = !selectionStart && selectionEnd === inpValue.length;
874
+ var isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
875
+ if (isAllSelected || isNotMasked) {
876
+ inpValue = dateMaskedFormat;
877
+ }
878
+ var chunkValue = isDeleleKey ? '' : inpValue.slice(chunkStartIndex, chunkEndIndex);
879
+ var chunkNums = chunkValue.match(/\d/g) || [];
880
+ var chunkNumList = isTriggerMasked && !isBackspaceKey ? [] : chunkNums.slice(0);
881
+ if (isNumKey) {
882
+ chunkNumList.push(numKey);
883
+ } else if (isBackspaceKey) {
884
+ chunkNumList.pop();
885
+ }
886
+ chunkValue = chunkNumList.join('').padEnd(chunkFormat.length, maskChar);
887
+ var restValue = inpValue.slice(0, chunkStartIndex) + chunkValue + inpValue.slice(chunkEndIndex);
888
+ restValue = restValue.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), maskChar);
889
+ targetElem.value = restValue;
890
+ $xeDatePicker.handleInputLabel(restValue, false);
891
+ // 如果是全选/删除
892
+ if (isAllSelected) {
893
+ if (isBackspaceKey || isDeleleKey) {
894
+ var firstMaskedKeys = allMaskedKeys[0];
895
+ var firstSkRest = dateMaskedFormat.match(new RegExp("".concat(firstMaskedKeys, "+")));
896
+ if (firstSkRest) {
897
+ var firstChunkFormat = firstSkRest[0];
898
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
899
+ internalData.isTriggerMasked = true;
900
+ return;
901
+ }
902
+ }
903
+ } else {
904
+ if (isBackspaceKey && !chunkNums.length) {
905
+ // 回退到上一个数字块
906
+ for (var i = currKeyIndex - 1; i >= 0; i--) {
907
+ var prveChunkKey = allMaskedKeys[i];
908
+ var prveSkRest = dateMaskedFormat.match(new RegExp("".concat(prveChunkKey, "+")));
909
+ if (prveSkRest) {
910
+ var prveChunkFormat = prveSkRest[0];
911
+ var prveChunkStartIndex = prveSkRest.index || 0;
912
+ var prveChunkEndIndex = prveChunkStartIndex + prveChunkFormat.length;
913
+ var prveChunkValue = restValue.slice(prveChunkStartIndex, prveChunkEndIndex);
914
+ var prveChunkNums = prveChunkValue.match(/\d/g) || [];
915
+ if (prveChunkNums.length) {
916
+ prveChunkNums.pop();
917
+ prveChunkValue = prveChunkNums.join('').padEnd(prveChunkFormat.length, maskChar);
918
+ restValue = restValue.slice(0, prveChunkStartIndex) + prveChunkValue + restValue.slice(prveChunkEndIndex);
919
+ targetElem.value = restValue;
920
+ $xeDatePicker.handleInputLabel(restValue, false);
921
+ targetElem.setSelectionRange(prveChunkStartIndex, prveChunkEndIndex);
922
+ return;
923
+ }
924
+ }
925
+ }
926
+ var _firstMaskedKeys = allMaskedKeys[0];
927
+ var _firstSkRest = dateMaskedFormat.match(new RegExp("".concat(_firstMaskedKeys, "+")));
928
+ if (_firstSkRest) {
929
+ var _firstChunkFormat = _firstSkRest[0];
930
+ restValue = dateMaskedFormat.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), maskChar);
931
+ targetElem.value = restValue;
932
+ $xeDatePicker.handleInputLabel(restValue, false);
933
+ targetElem.setSelectionRange(0, _firstChunkFormat.length);
934
+ internalData.isTriggerMasked = true;
935
+ return;
936
+ }
937
+ return;
938
+ }
939
+ }
940
+ var maskStartIndex = skRest.index || 0;
941
+ var maskEndIndex = maskStartIndex + skRest[0].length;
942
+ // 如果输入完成,跳转下一个
943
+ if (chunkNumList.length >= chunkValue.length) {
944
+ var nextKeys = allMaskedKeys.slice(currKeyIndex + 1);
945
+ if (currKeyIndex > -1) {
946
+ var nextRest = nextKeys.length ? dateMaskedFormat.match(new RegExp("(".concat(nextKeys.join('|'), ")+"))) : null;
947
+ // 如果当前数字块已输入,则跳转下一个数字块
948
+ if (nextRest) {
949
+ maskStartIndex = nextRest.index || 0;
950
+ maskEndIndex = maskStartIndex + nextRest[0].length;
951
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
952
+ } else {
953
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
954
+ }
955
+ }
956
+ internalData.isTriggerMasked = true;
957
+ return;
958
+ }
959
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
960
+ internalData.isTriggerMasked = false;
961
+ },
962
+ handleMaskedSelectedDate: function handleMaskedSelectedDate(evnt, isFocus) {
963
+ var $xeDatePicker = this;
964
+ var props = $xeDatePicker;
965
+ var internalData = $xeDatePicker.internalData;
966
+ var type = props.type,
967
+ multiple = props.multiple,
968
+ modelValue = props.value;
969
+ if (multiple) {
970
+ return;
971
+ }
972
+ if (!maskedTypes.includes(type)) {
973
+ return;
974
+ }
975
+ var targetElem = $xeDatePicker.$refs.refInputTarget;
976
+ if (!targetElem) {
977
+ return;
978
+ }
979
+ var laseFocusMasked = internalData.laseFocusMasked;
980
+ if (laseFocusMasked && Date.now() - laseFocusMasked < 100) {
981
+ return;
982
+ }
983
+ var dateMaskedFormat = $xeDatePicker.computeDateMaskedFormat;
984
+ var maskChar = $xeDatePicker.computeMaskChar;
985
+ var selectionStart = targetElem.selectionStart || 0;
986
+ var selectionEnd = targetElem.selectionEnd || 0;
987
+ var inpValue = targetElem.value;
988
+ var allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp("(".concat(inputMaskedKeys.join('|'), ")+"), 'g')) || [], function (fullKey) {
989
+ return fullKey[0];
990
+ });
991
+ // 如果为空
992
+ if (!inpValue) {
993
+ var restValue = dateMaskedFormat.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), maskChar);
994
+ // 还原值
995
+ if (isFocus && modelValue) {
996
+ var chunkNums = ('' + _xeUtils.default.toNumber(modelValue)).match(/\d/g) || [];
997
+ var useNumIndex = 0;
998
+ restValue = dateMaskedFormat.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), function (txt) {
999
+ return chunkNums[useNumIndex++] || txt;
1000
+ });
1001
+ }
1002
+ var firstMaskedKeys = allMaskedKeys[0];
1003
+ var firstSkRest = dateMaskedFormat.match(new RegExp("".concat(firstMaskedKeys, "+")));
1004
+ if (firstSkRest) {
1005
+ evnt.preventDefault();
1006
+ var firstChunkFormat = firstSkRest[0];
1007
+ targetElem.value = restValue;
1008
+ $xeDatePicker.handleInputLabel(restValue, false);
1009
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
1010
+ internalData.laseFocusMasked = Date.now();
1011
+ return;
1012
+ }
1013
+ }
1014
+ // 全选 | 如果无效字符
1015
+ var isAllSelected = !selectionStart && selectionEnd === inpValue.length;
1016
+ var isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
1017
+ if (isAllSelected || isNotMasked) {
1018
+ var _restValue = '';
1019
+ // 还原值
1020
+ if (isNotMasked && inpValue) {
1021
+ var _chunkNums = inpValue.match(/\d/g) || [];
1022
+ var _useNumIndex = 0;
1023
+ _restValue = dateMaskedFormat.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), function () {
1024
+ return _chunkNums[_useNumIndex++] || maskChar;
1025
+ });
1026
+ } else {
1027
+ dateMaskedFormat.replace(new RegExp("(".concat(inputMaskedKeys.join('|'), ")"), 'g'), maskChar);
1028
+ }
1029
+ var _firstMaskedKeys2 = allMaskedKeys[0];
1030
+ var _firstSkRest2 = dateMaskedFormat.match(new RegExp("".concat(_firstMaskedKeys2, "+")));
1031
+ if (_firstSkRest2) {
1032
+ evnt.preventDefault();
1033
+ var _firstChunkFormat2 = _firstSkRest2[0];
1034
+ targetElem.value = _restValue;
1035
+ $xeDatePicker.handleInputLabel(_restValue, false);
1036
+ targetElem.setSelectionRange(0, _firstChunkFormat2.length);
1037
+ internalData.laseFocusMasked = Date.now();
1038
+ return;
1039
+ }
1040
+ }
1041
+ // 是否选择数字块
1042
+ var selectKey = dateMaskedFormat[selectionStart];
1043
+ if (!parseInputKayMaps[selectKey]) {
1044
+ selectKey = dateMaskedFormat[selectionStart - 1];
1045
+ }
1046
+ if (selectKey) {
1047
+ evnt.preventDefault();
1048
+ var skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
1049
+ if (skRest) {
1050
+ var chunkFormat = skRest[0] || '';
1051
+ var chunkStartIndex = skRest.index || 0;
1052
+ var chunkEndIndex = chunkStartIndex + chunkFormat.length;
1053
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
1054
+ internalData.isTriggerMasked = true;
1055
+ internalData.laseFocusMasked = Date.now();
1056
+ }
1057
+ }
1058
+ },
533
1059
  blurEvent: function blurEvent(evnt) {
534
1060
  var $xeDatePicker = this;
535
1061
  var reactData = $xeDatePicker.reactData;
1062
+ var internalData = $xeDatePicker.internalData;
536
1063
  var $xeForm = $xeDatePicker.$xeForm;
537
1064
  var formItemInfo = $xeDatePicker.formItemInfo;
538
1065
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
@@ -543,10 +1070,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
543
1070
  $xeDatePicker.handleChange(value, evnt);
544
1071
  }
545
1072
  if (!reactData.visiblePanel) {
1073
+ var inputLabel = internalData.inputLabel;
546
1074
  reactData.isActivated = false;
547
1075
  // 未打开面板时才校验
548
1076
  if ($datePanel) {
549
- $datePanel.checkValue(reactData.inputLabel);
1077
+ $datePanel.checkValue(inputLabel);
1078
+ } else {
1079
+ $xeDatePicker.afterCheckValue(inputLabel);
550
1080
  }
551
1081
  }
552
1082
  $xeDatePicker.dispatchEvent('blur', {
@@ -557,8 +1087,90 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
557
1087
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
558
1088
  }
559
1089
  },
1090
+ focusEvent: function focusEvent(evnt) {
1091
+ var $xeDatePicker = this;
1092
+ var props = $xeDatePicker;
1093
+ var reactData = $xeDatePicker.reactData;
1094
+ var multiple = props.multiple,
1095
+ editable = props.editable,
1096
+ maskedConfig = props.maskedConfig;
1097
+ var maskedOpts = $xeDatePicker.computeMaskedOpts;
1098
+ var popupOpts = $xeDatePicker.computePopupOpts;
1099
+ var trigger = popupOpts.trigger;
1100
+ reactData.isActivated = true;
1101
+ if (!trigger || trigger === 'default') {
1102
+ $xeDatePicker.datePickerOpenEvent(evnt);
1103
+ setTimeout(function () {
1104
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1105
+ $xeDatePicker.handleMaskedSelectedDate(evnt, true);
1106
+ }
1107
+ }, 15);
1108
+ } else if (trigger === 'icon') {
1109
+ $xeDatePicker.hidePanel();
1110
+ setTimeout(function () {
1111
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1112
+ $xeDatePicker.handleMaskedSelectedDate(evnt, true);
1113
+ }
1114
+ }, 15);
1115
+ } else {
1116
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1117
+ $xeDatePicker.handleMaskedSelectedDate(evnt, true);
1118
+ }
1119
+ }
1120
+ $xeDatePicker.triggerEvent(evnt);
1121
+ },
1122
+ clickEvent: function clickEvent(evnt) {
1123
+ var $xeDatePicker = this;
1124
+ var props = $xeDatePicker;
1125
+ var editable = props.editable,
1126
+ maskedConfig = props.maskedConfig;
1127
+ var maskedOpts = $xeDatePicker.computeMaskedOpts;
1128
+ if (editable && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1129
+ $xeDatePicker.handleMaskedSelectedDate(evnt);
1130
+ }
1131
+ $xeDatePicker.triggerEvent(evnt);
1132
+ },
560
1133
  keydownEvent: function keydownEvent(evnt) {
561
1134
  var $xeDatePicker = this;
1135
+ var props = $xeDatePicker;
1136
+ var reactData = $xeDatePicker.reactData;
1137
+ var internalData = $xeDatePicker.internalData;
1138
+ var type = props.type,
1139
+ editable = props.editable,
1140
+ maskedConfig = props.maskedConfig;
1141
+ var visiblePanel = reactData.visiblePanel;
1142
+ var maskedOpts = $xeDatePicker.computeMaskedOpts;
1143
+ var isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
1144
+ var isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
1145
+ var isLtArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_LEFT);
1146
+ var isRtArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_RIGHT);
1147
+ var isEnter = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ENTER);
1148
+ if (editable) {
1149
+ if (isEnter) {
1150
+ var $datePanel = $xeDatePicker.$refs.refDatePanel;
1151
+ var inputLabel = internalData.inputLabel;
1152
+ var targetElem = $xeDatePicker.$refs.refInputTarget;
1153
+ if (visiblePanel) {
1154
+ $xeDatePicker.hidePanel();
1155
+ }
1156
+ if ($datePanel) {
1157
+ $datePanel.checkValue(inputLabel);
1158
+ } else {
1159
+ $xeDatePicker.afterCheckValue(inputLabel);
1160
+ }
1161
+ if (targetElem) {
1162
+ targetElem.blur();
1163
+ }
1164
+ } else if (maskedTypes.includes(type)) {
1165
+ if ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled) {
1166
+ if (maskedOpts.isArrow && (isUpArrow || isDwArrow || isLtArrow || isRtArrow)) {
1167
+ $xeDatePicker.handleArrowInputDate(evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow);
1168
+ } else if (maskedOpts.isMasked) {
1169
+ $xeDatePicker.handleMaskedInputDate(evnt);
1170
+ }
1171
+ }
1172
+ }
1173
+ }
562
1174
  $xeDatePicker.triggerEvent(evnt);
563
1175
  },
564
1176
  keyupEvent: function keyupEvent(evnt) {
@@ -594,13 +1206,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
594
1206
  },
595
1207
  panelRevertEvent: function panelRevertEvent(params) {
596
1208
  var $xeDatePicker = this;
597
- var reactData = $xeDatePicker.reactData;
598
- reactData.inputLabel = params.label;
1209
+ $xeDatePicker.handleInputLabel(params.label, true);
599
1210
  },
600
1211
  // 全局事件
601
1212
  handleGlobalMousedownEvent: function handleGlobalMousedownEvent(evnt) {
602
1213
  var $xeDatePicker = this;
603
1214
  var reactData = $xeDatePicker.reactData;
1215
+ var internalData = $xeDatePicker.internalData;
604
1216
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
605
1217
  var visiblePanel = reactData.visiblePanel,
606
1218
  isActivated = reactData.isActivated;
@@ -608,12 +1220,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
608
1220
  var panelWrapperElem = $xeDatePicker.$refs.refPanelWrapper;
609
1221
  var isDisabled = $xeDatePicker.computeIsDisabled;
610
1222
  if (!isDisabled && isActivated) {
611
- reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
612
- if (!reactData.isActivated) {
1223
+ var currActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
1224
+ if (currActivated !== isActivated) {
1225
+ reactData.isActivated = currActivated;
1226
+ }
1227
+ if (!currActivated) {
613
1228
  if (visiblePanel) {
614
1229
  $xeDatePicker.hidePanel();
1230
+ var inputLabel = internalData.inputLabel;
615
1231
  if ($datePanel) {
616
- $datePanel.checkValue(reactData.inputLabel);
1232
+ $datePanel.checkValue(inputLabel);
1233
+ } else {
1234
+ $xeDatePicker.afterCheckValue(inputLabel);
617
1235
  }
618
1236
  }
619
1237
  }
@@ -656,6 +1274,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
656
1274
  handleGlobalBlurEvent: function handleGlobalBlurEvent() {
657
1275
  var $xeDatePicker = this;
658
1276
  var reactData = $xeDatePicker.reactData;
1277
+ var internalData = $xeDatePicker.internalData;
659
1278
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
660
1279
  var isActivated = reactData.isActivated,
661
1280
  visiblePanel = reactData.visiblePanel;
@@ -667,7 +1286,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
667
1286
  }
668
1287
  if (visiblePanel || isActivated) {
669
1288
  if ($datePanel) {
670
- $datePanel.checkValue(reactData.inputLabel);
1289
+ $datePanel.checkValue(internalData.inputLabel);
671
1290
  }
672
1291
  var targetElem = $xeDatePicker.$refs.refInputTarget;
673
1292
  if (targetElem) {
@@ -704,6 +1323,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
704
1323
  var panelIndex = reactData.panelIndex;
705
1324
  var targetElem = $xeDatePicker.$refs.refInputTarget;
706
1325
  var panelElem = $xeDatePicker.$refs.refInputPanel;
1326
+ if (!panelElem) {
1327
+ return $xeDatePicker.$nextTick();
1328
+ }
707
1329
  var btnTransfer = $xeDatePicker.computeBtnTransfer;
708
1330
  var popupOpts = $xeDatePicker.computePopupOpts;
709
1331
  var handleStyle = function handleStyle() {
@@ -732,10 +1354,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
732
1354
  if (!isDisabled && !visiblePanel) {
733
1355
  if (!reactData.initialized) {
734
1356
  reactData.initialized = true;
735
- if (btnTransfer) {
736
- if (panelElem) {
737
- document.body.appendChild(panelElem);
738
- }
1357
+ if (btnTransfer && panelElem) {
1358
+ document.body.appendChild(panelElem);
739
1359
  }
740
1360
  }
741
1361
  if (internalData.hpTimeout) {
@@ -763,16 +1383,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
763
1383
  },
764
1384
  clickIconEvent: function clickIconEvent(evnt) {
765
1385
  var $xeDatePicker = this;
1386
+ var reactData = $xeDatePicker.reactData;
1387
+ var visiblePanel = reactData.visiblePanel;
766
1388
  var popupOpts = $xeDatePicker.computePopupOpts;
767
1389
  var trigger = popupOpts.trigger;
768
1390
  if (!trigger || trigger === 'default' || trigger === 'icon') {
769
- $xeDatePicker.datePickerOpenEvent(evnt);
1391
+ if (visiblePanel) {
1392
+ $xeDatePicker.hidePanel();
1393
+ } else {
1394
+ $xeDatePicker.datePickerOpenEvent(evnt);
1395
+ }
770
1396
  }
771
1397
  },
772
- clickEvent: function clickEvent(evnt) {
773
- var $xeDatePicker = this;
774
- $xeDatePicker.triggerEvent(evnt);
775
- },
776
1398
  handleShortcutEvent: function handleShortcutEvent(_ref) {
777
1399
  var option = _ref.option,
778
1400
  $event = _ref.$event;
@@ -817,7 +1439,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
817
1439
  break;
818
1440
  }
819
1441
  default:
820
- (0, _log.errLog)('vxe.error.notCommands', ["[date-picker] ".concat(code)]);
1442
+ errLog('vxe.error.notCommands', [code]);
821
1443
  break;
822
1444
  }
823
1445
  }
@@ -898,6 +1520,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
898
1520
  var props = $xeDatePicker;
899
1521
  var slots = $xeDatePicker.$scopedSlots;
900
1522
  var reactData = $xeDatePicker.reactData;
1523
+ var popupOpts = $xeDatePicker.computePopupOpts;
1524
+ if (popupOpts.enabled === false) {
1525
+ return (0, _ui.renderEmptyElement)($xeDatePicker);
1526
+ }
901
1527
  var type = props.type,
902
1528
  multiple = props.multiple,
903
1529
  showClearButton = props.showClearButton,
@@ -915,7 +1541,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
915
1541
  var isDateTimeType = $xeDatePicker.computeIsDateTimeType;
916
1542
  var shortcutList = $xeDatePicker.computeShortcutList;
917
1543
  var timeOpts = $xeDatePicker.computeTimeOpts;
918
- var popupOpts = $xeDatePicker.computePopupOpts;
919
1544
  var position = shortcutOpts.position;
920
1545
  var headerSlot = slots.header;
921
1546
  var footerSlot = slots.footer;
@@ -1071,14 +1696,16 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1071
1696
  var $xeDatePicker = this;
1072
1697
  var props = $xeDatePicker;
1073
1698
  var reactData = $xeDatePicker.reactData;
1699
+ var internalData = $xeDatePicker.internalData;
1074
1700
  var className = props.className,
1075
1701
  type = props.type,
1076
1702
  name = props.name,
1077
1703
  autoComplete = props.autoComplete;
1078
1704
  var inputValue = reactData.inputValue,
1079
- inputLabel = reactData.inputLabel,
1080
1705
  visiblePanel = reactData.visiblePanel,
1081
- isActivated = reactData.isActivated;
1706
+ isActivated = reactData.isActivated,
1707
+ labelFlag = reactData.labelFlag;
1708
+ var inputLabel = internalData.inputLabel;
1082
1709
  var vSize = $xeDatePicker.computeSize;
1083
1710
  var isDisabled = $xeDatePicker.computeIsDisabled;
1084
1711
  var formReadonly = $xeDatePicker.computeFormReadonly;
@@ -1106,7 +1733,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1106
1733
  ref: 'refInputTarget',
1107
1734
  class: 'vxe-date-picker--inner',
1108
1735
  domProps: {
1109
- value: inputLabel
1736
+ value: labelFlag ? inputLabel : ''
1110
1737
  },
1111
1738
  attrs: {
1112
1739
  name: name,
@@ -1133,8 +1760,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1133
1760
  watch: {
1134
1761
  computePanelLabel: function computePanelLabel(val) {
1135
1762
  var $xeDatePicker = this;
1136
- var reactData = $xeDatePicker.reactData;
1137
- reactData.inputLabel = val;
1763
+ $xeDatePicker.handleInputLabel(val, true);
1138
1764
  },
1139
1765
  value: function value() {
1140
1766
  var $xeDatePicker = this;
@@ -1143,6 +1769,19 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1143
1769
  },
1144
1770
  created: function created() {
1145
1771
  var $xeDatePicker = this;
1772
+ var props = $xeDatePicker;
1773
+ $xeDatePicker.internalData = createInternalData();
1774
+ var type = props.type,
1775
+ multiple = props.multiple,
1776
+ maskedConfig = props.maskedConfig;
1777
+ if ((0, _utils.isEnableConf)(maskedConfig)) {
1778
+ if (multiple) {
1779
+ errLog('vxe.error.notSupportProp', ['multiple', 'control-config.enabled=true', 'control-config.enabled=false']);
1780
+ }
1781
+ if (!maskedTypes.includes(type)) {
1782
+ warnLog('vxe.error.notSupportProp', ['control-config.enabled=true', "type=".concat(type), "type=".concat(maskedTypes.join('|'))]);
1783
+ }
1784
+ }
1146
1785
  $xeDatePicker.updateModelValue();
1147
1786
  _ui.globalEvents.on($xeDatePicker, 'mousewheel', $xeDatePicker.handleGlobalMousewheelEvent);
1148
1787
  _ui.globalEvents.on($xeDatePicker, 'mousedown', $xeDatePicker.handleGlobalMousedownEvent);
@@ -1152,6 +1791,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1152
1791
  },
1153
1792
  beforeDestroy: function beforeDestroy() {
1154
1793
  var $xeDatePicker = this;
1794
+ var reactData = $xeDatePicker.reactData;
1795
+ var internalData = $xeDatePicker.internalData;
1155
1796
  var panelElem = $xeDatePicker.$refs.refInputPanel;
1156
1797
  if (panelElem && panelElem.parentNode) {
1157
1798
  panelElem.parentNode.removeChild(panelElem);
@@ -1160,6 +1801,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1160
1801
  _ui.globalEvents.off($xeDatePicker, 'mousedown');
1161
1802
  _ui.globalEvents.off($xeDatePicker, 'blur');
1162
1803
  _ui.globalEvents.off($xeDatePicker, 'resize');
1804
+ _xeUtils.default.assign(reactData, createReactData());
1805
+ _xeUtils.default.assign(internalData, createInternalData());
1163
1806
  },
1164
1807
  render: function render(h) {
1165
1808
  return this.renderVN(h);