vxe-pc-ui 3.15.22 → 3.15.24

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 (52) hide show
  1. package/es/date-panel/src/date-panel.js +34 -14
  2. package/es/date-panel/src/util.js +30 -3
  3. package/es/date-picker/src/date-picker.js +1 -1
  4. package/es/date-range-picker/src/date-range-picker.js +236 -134
  5. package/es/icon/style.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/tooltip/src/tooltip.js +34 -21
  9. package/es/ui/index.js +1 -1
  10. package/es/ui/src/log.js +1 -1
  11. package/lib/date-panel/src/date-panel.js +46 -15
  12. package/lib/date-panel/src/date-panel.min.js +1 -1
  13. package/lib/date-panel/src/util.js +31 -5
  14. package/lib/date-panel/src/util.min.js +1 -1
  15. package/lib/date-picker/src/date-picker.js +1 -1
  16. package/lib/date-picker/src/date-picker.min.js +1 -1
  17. package/lib/date-range-picker/src/date-range-picker.js +259 -142
  18. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  19. package/lib/icon/style/style.css +1 -1
  20. package/lib/icon/style/style.min.css +1 -1
  21. package/lib/index.umd.js +381 -192
  22. package/lib/index.umd.min.js +1 -1
  23. package/lib/style.css +1 -1
  24. package/lib/style.min.css +1 -1
  25. package/lib/tooltip/src/tooltip.js +36 -21
  26. package/lib/tooltip/src/tooltip.min.js +1 -1
  27. package/lib/ui/index.js +1 -1
  28. package/lib/ui/index.min.js +1 -1
  29. package/lib/ui/src/log.js +1 -1
  30. package/lib/ui/src/log.min.js +1 -1
  31. package/package.json +1 -1
  32. package/packages/date-panel/src/date-panel.ts +38 -15
  33. package/packages/date-panel/src/util.ts +31 -4
  34. package/packages/date-picker/src/date-picker.ts +1 -1
  35. package/packages/date-range-picker/src/date-range-picker.ts +238 -134
  36. package/packages/tooltip/src/tooltip.ts +41 -20
  37. package/types/components/date-panel.d.ts +15 -2
  38. package/types/components/date-range-picker.d.ts +5 -3
  39. package/types/components/tooltip.d.ts +1 -1
  40. package/types/ui/commands.d.ts +3 -3
  41. /package/es/icon/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
  42. /package/es/icon/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
  43. /package/es/icon/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
  44. /package/es/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
  45. /package/es/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
  46. /package/es/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
  47. /package/lib/icon/style/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
  48. /package/lib/icon/style/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
  49. /package/lib/icon/style/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
  50. /package/lib/{iconfont.1783065884505.ttf → iconfont.1783233735491.ttf} +0 -0
  51. /package/lib/{iconfont.1783065884505.woff → iconfont.1783233735491.woff} +0 -0
  52. /package/lib/{iconfont.1783065884505.woff2 → iconfont.1783233735491.woff2} +0 -0
@@ -28,6 +28,27 @@ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" !=
28
28
  function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
29
29
  var _createComponentLog = (0, _log.createComponentLog)('date-range-picker'),
30
30
  errLog = _createComponentLog.errLog;
31
+ function createReactData() {
32
+ return {
33
+ initialized: false,
34
+ panelIndex: 0,
35
+ visiblePanel: false,
36
+ isAniVisible: false,
37
+ panelStyle: {},
38
+ panelPlacement: '',
39
+ isActivated: false,
40
+ selectStValue: '',
41
+ selectEdValue: '',
42
+ paneStartVal: '',
43
+ paneEndVal: ''
44
+ };
45
+ }
46
+ function createInternalData() {
47
+ return {
48
+ // selectStatus: false
49
+ // hpTimeout: undefined
50
+ };
51
+ }
31
52
  var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defineVxeComponent)({
32
53
  name: 'VxeDateRangePicker',
33
54
  mixins: [_ui.globalMixins.sizeMixin],
@@ -188,26 +209,11 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
188
209
  },
189
210
  data: function data() {
190
211
  var xID = _xeUtils.default.uniqueId();
191
- var reactData = {
192
- initialized: false,
193
- panelIndex: 0,
194
- visiblePanel: false,
195
- isAniVisible: false,
196
- panelStyle: {},
197
- panelPlacement: '',
198
- isActivated: false,
199
- startValue: '',
200
- endValue: ''
201
- };
202
- var internalData = {
203
- // selectStatus: false
204
- // hpTimeout: undefined
205
- };
206
- return {
212
+ var reactData = createReactData();
213
+ return Object.assign(Object.assign({}, {}), {
207
214
  xID: xID,
208
- reactData: reactData,
209
- internalData: internalData
210
- };
215
+ reactData: reactData
216
+ });
211
217
  },
212
218
  computed: Object.assign(Object.assign({}, {}), {
213
219
  computeBtnTransfer: function computeBtnTransfer() {
@@ -381,9 +387,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
381
387
  computePanelLabelObj: function computePanelLabelObj() {
382
388
  var $xeDateRangePicker = this;
383
389
  var reactData = $xeDateRangePicker.reactData;
384
- var startValue = reactData.startValue,
385
- endValue = reactData.endValue;
386
- var vals = startValue || endValue ? [startValue || '', endValue || ''] : [];
390
+ var selectStValue = reactData.selectStValue,
391
+ selectEdValue = reactData.selectEdValue;
392
+ var vals = selectStValue || selectEdValue ? [selectStValue || '', selectEdValue || ''] : [];
387
393
  return $xeDateRangePicker.formatRangeLabel(vals);
388
394
  },
389
395
  computeInputLabel: function computeInputLabel() {
@@ -441,8 +447,9 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
441
447
  var $xeDateRangePicker = this;
442
448
  var props = $xeDateRangePicker;
443
449
  var modelValue = props.value,
444
- valueType = props.valueType;
445
- var isArr = _xeUtils.default.isArray(modelValue);
450
+ valueType = props.valueType,
451
+ valueFormat = props.valueFormat;
452
+ var isArr = valueFormat === 'date' || _xeUtils.default.isArray(modelValue);
446
453
  if (valueType) {
447
454
  switch (valueType) {
448
455
  case 'array':
@@ -454,7 +461,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
454
461
  }
455
462
  }
456
463
  if (sValue || eValue) {
457
- var rest = [sValue || '', eValue || ''];
464
+ var rest = [sValue || null, eValue || null];
458
465
  if (isArr) {
459
466
  return rest;
460
467
  }
@@ -537,19 +544,19 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
537
544
  restObj = $xeDateRangePicker.paraeUpdateModel();
538
545
  }
539
546
  }
540
- reactData.startValue = restObj.sValue;
541
- reactData.endValue = restObj.eValue;
547
+ reactData.selectStValue = restObj.sValue;
548
+ reactData.selectEdValue = restObj.eValue;
542
549
  },
543
550
  triggerEvent: function triggerEvent(evnt) {
544
551
  var $xeDateRangePicker = this;
545
552
  var reactData = $xeDateRangePicker.reactData;
546
- var startValue = reactData.startValue,
547
- endValue = reactData.endValue;
548
- var value = $xeDateRangePicker.getRangeValue(startValue, endValue);
553
+ var selectStValue = reactData.selectStValue,
554
+ selectEdValue = reactData.selectEdValue;
555
+ var value = $xeDateRangePicker.getRangeValue(selectStValue, selectEdValue);
549
556
  $xeDateRangePicker.dispatchEvent(evnt.type, {
550
557
  value: value,
551
- startValue: startValue,
552
- endValue: endValue
558
+ startValue: selectStValue,
559
+ endValue: selectEdValue
553
560
  }, evnt);
554
561
  },
555
562
  handleChange: function handleChange(sValue, eValue, evnt) {
@@ -558,19 +565,49 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
558
565
  var reactData = $xeDateRangePicker.reactData;
559
566
  var $xeForm = $xeDateRangePicker.$xeForm;
560
567
  var formItemInfo = $xeDateRangePicker.formItemInfo;
561
- var modelValue = props.value;
562
- reactData.startValue = sValue;
563
- reactData.endValue = eValue;
564
- var value = $xeDateRangePicker.getRangeValue(sValue, eValue);
565
- var isFinish = sValue && eValue || !sValue && !eValue;
566
- $xeDateRangePicker.emitModel(value);
567
- $xeDateRangePicker.$emit('update:startValue', sValue || '');
568
- $xeDateRangePicker.$emit('update:endValue', eValue || '');
568
+ var type = props.type,
569
+ modelValue = props.value,
570
+ valueFormat = props.valueFormat;
571
+ var dateValueFormat = $xeDateRangePicker.computeDateValueFormat;
572
+ var startRest = sValue;
573
+ var endRest = eValue;
574
+ if ((0, _util.hasTimestampValueType)(valueFormat)) {
575
+ if (startRest) {
576
+ var dateVal = (0, _util.parseDateValue)(startRest, type, {
577
+ valueFormat: dateValueFormat
578
+ });
579
+ startRest = dateVal ? dateVal.getTime() : null;
580
+ }
581
+ if (endRest) {
582
+ var _dateVal = (0, _util.parseDateValue)(endRest, type, {
583
+ valueFormat: dateValueFormat
584
+ });
585
+ endRest = _dateVal ? _dateVal.getTime() : null;
586
+ }
587
+ } else if ((0, _util.hasDateValueType)(valueFormat)) {
588
+ if (startRest) {
589
+ startRest = (0, _util.parseDateValue)(startRest, type, {
590
+ valueFormat: dateValueFormat
591
+ });
592
+ }
593
+ if (endRest) {
594
+ endRest = (0, _util.parseDateValue)(endRest, type, {
595
+ valueFormat: dateValueFormat
596
+ });
597
+ }
598
+ }
599
+ reactData.selectStValue = startRest;
600
+ reactData.selectEdValue = endRest;
601
+ var value = $xeDateRangePicker.getRangeValue(startRest, endRest);
602
+ var isFinish = startRest && endRest || !startRest && !endRest;
603
+ $xeDateRangePicker.$emit('update:modelValue', value);
604
+ $xeDateRangePicker.$emit('update:startValue', startRest || '');
605
+ $xeDateRangePicker.$emit('update:endValue', endRest || '');
569
606
  if (_xeUtils.default.toValueString(modelValue) !== value) {
570
607
  $xeDateRangePicker.dispatchEvent('change', {
571
608
  value: value,
572
- startValue: sValue,
573
- endValue: eValue,
609
+ startValue: startRest,
610
+ endValue: endRest,
574
611
  isFinish: isFinish
575
612
  }, evnt);
576
613
  // 自动更新校验状态
@@ -604,13 +641,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
604
641
  var reactData = $xeDateRangePicker.reactData;
605
642
  var isDisabled = $xeDateRangePicker.computeIsDisabled;
606
643
  if (!isDisabled) {
607
- var startValue = reactData.startValue,
608
- endValue = reactData.endValue;
609
- var value = $xeDateRangePicker.getRangeValue(startValue, endValue);
644
+ var selectStValue = reactData.selectStValue,
645
+ selectEdValue = reactData.selectEdValue;
646
+ var value = $xeDateRangePicker.getRangeValue(selectStValue, selectEdValue);
610
647
  $xeDateRangePicker.dispatchEvent('prefix-click', {
611
648
  value: value,
612
- startValue: startValue,
613
- endValue: endValue
649
+ startValue: selectStValue,
650
+ endValue: selectEdValue
614
651
  }, evnt);
615
652
  }
616
653
  },
@@ -659,8 +696,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
659
696
  var date = _ref.date;
660
697
  var $xeDateRangePicker = this;
661
698
  var reactData = $xeDateRangePicker.reactData;
662
- var startValue = reactData.startValue;
663
- var endValue = reactData.endValue;
699
+ var startValue = reactData.selectStValue;
700
+ var endValue = reactData.selectEdValue;
664
701
  if (startValue && endValue) {
665
702
  var currTime = date.getTime();
666
703
  var startTime = _xeUtils.default.toStringDate(startValue).getTime();
@@ -677,18 +714,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
677
714
  var reactData = $xeDateRangePicker.reactData;
678
715
  var internalData = $xeDateRangePicker.internalData;
679
716
  var autoClose = props.autoClose;
680
- var startValue = reactData.startValue,
681
- endValue = reactData.endValue;
717
+ var selectStValue = reactData.selectStValue,
718
+ selectEdValue = reactData.selectEdValue;
682
719
  var selectStatus = internalData.selectStatus;
683
720
  var isDatePickerType = $xeDateRangePicker.computeIsDatePickerType;
684
721
  if (autoClose) {
685
722
  if (selectStatus && isDatePickerType) {
686
- if (startValue && endValue) {
723
+ if (selectStValue && selectEdValue) {
687
724
  $xeDateRangePicker.hidePanel();
688
725
  }
689
726
  }
690
727
  } else {
691
- if (startValue && endValue) {
728
+ if (selectStValue && selectEdValue) {
692
729
  internalData.selectStatus = false;
693
730
  }
694
731
  }
@@ -698,13 +735,13 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
698
735
  var reactData = $xeDateRangePicker.reactData;
699
736
  var isDisabled = $xeDateRangePicker.computeIsDisabled;
700
737
  if (!isDisabled) {
701
- var startValue = reactData.startValue,
702
- endValue = reactData.endValue;
703
- var value = $xeDateRangePicker.getRangeValue(startValue, endValue);
738
+ var selectStValue = reactData.selectStValue,
739
+ selectEdValue = reactData.selectEdValue;
740
+ var value = $xeDateRangePicker.getRangeValue(selectStValue, selectEdValue);
704
741
  $xeDateRangePicker.dispatchEvent('suffix-click', {
705
742
  value: value,
706
- startValue: startValue,
707
- endValue: endValue
743
+ startValue: selectStValue,
744
+ endValue: selectEdValue
708
745
  }, evnt);
709
746
  }
710
747
  },
@@ -713,20 +750,20 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
713
750
  var reactData = $xeDateRangePicker.reactData;
714
751
  var $xeForm = $xeDateRangePicker.$xeForm;
715
752
  var formItemInfo = $xeDateRangePicker.formItemInfo;
716
- var startValue = reactData.startValue,
717
- endValue = reactData.endValue;
753
+ var selectStValue = reactData.selectStValue,
754
+ selectEdValue = reactData.selectEdValue;
718
755
  var inpImmediate = $xeDateRangePicker.computeInpImmediate;
719
756
  var value = '';
720
757
  if (!inpImmediate) {
721
- $xeDateRangePicker.handleChange(startValue, endValue, evnt);
758
+ $xeDateRangePicker.handleChange(selectStValue, selectEdValue, evnt);
722
759
  }
723
760
  if (!reactData.visiblePanel) {
724
761
  reactData.isActivated = false;
725
762
  }
726
763
  $xeDateRangePicker.dispatchEvent('blur', {
727
764
  value: value,
728
- startValue: startValue,
729
- endValue: endValue
765
+ startValue: selectStValue,
766
+ endValue: selectEdValue
730
767
  }, evnt);
731
768
  // 自动更新校验状态
732
769
  if ($xeForm && formItemInfo) {
@@ -769,22 +806,30 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
769
806
  var internalData = $xeDateRangePicker.internalData;
770
807
  var selectStatus = internalData.selectStatus;
771
808
  var value = params.value,
809
+ currValue = params.currValue,
772
810
  $event = params.$event;
773
- var endValue = selectStatus ? reactData.endValue : '';
774
- $xeDateRangePicker.handleChange(value, endValue, $event);
811
+ var paneVals = value ? _xeUtils.default.isString(value) ? value.split(',') : [value] : [];
812
+ var startValue = '';
813
+ var endValue = '';
814
+ if (selectStatus) {
815
+ startValue = paneVals[0];
816
+ if (paneVals[1]) {
817
+ endValue = paneVals[1];
818
+ } else {
819
+ endValue = reactData.selectEdValue;
820
+ }
821
+ } else {
822
+ startValue = currValue || _xeUtils.default.last(paneVals);
823
+ }
824
+ reactData.paneEndVal = [startValue, endValue].join(',');
825
+ reactData.paneStartVal = [startValue, endValue].join(',');
826
+ $xeDateRangePicker.handleChange(startValue, endValue, $event);
775
827
  $xeDateRangePicker.handleSelectClose();
776
828
  if (!selectStatus) {
777
829
  internalData.selectStatus = true;
778
830
  }
779
831
  $xeDateRangePicker.$nextTick(function () {
780
- var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
781
- var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
782
- if ($startDatePanel && $endDatePanel) {
783
- var startValue = $startDatePanel.getModelValue();
784
- if (!endValue && startValue) {
785
- $endDatePanel.setPanelDate(_xeUtils.default.toStringDate(startValue));
786
- }
787
- }
832
+ $xeDateRangePicker.handleUpdateStartPanelDate();
788
833
  });
789
834
  },
790
835
  endPanelChangeEvent: function endPanelChangeEvent(params) {
@@ -793,90 +838,147 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
793
838
  var internalData = $xeDateRangePicker.internalData;
794
839
  var selectStatus = internalData.selectStatus;
795
840
  var value = params.value,
841
+ currValue = params.currValue,
796
842
  $event = params.$event;
797
- var startValue = selectStatus ? reactData.startValue : '';
798
- $xeDateRangePicker.handleChange(startValue, value, $event);
843
+ var paneVals = value ? _xeUtils.default.isString(value) ? value.split(',') : [value] : [];
844
+ var startValue = '';
845
+ var endValue = '';
846
+ if (selectStatus) {
847
+ endValue = paneVals[0];
848
+ if (paneVals[1]) {
849
+ startValue = paneVals[0];
850
+ endValue = paneVals[1];
851
+ } else {
852
+ startValue = reactData.selectStValue;
853
+ }
854
+ } else {
855
+ endValue = currValue || _xeUtils.default.last(paneVals);
856
+ }
857
+ reactData.paneEndVal = [startValue, endValue].join(',');
858
+ reactData.paneStartVal = [startValue, endValue].join(',');
859
+ $xeDateRangePicker.handleChange(startValue, endValue, $event);
799
860
  $xeDateRangePicker.handleSelectClose();
800
861
  if (!selectStatus) {
801
862
  internalData.selectStatus = true;
802
863
  }
803
864
  $xeDateRangePicker.$nextTick(function () {
804
- var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
805
- var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
806
- if ($startDatePanel && $endDatePanel) {
807
- var endValue = $endDatePanel.getModelValue();
808
- if (!startValue && endValue) {
809
- $startDatePanel.setPanelDate(_xeUtils.default.toStringDate(endValue));
810
- }
811
- }
865
+ $xeDateRangePicker.handleUpdateEndPanelDate();
812
866
  });
813
867
  },
814
- startPanelDateBtnChangeEvent: function startPanelDateBtnChangeEvent(params) {
868
+ handleUpdateStartPanelDate: function handleUpdateStartPanelDate() {
869
+ var $xeDateRangePicker = this;
870
+ var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
871
+ var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
872
+ if (!$startDatePanel || !$endDatePanel) {
873
+ return;
874
+ }
875
+ var startPanelDate = $startDatePanel.getPanelDate();
876
+ var endPanelDate = $endDatePanel.getPanelDate();
877
+ if (!startPanelDate || !endPanelDate) {
878
+ return;
879
+ }
880
+ var viewType = $startDatePanel.getViewType();
881
+ var startYear = startPanelDate.getFullYear();
882
+ var startMonth = startPanelDate.getMonth();
883
+ var endYear = endPanelDate.getFullYear();
884
+ var endMonth = endPanelDate.getMonth();
885
+ switch (viewType) {
886
+ case 'day':
887
+ case 'date':
888
+ case 'week':
889
+ {
890
+ if (endYear <= startYear && endMonth <= startMonth) {
891
+ $endDatePanel.setPanelDate((0, _util.getNextMonth)(startPanelDate));
892
+ }
893
+ break;
894
+ }
895
+ }
896
+ },
897
+ startPanelDateBtnChangeEvent: function startPanelDateBtnChangeEvent() {
815
898
  var $xeDateRangePicker = this;
816
899
  var props = $xeDateRangePicker;
817
900
  var linkedPanels = props.linkedPanels;
901
+ var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
902
+ var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
903
+ if (!$startDatePanel || !$endDatePanel) {
904
+ return;
905
+ }
906
+ var startPanelDate = $startDatePanel.getPanelDate();
907
+ var endPanelDate = $endDatePanel.getPanelDate();
908
+ if (!startPanelDate || !endPanelDate) {
909
+ return;
910
+ }
911
+ var viewType = $startDatePanel.getViewType();
818
912
  if (linkedPanels) {
819
- var viewType = params.viewType;
820
- var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
821
- var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
822
- if (!$startDatePanel || !$endDatePanel) {
823
- return;
824
- }
825
- var startPanelDate = $startDatePanel.getPanelDate();
826
- if (!startPanelDate) {
827
- return;
828
- }
829
- var endYear = startPanelDate.getFullYear();
830
- var endMonth = startPanelDate.getMonth();
831
913
  switch (viewType) {
832
914
  case 'day':
833
915
  case 'date':
834
916
  case 'week':
835
917
  {
836
- if (endMonth < 11) {
837
- startPanelDate.setMonth(endMonth + 1);
838
- } else {
839
- startPanelDate.setFullYear(endYear + 1);
840
- startPanelDate.setMonth(0);
841
- }
842
- $endDatePanel.setPanelDate(startPanelDate);
918
+ $endDatePanel.setPanelDate((0, _util.getNextMonth)(startPanelDate));
843
919
  break;
844
920
  }
845
921
  }
922
+ } else {
923
+ $xeDateRangePicker.handleUpdateStartPanelDate();
924
+ }
925
+ },
926
+ handleUpdateEndPanelDate: function handleUpdateEndPanelDate() {
927
+ var $xeDateRangePicker = this;
928
+ var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
929
+ var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
930
+ if (!$startDatePanel || !$endDatePanel) {
931
+ return;
932
+ }
933
+ var startPanelDate = $startDatePanel.getPanelDate();
934
+ var endPanelDate = $endDatePanel.getPanelDate();
935
+ if (!startPanelDate || !endPanelDate) {
936
+ return;
937
+ }
938
+ var viewType = $endDatePanel.getViewType();
939
+ var startYear = startPanelDate.getFullYear();
940
+ var startMonth = startPanelDate.getMonth();
941
+ var endYear = endPanelDate.getFullYear();
942
+ var endMonth = endPanelDate.getMonth();
943
+ switch (viewType) {
944
+ case 'day':
945
+ case 'date':
946
+ case 'week':
947
+ {
948
+ if (startYear >= endYear && startMonth >= endMonth) {
949
+ $startDatePanel.setPanelDate((0, _util.getPrevMonth)(endPanelDate));
950
+ }
951
+ break;
952
+ }
846
953
  }
847
954
  },
848
- endPanelDateBtnChangeEvent: function endPanelDateBtnChangeEvent(params) {
955
+ endPanelDateBtnChangeEvent: function endPanelDateBtnChangeEvent() {
849
956
  var $xeDateRangePicker = this;
850
957
  var props = $xeDateRangePicker;
851
958
  var linkedPanels = props.linkedPanels;
959
+ var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
960
+ var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
961
+ if (!$startDatePanel || !$endDatePanel) {
962
+ return;
963
+ }
964
+ var startPanelDate = $startDatePanel.getPanelDate();
965
+ var endPanelDate = $endDatePanel.getPanelDate();
966
+ if (!startPanelDate || !endPanelDate) {
967
+ return;
968
+ }
969
+ var viewType = $endDatePanel.getViewType();
852
970
  if (linkedPanels) {
853
- var viewType = params.viewType;
854
- var $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel;
855
- var $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel;
856
- if (!$startDatePanel || !$endDatePanel) {
857
- return;
858
- }
859
- var endPanelDate = $endDatePanel.getPanelDate();
860
- if (!endPanelDate) {
861
- return;
862
- }
863
- var endYear = endPanelDate.getFullYear();
864
- var endMonth = endPanelDate.getMonth();
865
971
  switch (viewType) {
866
972
  case 'day':
867
973
  case 'date':
868
974
  case 'week':
869
975
  {
870
- if (endMonth) {
871
- endPanelDate.setMonth(endMonth - 1);
872
- } else {
873
- endPanelDate.setFullYear(endYear - 1);
874
- endPanelDate.setMonth(11);
875
- }
876
- $startDatePanel.setPanelDate(endPanelDate);
976
+ $startDatePanel.setPanelDate((0, _util.getPrevMonth)(endPanelDate));
877
977
  break;
878
978
  }
879
979
  }
980
+ } else {
981
+ $xeDateRangePicker.handleUpdateEndPanelDate();
880
982
  }
881
983
  },
882
984
  // 全局事件
@@ -1026,6 +1128,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1026
1128
  reactData.isAniVisible = true;
1027
1129
  setTimeout(function () {
1028
1130
  reactData.visiblePanel = true;
1131
+ $xeDateRangePicker.handleUpdateStartPanelDate();
1029
1132
  $xeDateRangePicker.updatePlacement();
1030
1133
  }, 10);
1031
1134
  $xeDateRangePicker.updateZindex();
@@ -1070,8 +1173,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1070
1173
  var autoClose = shortcutOpts.autoClose;
1071
1174
  var code = option.code,
1072
1175
  clickMethod = option.clickMethod;
1073
- var startValue = reactData.startValue;
1074
- var endValue = reactData.endValue;
1176
+ var startValue = reactData.selectStValue;
1177
+ var endValue = reactData.selectEdValue;
1075
1178
  var value = $xeDateRangePicker.getRangeValue(startValue, endValue);
1076
1179
  var shortcutParams = {
1077
1180
  $dateRangePicker: $xeDateRangePicker,
@@ -1130,8 +1233,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1130
1233
  setModelValue: function setModelValue(startValue, endValue) {
1131
1234
  var $xeDateRangePicker = this;
1132
1235
  var reactData = $xeDateRangePicker.reactData;
1133
- reactData.startValue = startValue || '';
1134
- reactData.endValue = endValue || '';
1236
+ reactData.selectStValue = startValue || '';
1237
+ reactData.selectEdValue = endValue || '';
1135
1238
  var value = $xeDateRangePicker.getRangeValue(startValue, endValue);
1136
1239
  $xeDateRangePicker.emitModel(value);
1137
1240
  },
@@ -1202,6 +1305,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1202
1305
  var type = props.type,
1203
1306
  separator = props.separator,
1204
1307
  autoClose = props.autoClose,
1308
+ valueFormat = props.valueFormat,
1205
1309
  showConfirmButton = props.showConfirmButton,
1206
1310
  showClearButton = props.showClearButton;
1207
1311
  var initialized = reactData.initialized,
@@ -1209,8 +1313,10 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1209
1313
  visiblePanel = reactData.visiblePanel,
1210
1314
  panelPlacement = reactData.panelPlacement,
1211
1315
  panelStyle = reactData.panelStyle,
1212
- startValue = reactData.startValue,
1213
- endValue = reactData.endValue;
1316
+ selectStValue = reactData.selectStValue,
1317
+ selectEdValue = reactData.selectEdValue,
1318
+ paneStartVal = reactData.paneStartVal,
1319
+ paneEndVal = reactData.paneEndVal;
1214
1320
  var vSize = $xeDateRangePicker.computeSize;
1215
1321
  var btnTransfer = $xeDateRangePicker.computeBtnTransfer;
1216
1322
  var shortcutOpts = $xeDateRangePicker.computeShortcutOpts;
@@ -1267,15 +1373,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1267
1373
  }, [h(_datePanel.default, {
1268
1374
  ref: 'refStartDatePanel',
1269
1375
  props: {
1270
- value: startValue,
1376
+ value: paneStartVal,
1377
+ multiple: true,
1378
+ valueSort: true,
1379
+ limitCount: 3,
1380
+ defaultMode: 'first',
1271
1381
  type: props.type,
1272
1382
  className: props.className,
1273
1383
  minDate: props.minDate,
1274
1384
  maxDate: props.maxDate,
1275
- endDate: endValue,
1276
1385
  startDay: props.startDay,
1277
1386
  labelFormat: props.labelFormat,
1278
- valueFormat: props.valueFormat,
1387
+ valueFormat: valueFormat === 'date' || valueFormat === 'timestamp' ? '' : valueFormat,
1279
1388
  timeFormat: props.timeFormat,
1280
1389
  defaultDate: sdDate,
1281
1390
  defaultTime: sdTime,
@@ -1294,15 +1403,18 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1294
1403
  }), h(_datePanel.default, {
1295
1404
  ref: 'refEndDatePanel',
1296
1405
  props: {
1297
- value: endValue,
1406
+ value: paneEndVal,
1407
+ multiple: true,
1408
+ valueSort: true,
1409
+ limitCount: 3,
1410
+ defaultMode: 'last',
1298
1411
  type: props.type,
1299
1412
  className: props.className,
1300
1413
  minDate: props.minDate,
1301
1414
  maxDate: props.maxDate,
1302
- startDate: startValue,
1303
1415
  startDay: props.startDay,
1304
1416
  labelFormat: props.labelFormat,
1305
- valueFormat: props.valueFormat,
1417
+ valueFormat: valueFormat === 'date' || valueFormat === 'timestamp' ? '' : valueFormat,
1306
1418
  timeFormat: props.timeFormat,
1307
1419
  defaultDate: edDate,
1308
1420
  defaultTime: edTime,
@@ -1329,7 +1441,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1329
1441
  }, [showClearBtn ? h(_button.default, {
1330
1442
  props: {
1331
1443
  size: 'mini',
1332
- disabled: !(startValue || endValue),
1444
+ disabled: !(selectStValue || selectEdValue),
1333
1445
  content: (0, _ui.getI18n)('vxe.button.clear')
1334
1446
  },
1335
1447
  on: {
@@ -1373,14 +1485,14 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1373
1485
  var slots = $xeDateRangePicker.$scopedSlots;
1374
1486
  var reactData = $xeDateRangePicker.reactData;
1375
1487
  var suffixIcon = props.suffixIcon;
1376
- var startValue = reactData.startValue,
1377
- endValue = reactData.endValue;
1488
+ var selectStValue = reactData.selectStValue,
1489
+ selectEdValue = reactData.selectEdValue;
1378
1490
  var suffixSlot = slots.suffix;
1379
1491
  var isDisabled = $xeDateRangePicker.computeIsDisabled;
1380
1492
  var isClearable = $xeDateRangePicker.computeIsClearable;
1381
1493
  return h('div', {
1382
1494
  class: ['vxe-date-range-picker--suffix', {
1383
- 'is--clear': isClearable && !isDisabled && (startValue || endValue)
1495
+ 'is--clear': isClearable && !isDisabled && (selectStValue || selectEdValue)
1384
1496
  }]
1385
1497
  }, [isClearable ? h('div', {
1386
1498
  class: 'vxe-date-range-picker--clear-icon',
@@ -1417,8 +1529,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1417
1529
  type = props.type,
1418
1530
  name = props.name,
1419
1531
  autoComplete = props.autoComplete;
1420
- var startValue = reactData.startValue,
1421
- endValue = reactData.endValue,
1532
+ var selectStValue = reactData.selectStValue,
1533
+ selectEdValue = reactData.selectEdValue,
1422
1534
  visiblePanel = reactData.visiblePanel,
1423
1535
  isActivated = reactData.isActivated;
1424
1536
  var vSize = $xeDateRangePicker.computeSize;
@@ -1437,7 +1549,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1437
1549
  var suffix = $xeDateRangePicker.renderSuffixIcon(h);
1438
1550
  return h('div', {
1439
1551
  ref: 'refElem',
1440
- class: ['vxe-date-range-picker', "type--".concat(type), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--prefix', !!prefix), 'is--suffix', !!suffix), 'is--visible', visiblePanel), 'is--disabled', isDisabled), 'is--active', isActivated), 'show--clear', isClearable && !isDisabled && (startValue || endValue))],
1552
+ class: ['vxe-date-range-picker', "type--".concat(type), className, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({}, "size--".concat(vSize), vSize), 'is--prefix', !!prefix), 'is--suffix', !!suffix), 'is--visible', visiblePanel), 'is--disabled', isDisabled), 'is--active', isActivated), 'show--clear', isClearable && !isDisabled && (selectStValue || selectEdValue))],
1441
1553
  attrs: {
1442
1554
  spellcheck: false
1443
1555
  }
@@ -1482,6 +1594,7 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1482
1594
  },
1483
1595
  created: function created() {
1484
1596
  var $xeDateRangePicker = this;
1597
+ $xeDateRangePicker.internalData = createInternalData();
1485
1598
  $xeDateRangePicker.updateModelValue(true);
1486
1599
  _ui.globalEvents.on($xeDateRangePicker, 'mousewheel', $xeDateRangePicker.handleGlobalMousewheelEvent);
1487
1600
  _ui.globalEvents.on($xeDateRangePicker, 'mousedown', $xeDateRangePicker.handleGlobalMousedownEvent);
@@ -1495,6 +1608,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1495
1608
  },
1496
1609
  beforeDestroy: function beforeDestroy() {
1497
1610
  var $xeDateRangePicker = this;
1611
+ var reactData = $xeDateRangePicker.reactData;
1612
+ var internalData = $xeDateRangePicker.internalData;
1498
1613
  var panelElem = $xeDateRangePicker.$refs.refInputPanel;
1499
1614
  if (panelElem && panelElem.parentNode) {
1500
1615
  panelElem.parentNode.removeChild(panelElem);
@@ -1504,6 +1619,8 @@ var _default2 = exports.default = /* define-vxe-component start */(0, _comp.defi
1504
1619
  _ui.globalEvents.off($xeDateRangePicker, 'mousedown');
1505
1620
  _ui.globalEvents.off($xeDateRangePicker, 'blur');
1506
1621
  _ui.globalEvents.off($xeDateRangePicker, 'resize');
1622
+ _xeUtils.default.assign(reactData, createReactData());
1623
+ _xeUtils.default.assign(internalData, createInternalData());
1507
1624
  },
1508
1625
  render: function render(h) {
1509
1626
  return this.renderVN(h);