vxe-pc-ui 3.16.17 → 3.16.19

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 (110) hide show
  1. package/es/button/src/button.js +4 -2
  2. package/es/button/style.css +4 -11
  3. package/es/button/style.min.css +1 -1
  4. package/es/color-picker/src/color-picker.js +4 -2
  5. package/es/date-picker/src/date-picker.js +4 -2
  6. package/es/date-range-picker/src/date-range-picker.js +4 -2
  7. package/es/drawer/src/drawer.js +7 -3
  8. package/es/icon/style.css +1 -1
  9. package/es/icon-picker/src/icon-picker.js +4 -2
  10. package/es/image-preview/style.css +8 -4
  11. package/es/image-preview/style.min.css +1 -1
  12. package/es/menu/src/menu.js +8 -4
  13. package/es/modal/src/modal.js +9 -5
  14. package/es/select/src/select.js +4 -2
  15. package/es/style.css +1 -1
  16. package/es/style.min.css +1 -1
  17. package/es/table-select/src/table-select.js +4 -2
  18. package/es/tree-select/src/tree-select.js +4 -2
  19. package/es/ui/index.js +1 -1
  20. package/es/ui/src/dom.js +7 -0
  21. package/es/ui/src/log.js +1 -1
  22. package/es/vxe-button/style.css +4 -11
  23. package/es/vxe-button/style.min.css +1 -1
  24. package/es/vxe-image-preview/style.css +8 -4
  25. package/es/vxe-image-preview/style.min.css +1 -1
  26. package/lib/button/src/button.js +3 -1
  27. package/lib/button/src/button.min.js +1 -1
  28. package/lib/button/style/style.css +4 -11
  29. package/lib/button/style/style.min.css +1 -1
  30. package/lib/color-picker/src/color-picker.js +3 -1
  31. package/lib/color-picker/src/color-picker.min.js +1 -1
  32. package/lib/date-picker/src/date-picker.js +3 -1
  33. package/lib/date-picker/src/date-picker.min.js +1 -1
  34. package/lib/date-range-picker/src/date-range-picker.js +3 -1
  35. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  36. package/lib/drawer/src/drawer.js +9 -2
  37. package/lib/drawer/src/drawer.min.js +1 -1
  38. package/lib/icon/style/style.css +1 -1
  39. package/lib/icon/style/style.min.css +1 -1
  40. package/lib/icon-picker/src/icon-picker.js +3 -1
  41. package/lib/icon-picker/src/icon-picker.min.js +1 -1
  42. package/lib/image-preview/style/style.css +8 -4
  43. package/lib/image-preview/style/style.min.css +1 -1
  44. package/lib/index.umd.js +63 -19
  45. package/lib/index.umd.min.js +1 -1
  46. package/lib/menu/src/menu.js +10 -3
  47. package/lib/menu/src/menu.min.js +1 -1
  48. package/lib/modal/src/modal.js +11 -4
  49. package/lib/modal/src/modal.min.js +1 -1
  50. package/lib/select/src/select.js +3 -1
  51. package/lib/select/src/select.min.js +1 -1
  52. package/lib/style.css +1 -1
  53. package/lib/style.min.css +1 -1
  54. package/lib/table-select/src/table-select.js +3 -1
  55. package/lib/table-select/src/table-select.min.js +1 -1
  56. package/lib/tree-select/src/tree-select.js +3 -1
  57. package/lib/tree-select/src/tree-select.min.js +1 -1
  58. package/lib/ui/index.js +1 -1
  59. package/lib/ui/index.min.js +1 -1
  60. package/lib/ui/src/dom.js +8 -0
  61. package/lib/ui/src/dom.min.js +1 -1
  62. package/lib/ui/src/log.js +1 -1
  63. package/lib/ui/src/log.min.js +1 -1
  64. package/lib/vxe-button/style/style.css +4 -11
  65. package/lib/vxe-button/style/style.min.css +1 -1
  66. package/lib/vxe-image-preview/style/style.css +8 -4
  67. package/lib/vxe-image-preview/style/style.min.css +1 -1
  68. package/package.json +1 -1
  69. package/packages/button/src/button.ts +4 -2
  70. package/packages/color-picker/src/color-picker.ts +4 -2
  71. package/packages/date-picker/src/date-picker.ts +4 -2
  72. package/packages/date-range-picker/src/date-range-picker.ts +4 -2
  73. package/packages/drawer/src/drawer.ts +7 -3
  74. package/packages/icon-picker/src/icon-picker.ts +4 -2
  75. package/packages/menu/src/menu.ts +8 -4
  76. package/packages/modal/src/modal.ts +9 -5
  77. package/packages/select/src/select.ts +4 -2
  78. package/packages/table-select/src/table-select.ts +4 -2
  79. package/packages/tree-select/src/tree-select.ts +4 -2
  80. package/packages/ui/src/dom.ts +8 -0
  81. package/styles/components/button.scss +4 -10
  82. package/styles/components/image-preview.scss +8 -4
  83. package/styles/theme/dark.scss +4 -0
  84. package/styles/theme/light.scss +4 -0
  85. package/styles/variable.scss +4 -0
  86. package/types/components/button.d.ts +1 -1
  87. package/types/components/color-picker.d.ts +1 -1
  88. package/types/components/date-picker.d.ts +1 -1
  89. package/types/components/date-range-picker.d.ts +1 -1
  90. package/types/components/drawer.d.ts +8 -0
  91. package/types/components/icon-picker.d.ts +7 -0
  92. package/types/components/menu.d.ts +5 -1
  93. package/types/components/modal.d.ts +8 -0
  94. package/types/components/pulldown.d.ts +1 -1
  95. package/types/components/select.d.ts +1 -1
  96. package/types/components/table-select.d.ts +1 -1
  97. package/types/components/table.d.ts +18 -2
  98. package/types/components/tree-select.d.ts +1 -1
  99. /package/es/icon/{iconfont.1784627052100.ttf → iconfont.1784791310919.ttf} +0 -0
  100. /package/es/icon/{iconfont.1784627052100.woff → iconfont.1784791310919.woff} +0 -0
  101. /package/es/icon/{iconfont.1784627052100.woff2 → iconfont.1784791310919.woff2} +0 -0
  102. /package/es/{iconfont.1784627052100.ttf → iconfont.1784791310919.ttf} +0 -0
  103. /package/es/{iconfont.1784627052100.woff → iconfont.1784791310919.woff} +0 -0
  104. /package/es/{iconfont.1784627052100.woff2 → iconfont.1784791310919.woff2} +0 -0
  105. /package/lib/icon/style/{iconfont.1784627052100.ttf → iconfont.1784791310919.ttf} +0 -0
  106. /package/lib/icon/style/{iconfont.1784627052100.woff → iconfont.1784791310919.woff} +0 -0
  107. /package/lib/icon/style/{iconfont.1784627052100.woff2 → iconfont.1784791310919.woff2} +0 -0
  108. /package/lib/{iconfont.1784627052100.ttf → iconfont.1784791310919.ttf} +0 -0
  109. /package/lib/{iconfont.1784627052100.woff → iconfont.1784791310919.woff} +0 -0
  110. /package/lib/{iconfont.1784627052100.woff2 → iconfont.1784791310919.woff2} +0 -0
@@ -2,7 +2,7 @@ import { CreateElement, VNode, PropType } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, getIcon, getConfig, getI18n, globalEvents, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
- import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
5
+ import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
7
7
  import { parseColor, updateColorAlpha, hexToHsv, rgbToHsv, rgbToHex, hexToRgb, hsvToRgb, toRgb } from './util'
8
8
  import VxeButtonComponent from '../../button'
@@ -372,12 +372,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
372
372
  internalData.hpTimeout = undefined
373
373
  }
374
374
  const btnTransfer = $xeColorPicker.computeBtnTransfer
375
+ const popupOpts = $xeColorPicker.computePopupOpts
375
376
  const panelElem = $xeColorPicker.$refs.refOptionPanel as HTMLElement
376
377
  if (!reactData.initialized) {
377
378
  reactData.initialized = true
378
379
  if (btnTransfer) {
379
380
  if (panelElem) {
380
- document.body.appendChild(panelElem)
381
+ const { appendTo } = popupOpts
382
+ getPopupContainer(appendTo).appendChild(panelElem)
381
383
  }
382
384
  }
383
385
  }
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, getI18n, commands, createEvent, globalEvents, GLOBAL_EVENT_KEYS, globalMixins, renderEmptyElement } from '../../ui'
5
5
  import { getFuncText, getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
6
- import { updatePanelPlacement, getEventTargetNode, hasControlKey } from '../../ui/src/dom'
6
+ import { updatePanelPlacement, getEventTargetNode, hasControlKey, getPopupContainer } from '../../ui/src/dom'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { parseDateObj, parseDateValue, getDateByCode, handleValueFormat, hasDateValueType, hasTimestampValueType, isAllSameChar, getChunkDefaultNum, checkDateInputFormat } from '../../date-panel/src/util'
9
9
  import { createComponentLog } from '../../ui/src/log'
@@ -1388,12 +1388,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
1388
1388
  const { visiblePanel } = reactData
1389
1389
  const isDisabled = $xeDatePicker.computeIsDisabled
1390
1390
  const btnTransfer = $xeDatePicker.computeBtnTransfer
1391
+ const popupOpts = $xeDatePicker.computePopupOpts
1391
1392
  const panelElem = $xeDatePicker.$refs.refInputPanel as HTMLElement
1392
1393
  if (!isDisabled && !visiblePanel) {
1393
1394
  if (!reactData.initialized) {
1394
1395
  reactData.initialized = true
1395
1396
  if (btnTransfer && panelElem) {
1396
- document.body.appendChild(panelElem)
1397
+ const { appendTo } = popupOpts
1398
+ getPopupContainer(appendTo).appendChild(panelElem)
1397
1399
  }
1398
1400
  }
1399
1401
  if (internalData.hpTimeout) {
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  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
- import { updatePanelPlacement, getEventTargetNode } from '../../ui/src/dom'
6
+ import { updatePanelPlacement, getEventTargetNode, getPopupContainer } from '../../ui/src/dom'
7
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'
@@ -1183,12 +1183,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
1183
1183
  const { visiblePanel } = reactData
1184
1184
  const isDisabled = $xeDateRangePicker.computeIsDisabled
1185
1185
  const btnTransfer = $xeDateRangePicker.computeBtnTransfer
1186
+ const popupOpts = $xeDateRangePicker.computePopupOpts
1186
1187
  const panelElem = $xeDateRangePicker.$refs.refInputPanel as HTMLElement
1187
1188
  if (!isDisabled && !visiblePanel) {
1188
1189
  if (!reactData.initialized) {
1189
1190
  reactData.initialized = true
1190
1191
  if (btnTransfer && panelElem) {
1191
- document.body.appendChild(panelElem)
1192
+ const { appendTo } = popupOpts
1193
+ getPopupContainer(appendTo).appendChild(panelElem)
1192
1194
  }
1193
1195
  }
1194
1196
  if (internalData.hpTimeout) {
@@ -3,7 +3,7 @@ import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { globalMixins, getIcon, getConfig, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, renderEmptyElement } from '../../ui'
5
5
  import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils'
6
- import { getDomNode, toCssUnit } from '../../ui/src/dom'
6
+ import { getDomNode, getPopupContainer, toCssUnit } from '../../ui/src/dom'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import VxeButtonComponent from '../../button'
9
9
  import VxeLoadingComponent from '../../loading'
@@ -110,6 +110,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
110
110
  type: Boolean as PropType<VxeDrawerPropTypes.Transfer>,
111
111
  default: () => getConfig().drawer.transfer
112
112
  },
113
+ appendTo: {
114
+ type: [String, Function] as PropType<VxeDrawerPropTypes.AppendTo>,
115
+ default: () => getConfig().drawer.appendTo
116
+ },
113
117
  padding: {
114
118
  type: Boolean as PropType<VxeDrawerPropTypes.Padding>,
115
119
  default: () => getConfig().drawer.padding
@@ -340,14 +344,14 @@ export default /* define-vxe-component start */ defineVxeComponent({
340
344
  const props = $xeDrawer
341
345
  const reactData = $xeDrawer.reactData
342
346
 
343
- const { showFooter } = props
347
+ const { showFooter, appendTo } = props
344
348
  const { initialized, visible } = reactData
345
349
  const btnTransfer = $xeDrawer.computeBtnTransfer
346
350
  if (!initialized) {
347
351
  reactData.initialized = true
348
352
  if (btnTransfer) {
349
353
  const panelElem = $xeDrawer.$refs.refElem as HTMLDivElement
350
- document.body.appendChild(panelElem)
354
+ getPopupContainer(appendTo).appendChild(panelElem)
351
355
  }
352
356
  }
353
357
  if (!visible) {
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getIcon, getI18n, globalEvents, renderer, createEvent, globalMixins, GLOBAL_EVENT_KEYS, renderEmptyElement } from '../../ui'
5
- import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
5
+ import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, getFuncText } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import VxeInputComponent from '../../input/src/input'
@@ -381,6 +381,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
381
381
 
382
382
  const { hpTimeout } = internalData
383
383
  const isDisabled = $xeIconPicker.computeIsDisabled
384
+ const popupOpts = $xeIconPicker.computePopupOpts
384
385
  if (!isDisabled) {
385
386
  if (hpTimeout) {
386
387
  clearTimeout(hpTimeout)
@@ -392,7 +393,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
392
393
  reactData.initialized = true
393
394
  if (btnTransfer) {
394
395
  if (panelElem) {
395
- document.body.appendChild(panelElem)
396
+ const { appendTo } = popupOpts
397
+ getPopupContainer(appendTo).appendChild(panelElem)
396
398
  }
397
399
  }
398
400
  }
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, createEvent, permission, globalMixins, globalEvents, renderEmptyElement } from '../../ui'
5
- import { scrollToView, toCssUnit } from '../../ui/src/dom'
5
+ import { getPopupContainer, scrollToView, toCssUnit } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, isEnableConf } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
@@ -74,7 +74,11 @@ export default /* define-vxe-component start */ defineVxeComponent({
74
74
  type: String as PropType<VxeMenuPropTypes.Size>,
75
75
  default: () => getConfig().menu.size || getConfig().size
76
76
  },
77
- menuConfig: Object as PropType<VxeMenuPropTypes.MenuConfig>
77
+ menuConfig: Object as PropType<VxeMenuPropTypes.MenuConfig>,
78
+ appendTo: {
79
+ type: [String, Function] as PropType<VxeMenuPropTypes.AppendTo>,
80
+ default: () => getConfig().menu.appendTo
81
+ }
78
82
  },
79
83
  inject: {
80
84
  $xeLayoutAside: {
@@ -419,7 +423,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
419
423
  const props = $xeMenu
420
424
  const reactData = $xeMenu.reactData
421
425
 
422
- const { collapseFixed } = props
426
+ const { collapseFixed, appendTo } = props
423
427
  if (collapseFixed) {
424
428
  const { initialized } = reactData
425
429
  const isCollapsed = $xeMenu.computeIsCollapsed
@@ -429,7 +433,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
429
433
  $xeMenu.$nextTick(() => {
430
434
  const collapseEl = $xeMenu.$refs.refCollapseElem as HTMLDivElement
431
435
  if (collapseEl) {
432
- document.body.appendChild(collapseEl)
436
+ getPopupContainer(appendTo).appendChild(collapseEl)
433
437
  }
434
438
  })
435
439
  }
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, getConfig, getI18n, getIcon, createEvent, globalEvents, globalMixins, renderEmptyElement, GLOBAL_EVENT_KEYS } from '../../ui'
5
- import { getDomNode, getEventTargetNode, toCssUnit } from '../../ui/src/dom'
5
+ import { getDomNode, getEventTargetNode, getPopupContainer, toCssUnit } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, getSubLastZIndex, nextSubZIndex, getFuncText, handleBooleanDefaultValue } from '../../ui/src/utils'
7
7
  import VxeButtonComponent from '../../button'
8
8
  import VxeLoadingComponent from '../../loading'
@@ -167,6 +167,10 @@ export default /* define-vxe-component start */ defineVxeComponent({
167
167
  type: Boolean as PropType<VxeModalPropTypes.Transfer>,
168
168
  default: () => getConfig().modal.transfer
169
169
  },
170
+ appendTo: {
171
+ type: [String, Function] as PropType<VxeModalPropTypes.AppendTo>,
172
+ default: () => getConfig().modal.appendTo
173
+ },
170
174
  storage: {
171
175
  type: Boolean as PropType<VxeModalPropTypes.Storage>,
172
176
  default: () => getConfig().modal.storage
@@ -901,7 +905,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
901
905
  const props = $xeModal
902
906
  const reactData = $xeModal.reactData
903
907
 
904
- const { remember, showFooter } = props
908
+ const { remember, showFooter, appendTo } = props
905
909
  const { initialized, visible } = reactData
906
910
  const isMsg = $xeModal.computeIsMsg
907
911
  const btnTransfer = $xeModal.computeBtnTransfer
@@ -909,7 +913,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
909
913
  reactData.initialized = true
910
914
  if (btnTransfer) {
911
915
  const panelElem = $xeModal.$refs.refElem as HTMLDivElement
912
- document.body.appendChild(panelElem)
916
+ getPopupContainer(appendTo).appendChild(panelElem)
913
917
  }
914
918
  }
915
919
  if (!visible) {
@@ -1176,7 +1180,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1176
1180
  const { visibleHeight, visibleWidth } = getDomNode()
1177
1181
  const marginSize = XEUtils.toNumber(props.marginSize)
1178
1182
  const targetElem = evnt.target as HTMLSpanElement
1179
- const type = targetElem.getAttribute('type')
1183
+ const type = targetElem.getAttribute('data-type')
1180
1184
  const minWidth = XEUtils.toNumber(props.minWidth)
1181
1185
  const minHeight = XEUtils.toNumber(props.minHeight)
1182
1186
  const maxWidth = visibleWidth
@@ -1636,7 +1640,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
1636
1640
  return h('span', {
1637
1641
  class: `${type}-resize`,
1638
1642
  attrs: {
1639
- type: type
1643
+ 'data-type': type
1640
1644
  },
1641
1645
  on: {
1642
1646
  mousedown: $xeModal.dragEvent
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, getConfig, getIcon, getI18n, globalEvents, GLOBAL_EVENT_KEYS, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
- import { getEventTargetNode, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
5
+ import { getEventTargetNode, getPopupContainer, toCssUnit, updatePanelPlacement } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, getFuncText, eqEmptyValue } from '../../ui/src/utils'
7
7
  import { getSlotVNs } from '../../ui/src/vn'
8
8
  import { createComponentLog } from '../../ui/src/log'
@@ -849,6 +849,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
849
849
  const isDisabled = $xeSelect.computeIsDisabled
850
850
  const remoteOpts = $xeSelect.computeRemoteOpts
851
851
  const selectVals = $xeSelect.computeSelectVals
852
+ const popupOpts = $xeSelect.computePopupOpts
852
853
  if (!loading && !isDisabled) {
853
854
  if (hpTimeout) {
854
855
  clearTimeout(hpTimeout)
@@ -859,7 +860,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
859
860
  const btnTransfer = $xeSelect.computeBtnTransfer
860
861
  const panelElem = $xeSelect.$refs.refOptionPanel as HTMLElement
861
862
  if (btnTransfer && panelElem) {
862
- document.body.appendChild(panelElem)
863
+ const { appendTo } = popupOpts
864
+ getPopupContainer(appendTo).appendChild(panelElem)
863
865
  }
864
866
  }
865
867
  reactData.isActivated = true
@@ -2,7 +2,7 @@ import { CreateElement, PropType, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { VxeUI, getConfig, getIcon, globalEvents, getI18n, createEvent, renderEmptyElement, globalMixins } from '../../ui'
5
- import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
5
+ import { getEventTargetNode, updatePanelPlacement, toCssUnit, getPopupContainer } from '../../ui/src/dom'
6
6
  import { getOnName } from '../../ui/src/vn'
7
7
  import { getLastZIndex, nextZIndex } from '../../ui/src/utils'
8
8
  import { createComponentLog } from '../../ui/src/log'
@@ -496,6 +496,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
496
496
 
497
497
  const { loading } = props
498
498
  const isDisabled = $xeTableSelect.computeIsDisabled
499
+ const popupOpts = $xeTableSelect.computePopupOpts
499
500
  if (!loading && !isDisabled) {
500
501
  if (internalData.vpTimeout) {
501
502
  clearTimeout(internalData.vpTimeout)
@@ -509,7 +510,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
509
510
  const panelElem = $xeTableSelect.$refs.refOptionPanel as HTMLElement
510
511
  if (btnTransfer) {
511
512
  if (panelElem) {
512
- document.body.appendChild(panelElem)
513
+ const { appendTo } = popupOpts
514
+ getPopupContainer(appendTo).appendChild(panelElem)
513
515
  }
514
516
  }
515
517
  }
@@ -2,7 +2,7 @@ import { PropType, CreateElement, VNode } from 'vue'
2
2
  import { defineVxeComponent } from '../../ui/src/comp'
3
3
  import XEUtils from 'xe-utils'
4
4
  import { getConfig, getI18n, getIcon, globalEvents, createEvent, globalMixins, renderEmptyElement } from '../../ui'
5
- import { getEventTargetNode, updatePanelPlacement, toCssUnit } from '../../ui/src/dom'
5
+ import { getEventTargetNode, updatePanelPlacement, toCssUnit, getPopupContainer } from '../../ui/src/dom'
6
6
  import { getLastZIndex, nextZIndex, deModelValue } from '../../ui/src/utils'
7
7
  import { createComponentLog } from '../../ui/src/log'
8
8
  import { getSlotVNs } from '../../ui/src/vn'
@@ -588,6 +588,7 @@ export default /* define-vxe-component start */ defineVxeComponent({
588
588
  const { fullOptionList } = internalData
589
589
  const isDisabled = $xeTreeSelect.computeIsDisabled
590
590
  const remoteOpts = $xeTreeSelect.computeRemoteOpts
591
+ const popupOpts = $xeTreeSelect.computePopupOpts
591
592
  if (!loading && !isDisabled) {
592
593
  if (internalData.hpTimeout) {
593
594
  clearTimeout(internalData.hpTimeout)
@@ -598,7 +599,8 @@ export default /* define-vxe-component start */ defineVxeComponent({
598
599
  const panelElem = $xeTreeSelect.$refs.refOptionPanel as HTMLElement
599
600
  if (btnTransfer) {
600
601
  if (panelElem) {
601
- document.body.appendChild(panelElem)
602
+ const { appendTo } = popupOpts
603
+ getPopupContainer(appendTo).appendChild(panelElem)
602
604
  }
603
605
  }
604
606
  }
@@ -278,3 +278,11 @@ export function updatePanelPlacement (targetElem: HTMLElement | null | undefined
278
278
  placement: panelPlacement
279
279
  }
280
280
  }
281
+
282
+ export function getPopupContainer (appendTo: string | HTMLElement | ((params: any) => string | HTMLElement) | undefined) {
283
+ const selectElem = appendTo && XEUtils.isFunction(appendTo) ? appendTo({}) : appendTo
284
+ if (XEUtils.isString(selectElem)) {
285
+ return document.querySelector(selectElem) || document.body
286
+ }
287
+ return selectElem || document.body
288
+ }
@@ -334,15 +334,9 @@
334
334
  }
335
335
  }
336
336
 
337
- .vxe-button.type--button,
338
- .vxe-button--dropdown {
339
- margin-right: var(--vxe-ui-button-current-margin-left);
340
- &:last-of-type {
341
- margin-right: 0;
342
- }
343
- }
344
-
345
- .vxe-button+.vxe-button--dropdown,
346
- .vxe-button--dropdown+.vxe-button {
337
+ .vxe-button.type--button+.vxe-button.type--button,
338
+ .vxe-button.type--button+.vxe-button--dropdown,
339
+ .vxe-button--dropdown+.vxe-button.type--button,
340
+ .vxe-button--dropdown+.vxe-button--dropdown {
347
341
  margin-left: var(--vxe-ui-button-current-margin-left);
348
342
  }
@@ -82,7 +82,7 @@
82
82
  z-index: 99;
83
83
  width: 30em;
84
84
  height: 10em;
85
- background-color: rgba(0, 0, 0, 0.7);
85
+ background-color: var(--vxe-ui-vxe-image-preview-operation-background-color);
86
86
  color: var(--vxe-ui-status-error-color);
87
87
  transform: rotate(45deg);
88
88
  cursor: pointer;
@@ -126,7 +126,7 @@
126
126
  width: 2.2em;
127
127
  height: 2.2em;
128
128
  line-height: 2.2em;
129
- background-color: rgba(0, 0, 0, 0.7);
129
+ background-color: var(--vxe-ui-vxe-image-preview-operation-background-color);
130
130
  cursor: pointer;
131
131
  @include baseMixin.createAnimationTransition(all, 0.1s);
132
132
  }
@@ -139,6 +139,10 @@
139
139
  transform: translate(2em, -50%);
140
140
  }
141
141
 
142
+ .vxe-image-preview--btn-wrapper {
143
+ color: var(--vxe-ui-vxe-image-preview-operation-color);
144
+ }
145
+
142
146
  .vxe-image-preview--operation-info {
143
147
  right: 0.2em;
144
148
  bottom: 0.2em;
@@ -149,7 +153,7 @@
149
153
  border-radius: var(--vxe-ui-base-border-radius);
150
154
  text-align: center;
151
155
  transform: translate(2em, 2em);
152
- background-color: rgba(0, 0, 0, 0.7);
156
+ background-color: var(--vxe-ui-vxe-image-preview-operation-background-color);
153
157
  @include baseMixin.createAnimationTransition(all, 0.2s);
154
158
  }
155
159
  .vxe-image-preview--operation-wrapper {
@@ -161,7 +165,7 @@
161
165
  transform: translate(-50%, 3em);
162
166
  padding: 0 1.5em;
163
167
  border-radius: 3em;
164
- background-color: rgba(0, 0, 0, 0.7);
168
+ background-color: var(--vxe-ui-vxe-image-preview-operation-background-color);
165
169
  @include baseMixin.createAnimationTransition(all, 0.2s);
166
170
  }
167
171
  .vxe-image-preview--operation-active-count {
@@ -140,4 +140,8 @@
140
140
  --vxe-ui-list-row-current-background-color: #18222c;
141
141
  --vxe-ui-list-row-hover-current-background-color: #262727;
142
142
  --vxe-ui-list-drag-over-background-color:rgba(48, 48, 0, 0.3);
143
+
144
+ /*image-preview*/
145
+ --vxe-ui-vxe-image-preview-operation-color: rgba(0,0,0,0.7);
146
+ --vxe-ui-vxe-image-preview-operation-background-color: rgba(255,255,255,0.4);
143
147
  }
@@ -139,4 +139,8 @@
139
139
  --vxe-ui-list-row-current-background-color: #{light_variable.$vxe-ui-list-row-current-background-color};
140
140
  --vxe-ui-list-row-hover-current-background-color: #{light_variable.$vxe-ui-list-row-hover-current-background-color};
141
141
  --vxe-ui-list-drag-over-background-color: #{light_variable.$vxe-ui-list-drag-over-background-color};
142
+
143
+ /*image-preview*/
144
+ --vxe-ui-vxe-image-preview-operation-color: #{light_variable.$vxe-ui-vxe-image-preview-operation-color};
145
+ --vxe-ui-vxe-image-preview-operation-background-color: #{light_variable.$vxe-ui-vxe-image-preview-operation-background-color};
142
146
  }
@@ -134,3 +134,7 @@ $vxe-ui-list-row-hover-checkbox-checked-background-color: #ffebbc !default;
134
134
  $vxe-ui-list-row-current-background-color: #e6f7ff !default;
135
135
  $vxe-ui-list-row-hover-current-background-color: #d7effb !default;
136
136
  $vxe-ui-list-drag-over-background-color: rgba(255,255,200,0.3) !default;
137
+
138
+ /*image-preview*/
139
+ $vxe-ui-vxe-image-preview-operation-color: rgba(255,255,255,0.6) !default;
140
+ $vxe-ui-vxe-image-preview-operation-background-color: rgba(0, 0, 0, 0.7) !default;
@@ -94,7 +94,7 @@ export namespace VxeButtonPropTypes {
94
94
  /**
95
95
  * 挂载到指定元素下
96
96
  */
97
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
97
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
98
98
  zIndex?: number | string
99
99
  className?: string | ((params: { $button: VxeButtonConstructor }) => string)
100
100
  }
@@ -65,7 +65,7 @@ export namespace VxeColorPickerPropTypes {
65
65
  /**
66
66
  * 挂载到指定元素下
67
67
  */
68
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
68
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
69
69
  width?: number | string
70
70
  height?: number | string
71
71
  zIndex?: number | string
@@ -116,7 +116,7 @@ export namespace VxeDatePickerPropTypes {
116
116
  /**
117
117
  * 挂载到指定元素下
118
118
  */
119
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
119
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
120
120
  width?: number | string
121
121
  height?: number | string
122
122
  zIndex?: number | string
@@ -99,7 +99,7 @@ export namespace VxeDateRangePickerPropTypes {
99
99
  /**
100
100
  * 挂载到指定元素下
101
101
  */
102
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
102
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
103
103
  width?: number | string
104
104
  height?: number | string
105
105
  zIndex?: number | string
@@ -58,6 +58,7 @@ export namespace VxeDrawerPropTypes {
58
58
  export type DestroyOnClose = boolean
59
59
  export type ShowTitleOverflow = boolean
60
60
  export type Transfer = boolean
61
+ export type AppendTo = string | HTMLElement | ((params: {}) => string | HTMLElement)
61
62
  export type Padding = boolean
62
63
  export type BeforeHideMethod = (params: VxeDrawerDefines.DrawerVisibleParams) => Promise<any>
63
64
  export type Slots = VxeDrawerSlots
@@ -94,7 +95,14 @@ export interface VxeDrawerProps {
94
95
  zIndex?: VxeDrawerPropTypes.ZIndex
95
96
  destroyOnClose?: VxeDrawerPropTypes.DestroyOnClose
96
97
  showTitleOverflow?: VxeDrawerPropTypes.ShowTitleOverflow
98
+ /**
99
+ * 是否启用元素挂载
100
+ */
97
101
  transfer?: VxeDrawerPropTypes.Transfer
102
+ /**
103
+ * 挂载到指定元素下
104
+ */
105
+ appendTo?: VxeDrawerPropTypes.AppendTo
98
106
  padding?: VxeDrawerPropTypes.Padding
99
107
  beforeHideMethod?: VxeDrawerPropTypes.BeforeHideMethod
100
108
  slots?: VxeDrawerPropTypes.Slots
@@ -59,7 +59,14 @@ export namespace VxeIconPickerPropTypes {
59
59
  * 触发方式
60
60
  */
61
61
  trigger?: 'default' | 'icon' | 'manual' | '' | null
62
+ /**
63
+ * 是否启用元素挂载
64
+ */
62
65
  transfer?: boolean
66
+ /**
67
+ * 挂载到指定元素下
68
+ */
69
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
63
70
  /**
64
71
  * 每行显示出多少个图标,如果设置了 chunkWidth 则该参数无效
65
72
  */
@@ -33,7 +33,6 @@ export namespace VxeMenuPropTypes {
33
33
  linkUrl?: string
34
34
  linkTarget?: string
35
35
  routerLink?: string
36
- routerTarget?: string
37
36
  }
38
37
 
39
38
  export interface MenuOption {
@@ -79,6 +78,7 @@ export namespace VxeMenuPropTypes {
79
78
  currentOption: VxeMenuPropTypes.MenuOption
80
79
  }): boolean
81
80
  }
81
+ export type AppendTo = string | HTMLElement | ((params: {}) => string | HTMLElement)
82
82
  }
83
83
 
84
84
  export interface VxeMenuProps {
@@ -100,6 +100,10 @@ export interface VxeMenuProps {
100
100
  expandKeys?: VxeMenuPropTypes.ExpandKeys
101
101
  options?: VxeMenuPropTypes.Options
102
102
  menuConfig?: VxeMenuPropTypes.MenuConfig
103
+ /**
104
+ * 挂载到指定元素下
105
+ */
106
+ appendTo?: VxeMenuPropTypes.AppendTo
103
107
  }
104
108
 
105
109
  export interface MenuPrivateComputed {
@@ -108,6 +108,7 @@ export namespace VxeModalPropTypes {
108
108
  export type DestroyOnClose = boolean
109
109
  export type ShowTitleOverflow = boolean
110
110
  export type Transfer = boolean
111
+ export type AppendTo = string | HTMLElement | ((params: {}) => string | HTMLElement)
111
112
  export type Storage = boolean
112
113
  export type StorageKey = string
113
114
  export type Animat = boolean
@@ -165,7 +166,14 @@ export interface VxeModalProps {
165
166
  remember?: VxeModalPropTypes.Remember
166
167
  destroyOnClose?: VxeModalPropTypes.DestroyOnClose
167
168
  showTitleOverflow?: VxeModalPropTypes.ShowTitleOverflow
169
+ /**
170
+ * 是否启用元素挂载
171
+ */
168
172
  transfer?: VxeModalPropTypes.Transfer
173
+ /**
174
+ * 挂载到指定元素下
175
+ */
176
+ appendTo?: VxeModalPropTypes.AppendTo
169
177
  storage?: VxeModalPropTypes.Storage
170
178
  storageKey?: VxeModalPropTypes.StorageKey
171
179
  animat?: VxeModalPropTypes.Animat
@@ -63,7 +63,7 @@ export namespace VxePulldownPropTypes {
63
63
  /**
64
64
  * 挂载到指定元素下
65
65
  */
66
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
66
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
67
67
  width?: number | string
68
68
  height?: number | string
69
69
  zIndex?: number | string
@@ -159,7 +159,7 @@ export namespace VxeSelectPropTypes {
159
159
  /**
160
160
  * 挂载到指定元素下
161
161
  */
162
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
162
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
163
163
  width?: number | string
164
164
  height?: number | string
165
165
  zIndex?: number | string
@@ -63,7 +63,7 @@ export namespace VxeTableSelectPropTypes {
63
63
  /**
64
64
  * 挂载到指定元素下
65
65
  */
66
- appendTo?: string | HTMLElement | (() => string | HTMLElement)
66
+ appendTo?: string | HTMLElement | ((params: {}) => string | HTMLElement)
67
67
  width?: number | string
68
68
  height?: number | string
69
69
  zIndex?: number | string
@@ -1043,7 +1043,11 @@ export namespace VxeTablePropTypes {
1043
1043
  column: VxeTableDefines.ColumnInfo<D>
1044
1044
  }): boolean
1045
1045
  /**
1046
- * 是否允许个性化列显示与隐藏
1046
+ * 是否允许设置分页设置
1047
+ */
1048
+ allowPager?: boolean
1049
+ /**
1050
+ * 是否允许设置列的显示与隐藏
1047
1051
  */
1048
1052
  allowVisible?: boolean
1049
1053
  /**
@@ -2618,7 +2622,7 @@ export namespace VxeTablePropTypes {
2618
2622
  */
2619
2623
  export interface EditDirtyConfig {
2620
2624
  /**
2621
- * 监听数据额外的列的字段,如果同时指定 includeFields 则会被覆盖
2625
+ * 监听数据额外的列的字段,如果同时指定 includeFields 则无效
2622
2626
  */
2623
2627
  extraFields?: string[]
2624
2628
  /**
@@ -3027,6 +3031,7 @@ export namespace VxeTablePropTypes {
3027
3031
  type?: string
3028
3032
  field?: string
3029
3033
  width?: number | string
3034
+ children?: ExportOrPrintColumnOption[]
3030
3035
  }
3031
3036
 
3032
3037
  interface ExportAndPrintConfig<D = any> {
@@ -3101,6 +3106,10 @@ export namespace VxeTablePropTypes {
3101
3106
  * 自定义列
3102
3107
  */
3103
3108
  columns?: VxeTableDefines.ColumnInfo[] | ExportOrPrintColumnOption[]
3109
+ /**
3110
+ * 额外的列
3111
+ */
3112
+ extraFields?: string[]
3104
3113
  /**
3105
3114
  * 指定列
3106
3115
  */
@@ -7080,6 +7089,9 @@ export namespace VxeTableDefines {
7080
7089
  export type CustomEventType = 'reset' | 'confirm' | 'update:width' | 'update:fixed' | 'update:sort' | 'update:visible' | 'update:align' | 'update:headerAlign' | 'update:footerAlign' | 'update:aggGroup' | 'update:aggFunc'
7081
7090
 
7082
7091
  export interface CustomStoreData {
7092
+ pageData?: {
7093
+ ps?: number
7094
+ }
7083
7095
  alignData?: Record<string, VxeColumnPropTypes.Align>
7084
7096
  headerAlignData?: Record<string, VxeColumnPropTypes.HeaderAlign>
7085
7097
  footerAlignData?: Record<string, VxeColumnPropTypes.FooterAlign>
@@ -7092,6 +7104,10 @@ export namespace VxeTableDefines {
7092
7104
  }
7093
7105
 
7094
7106
  export interface VxeTableCustomStorageObj {
7107
+ /**
7108
+ * 保存分页设置
7109
+ */
7110
+ pager?: boolean | null
7095
7111
  /**
7096
7112
  * 保存列对齐方式
7097
7113
  */