vxe-pc-ui 4.6.4 → 4.6.6

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 (131) hide show
  1. package/es/button/src/button.js +83 -90
  2. package/es/button/style.css +24 -2
  3. package/es/button/style.min.css +1 -1
  4. package/es/color-picker/src/color-picker.js +19 -72
  5. package/es/color-picker/style.css +15 -0
  6. package/es/color-picker/style.min.css +1 -1
  7. package/es/date-picker/src/date-picker.js +19 -74
  8. package/es/date-picker/style.css +3 -2
  9. package/es/date-picker/style.min.css +1 -1
  10. package/es/date-range-picker/src/date-range-picker.js +24 -79
  11. package/es/date-range-picker/style.css +3 -2
  12. package/es/date-range-picker/style.min.css +1 -1
  13. package/es/icon/style.css +1 -1
  14. package/es/pulldown/src/pulldown.js +19 -74
  15. package/es/pulldown/style.css +0 -4
  16. package/es/pulldown/style.min.css +1 -1
  17. package/es/select/src/select.js +19 -72
  18. package/es/style.css +1 -1
  19. package/es/style.min.css +1 -1
  20. package/es/table-select/src/table-select.js +19 -72
  21. package/es/table-select/style.css +0 -1
  22. package/es/table-select/style.min.css +1 -1
  23. package/es/tree-select/src/tree-select.js +19 -72
  24. package/es/tree-select/style.css +0 -1
  25. package/es/tree-select/style.min.css +1 -1
  26. package/es/ui/index.js +1 -1
  27. package/es/ui/src/dom.js +92 -0
  28. package/es/ui/src/log.js +1 -1
  29. package/es/vxe-button/style.css +24 -2
  30. package/es/vxe-button/style.min.css +1 -1
  31. package/es/vxe-color-picker/style.css +15 -0
  32. package/es/vxe-color-picker/style.min.css +1 -1
  33. package/es/vxe-date-picker/style.css +3 -2
  34. package/es/vxe-date-picker/style.min.css +1 -1
  35. package/es/vxe-date-range-picker/style.css +3 -2
  36. package/es/vxe-date-range-picker/style.min.css +1 -1
  37. package/es/vxe-pulldown/style.css +0 -4
  38. package/es/vxe-pulldown/style.min.css +1 -1
  39. package/es/vxe-table-select/style.css +0 -1
  40. package/es/vxe-table-select/style.min.css +1 -1
  41. package/es/vxe-tree-select/style.css +0 -1
  42. package/es/vxe-tree-select/style.min.css +1 -1
  43. package/lib/button/src/button.js +88 -93
  44. package/lib/button/src/button.min.js +1 -1
  45. package/lib/button/style/style.css +24 -2
  46. package/lib/button/style/style.min.css +1 -1
  47. package/lib/color-picker/src/color-picker.js +22 -77
  48. package/lib/color-picker/src/color-picker.min.js +1 -1
  49. package/lib/color-picker/style/style.css +15 -0
  50. package/lib/color-picker/style/style.min.css +1 -1
  51. package/lib/date-picker/src/date-picker.js +22 -79
  52. package/lib/date-picker/src/date-picker.min.js +1 -1
  53. package/lib/date-picker/style/style.css +3 -2
  54. package/lib/date-picker/style/style.min.css +1 -1
  55. package/lib/date-range-picker/src/date-range-picker.js +26 -83
  56. package/lib/date-range-picker/src/date-range-picker.min.js +1 -1
  57. package/lib/date-range-picker/style/style.css +3 -2
  58. package/lib/date-range-picker/style/style.min.css +1 -1
  59. package/lib/icon/style/style.css +1 -1
  60. package/lib/icon/style/style.min.css +1 -1
  61. package/lib/index.umd.js +344 -645
  62. package/lib/index.umd.min.js +1 -1
  63. package/lib/pulldown/src/pulldown.js +22 -80
  64. package/lib/pulldown/src/pulldown.min.js +1 -1
  65. package/lib/pulldown/style/style.css +0 -4
  66. package/lib/pulldown/style/style.min.css +1 -1
  67. package/lib/select/src/select.js +22 -77
  68. package/lib/select/src/select.min.js +1 -1
  69. package/lib/style.css +1 -1
  70. package/lib/style.min.css +1 -1
  71. package/lib/table-select/src/table-select.js +22 -77
  72. package/lib/table-select/src/table-select.min.js +1 -1
  73. package/lib/table-select/style/style.css +0 -1
  74. package/lib/table-select/style/style.min.css +1 -1
  75. package/lib/tree-select/src/tree-select.js +22 -77
  76. package/lib/tree-select/src/tree-select.min.js +1 -1
  77. package/lib/tree-select/style/style.css +0 -1
  78. package/lib/tree-select/style/style.min.css +1 -1
  79. package/lib/ui/index.js +1 -1
  80. package/lib/ui/index.min.js +1 -1
  81. package/lib/ui/src/dom.js +97 -0
  82. package/lib/ui/src/dom.min.js +1 -1
  83. package/lib/ui/src/log.js +1 -1
  84. package/lib/ui/src/log.min.js +1 -1
  85. package/lib/vxe-button/style/style.css +24 -2
  86. package/lib/vxe-button/style/style.min.css +1 -1
  87. package/lib/vxe-color-picker/style/style.css +15 -0
  88. package/lib/vxe-color-picker/style/style.min.css +1 -1
  89. package/lib/vxe-date-picker/style/style.css +3 -2
  90. package/lib/vxe-date-picker/style/style.min.css +1 -1
  91. package/lib/vxe-date-range-picker/style/style.css +3 -2
  92. package/lib/vxe-date-range-picker/style/style.min.css +1 -1
  93. package/lib/vxe-pulldown/style/style.css +0 -4
  94. package/lib/vxe-pulldown/style/style.min.css +1 -1
  95. package/lib/vxe-table-select/style/style.css +0 -1
  96. package/lib/vxe-table-select/style/style.min.css +1 -1
  97. package/lib/vxe-tree-select/style/style.css +0 -1
  98. package/lib/vxe-tree-select/style/style.min.css +1 -1
  99. package/package.json +1 -1
  100. package/packages/button/src/button.ts +87 -88
  101. package/packages/color-picker/src/color-picker.ts +19 -69
  102. package/packages/date-picker/src/date-picker.ts +20 -72
  103. package/packages/date-range-picker/src/date-range-picker.ts +24 -76
  104. package/packages/pulldown/src/pulldown.ts +20 -72
  105. package/packages/select/src/select.ts +19 -69
  106. package/packages/table-select/src/table-select.ts +19 -69
  107. package/packages/tree-select/src/tree-select.ts +19 -69
  108. package/packages/ui/src/dom.ts +95 -0
  109. package/styles/components/button.scss +3 -20
  110. package/styles/components/color-picker.scss +2 -27
  111. package/styles/components/date-picker.scss +2 -34
  112. package/styles/components/date-range-picker.scss +2 -34
  113. package/styles/components/pulldown.scss +2 -41
  114. package/styles/components/select.scss +2 -35
  115. package/styles/components/table-select.scss +2 -36
  116. package/styles/components/tree-select.scss +2 -36
  117. package/styles/helpers/placement.scss +39 -0
  118. package/types/components/button.d.ts +12 -1
  119. package/types/components/table.d.ts +56 -3
  120. /package/es/icon/{iconfont.1747024965925.ttf → iconfont.1747109497236.ttf} +0 -0
  121. /package/es/icon/{iconfont.1747024965925.woff → iconfont.1747109497236.woff} +0 -0
  122. /package/es/icon/{iconfont.1747024965925.woff2 → iconfont.1747109497236.woff2} +0 -0
  123. /package/es/{iconfont.1747024965925.ttf → iconfont.1747109497236.ttf} +0 -0
  124. /package/es/{iconfont.1747024965925.woff → iconfont.1747109497236.woff} +0 -0
  125. /package/es/{iconfont.1747024965925.woff2 → iconfont.1747109497236.woff2} +0 -0
  126. /package/lib/icon/style/{iconfont.1747024965925.ttf → iconfont.1747109497236.ttf} +0 -0
  127. /package/lib/icon/style/{iconfont.1747024965925.woff → iconfont.1747109497236.woff} +0 -0
  128. /package/lib/icon/style/{iconfont.1747024965925.woff2 → iconfont.1747109497236.woff2} +0 -0
  129. /package/lib/{iconfont.1747024965925.ttf → iconfont.1747109497236.ttf} +0 -0
  130. /package/lib/{iconfont.1747024965925.woff → iconfont.1747109497236.woff} +0 -0
  131. /package/lib/{iconfont.1747024965925.woff2 → iconfont.1747109497236.woff2} +0 -0
package/lib/index.umd.js CHANGED
@@ -4213,14 +4213,14 @@ function checkDynamic() {
4213
4213
  }
4214
4214
  ;// CONCATENATED MODULE: ./packages/ui/src/log.ts
4215
4215
 
4216
- const log_version = `ui v${"4.6.4"}`;
4216
+ const log_version = `ui v${"4.6.6"}`;
4217
4217
  const warnLog = log.create('warn', log_version);
4218
4218
  const errLog = log.create('error', log_version);
4219
4219
  ;// CONCATENATED MODULE: ./packages/ui/index.ts
4220
4220
 
4221
4221
 
4222
4222
 
4223
- const ui_version = "4.6.4";
4223
+ const ui_version = "4.6.6";
4224
4224
  index_esm_VxeUI.uiVersion = ui_version;
4225
4225
  index_esm_VxeUI.dynamicApp = dynamicApp;
4226
4226
  function config(options) {
@@ -5071,6 +5071,102 @@ function dom_triggerEvent(targetElem, type) {
5071
5071
  function isNodeElement(elem) {
5072
5072
  return elem && elem.nodeType === 1;
5073
5073
  }
5074
+ function updatePanelPlacement(targetElem, panelElem, options) {
5075
+ const {
5076
+ placement,
5077
+ teleportTo,
5078
+ marginSize
5079
+ } = Object.assign({
5080
+ teleportTo: false,
5081
+ marginSize: 5
5082
+ }, options);
5083
+ let panelPlacement = 'bottom';
5084
+ let top = '';
5085
+ let bottom = '';
5086
+ let left = '';
5087
+ const right = '';
5088
+ let minWidth = '';
5089
+ const stys = {};
5090
+ if (panelElem && targetElem) {
5091
+ const documentElement = document.documentElement;
5092
+ const bodyElem = document.body;
5093
+ const targetHeight = targetElem.offsetHeight;
5094
+ const panelHeight = panelElem.offsetHeight;
5095
+ const panelWidth = panelElem.offsetWidth;
5096
+ const bounding = targetElem.getBoundingClientRect();
5097
+ const boundingTop = bounding.top;
5098
+ const boundingLeft = bounding.left;
5099
+ const visibleHeight = documentElement.clientHeight || bodyElem.clientHeight;
5100
+ const visibleWidth = documentElement.clientWidth || bodyElem.clientWidth;
5101
+ minWidth = targetElem.offsetWidth;
5102
+ if (teleportTo) {
5103
+ left = boundingLeft;
5104
+ top = boundingTop + targetHeight;
5105
+ if (placement === 'top') {
5106
+ panelPlacement = 'top';
5107
+ top = boundingTop - panelHeight;
5108
+ } else if (!placement) {
5109
+ // 如果下面不够放,则向上
5110
+ if (top + panelHeight + marginSize > visibleHeight) {
5111
+ panelPlacement = 'top';
5112
+ top = boundingTop - panelHeight;
5113
+ }
5114
+ // 如果上面不够放,则向下(优先)
5115
+ if (top < marginSize) {
5116
+ panelPlacement = 'bottom';
5117
+ top = boundingTop + targetHeight;
5118
+ }
5119
+ }
5120
+ // 如果溢出右边
5121
+ if (left + panelWidth + marginSize > visibleWidth) {
5122
+ left -= left + panelWidth + marginSize - visibleWidth;
5123
+ }
5124
+ // 如果溢出左边
5125
+ if (left < marginSize) {
5126
+ left = marginSize;
5127
+ }
5128
+ } else {
5129
+ if (placement === 'top') {
5130
+ panelPlacement = 'top';
5131
+ bottom = targetHeight;
5132
+ } else if (!placement) {
5133
+ // 如果下面不够放,则向上
5134
+ top = targetHeight;
5135
+ if (boundingTop + targetHeight + panelHeight > visibleHeight) {
5136
+ // 如果上面不够放,则向下(优先)
5137
+ if (boundingTop - targetHeight - panelHeight > marginSize) {
5138
+ panelPlacement = 'top';
5139
+ top = '';
5140
+ bottom = targetHeight;
5141
+ }
5142
+ }
5143
+ }
5144
+ }
5145
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(top)) {
5146
+ stys.top = toCssUnit(top);
5147
+ }
5148
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(bottom)) {
5149
+ stys.bottom = toCssUnit(bottom);
5150
+ }
5151
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(left)) {
5152
+ stys.left = toCssUnit(left);
5153
+ }
5154
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(right)) {
5155
+ stys.right = toCssUnit(right);
5156
+ }
5157
+ if (external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isNumber(minWidth)) {
5158
+ stys.minWidth = toCssUnit(minWidth);
5159
+ }
5160
+ }
5161
+ return {
5162
+ top: top || 0,
5163
+ bottom: bottom || 0,
5164
+ left: left || 0,
5165
+ right: right || 0,
5166
+ style: stys,
5167
+ placement: panelPlacement
5168
+ };
5169
+ }
5074
5170
  ;// CONCATENATED MODULE: ./packages/anchor/src/util.ts
5075
5171
 
5076
5172
  function assembleAnchorLink($xeAnchor, elem, linkConfig, $xeParentAnchorLink) {
@@ -6359,7 +6455,7 @@ function handleBooleanDefaultValue(value) {
6359
6455
 
6360
6456
 
6361
6457
 
6362
- /* harmony default export */ var src_button = ((0,external_commonjs_vue_commonjs2_vue_root_Vue_.defineComponent)({
6458
+ const VxeButtonComponent = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.defineComponent)({
6363
6459
  name: 'VxeButton',
6364
6460
  props: {
6365
6461
  /**
@@ -6428,6 +6524,7 @@ function handleBooleanDefaultValue(value) {
6428
6524
  align: String,
6429
6525
  prefixTooltip: Object,
6430
6526
  suffixTooltip: Object,
6527
+ options: Array,
6431
6528
  /**
6432
6529
  * 在下拉面板关闭时销毁内容
6433
6530
  */
@@ -6578,6 +6675,20 @@ function handleBooleanDefaultValue(value) {
6578
6675
  }
6579
6676
  return false;
6580
6677
  });
6678
+ const computeDownBtnList = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
6679
+ const {
6680
+ options
6681
+ } = props;
6682
+ if (options) {
6683
+ return options.filter(item => {
6684
+ const {
6685
+ permissionCode
6686
+ } = item;
6687
+ return !permissionCode || permission.checkVisible(permissionCode);
6688
+ });
6689
+ }
6690
+ return [];
6691
+ });
6581
6692
  const computePrefixTipOpts = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
6582
6693
  return Object.assign({}, props.prefixTooltip);
6583
6694
  });
@@ -6590,85 +6701,28 @@ function handleBooleanDefaultValue(value) {
6590
6701
  }
6591
6702
  };
6592
6703
  const updatePlacement = () => {
6593
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
6594
- const {
6595
- placement
6596
- } = props;
6597
- const {
6598
- panelIndex
6599
- } = reactData;
6600
- const targetElem = refButton.value;
6601
- const panelElem = refBtnPanel.value;
6602
- const btnTransfer = computeBtnTransfer.value;
6603
- if (panelElem && targetElem) {
6604
- const targetHeight = targetElem.offsetHeight;
6605
- const targetWidth = targetElem.offsetWidth;
6606
- const panelHeight = panelElem.offsetHeight;
6607
- const panelWidth = panelElem.offsetWidth;
6608
- const marginSize = 5;
6609
- const panelStyle = {
6610
- zIndex: panelIndex
6611
- };
6612
- const {
6613
- top,
6614
- left,
6615
- boundingTop,
6616
- visibleHeight,
6617
- visibleWidth
6618
- } = getAbsolutePos(targetElem);
6619
- let panelPlacement = 'bottom';
6620
- if (btnTransfer) {
6621
- let btnLeft = left + targetWidth - panelWidth;
6622
- let btnTop = top + targetHeight;
6623
- if (placement === 'top') {
6624
- panelPlacement = 'top';
6625
- btnTop = top - panelHeight;
6626
- } else if (!placement) {
6627
- // 如果下面不够放,则向上
6628
- if (boundingTop + targetHeight + panelHeight + marginSize > visibleHeight) {
6629
- panelPlacement = 'top';
6630
- btnTop = top - panelHeight;
6631
- }
6632
- // 如果上面不够放,则向下(优先)
6633
- if (btnTop < marginSize) {
6634
- panelPlacement = 'bottom';
6635
- btnTop = top + targetHeight;
6636
- }
6637
- }
6638
- // 如果溢出右边
6639
- if (btnLeft + panelWidth + marginSize > visibleWidth) {
6640
- btnLeft -= btnLeft + panelWidth + marginSize - visibleWidth;
6641
- }
6642
- // 如果溢出左边
6643
- if (btnLeft < marginSize) {
6644
- btnLeft = marginSize;
6645
- }
6646
- Object.assign(panelStyle, {
6647
- left: `${btnLeft}px`,
6648
- right: 'auto',
6649
- top: `${btnTop}px`,
6650
- minWidth: `${targetWidth}px`
6651
- });
6652
- } else {
6653
- if (placement === 'top') {
6654
- panelPlacement = 'top';
6655
- panelStyle.bottom = `${targetHeight}px`;
6656
- } else if (!placement) {
6657
- // 如果下面不够放,则向上
6658
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
6659
- // 如果上面不够放,则向下(优先)
6660
- if (boundingTop - targetHeight - panelHeight > marginSize) {
6661
- panelPlacement = 'top';
6662
- panelStyle.bottom = `${targetHeight}px`;
6663
- }
6664
- }
6665
- }
6666
- }
6667
- reactData.panelStyle = panelStyle;
6668
- reactData.panelPlacement = panelPlacement;
6669
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
6670
- }
6671
- });
6704
+ const {
6705
+ placement
6706
+ } = props;
6707
+ const {
6708
+ panelIndex
6709
+ } = reactData;
6710
+ const targetElem = refButton.value;
6711
+ const panelElem = refBtnPanel.value;
6712
+ const btnTransfer = computeBtnTransfer.value;
6713
+ const handleStyle = () => {
6714
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
6715
+ placement,
6716
+ teleportTo: btnTransfer
6717
+ });
6718
+ const panelStyle = Object.assign(ppObj.style, {
6719
+ zIndex: panelIndex
6720
+ });
6721
+ reactData.panelStyle = panelStyle;
6722
+ reactData.panelPlacement = ppObj.placement;
6723
+ };
6724
+ handleStyle();
6725
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
6672
6726
  };
6673
6727
  const clickEvent = evnt => {
6674
6728
  if ($xeButtonGroup) {
@@ -6680,6 +6734,16 @@ function handleBooleanDefaultValue(value) {
6680
6734
  $event: evnt
6681
6735
  }, evnt);
6682
6736
  };
6737
+ const downBtnClickEvent = (params, option) => {
6738
+ const {
6739
+ $event
6740
+ } = params;
6741
+ hidePanel();
6742
+ dispatchEvent('dropdown-click', {
6743
+ name: option.name,
6744
+ option
6745
+ }, $event);
6746
+ };
6683
6747
  const mousedownDropdownEvent = evnt => {
6684
6748
  const isLeftBtn = evnt.button === 0;
6685
6749
  if (isLeftBtn) {
@@ -6705,7 +6769,7 @@ function handleBooleanDefaultValue(value) {
6705
6769
  }, 350);
6706
6770
  dispatchEvent('dropdown-click', {
6707
6771
  name: targetElem.getAttribute('name'),
6708
- $event: evnt
6772
+ option: null
6709
6773
  }, evnt);
6710
6774
  }
6711
6775
  };
@@ -6739,7 +6803,7 @@ function handleBooleanDefaultValue(value) {
6739
6803
  }
6740
6804
  };
6741
6805
  const mouseleaveTargetEvent = evnt => {
6742
- closePanel();
6806
+ hidePanel();
6743
6807
  mouseleaveEvent(evnt);
6744
6808
  };
6745
6809
  const mouseenterEvent = evnt => {
@@ -6757,7 +6821,7 @@ function handleBooleanDefaultValue(value) {
6757
6821
  if (!(btnDisabled || loading)) {
6758
6822
  if (trigger === 'click') {
6759
6823
  if (reactData.visiblePanel) {
6760
- closePanel();
6824
+ hidePanel();
6761
6825
  } else {
6762
6826
  openPanel();
6763
6827
  }
@@ -6785,7 +6849,7 @@ function handleBooleanDefaultValue(value) {
6785
6849
  }
6786
6850
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
6787
6851
  };
6788
- const closePanel = () => {
6852
+ const hidePanel = () => {
6789
6853
  const panelElem = refBtnPanel.value;
6790
6854
  clearTimeout(internalData.showTime);
6791
6855
  if (panelElem) {
@@ -6807,7 +6871,7 @@ function handleBooleanDefaultValue(value) {
6807
6871
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
6808
6872
  };
6809
6873
  const mouseleaveDropdownEvent = () => {
6810
- closePanel();
6874
+ hidePanel();
6811
6875
  };
6812
6876
  const renderTooltipIcon = (tipOpts, type) => {
6813
6877
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(tooltip, {
@@ -6874,7 +6938,7 @@ function handleBooleanDefaultValue(value) {
6874
6938
  buttonMethods = {
6875
6939
  dispatchEvent,
6876
6940
  openPanel,
6877
- closePanel,
6941
+ closePanel: hidePanel,
6878
6942
  focus() {
6879
6943
  const btnElem = refButton.value;
6880
6944
  if (btnElem) {
@@ -6893,7 +6957,7 @@ function handleBooleanDefaultValue(value) {
6893
6957
  const handleGlobalMousewheelEvent = evnt => {
6894
6958
  const panelElem = refBtnPanel.value;
6895
6959
  if (reactData.visiblePanel && !getEventTargetNode(evnt, panelElem).flag) {
6896
- closePanel();
6960
+ hidePanel();
6897
6961
  }
6898
6962
  };
6899
6963
  const handleGlobalMousedownEvent = evnt => {
@@ -6906,7 +6970,7 @@ function handleBooleanDefaultValue(value) {
6906
6970
  const panelElem = refBtnPanel.value;
6907
6971
  reactData.isActivated = getEventTargetNode(evnt, el).flag || getEventTargetNode(evnt, panelElem).flag;
6908
6972
  if (visiblePanel && !reactData.isActivated) {
6909
- closePanel();
6973
+ hidePanel();
6910
6974
  }
6911
6975
  }
6912
6976
  };
@@ -6937,12 +7001,13 @@ function handleBooleanDefaultValue(value) {
6937
7001
  const btnTransfer = computeBtnTransfer.value;
6938
7002
  const btnDisabled = computeBtnDisabled.value;
6939
7003
  const permissionInfo = computePermissionInfo.value;
7004
+ const downBtnList = computeDownBtnList.value;
6940
7005
  const vSize = computeSize.value;
6941
- const downsSlot = slots.dropdowns;
7006
+ const dropdownsSlot = slots.dropdowns;
6942
7007
  if (!permissionInfo.visible) {
6943
7008
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.createCommentVNode)();
6944
7009
  }
6945
- if (downsSlot) {
7010
+ if (dropdownsSlot || downBtnList.length) {
6946
7011
  const btnOns = {};
6947
7012
  const panelOns = {};
6948
7013
  if (trigger === 'hover') {
@@ -7014,17 +7079,42 @@ function handleBooleanDefaultValue(value) {
7014
7079
  $button: $xeButton
7015
7080
  }) : popupClassName : '', {
7016
7081
  [`size--${vSize}`]: vSize,
7082
+ 'is--transfer': btnTransfer,
7017
7083
  'ani--leave': isAniVisible,
7018
7084
  'ani--enter': visiblePanel
7019
7085
  }],
7020
7086
  placement: reactData.panelPlacement,
7021
7087
  style: reactData.panelStyle,
7022
7088
  ...panelOns
7023
- }, initialized && (visiblePanel || isAniVisible) ? [(0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
7089
+ }, initialized && (visiblePanel || isAniVisible) ? [dropdownsSlot ? (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
7024
7090
  class: 'vxe-button--dropdown-wrapper',
7025
7091
  onMousedown: mousedownDropdownEvent,
7026
7092
  onClick: clickDropdownEvent
7027
- }, destroyOnClose && !visiblePanel ? [] : downsSlot({}))] : [])])]);
7093
+ }, initialized && (destroyOnClose ? visiblePanel || isAniVisible : true) ? dropdownsSlot({}) : []) : (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)('div', {
7094
+ class: 'vxe-button--dropdown-wrapper'
7095
+ }, initialized && (destroyOnClose ? visiblePanel || isAniVisible : true) ? downBtnList.map((option, i) => {
7096
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)(VxeButtonComponent, {
7097
+ key: i,
7098
+ type: option.type,
7099
+ mode: option.mode || btnMode,
7100
+ className: option.className,
7101
+ name: option.name,
7102
+ routerLink: option.routerLink,
7103
+ permissionCode: option.permissionCode,
7104
+ title: option.title,
7105
+ content: option.content,
7106
+ status: option.status,
7107
+ icon: option.icon,
7108
+ round: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(option.round) ? option.round : btnMode === 'text' ? false : btnRound,
7109
+ circle: external_root_XEUtils_commonjs_xe_utils_commonjs2_xe_utils_amd_xe_utils_default().isBoolean(option.circle) ? option.circle : btnMode === 'text' ? false : btnCircle,
7110
+ disabled: option.disabled,
7111
+ loading: option.loading,
7112
+ align: option.align,
7113
+ onClick(params) {
7114
+ downBtnClickEvent(params, option);
7115
+ }
7116
+ });
7117
+ }) : [])] : [])])]);
7028
7118
  }
7029
7119
  if (routerLink) {
7030
7120
  return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.h)((0,external_commonjs_vue_commonjs2_vue_root_Vue_.resolveComponent)('router-link'), {
@@ -7093,7 +7183,8 @@ function handleBooleanDefaultValue(value) {
7093
7183
  render() {
7094
7184
  return this.renderVN();
7095
7185
  }
7096
- }));
7186
+ });
7187
+ /* harmony default export */ var src_button = (VxeButtonComponent);
7097
7188
  ;// CONCATENATED MODULE: ./packages/button/index.ts
7098
7189
 
7099
7190
 
@@ -13499,83 +13590,28 @@ function toFloatValueFixed(inputValue, digitsValue) {
13499
13590
  }
13500
13591
  };
13501
13592
  const updatePlacement = () => {
13502
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
13503
- const {
13504
- placement
13505
- } = props;
13506
- const {
13507
- panelIndex
13508
- } = reactData;
13509
- const el = refElem.value;
13510
- const panelElem = refOptionPanel.value;
13511
- const btnTransfer = computeBtnTransfer.value;
13512
- if (panelElem && el) {
13513
- const targetHeight = el.offsetHeight;
13514
- const targetWidth = el.offsetWidth;
13515
- const panelHeight = panelElem.offsetHeight;
13516
- const panelWidth = panelElem.offsetWidth;
13517
- const marginSize = 5;
13518
- const panelStyle = {
13519
- zIndex: panelIndex
13520
- };
13521
- const {
13522
- boundingTop,
13523
- boundingLeft,
13524
- visibleHeight,
13525
- visibleWidth
13526
- } = getAbsolutePos(el);
13527
- let panelPlacement = 'bottom';
13528
- if (btnTransfer) {
13529
- let left = boundingLeft;
13530
- let top = boundingTop + targetHeight;
13531
- if (placement === 'top') {
13532
- panelPlacement = 'top';
13533
- top = boundingTop - panelHeight;
13534
- } else if (!placement) {
13535
- // 如果下面不够放,则向上
13536
- if (top + panelHeight + marginSize > visibleHeight) {
13537
- panelPlacement = 'top';
13538
- top = boundingTop - panelHeight;
13539
- }
13540
- // 如果上面不够放,则向下(优先)
13541
- if (top < marginSize) {
13542
- panelPlacement = 'bottom';
13543
- top = boundingTop + targetHeight;
13544
- }
13545
- }
13546
- // 如果溢出右边
13547
- if (left + panelWidth + marginSize > visibleWidth) {
13548
- left -= left + panelWidth + marginSize - visibleWidth;
13549
- }
13550
- // 如果溢出左边
13551
- if (left < marginSize) {
13552
- left = marginSize;
13553
- }
13554
- Object.assign(panelStyle, {
13555
- left: `${left}px`,
13556
- top: `${top}px`,
13557
- minWidth: `${targetWidth}px`
13558
- });
13559
- } else {
13560
- if (placement === 'top') {
13561
- panelPlacement = 'top';
13562
- panelStyle.bottom = `${targetHeight}px`;
13563
- } else if (!placement) {
13564
- // 如果下面不够放,则向上
13565
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
13566
- // 如果上面不够放,则向下(优先)
13567
- if (boundingTop - targetHeight - panelHeight > marginSize) {
13568
- panelPlacement = 'top';
13569
- panelStyle.bottom = `${targetHeight}px`;
13570
- }
13571
- }
13572
- }
13573
- }
13574
- reactData.panelStyle = panelStyle;
13575
- reactData.panelPlacement = panelPlacement;
13576
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
13577
- }
13578
- });
13593
+ const {
13594
+ placement
13595
+ } = props;
13596
+ const {
13597
+ panelIndex
13598
+ } = reactData;
13599
+ const targetElem = refElem.value;
13600
+ const panelElem = refOptionPanel.value;
13601
+ const btnTransfer = computeBtnTransfer.value;
13602
+ const handleStyle = () => {
13603
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
13604
+ placement,
13605
+ teleportTo: btnTransfer
13606
+ });
13607
+ const panelStyle = Object.assign(ppObj.style, {
13608
+ zIndex: panelIndex
13609
+ });
13610
+ reactData.panelStyle = panelStyle;
13611
+ reactData.panelPlacement = ppObj.placement;
13612
+ };
13613
+ handleStyle();
13614
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
13579
13615
  };
13580
13616
  const showOptionPanel = () => {
13581
13617
  const {
@@ -16809,85 +16845,28 @@ const DatePanel = VxeDatePanel;
16809
16845
  }
16810
16846
  };
16811
16847
  const updatePlacement = () => {
16812
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
16813
- const {
16814
- placement
16815
- } = props;
16816
- const {
16817
- panelIndex
16818
- } = reactData;
16819
- const targetElem = refInputTarget.value;
16820
- const panelElem = refInputPanel.value;
16821
- const btnTransfer = computeBtnTransfer.value;
16822
- if (targetElem && panelElem) {
16823
- const targetHeight = targetElem.offsetHeight;
16824
- const targetWidth = targetElem.offsetWidth;
16825
- const panelHeight = panelElem.offsetHeight;
16826
- const panelWidth = panelElem.offsetWidth;
16827
- const marginSize = 5;
16828
- const panelStyle = {
16829
- zIndex: panelIndex
16830
- };
16831
- const {
16832
- boundingTop,
16833
- boundingLeft,
16834
- visibleHeight,
16835
- visibleWidth
16836
- } = getAbsolutePos(targetElem);
16837
- let panelPlacement = 'bottom';
16838
- if (btnTransfer) {
16839
- let left = boundingLeft;
16840
- let top = boundingTop + targetHeight;
16841
- if (placement === 'top') {
16842
- panelPlacement = 'top';
16843
- top = boundingTop - panelHeight;
16844
- } else if (!placement) {
16845
- // 如果下面不够放,则向上
16846
- if (top + panelHeight + marginSize > visibleHeight) {
16847
- panelPlacement = 'top';
16848
- top = boundingTop - panelHeight;
16849
- }
16850
- // 如果上面不够放,则向下(优先)
16851
- if (top < marginSize) {
16852
- panelPlacement = 'bottom';
16853
- top = boundingTop + targetHeight;
16854
- }
16855
- }
16856
- // 如果溢出右边
16857
- if (left + panelWidth + marginSize > visibleWidth) {
16858
- left -= left + panelWidth + marginSize - visibleWidth;
16859
- }
16860
- // 如果溢出左边
16861
- if (left < marginSize) {
16862
- left = marginSize;
16863
- }
16864
- Object.assign(panelStyle, {
16865
- left: `${left}px`,
16866
- top: `${top}px`,
16867
- minWidth: `${targetWidth}px`
16868
- });
16869
- } else {
16870
- if (placement === 'top') {
16871
- panelPlacement = 'top';
16872
- panelStyle.bottom = `${targetHeight}px`;
16873
- } else if (!placement) {
16874
- // 如果下面不够放,则向上
16875
- panelStyle.top = `${targetHeight}px`;
16876
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
16877
- // 如果上面不够放,则向下(优先)
16878
- if (boundingTop - targetHeight - panelHeight > marginSize) {
16879
- panelPlacement = 'top';
16880
- panelStyle.top = '';
16881
- panelStyle.bottom = `${targetHeight}px`;
16882
- }
16883
- }
16884
- }
16885
- }
16886
- reactData.panelStyle = panelStyle;
16887
- reactData.panelPlacement = panelPlacement;
16888
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
16889
- }
16890
- });
16848
+ const {
16849
+ placement
16850
+ } = props;
16851
+ const {
16852
+ panelIndex
16853
+ } = reactData;
16854
+ const targetElem = refInputTarget.value;
16855
+ const panelElem = refInputPanel.value;
16856
+ const btnTransfer = computeBtnTransfer.value;
16857
+ const handleStyle = () => {
16858
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
16859
+ placement,
16860
+ teleportTo: btnTransfer
16861
+ });
16862
+ const panelStyle = Object.assign(ppObj.style, {
16863
+ zIndex: panelIndex
16864
+ });
16865
+ reactData.panelStyle = panelStyle;
16866
+ reactData.panelPlacement = ppObj.placement;
16867
+ };
16868
+ handleStyle();
16869
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
16891
16870
  };
16892
16871
  const showPanel = () => {
16893
16872
  const {
@@ -17521,7 +17500,7 @@ const DatePicker = VxeDatePicker;
17521
17500
  if (globalPlaceholder) {
17522
17501
  return getFuncText(globalPlaceholder);
17523
17502
  }
17524
- return i18n_getI18n('vxe.base.pleaseSelect');
17503
+ return i18n_getI18n('vxe.dateRangePicker.pleaseRange');
17525
17504
  });
17526
17505
  const computeInpImmediate = (0,external_commonjs_vue_commonjs2_vue_root_Vue_.computed)(() => {
17527
17506
  const {
@@ -17867,11 +17846,11 @@ const DatePicker = VxeDatePicker;
17867
17846
  if ($startDatePanel && $endDatePanel) {
17868
17847
  const startValue = $startDatePanel.getModelValue();
17869
17848
  const endValue = $endDatePanel.getModelValue();
17870
- if (startValue && endValue) {
17849
+ if (startValue && !endValue || !startValue && endValue) {
17850
+ handleChange('', '', evnt);
17851
+ } else {
17871
17852
  $startDatePanel.confirmByEvent(evnt);
17872
17853
  $endDatePanel.confirmByEvent(evnt);
17873
- } else {
17874
- handleChange('', '', evnt);
17875
17854
  }
17876
17855
  }
17877
17856
  hidePanel();
@@ -17976,85 +17955,28 @@ const DatePicker = VxeDatePicker;
17976
17955
  }
17977
17956
  };
17978
17957
  const updatePlacement = () => {
17979
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
17980
- const {
17981
- placement
17982
- } = props;
17983
- const {
17984
- panelIndex
17985
- } = reactData;
17986
- const targetElem = refInputTarget.value;
17987
- const panelElem = refInputPanel.value;
17988
- const btnTransfer = computeBtnTransfer.value;
17989
- if (targetElem && panelElem) {
17990
- const targetHeight = targetElem.offsetHeight;
17991
- const targetWidth = targetElem.offsetWidth;
17992
- const panelHeight = panelElem.offsetHeight;
17993
- const panelWidth = panelElem.offsetWidth;
17994
- const marginSize = 5;
17995
- const panelStyle = {
17996
- zIndex: panelIndex
17997
- };
17998
- const {
17999
- boundingTop,
18000
- boundingLeft,
18001
- visibleHeight,
18002
- visibleWidth
18003
- } = getAbsolutePos(targetElem);
18004
- let panelPlacement = 'bottom';
18005
- if (btnTransfer) {
18006
- let left = boundingLeft;
18007
- let top = boundingTop + targetHeight;
18008
- if (placement === 'top') {
18009
- panelPlacement = 'top';
18010
- top = boundingTop - panelHeight;
18011
- } else if (!placement) {
18012
- // 如果下面不够放,则向上
18013
- if (top + panelHeight + marginSize > visibleHeight) {
18014
- panelPlacement = 'top';
18015
- top = boundingTop - panelHeight;
18016
- }
18017
- // 如果上面不够放,则向下(优先)
18018
- if (top < marginSize) {
18019
- panelPlacement = 'bottom';
18020
- top = boundingTop + targetHeight;
18021
- }
18022
- }
18023
- // 如果溢出右边
18024
- if (left + panelWidth + marginSize > visibleWidth) {
18025
- left -= left + panelWidth + marginSize - visibleWidth;
18026
- }
18027
- // 如果溢出左边
18028
- if (left < marginSize) {
18029
- left = marginSize;
18030
- }
18031
- Object.assign(panelStyle, {
18032
- left: `${left}px`,
18033
- top: `${top}px`,
18034
- minWidth: `${targetWidth}px`
18035
- });
18036
- } else {
18037
- if (placement === 'top') {
18038
- panelPlacement = 'top';
18039
- panelStyle.bottom = `${targetHeight}px`;
18040
- } else if (!placement) {
18041
- // 如果下面不够放,则向上
18042
- panelStyle.top = `${targetHeight}px`;
18043
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
18044
- // 如果上面不够放,则向下(优先)
18045
- if (boundingTop - targetHeight - panelHeight > marginSize) {
18046
- panelPlacement = 'top';
18047
- panelStyle.top = '';
18048
- panelStyle.bottom = `${targetHeight}px`;
18049
- }
18050
- }
18051
- }
18052
- }
18053
- reactData.panelStyle = panelStyle;
18054
- reactData.panelPlacement = panelPlacement;
18055
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
18056
- }
18057
- });
17958
+ const {
17959
+ placement
17960
+ } = props;
17961
+ const {
17962
+ panelIndex
17963
+ } = reactData;
17964
+ const targetElem = refInputTarget.value;
17965
+ const panelElem = refInputPanel.value;
17966
+ const btnTransfer = computeBtnTransfer.value;
17967
+ const handleStyle = () => {
17968
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
17969
+ placement,
17970
+ teleportTo: btnTransfer
17971
+ });
17972
+ const panelStyle = Object.assign(ppObj.style, {
17973
+ zIndex: panelIndex
17974
+ });
17975
+ reactData.panelStyle = panelStyle;
17976
+ reactData.panelPlacement = ppObj.placement;
17977
+ };
17978
+ handleStyle();
17979
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
18058
17980
  };
18059
17981
  const showPanel = () => {
18060
17982
  const {
@@ -26444,83 +26366,28 @@ function getOptUniqueId() {
26444
26366
  }
26445
26367
  };
26446
26368
  const updatePlacement = () => {
26447
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
26448
- const {
26449
- placement
26450
- } = props;
26451
- const {
26452
- panelIndex
26453
- } = reactData;
26454
- const el = refElem.value;
26455
- const panelElem = refOptionPanel.value;
26456
- const btnTransfer = computeBtnTransfer.value;
26457
- if (panelElem && el) {
26458
- const targetHeight = el.offsetHeight;
26459
- const targetWidth = el.offsetWidth;
26460
- const panelHeight = panelElem.offsetHeight;
26461
- const panelWidth = panelElem.offsetWidth;
26462
- const marginSize = 5;
26463
- const panelStyle = {
26464
- zIndex: panelIndex
26465
- };
26466
- const {
26467
- boundingTop,
26468
- boundingLeft,
26469
- visibleHeight,
26470
- visibleWidth
26471
- } = getAbsolutePos(el);
26472
- let panelPlacement = 'bottom';
26473
- if (btnTransfer) {
26474
- let left = boundingLeft;
26475
- let top = boundingTop + targetHeight;
26476
- if (placement === 'top') {
26477
- panelPlacement = 'top';
26478
- top = boundingTop - panelHeight;
26479
- } else if (!placement) {
26480
- // 如果下面不够放,则向上
26481
- if (top + panelHeight + marginSize > visibleHeight) {
26482
- panelPlacement = 'top';
26483
- top = boundingTop - panelHeight;
26484
- }
26485
- // 如果上面不够放,则向下(优先)
26486
- if (top < marginSize) {
26487
- panelPlacement = 'bottom';
26488
- top = boundingTop + targetHeight;
26489
- }
26490
- }
26491
- // 如果溢出右边
26492
- if (left + panelWidth + marginSize > visibleWidth) {
26493
- left -= left + panelWidth + marginSize - visibleWidth;
26494
- }
26495
- // 如果溢出左边
26496
- if (left < marginSize) {
26497
- left = marginSize;
26498
- }
26499
- Object.assign(panelStyle, {
26500
- left: `${left}px`,
26501
- top: `${top}px`,
26502
- minWidth: `${targetWidth}px`
26503
- });
26504
- } else {
26505
- if (placement === 'top') {
26506
- panelPlacement = 'top';
26507
- panelStyle.bottom = `${targetHeight}px`;
26508
- } else if (!placement) {
26509
- // 如果下面不够放,则向上
26510
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
26511
- // 如果上面不够放,则向下(优先)
26512
- if (boundingTop - targetHeight - panelHeight > marginSize) {
26513
- panelPlacement = 'top';
26514
- panelStyle.bottom = `${targetHeight}px`;
26515
- }
26516
- }
26517
- }
26518
- }
26519
- reactData.panelStyle = panelStyle;
26520
- reactData.panelPlacement = panelPlacement;
26521
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
26522
- }
26523
- });
26369
+ const {
26370
+ placement
26371
+ } = props;
26372
+ const {
26373
+ panelIndex
26374
+ } = reactData;
26375
+ const targetElem = refElem.value;
26376
+ const panelElem = refOptionPanel.value;
26377
+ const btnTransfer = computeBtnTransfer.value;
26378
+ const handleStyle = () => {
26379
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
26380
+ placement,
26381
+ teleportTo: btnTransfer
26382
+ });
26383
+ const panelStyle = Object.assign(ppObj.style, {
26384
+ zIndex: panelIndex
26385
+ });
26386
+ reactData.panelStyle = panelStyle;
26387
+ reactData.panelPlacement = ppObj.placement;
26388
+ };
26389
+ handleStyle();
26390
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
26524
26391
  };
26525
26392
  const showOptionPanel = () => {
26526
26393
  const {
@@ -35255,83 +35122,28 @@ function tree_select_getOptUniqueId() {
35255
35122
  }
35256
35123
  };
35257
35124
  const updatePlacement = () => {
35258
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
35259
- const {
35260
- placement
35261
- } = props;
35262
- const {
35263
- panelIndex
35264
- } = reactData;
35265
- const el = refElem.value;
35266
- const panelElem = refOptionPanel.value;
35267
- const btnTransfer = computeBtnTransfer.value;
35268
- if (panelElem && el) {
35269
- const targetHeight = el.offsetHeight;
35270
- const targetWidth = el.offsetWidth;
35271
- const panelHeight = panelElem.offsetHeight;
35272
- const panelWidth = panelElem.offsetWidth;
35273
- const marginSize = 5;
35274
- const panelStyle = {
35275
- zIndex: panelIndex
35276
- };
35277
- const {
35278
- boundingTop,
35279
- boundingLeft,
35280
- visibleHeight,
35281
- visibleWidth
35282
- } = getAbsolutePos(el);
35283
- let panelPlacement = 'bottom';
35284
- if (btnTransfer) {
35285
- let left = boundingLeft;
35286
- let top = boundingTop + targetHeight;
35287
- if (placement === 'top') {
35288
- panelPlacement = 'top';
35289
- top = boundingTop - panelHeight;
35290
- } else if (!placement) {
35291
- // 如果下面不够放,则向上
35292
- if (top + panelHeight + marginSize > visibleHeight) {
35293
- panelPlacement = 'top';
35294
- top = boundingTop - panelHeight;
35295
- }
35296
- // 如果上面不够放,则向下(优先)
35297
- if (top < marginSize) {
35298
- panelPlacement = 'bottom';
35299
- top = boundingTop + targetHeight;
35300
- }
35301
- }
35302
- // 如果溢出右边
35303
- if (left + panelWidth + marginSize > visibleWidth) {
35304
- left -= left + panelWidth + marginSize - visibleWidth;
35305
- }
35306
- // 如果溢出左边
35307
- if (left < marginSize) {
35308
- left = marginSize;
35309
- }
35310
- Object.assign(panelStyle, {
35311
- left: `${left}px`,
35312
- top: `${top}px`,
35313
- minWidth: `${targetWidth}px`
35314
- });
35315
- } else {
35316
- if (placement === 'top') {
35317
- panelPlacement = 'top';
35318
- panelStyle.bottom = `${targetHeight}px`;
35319
- } else if (!placement) {
35320
- // 如果下面不够放,则向上
35321
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
35322
- // 如果上面不够放,则向下(优先)
35323
- if (boundingTop - targetHeight - panelHeight > marginSize) {
35324
- panelPlacement = 'top';
35325
- panelStyle.bottom = `${targetHeight}px`;
35326
- }
35327
- }
35328
- }
35329
- }
35330
- reactData.panelStyle = panelStyle;
35331
- reactData.panelPlacement = panelPlacement;
35332
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
35333
- }
35334
- });
35125
+ const {
35126
+ placement
35127
+ } = props;
35128
+ const {
35129
+ panelIndex
35130
+ } = reactData;
35131
+ const targetElem = refElem.value;
35132
+ const panelElem = refOptionPanel.value;
35133
+ const btnTransfer = computeBtnTransfer.value;
35134
+ const handleStyle = () => {
35135
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
35136
+ placement,
35137
+ teleportTo: btnTransfer
35138
+ });
35139
+ const panelStyle = Object.assign(ppObj.style, {
35140
+ zIndex: panelIndex
35141
+ });
35142
+ reactData.panelStyle = panelStyle;
35143
+ reactData.panelPlacement = ppObj.placement;
35144
+ };
35145
+ handleStyle();
35146
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
35335
35147
  };
35336
35148
  const showOptionPanel = () => {
35337
35149
  const {
@@ -46684,86 +46496,28 @@ const Print = VxePrint;
46684
46496
  * 手动更新位置
46685
46497
  */
46686
46498
  const updatePlacement = () => {
46687
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
46688
- const {
46689
- placement
46690
- } = props;
46691
- const {
46692
- panelIndex,
46693
- visiblePanel
46694
- } = reactData;
46695
- const btnTransfer = computeBtnTransfer.value;
46696
- if (visiblePanel) {
46697
- const targetElem = refPulldownContent.value;
46698
- const panelElem = refPulldownPanel.value;
46699
- if (panelElem && targetElem) {
46700
- const targetHeight = targetElem.offsetHeight;
46701
- const targetWidth = targetElem.offsetWidth;
46702
- const panelHeight = panelElem.offsetHeight;
46703
- const panelWidth = panelElem.offsetWidth;
46704
- const marginSize = 5;
46705
- const panelStyle = {
46706
- zIndex: panelIndex
46707
- };
46708
- const {
46709
- boundingTop,
46710
- boundingLeft,
46711
- visibleHeight,
46712
- visibleWidth
46713
- } = getAbsolutePos(targetElem);
46714
- let panelPlacement = 'bottom';
46715
- if (btnTransfer) {
46716
- let left = boundingLeft;
46717
- let top = boundingTop + targetHeight;
46718
- if (placement === 'top') {
46719
- panelPlacement = 'top';
46720
- top = boundingTop - panelHeight;
46721
- } else if (!placement) {
46722
- // 如果下面不够放,则向上
46723
- if (top + panelHeight + marginSize > visibleHeight) {
46724
- panelPlacement = 'top';
46725
- top = boundingTop - panelHeight;
46726
- }
46727
- // 如果上面不够放,则向下(优先)
46728
- if (top < marginSize) {
46729
- panelPlacement = 'bottom';
46730
- top = boundingTop + targetHeight;
46731
- }
46732
- }
46733
- // 如果溢出右边
46734
- if (left + panelWidth + marginSize > visibleWidth) {
46735
- left -= left + panelWidth + marginSize - visibleWidth;
46736
- }
46737
- // 如果溢出左边
46738
- if (left < marginSize) {
46739
- left = marginSize;
46740
- }
46741
- Object.assign(panelStyle, {
46742
- left: `${left}px`,
46743
- top: `${top}px`,
46744
- minWidth: `${targetWidth}px`
46745
- });
46746
- } else {
46747
- if (placement === 'top') {
46748
- panelPlacement = 'top';
46749
- panelStyle.bottom = `${targetHeight}px`;
46750
- } else if (!placement) {
46751
- // 如果下面不够放,则向上
46752
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
46753
- // 如果上面不够放,则向下(优先)
46754
- if (boundingTop - targetHeight - panelHeight > marginSize) {
46755
- panelPlacement = 'top';
46756
- panelStyle.bottom = `${targetHeight}px`;
46757
- }
46758
- }
46759
- }
46760
- }
46761
- reactData.panelStyle = panelStyle;
46762
- reactData.panelPlacement = panelPlacement;
46763
- }
46764
- }
46765
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
46766
- });
46499
+ const {
46500
+ placement
46501
+ } = props;
46502
+ const {
46503
+ panelIndex
46504
+ } = reactData;
46505
+ const targetElem = refPulldownContent.value;
46506
+ const panelElem = refPulldownPanel.value;
46507
+ const btnTransfer = computeBtnTransfer.value;
46508
+ const handleStyle = () => {
46509
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
46510
+ placement,
46511
+ teleportTo: btnTransfer
46512
+ });
46513
+ const panelStyle = Object.assign(ppObj.style, {
46514
+ zIndex: panelIndex
46515
+ });
46516
+ reactData.panelStyle = panelStyle;
46517
+ reactData.panelPlacement = ppObj.placement;
46518
+ };
46519
+ handleStyle();
46520
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
46767
46521
  };
46768
46522
  /**
46769
46523
  * 显示下拉面板
@@ -48497,83 +48251,28 @@ function getRowUniqueId() {
48497
48251
  }
48498
48252
  };
48499
48253
  const updatePlacement = () => {
48500
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(() => {
48501
- const {
48502
- placement
48503
- } = props;
48504
- const {
48505
- panelIndex
48506
- } = reactData;
48507
- const el = refElem.value;
48508
- const panelElem = refOptionPanel.value;
48509
- const btnTransfer = computeBtnTransfer.value;
48510
- if (panelElem && el) {
48511
- const targetHeight = el.offsetHeight;
48512
- const targetWidth = el.offsetWidth;
48513
- const panelHeight = panelElem.offsetHeight;
48514
- const panelWidth = panelElem.offsetWidth;
48515
- const marginSize = 5;
48516
- const panelStyle = {
48517
- zIndex: panelIndex
48518
- };
48519
- const {
48520
- boundingTop,
48521
- boundingLeft,
48522
- visibleHeight,
48523
- visibleWidth
48524
- } = getAbsolutePos(el);
48525
- let panelPlacement = 'bottom';
48526
- if (btnTransfer) {
48527
- let left = boundingLeft;
48528
- let top = boundingTop + targetHeight;
48529
- if (placement === 'top') {
48530
- panelPlacement = 'top';
48531
- top = boundingTop - panelHeight;
48532
- } else if (!placement) {
48533
- // 如果下面不够放,则向上
48534
- if (top + panelHeight + marginSize > visibleHeight) {
48535
- panelPlacement = 'top';
48536
- top = boundingTop - panelHeight;
48537
- }
48538
- // 如果上面不够放,则向下(优先)
48539
- if (top < marginSize) {
48540
- panelPlacement = 'bottom';
48541
- top = boundingTop + targetHeight;
48542
- }
48543
- }
48544
- // 如果溢出右边
48545
- if (left + panelWidth + marginSize > visibleWidth) {
48546
- left -= left + panelWidth + marginSize - visibleWidth;
48547
- }
48548
- // 如果溢出左边
48549
- if (left < marginSize) {
48550
- left = marginSize;
48551
- }
48552
- Object.assign(panelStyle, {
48553
- left: `${left}px`,
48554
- top: `${top}px`,
48555
- minWidth: `${targetWidth}px`
48556
- });
48557
- } else {
48558
- if (placement === 'top') {
48559
- panelPlacement = 'top';
48560
- panelStyle.bottom = `${targetHeight}px`;
48561
- } else if (!placement) {
48562
- // 如果下面不够放,则向上
48563
- if (boundingTop + targetHeight + panelHeight > visibleHeight) {
48564
- // 如果上面不够放,则向下(优先)
48565
- if (boundingTop - targetHeight - panelHeight > marginSize) {
48566
- panelPlacement = 'top';
48567
- panelStyle.bottom = `${targetHeight}px`;
48568
- }
48569
- }
48570
- }
48571
- }
48572
- reactData.panelStyle = panelStyle;
48573
- reactData.panelPlacement = panelPlacement;
48574
- return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)();
48575
- }
48576
- });
48254
+ const {
48255
+ placement
48256
+ } = props;
48257
+ const {
48258
+ panelIndex
48259
+ } = reactData;
48260
+ const targetElem = refElem.value;
48261
+ const panelElem = refOptionPanel.value;
48262
+ const btnTransfer = computeBtnTransfer.value;
48263
+ const handleStyle = () => {
48264
+ const ppObj = updatePanelPlacement(targetElem, panelElem, {
48265
+ placement,
48266
+ teleportTo: btnTransfer
48267
+ });
48268
+ const panelStyle = Object.assign(ppObj.style, {
48269
+ zIndex: panelIndex
48270
+ });
48271
+ reactData.panelStyle = panelStyle;
48272
+ reactData.panelPlacement = ppObj.placement;
48273
+ };
48274
+ handleStyle();
48275
+ return (0,external_commonjs_vue_commonjs2_vue_root_Vue_.nextTick)().then(handleStyle);
48577
48276
  };
48578
48277
  const showOptionPanel = () => {
48579
48278
  const {