vxe-pc-ui 3.15.2 → 3.15.4

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 (144) 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 +75 -35
  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 -16
  8. package/es/date-picker/src/date-picker.js +616 -88
  9. package/es/date-range-picker/src/date-range-picker.js +7 -4
  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/pager/src/pager.js +4 -3
  21. package/es/radio/src/group.js +11 -8
  22. package/es/select/src/select.js +34 -30
  23. package/es/splitter/src/splitter.js +6 -5
  24. package/es/table-select/src/table-select.js +27 -22
  25. package/es/tabs/src/tabs.js +4 -3
  26. package/es/textarea/src/textarea.js +2 -1
  27. package/es/tree/src/tree.js +6 -11
  28. package/es/tree-select/src/tree-select.js +27 -33
  29. package/es/ui/index.js +4 -1
  30. package/es/ui/src/log.js +14 -4
  31. package/es/upload/src/upload.js +11 -9
  32. package/lib/backtop/src/backtop.js +10 -6
  33. package/lib/backtop/src/backtop.min.js +1 -1
  34. package/lib/button/src/button.js +3 -1
  35. package/lib/button/src/button.min.js +1 -1
  36. package/lib/calendar/src/calendar.js +3 -1
  37. package/lib/calendar/src/calendar.min.js +1 -1
  38. package/lib/cascader/src/cascader.js +87 -34
  39. package/lib/cascader/src/cascader.min.js +1 -1
  40. package/lib/checkbox/src/group.js +18 -6
  41. package/lib/checkbox/src/group.min.js +1 -1
  42. package/lib/context-menu/src/context-menu.js +3 -4
  43. package/lib/context-menu/src/context-menu.min.js +1 -1
  44. package/lib/date-panel/src/util.js +37 -18
  45. package/lib/date-panel/src/util.min.js +1 -1
  46. package/lib/date-picker/src/date-picker.js +659 -86
  47. package/lib/date-picker/src/date-picker.min.js +1 -1
  48. package/lib/date-range-picker/src/date-range-picker.js +7 -3
  49. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  50. package/lib/drawer/src/drawer.js +3 -0
  51. package/lib/drawer/src/drawer.min.js +1 -1
  52. package/lib/form/render/index.js +3 -1
  53. package/lib/form/render/index.min.js +1 -1
  54. package/lib/form/src/form.js +12 -8
  55. package/lib/form/src/form.min.js +1 -1
  56. package/lib/form/src/itemInfo.js +6 -4
  57. package/lib/form/src/itemInfo.min.js +1 -1
  58. package/lib/image/src/image.js +7 -5
  59. package/lib/image/src/image.min.js +1 -1
  60. package/lib/index.umd.js +1140 -287
  61. package/lib/index.umd.min.js +1 -1
  62. package/lib/input/src/input.js +5 -3
  63. package/lib/input/src/input.min.js +1 -1
  64. package/lib/layout-body/src/layout-body.js +13 -4
  65. package/lib/layout-body/src/layout-body.min.js +1 -1
  66. package/lib/list/src/list.js +4 -5
  67. package/lib/list/src/list.min.js +1 -1
  68. package/lib/menu/src/menu.js +3 -1
  69. package/lib/menu/src/menu.min.js +1 -1
  70. package/lib/modal/src/modal.js +8 -2
  71. package/lib/modal/src/modal.min.js +1 -1
  72. package/lib/pager/src/pager.js +5 -2
  73. package/lib/pager/src/pager.min.js +1 -1
  74. package/lib/radio/src/group.js +13 -6
  75. package/lib/radio/src/group.min.js +1 -1
  76. package/lib/select/src/select.js +36 -29
  77. package/lib/select/src/select.min.js +1 -1
  78. package/lib/splitter/src/splitter.js +9 -6
  79. package/lib/splitter/src/splitter.min.js +1 -1
  80. package/lib/table-select/src/table-select.js +27 -19
  81. package/lib/table-select/src/table-select.min.js +1 -1
  82. package/lib/tabs/src/tabs.js +6 -3
  83. package/lib/tabs/src/tabs.min.js +1 -1
  84. package/lib/textarea/src/textarea.js +3 -1
  85. package/lib/textarea/src/textarea.min.js +1 -1
  86. package/lib/tree/src/tree.js +9 -8
  87. package/lib/tree/src/tree.min.js +1 -1
  88. package/lib/tree-select/src/tree-select.js +17 -15
  89. package/lib/tree-select/src/tree-select.min.js +1 -1
  90. package/lib/ui/index.js +4 -1
  91. package/lib/ui/index.min.js +1 -1
  92. package/lib/ui/src/log.js +14 -3
  93. package/lib/ui/src/log.min.js +1 -1
  94. package/lib/upload/src/upload.js +22 -7
  95. package/lib/upload/src/upload.min.js +1 -1
  96. package/package.json +1 -1
  97. package/packages/backtop/src/backtop.ts +11 -3
  98. package/packages/button/src/button.ts +4 -2
  99. package/packages/calendar/src/calendar.ts +3 -1
  100. package/packages/cascader/src/cascader.ts +77 -32
  101. package/packages/checkbox/src/group.ts +22 -5
  102. package/packages/context-menu/src/context-menu.ts +5 -2
  103. package/packages/date-panel/src/util.ts +28 -16
  104. package/packages/date-picker/src/date-picker.ts +630 -89
  105. package/packages/date-range-picker/src/date-range-picker.ts +8 -4
  106. package/packages/drawer/src/drawer.ts +3 -0
  107. package/packages/form/render/index.ts +4 -2
  108. package/packages/form/src/form.ts +14 -7
  109. package/packages/form/src/itemInfo.ts +7 -5
  110. package/packages/image/src/image.ts +9 -3
  111. package/packages/input/src/input.ts +3 -1
  112. package/packages/layout-body/src/layout-body.ts +16 -2
  113. package/packages/list/src/list.ts +6 -3
  114. package/packages/menu/src/menu.ts +3 -1
  115. package/packages/modal/src/modal.ts +6 -1
  116. package/packages/pager/src/pager.ts +5 -3
  117. package/packages/radio/src/group.ts +16 -5
  118. package/packages/select/src/select.ts +41 -29
  119. package/packages/splitter/src/splitter.ts +7 -5
  120. package/packages/table-select/src/table-select.ts +31 -20
  121. package/packages/tabs/src/tabs.ts +5 -3
  122. package/packages/textarea/src/textarea.ts +3 -1
  123. package/packages/tree/src/tree.ts +9 -4
  124. package/packages/tree-select/src/tree-select.ts +31 -30
  125. package/packages/ui/index.ts +3 -0
  126. package/packages/ui/src/log.ts +16 -4
  127. package/packages/upload/src/upload.ts +16 -6
  128. package/types/components/cascader.d.ts +4 -0
  129. package/types/components/date-picker.d.ts +14 -6
  130. package/types/components/drawer.d.ts +2 -0
  131. package/types/components/modal.d.ts +2 -0
  132. package/types/components/upload.d.ts +28 -1
  133. /package/es/icon/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  134. /package/es/icon/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  135. /package/es/icon/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  136. /package/es/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  137. /package/es/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  138. /package/es/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  139. /package/lib/icon/style/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  140. /package/lib/icon/style/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  141. /package/lib/icon/style/{iconfont.1781753586592.woff2 → iconfont.1781876590487.woff2} +0 -0
  142. /package/lib/{iconfont.1781753586592.ttf → iconfont.1781876590487.ttf} +0 -0
  143. /package/lib/{iconfont.1781753586592.woff → iconfont.1781876590487.woff} +0 -0
  144. /package/lib/{iconfont.1781753586592.woff2 → iconfont.1781876590487.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],
@@ -99,7 +134,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
99
134
  labelFormat: String,
100
135
  valueFormat: String,
101
136
  timeFormat: String,
102
- inputFormat: String,
103
137
  editable: {
104
138
  type: Boolean,
105
139
  default: true
@@ -141,7 +175,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
141
175
  return (0, _ui.getConfig)().datePicker.autoClose;
142
176
  }
143
177
  },
144
- controlConfig: Object,
178
+ maskedConfig: Object,
145
179
  prefixIcon: String,
146
180
  suffixIcon: String,
147
181
  placement: String,
@@ -181,26 +215,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
181
215
  },
182
216
  data: function data() {
183
217
  var xID = _xeUtils.default.uniqueId();
184
- var reactData = {
185
- initialized: false,
186
- panelIndex: 0,
187
- visiblePanel: false,
188
- isAniVisible: false,
189
- panelStyle: {},
190
- panelPlacement: '',
191
- isActivated: false,
192
- inputValue: '',
193
- inputLabel: ''
194
- };
195
- var internalData = {
196
- // hpTimeout: undefined,
197
- parseInputKayMaps: {}
198
- };
199
- return {
218
+ var reactData = createReactData();
219
+ return Object.assign(Object.assign({}, {}), {
200
220
  xID: xID,
201
- reactData: reactData,
202
- internalData: internalData
203
- };
221
+ reactData: reactData
222
+ });
204
223
  },
205
224
  computed: Object.assign(Object.assign({}, {}), {
206
225
  computeBtnTransfer: function computeBtnTransfer() {
@@ -269,6 +288,57 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
269
288
  var props = $xeDatePicker;
270
289
  return props.clearable;
271
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
+ },
272
342
  computeInputReadonly: function computeInputReadonly() {
273
343
  var $xeDatePicker = this;
274
344
  var props = $xeDatePicker;
@@ -338,12 +408,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
338
408
  valueFormat = props.valueFormat;
339
409
  return (0, _util.handleValueFormat)(type, valueFormat);
340
410
  },
341
- computeDateInputFormat: function computeDateInputFormat() {
411
+ computeDateMaskedFormat: function computeDateMaskedFormat() {
342
412
  var $xeDatePicker = this;
343
- var props = $xeDatePicker;
344
- var type = props.type,
345
- inputFormat = props.inputFormat;
346
- return (0, _util.handleInputFormat)(type, inputFormat);
413
+ var dateLabelFormat = $xeDatePicker.computeDateLabelFormat;
414
+ return dateLabelFormat;
347
415
  },
348
416
  computeFirstDayOfWeek: function computeFirstDayOfWeek() {
349
417
  var $xeDatePicker = this;
@@ -371,10 +439,16 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
371
439
  return dateObj.label;
372
440
  }).join(', ');
373
441
  },
374
- computeControlOpts: function computeControlOpts() {
442
+ computeMaskedOpts: function computeMaskedOpts() {
375
443
  var $xeDatePicker = this;
376
444
  var props = $xeDatePicker;
377
- return Object.assign({}, (0, _ui.getConfig)().datePicker.controlConfig, props.controlConfig);
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] : '') || '*';
378
452
  }
379
453
  }),
380
454
  methods: {
@@ -411,6 +485,15 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
411
485
  }
412
486
  reactData.inputValue = val;
413
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
+ },
414
497
  triggerEvent: function triggerEvent(evnt) {
415
498
  var $xeDatePicker = this;
416
499
  var reactData = $xeDatePicker.reactData;
@@ -474,10 +557,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
474
557
  },
475
558
  inputEvent: function inputEvent(evnt) {
476
559
  var $xeDatePicker = this;
477
- var reactData = $xeDatePicker.reactData;
478
560
  var inputElem = evnt.target;
479
561
  var value = inputElem.value;
480
- reactData.inputLabel = value;
562
+ $xeDatePicker.handleInputLabel(value, true);
481
563
  $xeDatePicker.dispatchEvent('input', {
482
564
  value: value
483
565
  }, evnt);
@@ -489,19 +571,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
489
571
  $xeDatePicker.triggerEvent(evnt);
490
572
  }
491
573
  },
492
- focusEvent: function focusEvent(evnt) {
493
- var $xeDatePicker = this;
494
- var reactData = $xeDatePicker.reactData;
495
- var popupOpts = $xeDatePicker.computePopupOpts;
496
- var trigger = popupOpts.trigger;
497
- reactData.isActivated = true;
498
- if (!trigger || trigger === 'default') {
499
- $xeDatePicker.datePickerOpenEvent(evnt);
500
- } else if (trigger === 'icon') {
501
- $xeDatePicker.hidePanel();
502
- }
503
- $xeDatePicker.triggerEvent(evnt);
504
- },
505
574
  clickPrefixEvent: function clickPrefixEvent(evnt) {
506
575
  var $xeDatePicker = this;
507
576
  var reactData = $xeDatePicker.reactData;
@@ -525,6 +594,134 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
525
594
  }, 350);
526
595
  });
527
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
+ },
528
725
  clearValueEvent: function clearValueEvent(evnt, value) {
529
726
  var $xeDatePicker = this;
530
727
  var isDatePickerType = $xeDatePicker.computeIsDatePickerType;
@@ -547,38 +744,322 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
547
744
  }, evnt);
548
745
  }
549
746
  },
550
- handleArrowInputDate: function handleArrowInputDate(evnt, isUpArrow) {
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) {
551
827
  var $xeDatePicker = this;
552
828
  var props = $xeDatePicker;
553
- var reactData = $xeDatePicker.reactData;
554
829
  var internalData = $xeDatePicker.internalData;
555
830
  var multiple = props.multiple;
556
831
  if (multiple) {
557
832
  return;
558
833
  }
559
- var inputValue = reactData.inputValue;
560
- if (!inputValue) {
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)) {
561
973
  return;
562
974
  }
563
975
  var targetElem = $xeDatePicker.$refs.refInputTarget;
564
976
  if (!targetElem) {
565
977
  return;
566
978
  }
567
- var parseInputKayMaps = internalData.parseInputKayMaps;
568
- var inputFormat = $xeDatePicker.computeDateInputFormat;
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;
569
985
  var selectionStart = targetElem.selectionStart || 0;
570
- var selectKey = inputFormat[selectionStart];
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];
571
1043
  if (!parseInputKayMaps[selectKey]) {
572
- selectKey = inputFormat[selectionStart - 1];
1044
+ selectKey = dateMaskedFormat[selectionStart - 1];
573
1045
  }
574
- var inputPaesrFn = parseInputKayMaps[selectKey];
575
- if (inputPaesrFn) {
576
- inputPaesrFn(evnt, targetElem, isUpArrow);
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
+ }
577
1057
  }
578
1058
  },
579
1059
  blurEvent: function blurEvent(evnt) {
580
1060
  var $xeDatePicker = this;
581
1061
  var reactData = $xeDatePicker.reactData;
1062
+ var internalData = $xeDatePicker.internalData;
582
1063
  var $xeForm = $xeDatePicker.$xeForm;
583
1064
  var formItemInfo = $xeDatePicker.formItemInfo;
584
1065
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
@@ -589,10 +1070,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
589
1070
  $xeDatePicker.handleChange(value, evnt);
590
1071
  }
591
1072
  if (!reactData.visiblePanel) {
1073
+ var inputLabel = internalData.inputLabel;
592
1074
  reactData.isActivated = false;
593
1075
  // 未打开面板时才校验
594
1076
  if ($datePanel) {
595
- $datePanel.checkValue(reactData.inputLabel);
1077
+ $datePanel.checkValue(inputLabel);
1078
+ } else {
1079
+ $xeDatePicker.afterCheckValue(inputLabel);
596
1080
  }
597
1081
  }
598
1082
  $xeDatePicker.dispatchEvent('blur', {
@@ -603,15 +1087,89 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
603
1087
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
604
1088
  }
605
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
+ },
606
1133
  keydownEvent: function keydownEvent(evnt) {
607
1134
  var $xeDatePicker = this;
608
1135
  var props = $xeDatePicker;
609
- var controlConfig = props.controlConfig;
610
- var controlOpts = $xeDatePicker.computeControlOpts;
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;
611
1143
  var isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
612
1144
  var isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
613
- if ((isUpArrow || isDwArrow) && controlOpts.isArrow && (controlConfig || controlOpts.enabled)) {
614
- $xeDatePicker.handleArrowInputDate(evnt, isUpArrow);
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
+ }
615
1173
  }
616
1174
  $xeDatePicker.triggerEvent(evnt);
617
1175
  },
@@ -648,13 +1206,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
648
1206
  },
649
1207
  panelRevertEvent: function panelRevertEvent(params) {
650
1208
  var $xeDatePicker = this;
651
- var reactData = $xeDatePicker.reactData;
652
- reactData.inputLabel = params.label;
1209
+ $xeDatePicker.handleInputLabel(params.label, true);
653
1210
  },
654
1211
  // 全局事件
655
1212
  handleGlobalMousedownEvent: function handleGlobalMousedownEvent(evnt) {
656
1213
  var $xeDatePicker = this;
657
1214
  var reactData = $xeDatePicker.reactData;
1215
+ var internalData = $xeDatePicker.internalData;
658
1216
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
659
1217
  var visiblePanel = reactData.visiblePanel,
660
1218
  isActivated = reactData.isActivated;
@@ -662,12 +1220,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
662
1220
  var panelWrapperElem = $xeDatePicker.$refs.refPanelWrapper;
663
1221
  var isDisabled = $xeDatePicker.computeIsDisabled;
664
1222
  if (!isDisabled && isActivated) {
665
- reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
666
- 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) {
667
1228
  if (visiblePanel) {
668
1229
  $xeDatePicker.hidePanel();
1230
+ var inputLabel = internalData.inputLabel;
669
1231
  if ($datePanel) {
670
- $datePanel.checkValue(reactData.inputLabel);
1232
+ $datePanel.checkValue(inputLabel);
1233
+ } else {
1234
+ $xeDatePicker.afterCheckValue(inputLabel);
671
1235
  }
672
1236
  }
673
1237
  }
@@ -710,6 +1274,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
710
1274
  handleGlobalBlurEvent: function handleGlobalBlurEvent() {
711
1275
  var $xeDatePicker = this;
712
1276
  var reactData = $xeDatePicker.reactData;
1277
+ var internalData = $xeDatePicker.internalData;
713
1278
  var $datePanel = $xeDatePicker.$refs.refDatePanel;
714
1279
  var isActivated = reactData.isActivated,
715
1280
  visiblePanel = reactData.visiblePanel;
@@ -721,7 +1286,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
721
1286
  }
722
1287
  if (visiblePanel || isActivated) {
723
1288
  if ($datePanel) {
724
- $datePanel.checkValue(reactData.inputLabel);
1289
+ $datePanel.checkValue(internalData.inputLabel);
725
1290
  }
726
1291
  var targetElem = $xeDatePicker.$refs.refInputTarget;
727
1292
  if (targetElem) {
@@ -787,9 +1352,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
787
1352
  var btnTransfer = $xeDatePicker.computeBtnTransfer;
788
1353
  var panelElem = $xeDatePicker.$refs.refInputPanel;
789
1354
  if (!isDisabled && !visiblePanel) {
790
- if (!reactData.initialized && btnTransfer && panelElem) {
1355
+ if (!reactData.initialized) {
791
1356
  reactData.initialized = true;
792
- document.body.appendChild(panelElem);
1357
+ if (btnTransfer && panelElem) {
1358
+ document.body.appendChild(panelElem);
1359
+ }
793
1360
  }
794
1361
  if (internalData.hpTimeout) {
795
1362
  clearTimeout(internalData.hpTimeout);
@@ -828,10 +1395,6 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
828
1395
  }
829
1396
  }
830
1397
  },
831
- clickEvent: function clickEvent(evnt) {
832
- var $xeDatePicker = this;
833
- $xeDatePicker.triggerEvent(evnt);
834
- },
835
1398
  handleShortcutEvent: function handleShortcutEvent(_ref) {
836
1399
  var option = _ref.option,
837
1400
  $event = _ref.$event;
@@ -876,7 +1439,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
876
1439
  break;
877
1440
  }
878
1441
  default:
879
- (0, _log.errLog)('vxe.error.notCommands', ["[date-picker] ".concat(code)]);
1442
+ errLog('vxe.error.notCommands', [code]);
880
1443
  break;
881
1444
  }
882
1445
  }
@@ -1133,14 +1696,16 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1133
1696
  var $xeDatePicker = this;
1134
1697
  var props = $xeDatePicker;
1135
1698
  var reactData = $xeDatePicker.reactData;
1699
+ var internalData = $xeDatePicker.internalData;
1136
1700
  var className = props.className,
1137
1701
  type = props.type,
1138
1702
  name = props.name,
1139
1703
  autoComplete = props.autoComplete;
1140
1704
  var inputValue = reactData.inputValue,
1141
- inputLabel = reactData.inputLabel,
1142
1705
  visiblePanel = reactData.visiblePanel,
1143
- isActivated = reactData.isActivated;
1706
+ isActivated = reactData.isActivated,
1707
+ labelFlag = reactData.labelFlag;
1708
+ var inputLabel = internalData.inputLabel;
1144
1709
  var vSize = $xeDatePicker.computeSize;
1145
1710
  var isDisabled = $xeDatePicker.computeIsDisabled;
1146
1711
  var formReadonly = $xeDatePicker.computeFormReadonly;
@@ -1168,7 +1733,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1168
1733
  ref: 'refInputTarget',
1169
1734
  class: 'vxe-date-picker--inner',
1170
1735
  domProps: {
1171
- value: inputLabel
1736
+ value: labelFlag ? inputLabel : ''
1172
1737
  },
1173
1738
  attrs: {
1174
1739
  name: name,
@@ -1195,8 +1760,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1195
1760
  watch: {
1196
1761
  computePanelLabel: function computePanelLabel(val) {
1197
1762
  var $xeDatePicker = this;
1198
- var reactData = $xeDatePicker.reactData;
1199
- reactData.inputLabel = val;
1763
+ $xeDatePicker.handleInputLabel(val, true);
1200
1764
  },
1201
1765
  value: function value() {
1202
1766
  var $xeDatePicker = this;
@@ -1205,14 +1769,19 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1205
1769
  },
1206
1770
  created: function created() {
1207
1771
  var $xeDatePicker = this;
1208
- var internalData = $xeDatePicker.internalData;
1209
- var parseInputKayMaps = internalData.parseInputKayMaps;
1210
- var inputKeys = ['y', 'M', 'd', 'H', 'm', 'n'];
1211
- inputKeys.forEach(function (key) {
1212
- parseInputKayMaps[key] = function (evnt) {
1213
- evnt.preventDefault();
1214
- };
1215
- });
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
+ }
1216
1785
  $xeDatePicker.updateModelValue();
1217
1786
  _ui.globalEvents.on($xeDatePicker, 'mousewheel', $xeDatePicker.handleGlobalMousewheelEvent);
1218
1787
  _ui.globalEvents.on($xeDatePicker, 'mousedown', $xeDatePicker.handleGlobalMousedownEvent);
@@ -1222,6 +1791,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1222
1791
  },
1223
1792
  beforeDestroy: function beforeDestroy() {
1224
1793
  var $xeDatePicker = this;
1794
+ var reactData = $xeDatePicker.reactData;
1795
+ var internalData = $xeDatePicker.internalData;
1225
1796
  var panelElem = $xeDatePicker.$refs.refInputPanel;
1226
1797
  if (panelElem && panelElem.parentNode) {
1227
1798
  panelElem.parentNode.removeChild(panelElem);
@@ -1230,6 +1801,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1230
1801
  _ui.globalEvents.off($xeDatePicker, 'mousedown');
1231
1802
  _ui.globalEvents.off($xeDatePicker, 'blur');
1232
1803
  _ui.globalEvents.off($xeDatePicker, 'resize');
1804
+ _xeUtils.default.assign(reactData, createReactData());
1805
+ _xeUtils.default.assign(internalData, createInternalData());
1233
1806
  },
1234
1807
  render: function render(h) {
1235
1808
  return this.renderVN(h);