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
@@ -4,7 +4,6 @@ import { getConfig, getI18n, getIcon, globalEvents, createEvent, renderEmptyElem
4
4
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
5
5
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
6
6
  import { enNodeValue, deNodeValue } from './util'
7
- import { errLog } from '../../ui/src/log'
8
7
  import XEUtils from 'xe-utils'
9
8
  import VxeListComponent from '../../list/src/list'
10
9
  import VxeInputComponent from '../../input/src/input'
@@ -187,11 +186,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
187
186
  data () {
188
187
  const xID = XEUtils.uniqueId()
189
188
  const reactData = createReactData()
190
- const internalData = createInternalData()
191
189
  return {
190
+ ...({} as {
191
+ internalData: CascaderInternalData
192
+ }),
192
193
  xID,
193
- reactData,
194
- internalData
194
+ reactData
195
195
  }
196
196
  },
197
197
  computed: {
@@ -721,7 +721,6 @@ export default /* define-vxe-component start */ defineVxeComponent({
721
721
  const reactData = $xeCascader.reactData
722
722
  const internalData = $xeCascader.internalData
723
723
 
724
- const { nodeMaps } = internalData
725
724
  let fullList: any[] = internalData.afterVisibleList
726
725
  if (force) {
727
726
  // 更新数据,处理筛选和排序
@@ -730,19 +729,59 @@ export default /* define-vxe-component start */ defineVxeComponent({
730
729
  fullList = $xeCascader.handleTreeToList()
731
730
  }
732
731
  const treeList = fullList.slice(0)
733
- treeList.forEach((item, $index) => {
734
- const nodeid = $xeCascader.getNodeId(item)
735
- const itemRest = nodeMaps[nodeid]
736
- if (itemRest) {
737
- itemRest.$index = $index
738
- }
739
- })
740
732
  reactData.treeList = treeList
741
733
  },
734
+ /**
735
+ * 获取第一个拥有子节点的节点
736
+ */
737
+ handleHasChildNodeIds (treeList: any[], type: 'first' | 'last') {
738
+ const $xeCascader = this
739
+
740
+ const childrenField = $xeCascader.computeChildrenField
741
+ const mapChildrenField = $xeCascader.computeMapChildrenField
742
+ const treeOpts = $xeCascader.computeTreeOpts
743
+ const { transform } = treeOpts
744
+ const childField = transform ? mapChildrenField : childrenField
745
+ const nodeIds = []
746
+ let currList = treeList
747
+ while (currList.length) {
748
+ let targetNode = null
749
+ for (const item of currList) {
750
+ const kids = item[childField]
751
+ if (XEUtils.isArray(kids) && kids.length > 0) {
752
+ targetNode = item
753
+ break
754
+ }
755
+ }
756
+ if (targetNode) {
757
+ nodeIds.push($xeCascader.getNodeId(targetNode))
758
+ currList = targetNode[childField]
759
+ } else {
760
+ const endNode = XEUtils[type](currList)
761
+ nodeIds.push($xeCascader.getNodeId(endNode))
762
+ break
763
+ }
764
+ }
765
+ return nodeIds
766
+ },
742
767
  triggerSearchEvent: XEUtils.debounce(function (this: any) {
743
768
  const $xeCascader = this
769
+ const reactData = $xeCascader.reactData
770
+ const internalData = $xeCascader.internalData
744
771
 
745
772
  $xeCascader.handleData(true)
773
+ $xeCascader.updateModelChecked()
774
+ const filterOpts = $xeCascader.computeFilterOpts
775
+ const { autoExpandMode } = filterOpts
776
+ const { afterTreeList } = internalData
777
+ // 默认展开第
778
+ if (autoExpandMode === 'first' || autoExpandMode === 'last') {
779
+ const stItems = $xeCascader.handleHasChildNodeIds(afterTreeList, autoExpandMode)
780
+ reactData.currentItems = stItems
781
+ } else {
782
+ $xeCascader.handleCurrentItems()
783
+ }
784
+ $xeCascader.updateCurrentChunk()
746
785
  }, 350, { trailing: true }),
747
786
  loadData (list: any[]) {
748
787
  const $xeCascader = this
@@ -777,17 +816,20 @@ export default /* define-vxe-component start */ defineVxeComponent({
777
816
  const internalData = $xeCascader.internalData
778
817
 
779
818
  const { currentItems } = reactData
780
- const { treeFullData } = internalData
819
+ const { afterTreeList } = internalData
781
820
  const childrenField = $xeCascader.computeChildrenField
782
- const currentCunkList: any[][] = [treeFullData]
821
+ const mapChildrenField = $xeCascader.computeMapChildrenField
822
+ const treeOpts = $xeCascader.computeTreeOpts
823
+ const { transform } = treeOpts
824
+ const currentCunkList: any[][] = [afterTreeList]
783
825
  if (currentItems.length) {
784
826
  let chunkIndex = 0
785
827
  let stNodeid = currentItems[chunkIndex]
786
- let optList = treeFullData
828
+ let optList = afterTreeList
787
829
  while (stNodeid && optList && optList.length) {
788
830
  stNodeid = currentItems[chunkIndex++]
789
831
  const currOption = optList.find(item => stNodeid === $xeCascader.getNodeId(item))
790
- optList = currOption ? currOption[childrenField] : []
832
+ optList = currOption ? currOption[transform ? mapChildrenField : childrenField] : []
791
833
  if (!optList || !optList.length) {
792
834
  break
793
835
  }
@@ -801,7 +843,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
801
843
  const reactData = $xeCascader.reactData
802
844
  const internalData = $xeCascader.internalData
803
845
 
804
- const { treeFullData } = internalData
846
+ const { afterTreeList } = internalData
805
847
  const selectVals = $xeCascader.computeSelectVals
806
848
  const childrenField = $xeCascader.computeChildrenField
807
849
  const mapChildrenField = $xeCascader.computeMapChildrenField
@@ -811,7 +853,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
811
853
  const expandedMaps: Record<string, boolean> = {}
812
854
  if (selectVals.length) {
813
855
  const lastVal = enNodeValue(XEUtils.last(selectVals))
814
- const stRest = XEUtils.findTree(treeFullData, (item) => lastVal === $xeCascader.getNodeId(item), { children: transform ? mapChildrenField : childrenField })
856
+ const stRest = XEUtils.findTree(afterTreeList, (item) => lastVal === $xeCascader.getNodeId(item), { children: transform ? mapChildrenField : childrenField })
815
857
  if (stRest) {
816
858
  const { nodes } = stRest
817
859
  nodes.forEach(item => {
@@ -945,7 +987,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
945
987
  return { checkNodeKeys: checkKeys, checkNodes }
946
988
  })
947
989
  },
948
- clearCheckboxNode () {
990
+ clearSelectedNode () {
949
991
  const $xeCascader = this
950
992
  const reactData = $xeCascader.reactData
951
993
  const internalData = $xeCascader.internalData
@@ -953,6 +995,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
953
995
  internalData.indeterminateRowMaps = {}
954
996
  internalData.selectCheckboxMaps = {}
955
997
  reactData.updateCheckboxFlag++
998
+ reactData.selectRadioKey = null
956
999
  $xeCascader.updateCheckboxStatus()
957
1000
  return $xeCascader.$nextTick().then(() => {
958
1001
  return { checkNodeKeys: [], checkNodes: [] }
@@ -1009,7 +1052,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1009
1052
  const { $event } = params
1010
1053
  const { multiple, checkedClosable } = props
1011
1054
  const value = multiple ? [] : null
1012
- $xeCascader.clearCheckboxNode().then(() => {
1055
+ $xeCascader.clearSelectedNode().then(() => {
1013
1056
  if (checkedClosable) {
1014
1057
  $xeCascader.hideOptionPanel($event)
1015
1058
  }
@@ -1114,9 +1157,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
1114
1157
  const { nodeMaps } = internalData
1115
1158
  const radioOpts = $xeCascader.computeRadioOpts
1116
1159
  const childrenField = $xeCascader.computeChildrenField
1160
+ const mapChildrenField = $xeCascader.computeMapChildrenField
1161
+ const treeOpts = $xeCascader.computeTreeOpts
1162
+ const { transform } = treeOpts
1117
1163
  const { checkMode, checkMethod } = radioOpts
1118
1164
  const nodeid = $xeCascader.getNodeId(node)
1119
- const childList: any[] = node[childrenField]
1165
+ const childList: any[] = node[transform ? mapChildrenField : childrenField]
1120
1166
  const isExistChild = childList && childList.length > 0
1121
1167
  const nodeItem = nodeMaps[nodeid] || {}
1122
1168
  const nLevel = nodeItem.level
@@ -1292,7 +1338,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1292
1338
  const childRowList: any[][] = []
1293
1339
  XEUtils.eachTree(afterTreeList, (node) => {
1294
1340
  const nodeid = $xeCascader.getNodeId(node)
1295
- const childList = node[childrenField]
1341
+ const childList = node[transform ? mapChildrenField : childrenField]
1296
1342
  if (childList && childList.length && !childRowMaps[nodeid]) {
1297
1343
  childRowMaps[nodeid] = 1
1298
1344
  childRowList.unshift([node, nodeid, childList])
@@ -1395,7 +1441,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1395
1441
  const treeOpts = $xeCascader.computeTreeOpts
1396
1442
  const { transform } = treeOpts
1397
1443
  const nodeid = $xeCascader.getNodeId(node)
1398
- const childList: any[] = node[childrenField]
1444
+ const childList: any[] = node[transform ? mapChildrenField : childrenField]
1399
1445
  const isExistChild = childList && childList.length > 0
1400
1446
  const nodeItem = nodeMaps[nodeid] || {}
1401
1447
  const nLevel = nodeItem.level
@@ -1668,11 +1714,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
1668
1714
  const { currentNode, selectRadioKey, updateCheckboxFlag, updateExpandedFlag } = reactData
1669
1715
  const { nodeMaps, selectCheckboxMaps, indeterminateRowMaps, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData
1670
1716
  const treeOpts = $xeCascader.computeTreeOpts
1671
- const { lazy, iconLoaded, iconOpen, iconClose } = treeOpts
1717
+ const { lazy, transform, iconLoaded, iconOpen, iconClose } = treeOpts
1672
1718
  const childrenField = $xeCascader.computeChildrenField
1719
+ const mapChildrenField = $xeCascader.computeMapChildrenField
1673
1720
  const labelField = $xeCascader.computeLabelField
1674
1721
  const hasChildField = $xeCascader.computeHasChildField
1675
- const childList: any[] = node[childrenField]
1722
+ const childList: any[] = node[transform ? mapChildrenField : childrenField]
1676
1723
  const isExistChild = childList && childList.length > 0
1677
1724
  const iconSlot = slots.icon
1678
1725
  const titleSlot = slots.title
@@ -1877,7 +1924,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1877
1924
  h('div', {
1878
1925
  class: 'vxe-tree-select--header-button'
1879
1926
  }, [
1880
- showCheckedButton && showClearButton
1927
+ (showCheckedButton && multiple) || showClearButton
1881
1928
  ? h('div', {
1882
1929
  class: 'vxe-tree-select--selected-btns'
1883
1930
  }, [
@@ -1939,7 +1986,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1939
1986
  })
1940
1987
  ])
1941
1988
  ]),
1942
- footerSlot || showTotalButton || (showCloseButton && multiple)
1989
+ footerSlot || showTotalButton || showCloseButton
1943
1990
  ? h('div', {
1944
1991
  class: 'vxe-cascader--panel-footer'
1945
1992
  }, footerSlot
@@ -1953,7 +2000,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1953
2000
  class: 'vxe-cascader--total-btns'
1954
2001
  }, getI18n('vxe.treeSelect.total', [selectVals.length]))
1955
2002
  : renderEmptyElement($xeCascader),
1956
- showCloseButton && multiple
2003
+ showCloseButton
1957
2004
  ? h('div', {
1958
2005
  class: 'vxe-cascader--oper-btns'
1959
2006
  }, [
@@ -2000,6 +2047,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
2000
2047
  const props = $xeCascader
2001
2048
  const reactData = $xeCascader.reactData
2002
2049
 
2050
+ $xeCascader.internalData = createInternalData()
2051
+
2003
2052
  if (!props.multiple) {
2004
2053
  reactData.selectRadioKey = enNodeValue(props.value)
2005
2054
  }
@@ -2007,11 +2056,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
2007
2056
  },
2008
2057
  mounted () {
2009
2058
  const $xeCascader = this
2010
- const props = $xeCascader
2011
2059
 
2012
- if (props.filterable) {
2013
- errLog('vxe.error.notProp', ['filterable'])
2014
- }
2015
2060
  globalEvents.on($xeCascader, 'mousewheel', $xeCascader.handleGlobalMousewheelEvent)
2016
2061
  globalEvents.on($xeCascader, 'mousedown', $xeCascader.handleGlobalMousedownEvent)
2017
2062
  globalEvents.on($xeCascader, 'blur', $xeCascader.handleGlobalBlurEvent)
@@ -6,6 +6,10 @@ import VxeCheckboxComponent from './checkbox'
6
6
 
7
7
  import type { VxeCheckboxGroupEmits, CheckboxGroupInternalData, VxeCheckboxPropTypes, ValueOf, CheckboxGroupReactData, VxeComponentSizeType, VxeCheckboxGroupPropTypes, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines } from '../../../types'
8
8
 
9
+ function createReactData (): CheckboxGroupReactData {
10
+ return {}
11
+ }
12
+
9
13
  function createInternalData (): CheckboxGroupInternalData {
10
14
  return {
11
15
  // isLoaded: false
@@ -55,13 +59,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
55
59
  }
56
60
  },
57
61
  data () {
58
- const reactData: CheckboxGroupReactData = {
59
- }
60
- const internalData = createInternalData()
62
+ const reactData: CheckboxGroupReactData = createReactData()
61
63
  return {
64
+ ...({} as {
65
+ internalData: CheckboxGroupInternalData
66
+ }),
62
67
  xID: XEUtils.uniqueId(),
63
- reactData,
64
- internalData
68
+ reactData
65
69
  }
66
70
  },
67
71
  computed: {
@@ -265,6 +269,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
265
269
  $xeCheckboxGroup.loadData(val)
266
270
  }
267
271
  },
272
+ created () {
273
+ const $xeCheckboxGroup = this
274
+
275
+ $xeCheckboxGroup.internalData = createInternalData()
276
+ },
268
277
  mounted () {
269
278
  const $xeCheckboxGroup = this
270
279
  const props = $xeCheckboxGroup
@@ -276,6 +285,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
276
285
  }
277
286
  })
278
287
  },
288
+ beforeDestroy () {
289
+ const $xeCheckboxGroup = this
290
+ const reactData = $xeCheckboxGroup.reactData
291
+ const internalData = $xeCheckboxGroup.internalData
292
+
293
+ XEUtils.assign(reactData, createReactData())
294
+ XEUtils.assign(internalData, createInternalData())
295
+ },
279
296
  render (this: any, h) {
280
297
  return this.renderVN(h)
281
298
  }
@@ -198,11 +198,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
198
198
  }
199
199
  },
200
200
  data () {
201
- const internalData = createInternalData()
202
201
  const reactData = createReactData()
203
202
  return {
203
+ ...({} as {
204
+ internalData: ContextMenuInternalData
205
+ }),
204
206
  xID: XEUtils.uniqueId(),
205
- internalData,
206
207
  reactData
207
208
  }
208
209
  },
@@ -699,6 +700,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
699
700
  created () {
700
701
  const $xeContextMenu = this
701
702
 
703
+ $xeContextMenu.internalData = createInternalData()
704
+
702
705
  $xeContextMenu.handleVisible()
703
706
  globalEvents.on($xeContextMenu, 'mousewheel', $xeContextMenu.handleGlobalMousewheelEvent)
704
707
  globalEvents.on($xeContextMenu, 'keydown', $xeContextMenu.handleGlobalKeydownEvent)
@@ -2,6 +2,19 @@ import XEUtils from 'xe-utils'
2
2
 
3
3
  import type { VxeDatePanelPropTypes } from '../../../types'
4
4
 
5
+ export function getChunkDefaultNum (selectKey: string) {
6
+ const currDate = new Date()
7
+ switch (selectKey) {
8
+ case 'y': return currDate.getFullYear()
9
+ case 'M': return currDate.getMonth() + 1
10
+ case 'd': return currDate.getDate()
11
+ case 'H': return currDate.getHours()
12
+ case 'm': return currDate.getMinutes()
13
+ case 's': return currDate.getSeconds()
14
+ }
15
+ return 0
16
+ }
17
+
5
18
  export function hasTimestampValueType (valueFormat?: string) {
6
19
  return valueFormat === 'timestamp'
7
20
  }
@@ -25,19 +38,6 @@ export function handleValueFormat (type: string, valueFormat?: string) {
25
38
  return 'yyyy-MM-dd'
26
39
  }
27
40
 
28
- export function handleInputFormat (type: string, inputFormat?: string) {
29
- if (inputFormat) {
30
- return inputFormat
31
- }
32
- if (type === 'time') {
33
- return 'HH:mm:ss'
34
- }
35
- if (type === 'datetime') {
36
- return 'yyyy-MM-dd HH:mm:ss'
37
- }
38
- return 'yyyy-MM-dd'
39
- }
40
-
41
41
  export function toStringTimeDate (str: string | number | Date | null | undefined) {
42
42
  const rest = new Date(2e3, 0, 1)
43
43
  if (str) {
@@ -99,9 +99,9 @@ export const parseDateValue = (val: string | number | Date | null | undefined, t
99
99
  return null
100
100
  }
101
101
 
102
- export const parseDateString = (val: string | number | Date | null | undefined, type: VxeDatePanelPropTypes.Type, options: {
102
+ export function parseDateString (val: string | number | Date | null | undefined, type: VxeDatePanelPropTypes.Type, options: {
103
103
  valueFormat: string
104
- }) => {
104
+ }) {
105
105
  const dValue = parseDateValue(val, type, options)
106
106
  return dValue ? XEUtils.toDateString(dValue, options.valueFormat) : ''
107
107
  }
@@ -252,6 +252,18 @@ export function getRangeDateByCode (code: 'last1' | 'last3' | 'last7' | 'last30'
252
252
  /**
253
253
  * 判断周的年份是否跨年
254
254
  */
255
- const checkWeekOfsetYear = (W: number | string, M: number | string) => {
255
+ function checkWeekOfsetYear (W: number | string, M: number | string) {
256
256
  return `${W}` === '1' && `${M}` === '12'
257
257
  }
258
+
259
+ export function isAllSameChar (str: string, char: string) {
260
+ if (str.length === 0) {
261
+ return false
262
+ }
263
+ for (let i = 0; i < str.length; i++) {
264
+ if (str[i] !== char) {
265
+ return false
266
+ }
267
+ }
268
+ return true
269
+ }