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
@@ -5,17 +5,34 @@ import { VxeUI, getConfig, getIcon, globalEvents, getI18n, createEvent, renderEm
5
5
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
6
6
  import { getOnName } from '../../ui/src/vn'
7
7
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
8
- import { errLog } from '../../ui/src/log'
8
+ import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeInputComponent from '../../input/src/input'
10
10
 
11
11
  import type { TableSelectReactData, VxeTableSelectPropTypes, TableSelectInternalData, VxeTableSelectEmits, VxeInputConstructor, VxeFormDefines, ValueOf, VxeComponentStyleType, VxeComponentSizeType, VxeModalConstructor, VxeModalMethods, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods, VxeTablePropTypes } from '../../../types/components/table'
13
13
  import type { VxeGridInstance, VxeGridDefines, VxeGridPropTypes } from '../../../types/components/grid'
14
14
 
15
+ const { errLog } = createComponentLog('table-select')
16
+
15
17
  export function getRowUniqueId () {
16
18
  return XEUtils.uniqueId('row_')
17
19
  }
18
20
 
21
+ function createReactData (): TableSelectReactData {
22
+ return {
23
+ initialized: false,
24
+ tableColumns: [],
25
+ fullOptionList: [],
26
+ panelIndex: 0,
27
+ panelStyle: {},
28
+ panelPlacement: null,
29
+ triggerFocusPanel: false,
30
+ visiblePanel: false,
31
+ isAniVisible: false,
32
+ isActivated: false
33
+ }
34
+ }
35
+
19
36
  function createInternalData (): TableSelectInternalData {
20
37
  return {
21
38
  // hpTimeout: undefined,
@@ -98,27 +115,15 @@ export default /* define-vxe-component start */ defineVxeComponent({
98
115
  },
99
116
  data () {
100
117
  const xID = XEUtils.uniqueId()
101
- const reactData: TableSelectReactData = {
102
- initialized: false,
103
- tableColumns: [],
104
- fullOptionList: [],
105
- panelIndex: 0,
106
- panelStyle: {},
107
- panelPlacement: null,
108
- triggerFocusPanel: false,
109
- visiblePanel: false,
110
- isAniVisible: false,
111
- isActivated: false
112
- }
113
-
114
- const internalData: TableSelectInternalData = createInternalData()
115
-
118
+ const reactData = createReactData()
116
119
  const gridEvents: Record<string, any> = {}
117
120
 
118
121
  return {
122
+ ...({} as {
123
+ internalData: TableSelectInternalData
124
+ }),
119
125
  xID,
120
126
  reactData,
121
- internalData,
122
127
  gridEvents
123
128
  }
124
129
  },
@@ -430,12 +435,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
430
435
  rowid = getRowUniqueId()
431
436
  }
432
437
  if (keyMaps[rowid]) {
433
- errLog('vxe.error.repeatKey', [`[table-select] ${rowKeyField}`, rowid])
438
+ errLog('vxe.error.repeatKey', [rowKeyField, rowid])
434
439
  }
435
440
  keyMaps[rowid] = true
436
441
  const value = item[valueField]
437
442
  if (rowMaps[value]) {
438
- errLog('vxe.error.repeatKey', [`[table-select] ${valueField}`, value])
443
+ errLog('vxe.error.repeatKey', [valueField, value])
439
444
  }
440
445
  rowMaps[value] = { item, index, items, parent: null, nodes: [] }
441
446
  })
@@ -855,6 +860,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
855
860
  const $xeTableSelect = this
856
861
  const props = $xeTableSelect
857
862
 
863
+ $xeTableSelect.internalData = createInternalData()
864
+
858
865
  const gridEventKeys: ValueOf<VxeTableSelectEmits>[] = [
859
866
  'form-submit',
860
867
  'form-reset',
@@ -879,7 +886,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
879
886
  const VxeTableGridComponent = VxeUI.getComponent('vxe-grid')
880
887
  $xeTableSelect.$nextTick(() => {
881
888
  if (!VxeTableGridComponent) {
882
- errLog('vxe.error.reqComp', ['[table-select] vxe-grid'])
889
+ errLog('vxe.error.reqComp', ['vxe-grid'])
883
890
  }
884
891
  })
885
892
 
@@ -896,6 +903,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
896
903
  },
897
904
  beforeDestroy () {
898
905
  const $xeTableSelect = this
906
+ const reactData = $xeTableSelect.reactData
907
+ const internalData = $xeTableSelect.internalData
899
908
 
900
909
  const panelElem = $xeTableSelect.$refs.refOptionPanel as HTMLElement | undefined
901
910
  if (panelElem && panelElem.parentNode) {
@@ -905,6 +914,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
905
914
  globalEvents.off($xeTableSelect, 'mousedown')
906
915
  globalEvents.off($xeTableSelect, 'blur')
907
916
  globalEvents.off($xeTableSelect, 'resize')
917
+ XEUtils.assign(reactData, createReactData())
918
+ XEUtils.assign(internalData, createInternalData())
908
919
  },
909
920
  render (this: any, h) {
910
921
  return this.renderVN(h)
@@ -5,11 +5,13 @@ import { createEvent, getConfig, getIcon, globalEvents, globalMixins, permission
5
5
  import { getSlotVNs } from '../../ui/src/vn'
6
6
  import { toCssUnit, addClass, removeClass } from '../../ui/src/dom'
7
7
  import { isEnableConf } from '../../ui/src/utils'
8
- import { warnLog, errLog } from '../../ui/src/log'
8
+ import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeLoadingComponent from '../../loading/src/loading'
10
10
 
11
11
  import type { VxeTabsPropTypes, VxeTabPaneProps, VxeTabsEmits, TabsInternalData, TabsReactData, VxeComponentSizeType, VxeTabsConstructor, VxeTabsPrivateMethods, VxeTabPaneDefines, ValueOf, VxeComponentStyleType } from '../../../types'
12
12
 
13
+ const { warnLog, errLog } = createComponentLog('tabs')
14
+
13
15
  const scrollbarOffsetSize = 20
14
16
 
15
17
  export default /* define-vxe-component start */ defineVxeComponent({
@@ -213,13 +215,13 @@ export default /* define-vxe-component start */ defineVxeComponent({
213
215
  prevTab () {
214
216
  const $xeTabs = this
215
217
 
216
- warnLog('vxe.error.delFunc', ['[tabs] prevTab', 'prev'])
218
+ warnLog('vxe.error.delFunc', ['prevTab', 'prev'])
217
219
  return $xeTabs.prev()
218
220
  },
219
221
  nextTab () {
220
222
  const $xeTabs = this
221
223
 
222
- warnLog('vxe.error.delFunc', ['[tabs] nextTab', 'next'])
224
+ warnLog('vxe.error.delFunc', ['nextTab', 'next'])
223
225
  return $xeTabs.next()
224
226
  },
225
227
  handleFilterTab (item: VxeTabPaneProps | VxeTabPaneDefines.TabConfig) {
@@ -3,10 +3,12 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getI18n, createEvent, globalMixins } from '../../ui'
5
5
  import { getFuncText } from '../../ui/src/utils'
6
- import { warnLog } from '../../ui/src/log'
6
+ import { createComponentLog } from '../../ui/src/log'
7
7
 
8
8
  import type { VxeTextareaPropTypes, TextareaReactData, VxeComponentSizeType, VxeTextareaEmits, VxeFormConstructor, VxeFormPrivateMethods, VxeFormDefines, ValueOf } from '../../../types'
9
9
 
10
+ const { warnLog } = createComponentLog('textarea')
11
+
10
12
  let autoTxtElem: HTMLDivElement
11
13
 
12
14
  export default /* define-vxe-component start */ defineVxeComponent({
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, createEvent, globalEvents, globalResize, renderEmptyElement, globalMixins } from '../../ui'
5
5
  import { calcTreeLine, enNodeValue, deNodeValue } from './util'
6
- import { errLog } from '../../ui/src/log'
6
+ import { createComponentLog } from '../../ui/src/log'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { crossTreeDragNodeGlobal, getCrossTreeDragNodeInfo } from './store'
9
9
  import { toCssUnit, isScale, getPaddingTopBottomSize, addClass, removeClass, getTpImg, hasControlKey, getEventTargetNode } from '../../ui/src/dom'
@@ -13,6 +13,8 @@ import VxeLoadingComponent from '../../loading'
13
13
 
14
14
  import type { TreeReactData, VxeTreeEmits, VxeTreeConstructor, VxeTreePropTypes, TreeInternalData, VxeTreeDefines, VxeTreePrivateMethods, VxeComponentSizeType, ValueOf } from '../../../types'
15
15
 
16
+ const { errLog } = createComponentLog('tree')
17
+
16
18
  const { menus, getConfig, getI18n, getIcon } = VxeUI
17
19
 
18
20
  // let crossTreeDragNodeObj: {
@@ -686,11 +688,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
686
688
  data () {
687
689
  const xID = XEUtils.uniqueId()
688
690
  const reactData = createReactData()
689
- const internalData = createInternalData()
690
691
  return {
692
+ ...({} as {
693
+ internalData: TreeInternalData
694
+ }),
691
695
  xID,
692
696
  reactData,
693
- internalData,
694
697
  crossTreeDragNodeInfo: crossTreeDragNodeGlobal,
695
698
 
696
699
  hFlag: 0,
@@ -1348,7 +1351,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1348
1351
  $xeTree.handleData(true)
1349
1352
  if (sYLoad) {
1350
1353
  if (!(props.height || props.maxHeight)) {
1351
- errLog('vxe.error.reqProp', ['[tree] height | max-height | virtual-y-config.enabled=false'])
1354
+ errLog('vxe.error.reqProp', ['height | max-height | virtual-y-config.enabled=false'])
1352
1355
  }
1353
1356
  }
1354
1357
  return $xeTree.computeScrollLoad().then(() => {
@@ -3090,6 +3093,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
3090
3093
  const props = $xeTree
3091
3094
  const reactData = $xeTree.reactData
3092
3095
 
3096
+ $xeTree.internalData = createInternalData()
3097
+
3093
3098
  reactData.selectRadioKey = enNodeValue(props.checkNodeKey)
3094
3099
  $xeTree.loadData(props.data || [])
3095
3100
  },
@@ -5,7 +5,7 @@ import { getConfig, getI18n, getIcon, globalEvents, createEvent, globalMixins, r
5
5
  import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
7
  import { deNodeValue } from '../../tree/src/util'
8
- import { warnLog, errLog } from '../../ui/src/log'
8
+ import { createComponentLog } from '../../ui/src/log'
9
9
  import VxeInputComponent from '../../input'
10
10
  import VxeButtonComponent from '../../button'
11
11
  import VxeTreeComponent from '../../tree'
@@ -14,6 +14,8 @@ import { getSlotVNs } from '../../ui/src/vn'
14
14
  import type { TreeSelectReactData, VxeTreeSelectEmits, TreeSelectInternalData, VxeComponentSizeType, VxeButtonDefines, VxeInputDefines, VxeTreeDefines, ValueOf, VxeComponentStyleType, VxeTreeSelectPropTypes, VxeFormDefines, VxeDrawerConstructor, VxeDrawerMethods, VxeFormConstructor, VxeFormPrivateMethods, VxeModalConstructor, VxeModalMethods, VxeInputConstructor, VxeTreeConstructor, VxeTreeSelectDefines } from '../../../types'
15
15
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
16
16
 
17
+ const { warnLog, errLog } = createComponentLog('tree-select')
18
+
17
19
  function getOptUniqueId () {
18
20
  return XEUtils.uniqueId('node_')
19
21
  }
@@ -191,11 +193,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
191
193
  data () {
192
194
  const xID = XEUtils.uniqueId()
193
195
  const reactData = createReactData()
194
- const internalData = createInternalData()
195
196
  return {
197
+ ...({} as {
198
+ internalData: TreeSelectInternalData
199
+ }),
196
200
  xID,
197
- reactData,
198
- internalData
201
+ reactData
199
202
  }
200
203
  },
201
204
  computed: {
@@ -1036,7 +1039,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1036
1039
  h('div', {
1037
1040
  class: 'vxe-tree-select--header-button'
1038
1041
  }, [
1039
- showCheckedButton && showClearButton
1042
+ (showCheckedButton && multiple) || showClearButton
1040
1043
  ? h('div', {
1041
1044
  class: 'vxe-tree-select--selected-btns'
1042
1045
  }, [
@@ -1064,32 +1067,28 @@ export default /* define-vxe-component start */ defineVxeComponent({
1064
1067
  : renderEmptyElement($xeTreeSelect)
1065
1068
  ])
1066
1069
  : renderEmptyElement($xeTreeSelect),
1067
- showExpandButton && showExpandButton
1070
+ showExpandButton
1068
1071
  ? h('div', {
1069
1072
  class: 'vxe-tree-select--expand-btns'
1070
1073
  }, [
1071
- showExpandButton
1072
- ? h(VxeButtonComponent, {
1073
- props: {
1074
- content: getI18n('vxe.treeSelect.allExpand'),
1075
- mode: 'text'
1076
- },
1077
- on: {
1078
- click: $xeTreeSelect.allExpandPanelEvent
1079
- }
1080
- })
1081
- : renderEmptyElement($xeTreeSelect),
1082
- showExpandButton
1083
- ? h(VxeButtonComponent, {
1084
- props: {
1085
- content: getI18n('vxe.treeSelect.clearExpand'),
1086
- mode: 'text'
1087
- },
1088
- on: {
1089
- click: $xeTreeSelect.clearExpandPanelEvent
1090
- }
1091
- })
1092
- : renderEmptyElement($xeTreeSelect)
1074
+ h(VxeButtonComponent, {
1075
+ props: {
1076
+ content: getI18n('vxe.treeSelect.allExpand'),
1077
+ mode: 'text'
1078
+ },
1079
+ on: {
1080
+ click: $xeTreeSelect.allExpandPanelEvent
1081
+ }
1082
+ }),
1083
+ h(VxeButtonComponent, {
1084
+ props: {
1085
+ content: getI18n('vxe.treeSelect.clearExpand'),
1086
+ mode: 'text'
1087
+ },
1088
+ on: {
1089
+ click: $xeTreeSelect.clearExpandPanelEvent
1090
+ }
1091
+ })
1093
1092
  ])
1094
1093
  : renderEmptyElement($xeTreeSelect)
1095
1094
  ])
@@ -1157,7 +1156,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1157
1156
  })
1158
1157
  ])
1159
1158
  ]),
1160
- footerSlot || showTotalButton || (showCloseButton && multiple)
1159
+ footerSlot || showTotalButton || showCloseButton
1161
1160
  ? h('div', {
1162
1161
  class: 'vxe-tree-select--panel-footer'
1163
1162
  }, footerSlot
@@ -1171,7 +1170,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1171
1170
  class: 'vxe-tree-select--total-btns'
1172
1171
  }, getI18n('vxe.treeSelect.total', [selectVals.length]))
1173
1172
  : renderEmptyElement($xeTreeSelect),
1174
- showCloseButton && multiple
1173
+ showCloseButton
1175
1174
  ? h('div', {
1176
1175
  class: 'vxe-tree-select--oper-btns'
1177
1176
  }, [
@@ -1210,6 +1209,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
1210
1209
  created () {
1211
1210
  const $xeTreeSelect = this
1212
1211
 
1212
+ $xeTreeSelect.internalData = createInternalData()
1213
+
1213
1214
  $xeTreeSelect.cacheDataMap()
1214
1215
  $xeTreeSelect.cacheLazyDataMap()
1215
1216
  },
@@ -73,6 +73,9 @@ setConfig({
73
73
  showFullLabel: true,
74
74
  treeConfig: {
75
75
  showIcon: true
76
+ },
77
+ filterConfig: {
78
+ autoExpandMode: 'first'
76
79
  }
77
80
  },
78
81
  checkbox: {},
@@ -1,6 +1,18 @@
1
- import { log } from '@vxe-ui/core'
1
+ import { VxeUI } from '@vxe-ui/core'
2
2
 
3
- const version = `ui v${process.env.VUE_APP_VXE_VERSION}`
3
+ const { log } = VxeUI
4
4
 
5
- export const warnLog = log.create('warn', version)
6
- export const errLog = log.create('error', version)
5
+ const uiVersion = `ui v${process.env.VUE_APP_VXE_VERSION}`
6
+
7
+ export function createComponentLog (name: string) {
8
+ const tableVersion = VxeUI.tableVersion ? `table v${VxeUI.tableVersion}` : ''
9
+ const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : ''
10
+ const designVersion = VxeUI.designVersion ? `design v${VxeUI.designVersion}` : ''
11
+ return {
12
+ warnLog: log.create('warn', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name),
13
+ errLog: log.create('error', uiVersion + tableVersion + ganttVersion + designVersion + '] [' + name)
14
+ }
15
+ }
16
+
17
+ export const warnLog = log.create('warn', uiVersion)
18
+ export const errLog = log.create('error', uiVersion)
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, getConfig, getI18n, getIcon, globalMixins, createEvent, globalEvents, renderEmptyElement } from '../../ui'
5
5
  import { getSlotVNs } from '../../ui/src/vn'
6
- import { errLog, warnLog } from '../../ui/src/log'
6
+ import { createComponentLog } from '../../ui/src/log'
7
7
  import { initTpImg, getTpImg, getEventTargetNode, toCssUnit } from '../../ui/src/dom'
8
8
  import { readLocalFile } from './util'
9
9
  import VxeButtonComponent from '../../button/src/button'
@@ -11,6 +11,8 @@ import VxeButtonComponent from '../../button/src/button'
11
11
  import type { VxeUploadDefines, VxeUploadConstructor, VxeUploadPropTypes, UploadReactData, UploadInternalData, VxeUploadEmits, VxeComponentSizeType, VxeFormDefines, VxeFormConstructor, VxeFormPrivateMethods, ValueOf, VxeComponentEventParams } from '../../../types'
12
12
  import type { VxeTableConstructor, VxeTablePrivateMethods } from '../../../types/components/table'
13
13
 
14
+ const { warnLog, errLog } = createComponentLog('upload')
15
+
14
16
  function getUniqueKey () {
15
17
  return XEUtils.uniqueId()
16
18
  }
@@ -335,11 +337,12 @@ export default /* define-vxe-component start */ defineVxeComponent({
335
337
  data () {
336
338
  const xID = XEUtils.uniqueId()
337
339
  const reactData = createReactData()
338
- const internalData = createInternalData()
339
340
  return {
341
+ ...({} as {
342
+ internalData: UploadInternalData
343
+ }),
340
344
  xID,
341
- reactData,
342
- internalData
345
+ reactData
343
346
  }
344
347
  },
345
348
  computed: {
@@ -864,6 +867,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
864
867
  const fileKey = $xeUpload.getFieldKey(item)
865
868
  const uploadFn = props.uploadMethod || getConfig().upload.uploadMethod
866
869
  if (uploadFn) {
870
+ $xeUpload.dispatchEvent('upload-start', { option: item }, null)
867
871
  return Promise.resolve(
868
872
  uploadFn({
869
873
  $upload: $xeUpload,
@@ -913,6 +917,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
913
917
  if (cacheItem) {
914
918
  cacheItem.loading = false
915
919
  }
920
+ $xeUpload.dispatchEvent('upload-end', { option: item }, null)
916
921
  })
917
922
  } else {
918
923
  const { fileCacheMaps } = reactData
@@ -1031,6 +1036,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
1031
1036
  }
1032
1037
  }
1033
1038
 
1039
+ $xeUpload.dispatchEvent('upload-queue-start', { files: selectFiles }, evnt)
1040
+
1034
1041
  const cacheMaps = Object.assign({}, reactData.fileCacheMaps)
1035
1042
  const newFileList = multiple ? fileList : []
1036
1043
  const uploadPromiseRests: any[] = []
@@ -1069,6 +1076,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1069
1076
  })
1070
1077
  Promise.all(urlMode ? uploadPromiseRests : []).then(() => {
1071
1078
  const restFileList = reactData.fileList
1079
+ $xeUpload.dispatchEvent('upload-queue-end', { options: restFileList, files: selectFiles }, evnt)
1072
1080
  $xeUpload.handleChange(restFileList)
1073
1081
  // 自动更新校验状态
1074
1082
  if ($xeForm && formItemInfo) {
@@ -2159,6 +2167,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
2159
2167
  created () {
2160
2168
  const $xeUpload = this
2161
2169
 
2170
+ $xeUpload.internalData = createInternalData()
2171
+
2162
2172
  $xeUpload.updateFileList()
2163
2173
  },
2164
2174
  mounted () {
@@ -2166,10 +2176,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
2166
2176
  const props = $xeUpload
2167
2177
 
2168
2178
  if (props.multiple && props.singleMode) {
2169
- errLog('vxe.error.errConflicts', ['[upload] multiple', 'single-mode'])
2179
+ errLog('vxe.error.errConflicts', ['multiple', 'single-mode'])
2170
2180
  }
2171
2181
  if (props.imageStyle) {
2172
- warnLog('vxe.error.delProp', ['[upload] image-style', 'image-config'])
2182
+ warnLog('vxe.error.delProp', ['image-style', 'image-config'])
2173
2183
  }
2174
2184
 
2175
2185
  if (props.dragSort) {
@@ -39,6 +39,10 @@ export namespace VxeCascaderPropTypes {
39
39
  */
40
40
  type FilterValue = string | number | null | undefined
41
41
  export interface FilterConfig<D = any> {
42
+ /**
43
+ * 过滤后是否自动展开第一个节点
44
+ */
45
+ autoExpandMode?: 'first' | 'last' | ''
42
46
  /**
43
47
  * 过滤之前的方法
44
48
  */
@@ -49,14 +49,13 @@ export namespace VxeDatePickerPropTypes {
49
49
  export type LabelFormat = string
50
50
  export type ValueFormat = string
51
51
  export type TimeFormat = string
52
- export type InputFormat = string
53
52
  export type Editable = boolean
54
53
  export type FestivalMethod = VxeDatePanelPropTypes.FestivalMethod
55
54
  export type DisabledMethod = VxeDatePanelPropTypes.DisabledMethod
56
55
  export type AutoClose = boolean
57
56
  export type PrefixIcon = string
58
57
  export type SuffixIcon = string
59
- export interface ControlConfig {
58
+ export interface MaskedConfig {
60
59
  /**
61
60
  * 是否启用,支持局部/全局启用
62
61
  */
@@ -65,6 +64,14 @@ export namespace VxeDatePickerPropTypes {
65
64
  * 只对 enabled 启用后有效,是否启用方向键操作
66
65
  */
67
66
  isArrow?: boolean
67
+ /**
68
+ * 只对 enabled 启用后有效,是否启用输入掩码
69
+ */
70
+ isMasked?: boolean
71
+ /**
72
+ * 掩码占位符
73
+ */
74
+ maskPlaceholder?: string
68
75
  }
69
76
  /**
70
77
  * 已废弃,请使用 PopupConfig.placement
@@ -149,7 +156,6 @@ export interface VxeDatePickerProps {
149
156
  labelFormat?: VxeDatePickerPropTypes.LabelFormat
150
157
  valueFormat?: VxeDatePickerPropTypes.ValueFormat
151
158
  timeFormat?: VxeDatePickerPropTypes.TimeFormat
152
- inputFormat?: VxeDatePickerPropTypes.InputFormat
153
159
  editable?: VxeDatePickerPropTypes.Editable
154
160
  festivalMethod?: VxeDatePickerPropTypes.FestivalMethod
155
161
  disabledMethod?: VxeDatePickerPropTypes.DisabledMethod
@@ -162,7 +168,7 @@ export interface VxeDatePickerProps {
162
168
  * 只对 type=date,week,month,quarter,year 有效,选择完日期后自动关闭
163
169
  */
164
170
  autoClose?: VxeDatePickerPropTypes.AutoClose
165
- controlConfig?: VxeDatePickerPropTypes.ControlConfig
171
+ maskedConfig?: VxeDatePickerPropTypes.MaskedConfig
166
172
 
167
173
  /**
168
174
  * 只对 type=week 有效,选中日期后指定为一周的哪一天
@@ -199,12 +205,14 @@ export interface DatePickerReactData {
199
205
  panelPlacement: VxeDatePickerPropTypes.Placement
200
206
  isActivated: boolean
201
207
  inputValue: any
202
- inputLabel: string
208
+ labelFlag: number
203
209
  }
204
210
 
205
211
  export interface DatePickerInternalData {
206
212
  hpTimeout?: undefined | number
207
- parseInputKayMaps: Record<string, (evnt: KeyboardEvent, targetElem: HTMLInputElement, isUpArrow: boolean) => void>
213
+ inputLabel: string
214
+ isTriggerMasked?: boolean
215
+ laseFocusMasked: number
208
216
  }
209
217
 
210
218
  export interface DatePickerMethods {
@@ -50,6 +50,7 @@ export namespace VxeDrawerPropTypes {
50
50
  export type ShowHeader = boolean
51
51
  export type ShowFooter = boolean
52
52
  export type ShowClose = boolean
53
+ export type Preload = boolean
53
54
  export type Width = number | string
54
55
  export type Height = number | string
55
56
  export type Resize = boolean
@@ -86,6 +87,7 @@ export interface VxeDrawerProps {
86
87
  showHeader?: VxeDrawerPropTypes.ShowHeader
87
88
  showFooter?: VxeDrawerPropTypes.ShowFooter
88
89
  showClose?: VxeDrawerPropTypes.ShowClose
90
+ preload?: VxeDrawerPropTypes.Preload
89
91
  width?: VxeDrawerPropTypes.Width
90
92
  height?: VxeDrawerPropTypes.Height
91
93
  resize?: VxeDrawerPropTypes.Resize
@@ -71,6 +71,7 @@ export namespace VxeModalPropTypes {
71
71
  export type ShowHeader = boolean
72
72
  export type ShowFooter = boolean
73
73
  export type ShowZoom = boolean
74
+ export type Preload = boolean
74
75
  export interface ZoomConfig {
75
76
  minimizeLayout?: null | '' | 'vertical' | 'horizontal'
76
77
  minimizeMaxSize?: number
@@ -147,6 +148,7 @@ export interface VxeModalProps {
147
148
  showHeader?: VxeModalPropTypes.ShowHeader
148
149
  showFooter?: VxeModalPropTypes.ShowFooter
149
150
  showZoom?: VxeModalPropTypes.ShowZoom
151
+ preload?: VxeModalPropTypes.Preload
150
152
  zoomConfig?: VxeModalPropTypes.ZoomConfig
151
153
  showMaximize?: VxeModalPropTypes.ShowMaximize
152
154
  showMinimize?: VxeModalPropTypes.ShowMinimize
@@ -317,8 +317,12 @@ export type VxeUploadEmits = [
317
317
  'remove-fail',
318
318
  'download',
319
319
  'download-fail',
320
+ 'upload-start',
320
321
  'upload-success',
321
322
  'upload-error',
323
+ 'upload-end',
324
+ 'upload-queue-start',
325
+ 'upload-queue-end',
322
326
  'sort-dragend',
323
327
  'more-visible'
324
328
  ]
@@ -382,9 +386,20 @@ export namespace VxeUploadDefines {
382
386
  option: VxeUploadDefines.FileObjItem
383
387
  data: any
384
388
  }
385
-
386
389
  export interface UploadErrorEventParams extends UploadSuccessEventParams {}
387
390
 
391
+ export interface UploadStartEventParams extends UploadSuccessEventParams {
392
+ option: VxeUploadDefines.FileObjItem
393
+ }
394
+ export interface UploadEndEventParams extends UploadStartEventParams {}
395
+
396
+ export interface UploadQueueStartEventParams extends UploadSuccessEventParams {
397
+ files: File[]
398
+ }
399
+ export interface UploadQueueEndEventParams extends UploadQueueStartEventParams {
400
+ options: VxeUploadDefines.FileObjItem[]
401
+ }
402
+
388
403
  export interface MoreVisibleEventParams {
389
404
  visible: boolean
390
405
  }
@@ -399,6 +414,10 @@ export type VxeUploadEventProps = {
399
414
  onDownloadFail?: VxeUploadEvents.DownloadFail
400
415
  onUploadSuccess?: VxeUploadEvents.UploadSuccess
401
416
  onUploadError?: VxeUploadEvents.UploadError
417
+ onUploadStart?: VxeUploadEvents.UploadStart
418
+ onUploadEnd?: VxeUploadEvents.UploadEnd
419
+ onUploadQueueStart?: VxeUploadEvents.UploadQueueStart
420
+ onUploadQueueEnd?: VxeUploadEvents.UploadQueueEnd
402
421
  onMoreVisible?: VxeUploadEvents.MoreVisible
403
422
  }
404
423
 
@@ -411,6 +430,10 @@ export interface VxeUploadListeners {
411
430
  downloadFail?: VxeUploadEvents.DownloadFail
412
431
  uploadSuccess?: VxeUploadEvents.UploadSuccess
413
432
  uploadError?: VxeUploadEvents.UploadError
433
+ uploadStart?: VxeUploadEvents.UploadStart
434
+ uploadEnd?: VxeUploadEvents.UploadEnd
435
+ uploadQueueStart?: VxeUploadEvents.UploadQueueStart
436
+ uploadQueueEnd?: VxeUploadEvents.UploadQueueEnd
414
437
  moreVisible?: VxeUploadEvents.MoreVisible
415
438
  }
416
439
 
@@ -423,6 +446,10 @@ export namespace VxeUploadEvents {
423
446
  export type DownloadFail = (params: VxeUploadDefines.DownloadFailEventParams) => void
424
447
  export type UploadSuccess = (params: VxeUploadDefines.UploadSuccessEventParams) => void
425
448
  export type UploadError = (params: VxeUploadDefines.UploadErrorEventParams) => void
449
+ export type UploadStart = (params: VxeUploadDefines.UploadStartEventParams) => void
450
+ export type UploadEnd = (params: VxeUploadDefines.UploadEndEventParams) => void
451
+ export type UploadQueueStart = (params: VxeUploadDefines.UploadQueueStartEventParams) => void
452
+ export type UploadQueueEnd = (params: VxeUploadDefines.UploadQueueEndEventParams) => void
426
453
  export type MoreVisible = (params: VxeUploadDefines.MoreVisibleEventParams) => void
427
454
  }
428
455