vxe-pc-ui 3.15.24 → 3.15.26

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 (67) hide show
  1. package/es/date-panel/src/date-panel.js +63 -40
  2. package/es/date-panel/src/util.js +11 -1
  3. package/es/date-picker/src/date-picker.js +19 -12
  4. package/es/date-range-picker/src/date-range-picker.js +102 -19
  5. package/es/icon/style.css +1 -1
  6. package/es/list/src/list.js +560 -13
  7. package/es/list/src/util.js +8 -0
  8. package/es/list/style.css +10 -4
  9. package/es/list/style.min.css +1 -1
  10. package/es/style.css +1 -1
  11. package/es/style.min.css +1 -1
  12. package/es/ui/index.js +4 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-list/style.css +10 -4
  15. package/es/vxe-list/style.min.css +1 -1
  16. package/lib/date-panel/src/date-panel.js +65 -40
  17. package/lib/date-panel/src/date-panel.min.js +1 -1
  18. package/lib/date-panel/src/util.js +14 -2
  19. package/lib/date-panel/src/util.min.js +1 -1
  20. package/lib/date-picker/src/date-picker.js +19 -12
  21. package/lib/date-picker/src/date-picker.min.js +1 -1
  22. package/lib/date-range-picker/src/date-range-picker.js +111 -18
  23. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  24. package/lib/icon/style/style.css +1 -1
  25. package/lib/icon/style/style.min.css +1 -1
  26. package/lib/index.umd.js +863 -87
  27. package/lib/index.umd.min.js +1 -1
  28. package/lib/list/src/list.js +605 -11
  29. package/lib/list/src/list.min.js +1 -1
  30. package/lib/list/src/util.js +14 -0
  31. package/lib/list/src/util.min.js +1 -0
  32. package/lib/list/style/style.css +10 -4
  33. package/lib/list/style/style.min.css +1 -1
  34. package/lib/style.css +1 -1
  35. package/lib/style.min.css +1 -1
  36. package/lib/ui/index.js +4 -1
  37. package/lib/ui/index.min.js +1 -1
  38. package/lib/ui/src/log.js +1 -1
  39. package/lib/ui/src/log.min.js +1 -1
  40. package/lib/vxe-list/style/style.css +10 -4
  41. package/lib/vxe-list/style/style.min.css +1 -1
  42. package/package.json +1 -1
  43. package/packages/date-panel/src/date-panel.ts +65 -40
  44. package/packages/date-panel/src/util.ts +14 -2
  45. package/packages/date-picker/src/date-picker.ts +20 -12
  46. package/packages/date-range-picker/src/date-range-picker.ts +100 -19
  47. package/packages/list/src/list.ts +588 -13
  48. package/packages/list/src/util.ts +11 -0
  49. package/packages/ui/index.ts +3 -0
  50. package/styles/components/list.scss +8 -4
  51. package/types/components/date-panel.d.ts +3 -1
  52. package/types/components/date-range-picker.d.ts +2 -2
  53. package/types/components/list.d.ts +120 -4
  54. package/types/components/tree.d.ts +3 -7
  55. package/types/ui/menus.d.ts +13 -1
  56. /package/es/icon/{iconfont.1783233735491.ttf → iconfont.1783301643461.ttf} +0 -0
  57. /package/es/icon/{iconfont.1783233735491.woff → iconfont.1783301643461.woff} +0 -0
  58. /package/es/icon/{iconfont.1783233735491.woff2 → iconfont.1783301643461.woff2} +0 -0
  59. /package/es/{iconfont.1783233735491.ttf → iconfont.1783301643461.ttf} +0 -0
  60. /package/es/{iconfont.1783233735491.woff → iconfont.1783301643461.woff} +0 -0
  61. /package/es/{iconfont.1783233735491.woff2 → iconfont.1783301643461.woff2} +0 -0
  62. /package/lib/icon/style/{iconfont.1783233735491.ttf → iconfont.1783301643461.ttf} +0 -0
  63. /package/lib/icon/style/{iconfont.1783233735491.woff → iconfont.1783301643461.woff} +0 -0
  64. /package/lib/icon/style/{iconfont.1783233735491.woff2 → iconfont.1783301643461.woff2} +0 -0
  65. /package/lib/{iconfont.1783233735491.ttf → iconfont.1783301643461.ttf} +0 -0
  66. /package/lib/{iconfont.1783233735491.woff → iconfont.1783301643461.woff} +0 -0
  67. /package/lib/{iconfont.1783233735491.woff2 → iconfont.1783301643461.woff2} +0 -0
@@ -4,7 +4,7 @@ import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, getI18n, commands, globalEvents, createEvent, GLOBAL_EVENT_KEYS, globalMixins, renderEmptyElement } from '../../ui'
5
5
  import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
6
6
  import { updatePanelPlacement, getEventTargetNode } from '../../ui/src/dom'
7
- import { parseDateString, parseDateObj, getRangeDateByCode, handleValueFormat, hasTimestampValueType, hasDateValueType, parseDateValue, getPrevMonth, getNextMonth } from '../../date-panel/src/util'
7
+ import { parseDateString, parseDateObj, getRangeDateByCode, handleValueFormat, hasTimestampValueType, hasDateValueType, parseDateValue, getNextMonth, getPrevMonth, getNextYear, getPrevYear } from '../../date-panel/src/util'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
9
9
  import { createComponentLog } from '../../ui/src/log'
10
10
  import VxeDatePanelComponent from '../../date-panel/src/date-panel'
@@ -27,8 +27,8 @@ function createReactData (): DateRangePickerReactData {
27
27
  isActivated: false,
28
28
  selectStValue: '',
29
29
  selectEdValue: '',
30
- paneStartVal: '',
31
- paneEndVal: ''
30
+ paneStartVal: [],
31
+ paneEndVal: []
32
32
  }
33
33
  }
34
34
 
@@ -293,12 +293,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
293
293
  const { startValue, endValue } = props
294
294
  return `${startValue || ''}${endValue || ''}`
295
295
  },
296
- computeIsDateTimeType () {
296
+ computeIsTimeType () {
297
297
  const $xeDateRangePicker = this
298
298
  const props = $xeDateRangePicker
299
299
 
300
300
  const { type } = props
301
- return type === 'time' || type === 'datetime'
301
+ return type === 'time'
302
+ },
303
+ computeIsTimeOrDateTimeType () {
304
+ const $xeDateRangePicker = this
305
+ const props = $xeDateRangePicker
306
+
307
+ const { type } = props
308
+ const isTimeType = $xeDateRangePicker.computeIsTimeType
309
+ return isTimeType || type === 'datetime'
302
310
  },
303
311
  computeIsDatePickerType () {
304
312
  const $xeDateRangePicker = this
@@ -529,7 +537,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
529
537
  const props = $xeDateRangePicker
530
538
  const reactData = $xeDateRangePicker.reactData
531
539
 
532
- const { value: modelValue, startValue, endValue } = props
540
+ const { value: modelValue, startValue, endValue, valueFormat } = props
533
541
  let restObj: {
534
542
  sValue: string | Date | null
535
543
  eValue: string | Date | null
@@ -550,8 +558,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
550
558
  restObj = $xeDateRangePicker.paraeUpdateModel()
551
559
  }
552
560
  }
553
- reactData.selectStValue = restObj.sValue
554
- reactData.selectEdValue = restObj.eValue
561
+ let startRest: string | number | Date | null = restObj.sValue
562
+ let endRest: string | number | Date | null = restObj.eValue
563
+ if (valueFormat === 'timestamp') {
564
+ if (XEUtils.isString(startRest) && /^\d+$/.test(startRest)) {
565
+ startRest = Number(startRest)
566
+ }
567
+ if (XEUtils.isString(endRest) && /^\d+$/.test(endRest)) {
568
+ endRest = Number(endRest)
569
+ }
570
+ }
571
+ reactData.selectStValue = startRest
572
+ reactData.selectEdValue = endRest
573
+ reactData.paneEndVal = [startRest, endRest]
574
+ reactData.paneStartVal = [startRest, endRest]
555
575
  },
556
576
  triggerEvent (evnt: Event & { type: 'input' | 'change' | 'keydown' | 'keyup' | 'click' | 'focus' | 'blur' }) {
557
577
  const $xeDateRangePicker = this
@@ -758,12 +778,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
758
778
  confirmEvent (evnt: MouseEvent) {
759
779
  const $xeDateRangePicker = this
760
780
 
781
+ const isTimeType = $xeDateRangePicker.computeIsTimeType
761
782
  const $startDatePanel = $xeDateRangePicker.$refs.refStartDatePanel as VxeDatePanelConstructor
762
783
  const $endDatePanel = $xeDateRangePicker.$refs.refEndDatePanel as VxeDatePanelConstructor
763
784
  if ($startDatePanel && $endDatePanel) {
764
785
  const startValue = $startDatePanel.getModelValue()
765
786
  const endValue = $endDatePanel.getModelValue()
766
- if ((startValue && !endValue) || (!startValue && endValue)) {
787
+ if (isTimeType) {
788
+ $startDatePanel.confirmByEvent(evnt)
789
+ $endDatePanel.confirmByEvent(evnt)
790
+ } else if ((startValue && !endValue) || (!startValue && endValue)) {
767
791
  $xeDateRangePicker.handleChange('', '', evnt)
768
792
  } else {
769
793
  $startDatePanel.confirmByEvent(evnt)
@@ -794,11 +818,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
794
818
  } else {
795
819
  startValue = currValue || XEUtils.last(paneVals)
796
820
  }
797
- reactData.paneEndVal = [startValue, endValue].join(',')
798
- reactData.paneStartVal = [startValue, endValue].join(',')
821
+ reactData.paneEndVal = [startValue, endValue]
822
+ reactData.paneStartVal = [startValue, endValue]
799
823
  $xeDateRangePicker.handleChange(startValue, endValue, $event)
800
824
  $xeDateRangePicker.handleSelectClose()
801
- if (!selectStatus) {
825
+ if (selectStatus) {
826
+ if (startValue && endValue) {
827
+ internalData.selectStatus = false
828
+ }
829
+ } else {
802
830
  internalData.selectStatus = true
803
831
  }
804
832
  $xeDateRangePicker.$nextTick(() => {
@@ -826,11 +854,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
826
854
  } else {
827
855
  endValue = currValue || XEUtils.last(paneVals)
828
856
  }
829
- reactData.paneEndVal = [startValue, endValue].join(',')
830
- reactData.paneStartVal = [startValue, endValue].join(',')
857
+ reactData.paneEndVal = [startValue, endValue]
858
+ reactData.paneStartVal = [startValue, endValue]
831
859
  $xeDateRangePicker.handleChange(startValue, endValue, $event)
832
860
  $xeDateRangePicker.handleSelectClose()
833
- if (!selectStatus) {
861
+ if (selectStatus) {
862
+ if (startValue && endValue) {
863
+ internalData.selectStatus = false
864
+ }
865
+ } else {
834
866
  internalData.selectStatus = true
835
867
  }
836
868
  $xeDateRangePicker.$nextTick(() => {
@@ -864,6 +896,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
864
896
  }
865
897
  break
866
898
  }
899
+ case 'month':
900
+ case 'quarter': {
901
+ if (endYear <= startYear) {
902
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate))
903
+ }
904
+ break
905
+ }
906
+ case 'year': {
907
+ const yearList = $startDatePanel.computeYearList
908
+ if (yearList.some((item) => XEUtils.isDateSame(item.date, endPanelDate, 'yyyy'))) {
909
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length))
910
+ }
911
+ break
912
+ }
867
913
  }
868
914
  },
869
915
  startPanelDateBtnChangeEvent () {
@@ -890,6 +936,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
890
936
  $endDatePanel.setPanelDate(getNextMonth(startPanelDate))
891
937
  break
892
938
  }
939
+ case 'month':
940
+ case 'quarter': {
941
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate))
942
+ break
943
+ }
944
+ case 'year': {
945
+ const yearList = $startDatePanel.computeYearList
946
+ $endDatePanel.setPanelDate(getNextYear(startPanelDate, yearList.length))
947
+ break
948
+ }
893
949
  }
894
950
  } else {
895
951
  $xeDateRangePicker.handleUpdateStartPanelDate()
@@ -922,6 +978,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
922
978
  }
923
979
  break
924
980
  }
981
+ case 'month':
982
+ case 'quarter': {
983
+ if (startYear >= endYear) {
984
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate))
985
+ }
986
+ break
987
+ }
988
+ case 'year': {
989
+ const yearList = $endDatePanel.computeYearList
990
+ if (yearList.some((item) => XEUtils.isDateSame(item.date, startPanelDate, 'yyyy'))) {
991
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length))
992
+ }
993
+ break
994
+ }
925
995
  }
926
996
  },
927
997
  endPanelDateBtnChangeEvent () {
@@ -948,6 +1018,16 @@ export default /* define-vxe-component start */ defineVxeComponent({
948
1018
  $startDatePanel.setPanelDate(getPrevMonth(endPanelDate))
949
1019
  break
950
1020
  }
1021
+ case 'month':
1022
+ case 'quarter': {
1023
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate))
1024
+ break
1025
+ }
1026
+ case 'year': {
1027
+ const yearList = $endDatePanel.computeYearList
1028
+ $startDatePanel.setPanelDate(getPrevYear(endPanelDate, yearList.length))
1029
+ break
1030
+ }
951
1031
  }
952
1032
  } else {
953
1033
  $xeDateRangePicker.handleUpdateEndPanelDate()
@@ -1297,7 +1377,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
1297
1377
  const isClearable = $xeDateRangePicker.computeIsClearable
1298
1378
  const panelLabelObj = $xeDateRangePicker.computePanelLabelObj
1299
1379
  const shortcutList = $xeDateRangePicker.computeShortcutList
1300
- const isDateTimeType = $xeDateRangePicker.computeIsDateTimeType
1380
+ const isTimeType = $xeDateRangePicker.computeIsTimeType
1381
+ const isTimeOrDateTimeType = $xeDateRangePicker.computeIsTimeOrDateTimeType
1301
1382
  const defaultDates = $xeDateRangePicker.computeDefaultDates
1302
1383
  const defaultTimes = $xeDateRangePicker.computeDefaultTimes
1303
1384
  const timeOpts = $xeDateRangePicker.computeTimeOpts
@@ -1313,7 +1394,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1313
1394
  const [sdDate, edDate] = defaultDates
1314
1395
  const [sdTime, edTime] = defaultTimes
1315
1396
  const hasShortcutBtn = shortcutList.length > 0
1316
- const showConfirmBtn = (showConfirmButton === null ? (isDateTimeType || !autoClose) : showConfirmButton)
1397
+ const showConfirmBtn = (showConfirmButton === null ? (isTimeOrDateTimeType || !autoClose) : showConfirmButton)
1317
1398
  const showClearBtn = (showClearButton === null ? isClearable : showClearButton)
1318
1399
  return h('div', {
1319
1400
  ref: 'refInputPanel',
@@ -1367,7 +1448,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1367
1448
  ref: 'refStartDatePanel',
1368
1449
  props: {
1369
1450
  value: paneStartVal,
1370
- multiple: true,
1451
+ multiple: !isTimeType,
1371
1452
  valueSort: true,
1372
1453
  limitCount: 3,
1373
1454
  defaultMode: 'first',
@@ -1398,7 +1479,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1398
1479
  ref: 'refEndDatePanel',
1399
1480
  props: {
1400
1481
  value: paneEndVal,
1401
- multiple: true,
1482
+ multiple: !isTimeType,
1402
1483
  valueSort: true,
1403
1484
  limitCount: 3,
1404
1485
  defaultMode: 'last',