vxe-pc-ui 4.15.1 → 4.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 (133) hide show
  1. package/dist/all.esm.js +834 -175
  2. package/es/backtop/src/backtop.js +2 -1
  3. package/es/button/src/button.js +3 -2
  4. package/es/calendar/src/calendar.js +2 -1
  5. package/es/cascader/src/cascader.js +2 -1
  6. package/es/checkbox/src/group.js +5 -1
  7. package/es/date-panel/src/util.js +27 -4
  8. package/es/date-picker/src/date-picker.js +609 -45
  9. package/es/date-range-picker/src/date-range-picker.js +20 -4
  10. package/es/drawer/src/drawer.js +2 -0
  11. package/es/form/render/index.js +3 -2
  12. package/es/form/src/form.js +6 -5
  13. package/es/form/src/itemInfo.js +6 -5
  14. package/es/input/src/input.js +2 -1
  15. package/es/menu/src/menu.js +2 -1
  16. package/es/modal/src/modal.js +5 -2
  17. package/es/number-input/src/number-input.js +2 -3
  18. package/es/pager/src/pager.js +4 -3
  19. package/es/radio/src/group.js +5 -1
  20. package/es/select/src/select.js +25 -20
  21. package/es/splitter/src/splitter.js +12 -7
  22. package/es/table-select/src/table-select.js +21 -16
  23. package/es/tabs/src/tabs.js +4 -3
  24. package/es/textarea/src/textarea.js +2 -1
  25. package/es/tree/src/tree.js +3 -2
  26. package/es/tree-select/src/tree-select.js +2 -1
  27. package/es/ui/index.js +1 -1
  28. package/es/ui/src/log.js +7 -1
  29. package/es/upload/src/upload.js +12 -3
  30. package/lib/backtop/src/backtop.js +5 -2
  31. package/lib/backtop/src/backtop.min.js +1 -1
  32. package/lib/button/src/button.js +4 -1
  33. package/lib/button/src/button.min.js +1 -1
  34. package/lib/calendar/src/calendar.js +4 -1
  35. package/lib/calendar/src/calendar.min.js +1 -1
  36. package/lib/cascader/src/cascader.js +4 -1
  37. package/lib/cascader/src/cascader.min.js +1 -1
  38. package/lib/checkbox/src/group.js +5 -1
  39. package/lib/checkbox/src/group.min.js +1 -1
  40. package/lib/date-panel/src/util.js +37 -6
  41. package/lib/date-panel/src/util.min.js +1 -1
  42. package/lib/date-picker/src/date-picker.js +665 -43
  43. package/lib/date-picker/src/date-picker.min.js +1 -1
  44. package/lib/date-range-picker/src/date-range-picker.js +21 -3
  45. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  46. package/lib/drawer/src/drawer.js +2 -0
  47. package/lib/drawer/src/drawer.min.js +1 -1
  48. package/lib/form/render/index.js +4 -1
  49. package/lib/form/render/index.min.js +1 -1
  50. package/lib/form/src/form.js +8 -4
  51. package/lib/form/src/form.min.js +1 -1
  52. package/lib/form/src/itemInfo.js +7 -4
  53. package/lib/form/src/itemInfo.min.js +1 -1
  54. package/lib/index.umd.js +916 -137
  55. package/lib/index.umd.min.js +1 -1
  56. package/lib/input/src/input.js +6 -3
  57. package/lib/input/src/input.min.js +1 -1
  58. package/lib/menu/src/menu.js +4 -1
  59. package/lib/menu/src/menu.min.js +1 -1
  60. package/lib/modal/src/modal.js +8 -2
  61. package/lib/modal/src/modal.min.js +1 -1
  62. package/lib/number-input/src/number-input.js +2 -3
  63. package/lib/pager/src/pager.js +6 -2
  64. package/lib/pager/src/pager.min.js +1 -1
  65. package/lib/radio/src/group.js +5 -1
  66. package/lib/radio/src/group.min.js +1 -1
  67. package/lib/select/src/select.js +27 -20
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/splitter/src/splitter.js +17 -9
  70. package/lib/splitter/src/splitter.min.js +1 -1
  71. package/lib/table-select/src/table-select.js +22 -15
  72. package/lib/table-select/src/table-select.min.js +1 -1
  73. package/lib/tabs/src/tabs.js +7 -3
  74. package/lib/tabs/src/tabs.min.js +1 -1
  75. package/lib/textarea/src/textarea.js +4 -1
  76. package/lib/textarea/src/textarea.min.js +1 -1
  77. package/lib/tree/src/tree.js +7 -4
  78. package/lib/tree/src/tree.min.js +1 -1
  79. package/lib/tree-select/src/tree-select.js +7 -3
  80. package/lib/tree-select/src/tree-select.min.js +1 -1
  81. package/lib/ui/index.js +1 -1
  82. package/lib/ui/index.min.js +1 -1
  83. package/lib/ui/src/log.js +8 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/upload/src/upload.js +20 -3
  86. package/lib/upload/src/upload.min.js +1 -1
  87. package/package.json +1 -1
  88. package/packages/backtop/src/backtop.ts +3 -1
  89. package/packages/button/src/button.ts +4 -2
  90. package/packages/calendar/src/calendar.ts +3 -1
  91. package/packages/cascader/src/cascader.ts +3 -1
  92. package/packages/checkbox/src/group.ts +6 -2
  93. package/packages/date-panel/src/util.ts +28 -3
  94. package/packages/date-picker/src/date-picker.ts +624 -48
  95. package/packages/date-range-picker/src/date-range-picker.ts +19 -4
  96. package/packages/drawer/src/drawer.ts +2 -0
  97. package/packages/form/render/index.ts +4 -2
  98. package/packages/form/src/form.ts +7 -5
  99. package/packages/form/src/itemInfo.ts +7 -5
  100. package/packages/input/src/input.ts +3 -1
  101. package/packages/menu/src/menu.ts +3 -1
  102. package/packages/modal/src/modal.ts +6 -2
  103. package/packages/number-input/src/number-input.ts +2 -6
  104. package/packages/pager/src/pager.ts +5 -3
  105. package/packages/radio/src/group.ts +6 -2
  106. package/packages/select/src/select.ts +29 -22
  107. package/packages/splitter/src/splitter.ts +13 -7
  108. package/packages/table-select/src/table-select.ts +24 -17
  109. package/packages/tabs/src/tabs.ts +5 -3
  110. package/packages/textarea/src/textarea.ts +3 -1
  111. package/packages/tree/src/tree.ts +4 -2
  112. package/packages/tree-select/src/tree-select.ts +3 -1
  113. package/packages/ui/src/log.ts +7 -0
  114. package/packages/upload/src/upload.ts +14 -3
  115. package/types/components/date-picker.d.ts +27 -1
  116. package/types/components/date-range-picker.d.ts +4 -0
  117. package/types/components/drawer.d.ts +2 -0
  118. package/types/components/modal.d.ts +2 -0
  119. package/types/components/splitter.d.ts +1 -0
  120. package/types/components/table.d.ts +29 -3
  121. package/types/components/upload.d.ts +28 -1
  122. /package/es/icon/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  123. /package/es/icon/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  124. /package/es/icon/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  125. /package/es/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  126. /package/es/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  127. /package/es/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  128. /package/lib/icon/style/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  129. /package/lib/icon/style/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  130. /package/lib/icon/style/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
  131. /package/lib/{iconfont.1781675429363.ttf → iconfont.1781852740683.ttf} +0 -0
  132. /package/lib/{iconfont.1781675429363.woff → iconfont.1781852740683.woff} +0 -0
  133. /package/lib/{iconfont.1781675429363.woff2 → iconfont.1781852740683.woff2} +0 -0
@@ -17,6 +17,36 @@ var _datePanel = _interopRequireDefault(require("../../date-panel/src/date-panel
17
17
  var _button = _interopRequireDefault(require("../../button/src/button"));
18
18
  var _buttonGroup = _interopRequireDefault(require("../../button/src/button-group"));
19
19
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ const {
21
+ warnLog,
22
+ errLog
23
+ } = (0, _log.createComponentLog)('date-picker');
24
+ const maskedTypes = ['year', 'month', 'date', 'datetime', 'time'];
25
+ const inputMaskedKeys = ['y', 'M', 'd', 'H', 'm', 'n', 's'];
26
+ const parseInputKayMaps = {};
27
+ inputMaskedKeys.forEach(key => {
28
+ parseInputKayMaps[key] = true;
29
+ });
30
+ function createReactData() {
31
+ return {
32
+ initialized: false,
33
+ panelIndex: 0,
34
+ visiblePanel: false,
35
+ isAniVisible: false,
36
+ panelStyle: {},
37
+ panelPlacement: '',
38
+ isActivated: false,
39
+ inputValue: '',
40
+ labelFlag: 0
41
+ };
42
+ }
43
+ function createInternalData() {
44
+ return {
45
+ // hpTimeout: undefined,
46
+ inputLabel: '',
47
+ laseFocusMasked: 0
48
+ };
49
+ }
20
50
  var _default = exports.default = (0, _comp.defineVxeComponent)({
21
51
  name: 'VxeDatePicker',
22
52
  props: {
@@ -108,6 +138,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
108
138
  type: Boolean,
109
139
  default: () => (0, _ui.getConfig)().datePicker.autoClose
110
140
  },
141
+ maskedConfig: Object,
111
142
  prefixIcon: String,
112
143
  suffixIcon: String,
113
144
  placement: String,
@@ -136,20 +167,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
136
167
  const {
137
168
  computeSize
138
169
  } = (0, _ui.useSize)(props);
139
- const reactData = (0, _vue.reactive)({
140
- initialized: false,
141
- panelIndex: 0,
142
- visiblePanel: false,
143
- isAniVisible: false,
144
- panelStyle: {},
145
- panelPlacement: '',
146
- isActivated: false,
147
- inputValue: '',
148
- inputLabel: ''
149
- });
150
- const internalData = {
151
- hpTimeout: undefined
152
- };
170
+ const reactData = (0, _vue.reactive)(createReactData());
171
+ const internalData = createInternalData();
153
172
  const refElem = (0, _vue.ref)();
154
173
  const refInputTarget = (0, _vue.ref)();
155
174
  const refInputPanel = (0, _vue.ref)();
@@ -223,6 +242,50 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
223
242
  const computeIsClearable = (0, _vue.computed)(() => {
224
243
  return props.clearable;
225
244
  });
245
+ const computeIsDatePanelType = (0, _vue.computed)(() => {
246
+ const isDateTimeType = computeIsDateTimeType.value;
247
+ return isDateTimeType || ['date', 'week', 'month', 'quarter', 'year'].indexOf(props.type) > -1;
248
+ });
249
+ const computeDateListValue = (0, _vue.computed)(() => {
250
+ const {
251
+ modelValue,
252
+ type,
253
+ multiple
254
+ } = props;
255
+ const isDatePanelType = computeIsDatePanelType.value;
256
+ const dateValueFormat = computeDateValueFormat.value;
257
+ if (multiple && modelValue && isDatePanelType) {
258
+ return _xeUtils.default.toValueString(modelValue).split(',').map(item => {
259
+ const date = (0, _util.parseDateValue)(item, type, {
260
+ valueFormat: dateValueFormat
261
+ });
262
+ if (_xeUtils.default.isValidDate(date)) {
263
+ return date;
264
+ }
265
+ return date;
266
+ });
267
+ }
268
+ return [];
269
+ });
270
+ const computeLimitMaxCount = (0, _vue.computed)(() => {
271
+ return props.multiple ? _xeUtils.default.toNumber(props.limitCount) : 0;
272
+ });
273
+ const computeDateMultipleValue = (0, _vue.computed)(() => {
274
+ const dateListValue = computeDateListValue.value;
275
+ const dateValueFormat = computeDateValueFormat.value;
276
+ return dateListValue.map(date => _xeUtils.default.toDateString(date, dateValueFormat));
277
+ });
278
+ const computeOverCount = (0, _vue.computed)(() => {
279
+ const {
280
+ multiple
281
+ } = props;
282
+ const limitMaxCount = computeLimitMaxCount.value;
283
+ const dateMultipleValue = computeDateMultipleValue.value;
284
+ if (multiple && limitMaxCount) {
285
+ return dateMultipleValue.length >= limitMaxCount;
286
+ }
287
+ return false;
288
+ });
226
289
  const computeInputReadonly = (0, _vue.computed)(() => {
227
290
  const {
228
291
  type,
@@ -287,6 +350,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
287
350
  } = props;
288
351
  return (0, _util.handleValueFormat)(type, valueFormat);
289
352
  });
353
+ const computeDateMaskedFormat = (0, _vue.computed)(() => {
354
+ const dateLabelFormat = computeDateLabelFormat.value;
355
+ return dateLabelFormat;
356
+ });
290
357
  const computeFirstDayOfWeek = (0, _vue.computed)(() => {
291
358
  const {
292
359
  startDay
@@ -314,6 +381,16 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
314
381
  return dateObj.label;
315
382
  }).join(', ');
316
383
  });
384
+ const computeMaskedOpts = (0, _vue.computed)(() => {
385
+ return Object.assign({}, (0, _ui.getConfig)().datePicker.maskedConfig, props.maskedConfig);
386
+ });
387
+ const computeMaskChar = (0, _vue.computed)(() => {
388
+ const maskedOpts = computeMaskedOpts.value;
389
+ const {
390
+ maskPlaceholder
391
+ } = maskedOpts;
392
+ return (maskPlaceholder ? ('' + maskPlaceholder)[0] : '') || '*';
393
+ });
317
394
  const updateModelValue = () => {
318
395
  const {
319
396
  modelValue
@@ -328,6 +405,12 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
328
405
  }
329
406
  reactData.inputValue = val;
330
407
  };
408
+ const handleInputLabel = (text, isUpdate) => {
409
+ internalData.inputLabel = text;
410
+ if (isUpdate) {
411
+ reactData.labelFlag++;
412
+ }
413
+ };
331
414
  const triggerEvent = evnt => {
332
415
  const {
333
416
  inputValue
@@ -389,7 +472,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
389
472
  const inputEvent = evnt => {
390
473
  const inputElem = evnt.target;
391
474
  const value = inputElem.value;
392
- reactData.inputLabel = value;
475
+ handleInputLabel(value, true);
393
476
  dispatchEvent('input', {
394
477
  value
395
478
  }, evnt);
@@ -400,17 +483,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
400
483
  triggerEvent(evnt);
401
484
  }
402
485
  };
403
- const focusEvent = evnt => {
404
- const popupOpts = computePopupOpts.value;
405
- const {
406
- trigger
407
- } = popupOpts;
408
- reactData.isActivated = true;
409
- if (!trigger || trigger === 'default') {
410
- datePickerOpenEvent(evnt);
411
- }
412
- triggerEvent(evnt);
413
- };
414
486
  const clickPrefixEvent = evnt => {
415
487
  const isDisabled = computeIsDisabled.value;
416
488
  if (!isDisabled) {
@@ -431,6 +503,125 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
431
503
  }, 350);
432
504
  });
433
505
  };
506
+ const dateChange = (date, isReload) => {
507
+ const {
508
+ modelValue,
509
+ multiple
510
+ } = props;
511
+ const isDateTimeType = computeIsDateTimeType.value;
512
+ const dateValueFormat = computeDateValueFormat.value;
513
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
514
+ if (props.type === 'week') {
515
+ const sWeek = _xeUtils.default.toNumber(props.selectDay);
516
+ date = _xeUtils.default.getWhatWeek(date, 0, sWeek, firstDayOfWeek);
517
+ }
518
+ const inpVal = _xeUtils.default.toDateString(date, dateValueFormat, {
519
+ firstDay: firstDayOfWeek
520
+ });
521
+ if (multiple) {
522
+ const overCount = computeOverCount.value;
523
+ // 如果为多选
524
+ if (isDateTimeType) {
525
+ // 如果是datetime特殊类型
526
+ const dateListValue = isReload ? [] : [...computeDateListValue.value];
527
+ const datetimeRest = [];
528
+ const eqIndex = _xeUtils.default.findIndexOf(dateListValue, val => _xeUtils.default.isDateSame(date, val, 'yyyyMMdd'));
529
+ if (eqIndex === -1) {
530
+ if (overCount) {
531
+ // 如果超出最大多选数量
532
+ return;
533
+ }
534
+ dateListValue.push(date);
535
+ } else {
536
+ dateListValue.splice(eqIndex, 1);
537
+ }
538
+ dateListValue.forEach(item => {
539
+ if (item) {
540
+ datetimeRest.push(item);
541
+ }
542
+ });
543
+ handleChange(datetimeRest.map(date => _xeUtils.default.toDateString(date, dateValueFormat)).join(','), {
544
+ type: 'update'
545
+ });
546
+ } else {
547
+ const dateMultipleValue = isReload ? [] : computeDateMultipleValue.value;
548
+ // 如果是日期类型
549
+ if (dateMultipleValue.some(val => _xeUtils.default.isEqual(val, inpVal))) {
550
+ handleChange(dateMultipleValue.filter(val => !_xeUtils.default.isEqual(val, inpVal)).join(','), {
551
+ type: 'update'
552
+ });
553
+ } else {
554
+ if (overCount) {
555
+ // 如果超出最大多选数量
556
+ return;
557
+ }
558
+ handleChange(dateMultipleValue.concat([inpVal]).join(','), {
559
+ type: 'update'
560
+ });
561
+ }
562
+ }
563
+ } else {
564
+ // 如果为单选
565
+ if (!_xeUtils.default.isEqual(modelValue, inpVal)) {
566
+ handleChange(inpVal, {
567
+ type: 'update'
568
+ });
569
+ }
570
+ }
571
+ };
572
+ const dateRevert = () => {
573
+ const panelLabel = computePanelLabel.value;
574
+ handleInputLabel(panelLabel, true);
575
+ };
576
+ const afterCheckValue = inpVal => {
577
+ const {
578
+ type
579
+ } = props;
580
+ const {
581
+ inputLabel
582
+ } = internalData;
583
+ const dateLabelFormat = computeDateLabelFormat.value;
584
+ if (!inpVal) {
585
+ handleChange('', {
586
+ type: 'check'
587
+ });
588
+ return;
589
+ }
590
+ let inpDateVal = (0, _util.parseDateValue)(inpVal, type, {
591
+ valueFormat: dateLabelFormat
592
+ });
593
+ if (!_xeUtils.default.isValidDate(inpDateVal)) {
594
+ dateRevert();
595
+ return;
596
+ }
597
+ if (type === 'time') {
598
+ inpDateVal = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat);
599
+ if (inputLabel !== inpDateVal) {
600
+ handleChange(inpDateVal, {
601
+ type: 'check'
602
+ });
603
+ }
604
+ handleInputLabel(inpDateVal, true);
605
+ return;
606
+ }
607
+ let isChange = false;
608
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
609
+ if (type === 'datetime') {
610
+ const dateValue = reactData.inputValue;
611
+ if (inpVal !== _xeUtils.default.toDateString(dateValue, dateLabelFormat) || inpVal !== _xeUtils.default.toDateString(inpDateVal, dateLabelFormat)) {
612
+ isChange = true;
613
+ }
614
+ } else {
615
+ isChange = true;
616
+ }
617
+ const label = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat, {
618
+ firstDay: firstDayOfWeek
619
+ });
620
+ handleInputLabel(label, true);
621
+ if (isChange) {
622
+ dateChange(inpDateVal);
623
+ }
624
+ };
434
625
  const clearValueEvent = (evnt, value) => {
435
626
  const isDatePickerType = computeIsDatePickerType.value;
436
627
  if (isDatePickerType) {
@@ -452,6 +643,307 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
452
643
  }, evnt);
453
644
  }
454
645
  };
646
+ const handleArrowInputDate = (evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow) => {
647
+ const {
648
+ type,
649
+ multiple
650
+ } = props;
651
+ if (multiple) {
652
+ return;
653
+ }
654
+ const targetElem = refInputTarget.value;
655
+ if (!targetElem) {
656
+ return;
657
+ }
658
+ const inpValue = targetElem.value;
659
+ if (!inpValue) {
660
+ return;
661
+ }
662
+ const dateMaskedFormat = computeDateMaskedFormat.value;
663
+ const dateLabelFormat = computeDateLabelFormat.value;
664
+ const firstDayOfWeek = computeFirstDayOfWeek.value;
665
+ const maskChar = computeMaskChar.value;
666
+ const selectionStart = targetElem.selectionStart || 0;
667
+ let selectKey = dateMaskedFormat[selectionStart];
668
+ if (!parseInputKayMaps[selectKey]) {
669
+ selectKey = dateMaskedFormat[selectionStart - 1];
670
+ }
671
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
672
+ if (!skRest) {
673
+ return;
674
+ }
675
+ if (isUpArrow || isDwArrow) {
676
+ const chunkFormat = skRest[0] || '';
677
+ const chunkStartIndex = skRest.index || 0;
678
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
679
+ const chunkValue = inpValue.slice(chunkStartIndex, chunkEndIndex);
680
+ if (parseInputKayMaps[selectKey]) {
681
+ const chunkNum = ((0, _util.isAllSameChar)(chunkValue, maskChar) ? (0, _util.getChunkDefaultNum)(selectKey) : _xeUtils.default.toNumber(chunkValue)) + (isUpArrow ? 1 : -1);
682
+ const restValue = inpValue.slice(0, chunkStartIndex) + _xeUtils.default.padStart(chunkNum, chunkFormat.length, '0') + inpValue.slice(chunkEndIndex);
683
+ evnt.preventDefault();
684
+ if (restValue.indexOf(maskChar) === -1) {
685
+ // 解析日期
686
+ const inpDateVal = (0, _util.parseDateValue)(restValue, type, {
687
+ valueFormat: dateLabelFormat
688
+ });
689
+ if (_xeUtils.default.isValidDate(inpDateVal)) {
690
+ const label = _xeUtils.default.toDateString(inpDateVal, dateLabelFormat, {
691
+ firstDay: firstDayOfWeek
692
+ });
693
+ targetElem.value = label;
694
+ handleInputLabel(label, false);
695
+ }
696
+ } else {
697
+ targetElem.value = restValue;
698
+ handleInputLabel(restValue, false);
699
+ }
700
+ }
701
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
702
+ } else if (isLtArrow || isRtArrow) {
703
+ const currKeyIndex = inputMaskedKeys.indexOf(selectKey);
704
+ if (currKeyIndex > -1) {
705
+ const allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
706
+ const currIndex = _xeUtils.default.findIndexOf(allMaskedKeys, key => selectKey === key[0]);
707
+ const targetFormatKey = isLtArrow ? allMaskedKeys[currIndex - 1] || allMaskedKeys[0] : allMaskedKeys[currIndex + 1] || allMaskedKeys[allMaskedKeys.length - 1];
708
+ const targetKey = targetFormatKey ? targetFormatKey[0] : '';
709
+ const sktRest = dateMaskedFormat.match(new RegExp(targetKey + '+'));
710
+ if (sktRest) {
711
+ evnt.preventDefault();
712
+ const mtStartIndex = sktRest.index || 0;
713
+ const mtEndIndex = mtStartIndex + sktRest[0].length;
714
+ targetElem.setSelectionRange(mtStartIndex, mtEndIndex);
715
+ }
716
+ }
717
+ }
718
+ internalData.isTriggerMasked = true;
719
+ };
720
+ const handleMaskedInputDate = evnt => {
721
+ const {
722
+ multiple
723
+ } = props;
724
+ if (multiple) {
725
+ return;
726
+ }
727
+ const targetElem = refInputTarget.value;
728
+ if (!targetElem) {
729
+ return;
730
+ }
731
+ const isControlKey = (0, _dom.hasControlKey)(evnt);
732
+ if (isControlKey) {
733
+ return;
734
+ }
735
+ evnt.preventDefault();
736
+ const eKey = evnt.key;
737
+ const isDeleleKey = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.DELETE);
738
+ const isBackspaceKey = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.BACKSPACE);
739
+ const isNumKey = eKey >= '0' && eKey <= '9';
740
+ const numKey = isNumKey ? evnt.key : '';
741
+ if (!(isDeleleKey || isBackspaceKey || isNumKey)) {
742
+ return;
743
+ }
744
+ const {
745
+ isTriggerMasked
746
+ } = internalData;
747
+ const dateMaskedFormat = computeDateMaskedFormat.value;
748
+ const maskChar = computeMaskChar.value;
749
+ let inpValue = targetElem.value || dateMaskedFormat;
750
+ const selectionStart = targetElem.selectionStart || 0;
751
+ const selectionEnd = targetElem.selectionEnd || 0;
752
+ let selectKey = dateMaskedFormat[selectionStart];
753
+ if (!parseInputKayMaps[selectKey]) {
754
+ selectKey = dateMaskedFormat[selectionStart - 1];
755
+ }
756
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
757
+ if (!skRest) {
758
+ return;
759
+ }
760
+ const allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
761
+ const chunkFormat = skRest[0] || '';
762
+ const chunkStartIndex = skRest.index || 0;
763
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
764
+ const currKeyIndex = allMaskedKeys.indexOf(selectKey);
765
+ // 全选 | 如果无效字符
766
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
767
+ const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
768
+ if (isAllSelected || isNotMasked) {
769
+ inpValue = dateMaskedFormat;
770
+ }
771
+ let chunkValue = isDeleleKey ? '' : inpValue.slice(chunkStartIndex, chunkEndIndex);
772
+ const chunkNums = chunkValue.match(/\d/g) || [];
773
+ const chunkNumList = isTriggerMasked && !isBackspaceKey ? [] : chunkNums.slice(0);
774
+ if (isNumKey) {
775
+ chunkNumList.push(numKey);
776
+ } else if (isBackspaceKey) {
777
+ chunkNumList.pop();
778
+ }
779
+ chunkValue = chunkNumList.join('').padEnd(chunkFormat.length, maskChar);
780
+ let restValue = inpValue.slice(0, chunkStartIndex) + chunkValue + inpValue.slice(chunkEndIndex);
781
+ restValue = restValue.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
782
+ targetElem.value = restValue;
783
+ handleInputLabel(restValue, false);
784
+ // 如果是全选/删除
785
+ if (isAllSelected) {
786
+ if (isBackspaceKey || isDeleleKey) {
787
+ const firstMaskedKeys = allMaskedKeys[0];
788
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
789
+ if (firstSkRest) {
790
+ const firstChunkFormat = firstSkRest[0];
791
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
792
+ internalData.isTriggerMasked = true;
793
+ return;
794
+ }
795
+ }
796
+ } else {
797
+ if (isBackspaceKey && !chunkNums.length) {
798
+ // 回退到上一个数字块
799
+ for (let i = currKeyIndex - 1; i >= 0; i--) {
800
+ const prveChunkKey = allMaskedKeys[i];
801
+ const prveSkRest = dateMaskedFormat.match(new RegExp(`${prveChunkKey}+`));
802
+ if (prveSkRest) {
803
+ const prveChunkFormat = prveSkRest[0];
804
+ const prveChunkStartIndex = prveSkRest.index || 0;
805
+ const prveChunkEndIndex = prveChunkStartIndex + prveChunkFormat.length;
806
+ let prveChunkValue = restValue.slice(prveChunkStartIndex, prveChunkEndIndex);
807
+ const prveChunkNums = prveChunkValue.match(/\d/g) || [];
808
+ if (prveChunkNums.length) {
809
+ prveChunkNums.pop();
810
+ prveChunkValue = prveChunkNums.join('').padEnd(prveChunkFormat.length, maskChar);
811
+ restValue = restValue.slice(0, prveChunkStartIndex) + prveChunkValue + restValue.slice(prveChunkEndIndex);
812
+ targetElem.value = restValue;
813
+ handleInputLabel(restValue, false);
814
+ targetElem.setSelectionRange(prveChunkStartIndex, prveChunkEndIndex);
815
+ return;
816
+ }
817
+ }
818
+ }
819
+ const firstMaskedKeys = allMaskedKeys[0];
820
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
821
+ if (firstSkRest) {
822
+ const firstChunkFormat = firstSkRest[0];
823
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
824
+ targetElem.value = restValue;
825
+ handleInputLabel(restValue, false);
826
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
827
+ internalData.isTriggerMasked = true;
828
+ return;
829
+ }
830
+ return;
831
+ }
832
+ }
833
+ let maskStartIndex = skRest.index || 0;
834
+ let maskEndIndex = maskStartIndex + skRest[0].length;
835
+ // 如果输入完成,跳转下一个
836
+ if (chunkNumList.length >= chunkValue.length) {
837
+ const nextKeys = allMaskedKeys.slice(currKeyIndex + 1);
838
+ if (currKeyIndex > -1) {
839
+ const nextRest = nextKeys.length ? dateMaskedFormat.match(new RegExp(`(${nextKeys.join('|')})+`)) : null;
840
+ // 如果当前数字块已输入,则跳转下一个数字块
841
+ if (nextRest) {
842
+ maskStartIndex = nextRest.index || 0;
843
+ maskEndIndex = maskStartIndex + nextRest[0].length;
844
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
845
+ } else {
846
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
847
+ }
848
+ }
849
+ internalData.isTriggerMasked = true;
850
+ return;
851
+ }
852
+ targetElem.setSelectionRange(maskStartIndex, maskEndIndex);
853
+ internalData.isTriggerMasked = false;
854
+ };
855
+ const handleMaskedSelectedDate = (evnt, isFocus) => {
856
+ const {
857
+ type,
858
+ multiple,
859
+ modelValue
860
+ } = props;
861
+ if (multiple) {
862
+ return;
863
+ }
864
+ if (!maskedTypes.includes(type)) {
865
+ return;
866
+ }
867
+ const targetElem = refInputTarget.value;
868
+ if (!targetElem) {
869
+ return;
870
+ }
871
+ const {
872
+ laseFocusMasked
873
+ } = internalData;
874
+ if (laseFocusMasked && Date.now() - laseFocusMasked < 100) {
875
+ return;
876
+ }
877
+ const dateMaskedFormat = computeDateMaskedFormat.value;
878
+ const maskChar = computeMaskChar.value;
879
+ const selectionStart = targetElem.selectionStart || 0;
880
+ const selectionEnd = targetElem.selectionEnd || 0;
881
+ const inpValue = targetElem.value;
882
+ const allMaskedKeys = _xeUtils.default.map(dateMaskedFormat.match(new RegExp(`(${inputMaskedKeys.join('|')})+`, 'g')) || [], fullKey => fullKey[0]);
883
+ // 如果为空
884
+ if (!inpValue) {
885
+ let restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
886
+ // 还原值
887
+ if (isFocus && modelValue) {
888
+ const chunkNums = ('' + _xeUtils.default.toNumber(modelValue)).match(/\d/g) || [];
889
+ let useNumIndex = 0;
890
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), txt => chunkNums[useNumIndex++] || txt);
891
+ }
892
+ const firstMaskedKeys = allMaskedKeys[0];
893
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
894
+ if (firstSkRest) {
895
+ evnt.preventDefault();
896
+ const firstChunkFormat = firstSkRest[0];
897
+ targetElem.value = restValue;
898
+ handleInputLabel(restValue, false);
899
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
900
+ internalData.laseFocusMasked = Date.now();
901
+ return;
902
+ }
903
+ }
904
+ // 全选 | 如果无效字符
905
+ const isAllSelected = !selectionStart && selectionEnd === inpValue.length;
906
+ const isNotMasked = inpValue && inpValue.length !== dateMaskedFormat.length;
907
+ if (isAllSelected || isNotMasked) {
908
+ let restValue = '';
909
+ // 还原值
910
+ if (isNotMasked && inpValue) {
911
+ const chunkNums = inpValue.match(/\d/g) || [];
912
+ let useNumIndex = 0;
913
+ restValue = dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), () => chunkNums[useNumIndex++] || maskChar);
914
+ } else {
915
+ dateMaskedFormat.replace(new RegExp(`(${inputMaskedKeys.join('|')})`, 'g'), maskChar);
916
+ }
917
+ const firstMaskedKeys = allMaskedKeys[0];
918
+ const firstSkRest = dateMaskedFormat.match(new RegExp(`${firstMaskedKeys}+`));
919
+ if (firstSkRest) {
920
+ evnt.preventDefault();
921
+ const firstChunkFormat = firstSkRest[0];
922
+ targetElem.value = restValue;
923
+ handleInputLabel(restValue, false);
924
+ targetElem.setSelectionRange(0, firstChunkFormat.length);
925
+ internalData.laseFocusMasked = Date.now();
926
+ return;
927
+ }
928
+ }
929
+ // 是否选择数字块
930
+ let selectKey = dateMaskedFormat[selectionStart];
931
+ if (!parseInputKayMaps[selectKey]) {
932
+ selectKey = dateMaskedFormat[selectionStart - 1];
933
+ }
934
+ if (selectKey) {
935
+ evnt.preventDefault();
936
+ const skRest = dateMaskedFormat.match(new RegExp(selectKey + '+'));
937
+ if (skRest) {
938
+ const chunkFormat = skRest[0] || '';
939
+ const chunkStartIndex = skRest.index || 0;
940
+ const chunkEndIndex = chunkStartIndex + chunkFormat.length;
941
+ targetElem.setSelectionRange(chunkStartIndex, chunkEndIndex);
942
+ internalData.isTriggerMasked = true;
943
+ internalData.laseFocusMasked = Date.now();
944
+ }
945
+ }
946
+ };
455
947
  const blurEvent = evnt => {
456
948
  const $datePanel = refDatePanel.value;
457
949
  const {
@@ -463,10 +955,15 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
463
955
  handleChange(value, evnt);
464
956
  }
465
957
  if (!reactData.visiblePanel) {
958
+ const {
959
+ inputLabel
960
+ } = internalData;
466
961
  reactData.isActivated = false;
467
962
  // 未打开面板时才校验
468
963
  if ($datePanel) {
469
- $datePanel.checkValue(reactData.inputLabel);
964
+ $datePanel.checkValue(inputLabel);
965
+ } else {
966
+ afterCheckValue(inputLabel);
470
967
  }
471
968
  }
472
969
  dispatchEvent('blur', {
@@ -477,7 +974,93 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
477
974
  $xeForm.triggerItemEvent(evnt, formItemInfo.itemConfig.field, value);
478
975
  }
479
976
  };
977
+ const focusEvent = evnt => {
978
+ const {
979
+ multiple,
980
+ editable,
981
+ maskedConfig
982
+ } = props;
983
+ const maskedOpts = computeMaskedOpts.value;
984
+ const popupOpts = computePopupOpts.value;
985
+ const {
986
+ trigger
987
+ } = popupOpts;
988
+ reactData.isActivated = true;
989
+ if (!trigger || trigger === 'default') {
990
+ datePickerOpenEvent(evnt);
991
+ setTimeout(() => {
992
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
993
+ handleMaskedSelectedDate(evnt, true);
994
+ }
995
+ }, 15);
996
+ } else if (trigger === 'icon') {
997
+ hidePanel();
998
+ setTimeout(() => {
999
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1000
+ handleMaskedSelectedDate(evnt, true);
1001
+ }
1002
+ }, 15);
1003
+ } else {
1004
+ if (editable && !multiple && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1005
+ handleMaskedSelectedDate(evnt, true);
1006
+ }
1007
+ }
1008
+ triggerEvent(evnt);
1009
+ };
1010
+ const clickEvent = evnt => {
1011
+ const {
1012
+ editable,
1013
+ maskedConfig
1014
+ } = props;
1015
+ const maskedOpts = computeMaskedOpts.value;
1016
+ if (editable && ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled)) {
1017
+ handleMaskedSelectedDate(evnt);
1018
+ }
1019
+ triggerEvent(evnt);
1020
+ };
480
1021
  const keydownEvent = evnt => {
1022
+ const {
1023
+ type,
1024
+ editable,
1025
+ maskedConfig
1026
+ } = props;
1027
+ const {
1028
+ visiblePanel
1029
+ } = reactData;
1030
+ const maskedOpts = computeMaskedOpts.value;
1031
+ const isUpArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_UP);
1032
+ const isDwArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_DOWN);
1033
+ const isLtArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_LEFT);
1034
+ const isRtArrow = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ARROW_RIGHT);
1035
+ const isEnter = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ENTER);
1036
+ if (editable) {
1037
+ if (isEnter) {
1038
+ const $datePanel = refDatePanel.value;
1039
+ const {
1040
+ inputLabel
1041
+ } = internalData;
1042
+ const targetElem = refInputTarget.value;
1043
+ if (visiblePanel) {
1044
+ hidePanel();
1045
+ }
1046
+ if ($datePanel) {
1047
+ $datePanel.checkValue(inputLabel);
1048
+ } else {
1049
+ afterCheckValue(inputLabel);
1050
+ }
1051
+ if (targetElem) {
1052
+ targetElem.blur();
1053
+ }
1054
+ } else if (maskedTypes.includes(type)) {
1055
+ if ((0, _utils.isEnableConf)(maskedConfig) || maskedOpts.enabled) {
1056
+ if (maskedOpts.isArrow && (isUpArrow || isDwArrow || isLtArrow || isRtArrow)) {
1057
+ handleArrowInputDate(evnt, isUpArrow, isDwArrow, isLtArrow, isRtArrow);
1058
+ } else if (maskedOpts.isMasked) {
1059
+ handleMaskedInputDate(evnt);
1060
+ }
1061
+ }
1062
+ }
1063
+ }
481
1064
  triggerEvent(evnt);
482
1065
  };
483
1066
  const keyupEvent = evnt => {
@@ -511,7 +1094,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
511
1094
  dispatchEvent('confirm', params, params.$event);
512
1095
  };
513
1096
  const panelRevertEvent = params => {
514
- reactData.inputLabel = params.label;
1097
+ handleInputLabel(params.label, true);
515
1098
  };
516
1099
  // 全局事件
517
1100
  const handleGlobalMousedownEvent = evnt => {
@@ -524,12 +1107,20 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
524
1107
  const panelWrapperElem = refPanelWrapper.value;
525
1108
  const isDisabled = computeIsDisabled.value;
526
1109
  if (!isDisabled && isActivated) {
527
- reactData.isActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
528
- if (!reactData.isActivated) {
1110
+ const currActivated = (0, _dom.getEventTargetNode)(evnt, el).flag || (0, _dom.getEventTargetNode)(evnt, panelWrapperElem).flag;
1111
+ if (currActivated !== isActivated) {
1112
+ reactData.isActivated = currActivated;
1113
+ }
1114
+ if (!currActivated) {
529
1115
  if (visiblePanel) {
530
1116
  hidePanel();
1117
+ const {
1118
+ inputLabel
1119
+ } = internalData;
531
1120
  if ($datePanel) {
532
- $datePanel.checkValue(reactData.inputLabel);
1121
+ $datePanel.checkValue(inputLabel);
1122
+ } else {
1123
+ afterCheckValue(inputLabel);
533
1124
  }
534
1125
  }
535
1126
  }
@@ -537,6 +1128,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
537
1128
  };
538
1129
  const handleGlobalKeydownEvent = evnt => {
539
1130
  const {
1131
+ isActivated,
540
1132
  visiblePanel
541
1133
  } = reactData;
542
1134
  const isDisabled = computeIsDisabled.value;
@@ -544,7 +1136,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
544
1136
  const isTab = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.TAB);
545
1137
  const isEsc = _ui.globalEvents.hasKey(evnt, _ui.GLOBAL_EVENT_KEYS.ESCAPE);
546
1138
  if (isTab) {
547
- reactData.isActivated = false;
1139
+ if (isActivated) {
1140
+ reactData.isActivated = false;
1141
+ }
548
1142
  }
549
1143
  if (visiblePanel) {
550
1144
  if (isEsc || isTab) {
@@ -583,7 +1177,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
583
1177
  }
584
1178
  if (visiblePanel || isActivated) {
585
1179
  if ($datePanel) {
586
- $datePanel.checkValue(reactData.inputLabel);
1180
+ $datePanel.checkValue(internalData.inputLabel);
587
1181
  }
588
1182
  const targetElem = refInputTarget.value;
589
1183
  if (targetElem) {
@@ -618,6 +1212,9 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
618
1212
  } = reactData;
619
1213
  const targetElem = refInputTarget.value;
620
1214
  const panelElem = refInputPanel.value;
1215
+ if (!panelElem) {
1216
+ return (0, _vue.nextTick)();
1217
+ }
621
1218
  const btnTransfer = computeBtnTransfer.value;
622
1219
  const popupOpts = computePopupOpts.value;
623
1220
  const handleStyle = () => {
@@ -667,17 +1264,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
667
1264
  }
668
1265
  };
669
1266
  const clickIconEvent = evnt => {
1267
+ const {
1268
+ visiblePanel
1269
+ } = reactData;
670
1270
  const popupOpts = computePopupOpts.value;
671
1271
  const {
672
1272
  trigger
673
1273
  } = popupOpts;
674
1274
  if (!trigger || trigger === 'default' || trigger === 'icon') {
675
- datePickerOpenEvent(evnt);
1275
+ if (visiblePanel) {
1276
+ hidePanel();
1277
+ } else {
1278
+ datePickerOpenEvent(evnt);
1279
+ }
676
1280
  }
677
1281
  };
678
- const clickEvent = evnt => {
679
- triggerEvent(evnt);
680
- };
681
1282
  const handleShortcutEvent = ({
682
1283
  option,
683
1284
  $event
@@ -728,7 +1329,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
728
1329
  break;
729
1330
  }
730
1331
  default:
731
- (0, _log.errLog)('vxe.error.notCommands', [`[date-picker] ${code}`]);
1332
+ errLog('vxe.error.notCommands', [code]);
732
1333
  break;
733
1334
  }
734
1335
  }
@@ -802,6 +1403,10 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
802
1403
  return (0, _ui.renderEmptyElement)($xeDatePicker);
803
1404
  };
804
1405
  const renderPanel = () => {
1406
+ const popupOpts = computePopupOpts.value;
1407
+ if (popupOpts.enabled === false) {
1408
+ return (0, _ui.renderEmptyElement)($xeDatePicker);
1409
+ }
805
1410
  const {
806
1411
  type,
807
1412
  multiple,
@@ -823,7 +1428,6 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
823
1428
  const isDateTimeType = computeIsDateTimeType.value;
824
1429
  const shortcutList = computeShortcutList.value;
825
1430
  const timeOpts = computeTimeOpts.value;
826
- const popupOpts = computePopupOpts.value;
827
1431
  const {
828
1432
  position
829
1433
  } = shortcutOpts;
@@ -976,10 +1580,13 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
976
1580
  } = props;
977
1581
  const {
978
1582
  inputValue,
979
- inputLabel,
980
1583
  visiblePanel,
981
- isActivated
1584
+ isActivated,
1585
+ labelFlag
982
1586
  } = reactData;
1587
+ const {
1588
+ inputLabel
1589
+ } = internalData;
983
1590
  const vSize = computeSize.value;
984
1591
  const isDisabled = computeIsDisabled.value;
985
1592
  const formReadonly = computeFormReadonly.value;
@@ -1012,7 +1619,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1012
1619
  }, [(0, _vue.h)('input', {
1013
1620
  ref: refInputTarget,
1014
1621
  class: 'vxe-date-picker--inner',
1015
- value: inputLabel,
1622
+ value: labelFlag ? inputLabel : '',
1016
1623
  name,
1017
1624
  type: 'text',
1018
1625
  placeholder: inpPlaceholder,
@@ -1031,7 +1638,7 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1031
1638
  renderPanel()]);
1032
1639
  };
1033
1640
  (0, _vue.watch)(computePanelLabel, val => {
1034
- reactData.inputLabel = val;
1641
+ handleInputLabel(val, true);
1035
1642
  });
1036
1643
  (0, _vue.watch)(() => props.modelValue, () => {
1037
1644
  updateModelValue();
@@ -1043,6 +1650,21 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
1043
1650
  _ui.globalEvents.on($xeDatePicker, 'blur', handleGlobalBlurEvent);
1044
1651
  _ui.globalEvents.on($xeDatePicker, 'resize', handleGlobalResizeEvent);
1045
1652
  });
1653
+ (0, _vue.onMounted)(() => {
1654
+ const {
1655
+ type,
1656
+ multiple,
1657
+ maskedConfig
1658
+ } = props;
1659
+ if ((0, _utils.isEnableConf)(maskedConfig)) {
1660
+ if (multiple) {
1661
+ errLog('vxe.error.notSupportProp', ['multiple', 'control-config.enabled=true', 'control-config.enabled=false']);
1662
+ }
1663
+ if (!maskedTypes.includes(type)) {
1664
+ warnLog('vxe.error.notSupportProp', ['control-config.enabled=true', `type=${type}`, `type=${maskedTypes.join('|')}`]);
1665
+ }
1666
+ }
1667
+ });
1046
1668
  (0, _vue.onUnmounted)(() => {
1047
1669
  _ui.globalEvents.off($xeDatePicker, 'mousewheel');
1048
1670
  _ui.globalEvents.off($xeDatePicker, 'mousedown');