vxe-table 4.19.21 → 4.19.23

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 (183) hide show
  1. package/dist/all.esm.js +682 -359
  2. package/dist/style.css +1 -1
  3. package/dist/style.min.css +1 -1
  4. package/es/{iconfont.1782656047498.ttf → iconfont.1783046321610.ttf} +0 -0
  5. package/es/iconfont.1783046321610.woff +0 -0
  6. package/es/iconfont.1783046321610.woff2 +0 -0
  7. package/es/index.css +1 -1
  8. package/es/index.min.css +1 -1
  9. package/es/locale/lang/ar-EG.js +16 -3
  10. package/es/locale/lang/de-DE.js +16 -3
  11. package/es/locale/lang/en-US.js +20 -7
  12. package/es/locale/lang/es-ES.js +16 -3
  13. package/es/locale/lang/fr-FR.js +16 -3
  14. package/es/locale/lang/hu-HU.js +16 -3
  15. package/es/locale/lang/hy-AM.js +16 -3
  16. package/es/locale/lang/id-ID.js +16 -3
  17. package/es/locale/lang/it-IT.js +15 -2
  18. package/es/locale/lang/ja-JP.js +16 -3
  19. package/es/locale/lang/ko-KR.js +16 -3
  20. package/es/locale/lang/ms-MY.js +16 -3
  21. package/es/locale/lang/nb-NO.js +16 -3
  22. package/es/locale/lang/pt-BR.js +16 -3
  23. package/es/locale/lang/ru-RU.js +16 -3
  24. package/es/locale/lang/th-TH.js +16 -3
  25. package/es/locale/lang/ug-CN.js +16 -3
  26. package/es/locale/lang/uk-UA.js +16 -3
  27. package/es/locale/lang/uz-UZ.js +16 -3
  28. package/es/locale/lang/vi-VN.js +15 -2
  29. package/es/locale/lang/zh-CHT.js +18 -5
  30. package/es/locale/lang/zh-CN.js +18 -5
  31. package/es/style.css +1 -1
  32. package/es/style.min.css +1 -1
  33. package/es/table/module/custom/hook.js +114 -37
  34. package/es/table/module/custom/panel.js +405 -257
  35. package/es/table/module/edit/hook.js +0 -1
  36. package/es/table/src/columnInfo.js +14 -8
  37. package/es/table/src/emits.js +8 -0
  38. package/es/table/src/table.js +81 -46
  39. package/es/table/src/util.js +32 -1
  40. package/es/table/style.css +96 -49
  41. package/es/table/style.min.css +1 -1
  42. package/es/ui/index.js +16 -4
  43. package/es/ui/src/log.js +1 -1
  44. package/es/vxe-table/style.css +96 -49
  45. package/es/vxe-table/style.min.css +1 -1
  46. package/lib/{iconfont.1782656047498.ttf → iconfont.1783046321610.ttf} +0 -0
  47. package/lib/iconfont.1783046321610.woff +0 -0
  48. package/lib/iconfont.1783046321610.woff2 +0 -0
  49. package/lib/index.css +1 -1
  50. package/lib/index.min.css +1 -1
  51. package/lib/index.umd.js +561 -206
  52. package/lib/index.umd.min.js +1 -1
  53. package/lib/locale/lang/ar-EG.js +16 -3
  54. package/lib/locale/lang/ar-EG.min.js +1 -1
  55. package/lib/locale/lang/ar-EG.umd.js +16 -3
  56. package/lib/locale/lang/de-DE.js +16 -3
  57. package/lib/locale/lang/de-DE.min.js +1 -1
  58. package/lib/locale/lang/de-DE.umd.js +16 -3
  59. package/lib/locale/lang/en-US.js +20 -7
  60. package/lib/locale/lang/en-US.min.js +1 -1
  61. package/lib/locale/lang/en-US.umd.js +20 -7
  62. package/lib/locale/lang/es-ES.js +16 -3
  63. package/lib/locale/lang/es-ES.min.js +1 -1
  64. package/lib/locale/lang/es-ES.umd.js +16 -3
  65. package/lib/locale/lang/fr-FR.js +16 -3
  66. package/lib/locale/lang/fr-FR.min.js +1 -1
  67. package/lib/locale/lang/fr-FR.umd.js +16 -3
  68. package/lib/locale/lang/hu-HU.js +16 -3
  69. package/lib/locale/lang/hu-HU.min.js +1 -1
  70. package/lib/locale/lang/hu-HU.umd.js +16 -3
  71. package/lib/locale/lang/hy-AM.js +16 -3
  72. package/lib/locale/lang/hy-AM.min.js +1 -1
  73. package/lib/locale/lang/hy-AM.umd.js +16 -3
  74. package/lib/locale/lang/id-ID.js +16 -3
  75. package/lib/locale/lang/id-ID.min.js +1 -1
  76. package/lib/locale/lang/id-ID.umd.js +16 -3
  77. package/lib/locale/lang/it-IT.js +15 -2
  78. package/lib/locale/lang/it-IT.min.js +1 -1
  79. package/lib/locale/lang/it-IT.umd.js +15 -2
  80. package/lib/locale/lang/ja-JP.js +16 -3
  81. package/lib/locale/lang/ja-JP.min.js +1 -1
  82. package/lib/locale/lang/ja-JP.umd.js +16 -3
  83. package/lib/locale/lang/ko-KR.js +16 -3
  84. package/lib/locale/lang/ko-KR.min.js +1 -1
  85. package/lib/locale/lang/ko-KR.umd.js +16 -3
  86. package/lib/locale/lang/ms-MY.js +16 -3
  87. package/lib/locale/lang/ms-MY.min.js +1 -1
  88. package/lib/locale/lang/ms-MY.umd.js +16 -3
  89. package/lib/locale/lang/nb-NO.js +16 -3
  90. package/lib/locale/lang/nb-NO.min.js +1 -1
  91. package/lib/locale/lang/nb-NO.umd.js +16 -3
  92. package/lib/locale/lang/pt-BR.js +16 -3
  93. package/lib/locale/lang/pt-BR.min.js +1 -1
  94. package/lib/locale/lang/pt-BR.umd.js +16 -3
  95. package/lib/locale/lang/ru-RU.js +16 -3
  96. package/lib/locale/lang/ru-RU.min.js +1 -1
  97. package/lib/locale/lang/ru-RU.umd.js +16 -3
  98. package/lib/locale/lang/th-TH.js +16 -3
  99. package/lib/locale/lang/th-TH.min.js +1 -1
  100. package/lib/locale/lang/th-TH.umd.js +16 -3
  101. package/lib/locale/lang/ug-CN.js +16 -3
  102. package/lib/locale/lang/ug-CN.min.js +1 -1
  103. package/lib/locale/lang/ug-CN.umd.js +16 -3
  104. package/lib/locale/lang/uk-UA.js +16 -3
  105. package/lib/locale/lang/uk-UA.min.js +1 -1
  106. package/lib/locale/lang/uk-UA.umd.js +16 -3
  107. package/lib/locale/lang/uz-UZ.js +16 -3
  108. package/lib/locale/lang/uz-UZ.min.js +1 -1
  109. package/lib/locale/lang/uz-UZ.umd.js +16 -3
  110. package/lib/locale/lang/vi-VN.js +15 -2
  111. package/lib/locale/lang/vi-VN.min.js +1 -1
  112. package/lib/locale/lang/vi-VN.umd.js +15 -2
  113. package/lib/locale/lang/zh-CHT.js +18 -5
  114. package/lib/locale/lang/zh-CHT.min.js +1 -1
  115. package/lib/locale/lang/zh-CHT.umd.js +18 -5
  116. package/lib/locale/lang/zh-CN.js +18 -5
  117. package/lib/locale/lang/zh-CN.min.js +1 -1
  118. package/lib/locale/lang/zh-CN.umd.js +18 -5
  119. package/lib/style.css +1 -1
  120. package/lib/style.min.css +1 -1
  121. package/lib/table/module/custom/hook.js +120 -34
  122. package/lib/table/module/custom/hook.min.js +1 -1
  123. package/lib/table/module/custom/panel.js +340 -141
  124. package/lib/table/module/custom/panel.min.js +1 -1
  125. package/lib/table/module/edit/hook.js +0 -1
  126. package/lib/table/module/edit/hook.min.js +1 -1
  127. package/lib/table/src/columnInfo.js +17 -7
  128. package/lib/table/src/columnInfo.min.js +1 -1
  129. package/lib/table/src/emits.js +1 -1
  130. package/lib/table/src/emits.min.js +1 -1
  131. package/lib/table/src/table.js +11 -11
  132. package/lib/table/src/table.min.js +1 -1
  133. package/lib/table/src/util.js +38 -1
  134. package/lib/table/src/util.min.js +1 -1
  135. package/lib/table/style/style.css +96 -49
  136. package/lib/table/style/style.min.css +1 -1
  137. package/lib/ui/index.js +16 -4
  138. package/lib/ui/index.min.js +1 -1
  139. package/lib/ui/src/log.js +1 -1
  140. package/lib/ui/src/log.min.js +1 -1
  141. package/lib/vxe-table/style/style.css +96 -49
  142. package/lib/vxe-table/style/style.min.css +1 -1
  143. package/package.json +2 -2
  144. package/packages/locale/lang/ar-EG.ts +16 -3
  145. package/packages/locale/lang/de-DE.ts +16 -3
  146. package/packages/locale/lang/en-US.ts +20 -7
  147. package/packages/locale/lang/es-ES.ts +16 -3
  148. package/packages/locale/lang/fr-FR.ts +16 -3
  149. package/packages/locale/lang/hu-HU.ts +16 -3
  150. package/packages/locale/lang/hy-AM.ts +16 -3
  151. package/packages/locale/lang/id-ID.ts +16 -3
  152. package/packages/locale/lang/it-IT.ts +15 -2
  153. package/packages/locale/lang/ja-JP.ts +16 -3
  154. package/packages/locale/lang/ko-KR.ts +16 -3
  155. package/packages/locale/lang/ms-MY.ts +16 -3
  156. package/packages/locale/lang/nb-NO.ts +16 -3
  157. package/packages/locale/lang/pt-BR.ts +16 -3
  158. package/packages/locale/lang/ru-RU.ts +16 -3
  159. package/packages/locale/lang/th-TH.ts +16 -3
  160. package/packages/locale/lang/ug-CN.ts +16 -3
  161. package/packages/locale/lang/uk-UA.ts +16 -3
  162. package/packages/locale/lang/uz-UZ.ts +16 -3
  163. package/packages/locale/lang/vi-VN.ts +15 -2
  164. package/packages/locale/lang/zh-CHT.ts +18 -5
  165. package/packages/locale/lang/zh-CN.ts +18 -5
  166. package/packages/table/module/custom/hook.ts +113 -36
  167. package/packages/table/module/custom/panel.ts +488 -286
  168. package/packages/table/module/edit/hook.ts +0 -1
  169. package/packages/table/src/columnInfo.ts +14 -8
  170. package/packages/table/src/emits.ts +8 -0
  171. package/packages/table/src/table.ts +91 -47
  172. package/packages/table/src/util.ts +35 -1
  173. package/packages/ui/index.ts +15 -3
  174. package/styles/components/icon.scss +29 -2
  175. package/styles/components/table-module/custom.scss +88 -67
  176. package/styles/icon/iconfont.ttf +0 -0
  177. package/styles/icon/iconfont.woff +0 -0
  178. package/styles/icon/iconfont.woff2 +0 -0
  179. package/styles/theme/base.scss +13 -1
  180. package/es/iconfont.1782656047498.woff +0 -0
  181. package/es/iconfont.1782656047498.woff2 +0 -0
  182. package/lib/iconfont.1782656047498.woff +0 -0
  183. package/lib/iconfont.1782656047498.woff2 +0 -0
@@ -75,23 +75,30 @@ export default defineVxeComponent({
75
75
  $xeTable.saveCustom();
76
76
  $xeTable.closeCustom();
77
77
  $xeTable.emitCustomEvent('confirm', $event);
78
+ $xeTable.dispatchEvent('custom-confirm', {}, $event);
78
79
  $xeTable.emitCustomEvent('close', $event);
80
+ $xeTable.dispatchEvent('custom-close', {}, $event);
79
81
  };
80
82
  const cancelCloseEvent = ({ $event }) => {
81
83
  $xeTable.closeCustom();
82
84
  $xeTable.emitCustomEvent('close', $event);
85
+ $xeTable.dispatchEvent('custom-close', {}, $event);
83
86
  };
84
87
  const cancelCustomEvent = ({ $event }) => {
85
88
  $xeTable.cancelCustom();
86
89
  $xeTable.closeCustom();
87
90
  $xeTable.emitCustomEvent('cancel', $event);
91
+ $xeTable.dispatchEvent('custom-cancel', {}, $event);
88
92
  $xeTable.emitCustomEvent('close', $event);
93
+ $xeTable.dispatchEvent('custom-close', {}, $event);
89
94
  };
90
95
  const handleResetCustomEvent = (evnt) => {
91
96
  $xeTable.resetCustom(true);
92
97
  $xeTable.closeCustom();
93
98
  $xeTable.emitCustomEvent('reset', evnt);
99
+ $xeTable.dispatchEvent('custom-reset', {}, evnt);
94
100
  $xeTable.emitCustomEvent('close', evnt);
101
+ $xeTable.dispatchEvent('custom-close', {}, evnt);
95
102
  };
96
103
  const resetCustomEvent = ({ $event }) => {
97
104
  if (VxeUI.modal) {
@@ -201,6 +208,20 @@ export default defineVxeComponent({
201
208
  $xeTable.dispatchEvent('custom-fixed-change', { column, fixed: targetFixed }, evnt);
202
209
  }
203
210
  };
211
+ const changeAlignOption = (column, targetAlign, colProperty, renderProperty, eName, evnt) => {
212
+ const customOpts = computeCustomOpts.value;
213
+ if (customOpts.immediate) {
214
+ column[colProperty] = targetAlign;
215
+ column[renderProperty] = targetAlign;
216
+ tableReactData.isCustomStatus = true;
217
+ $xeTable.handleCustom();
218
+ $xeTable.saveCustomStore(`update:${colProperty}`);
219
+ }
220
+ else {
221
+ column[renderProperty] = targetAlign;
222
+ }
223
+ $xeTable.dispatchEvent(eName, { column, [colProperty]: targetAlign }, evnt);
224
+ };
204
225
  const allOptionEvent = (evnt) => {
205
226
  const { customStore } = tableReactData;
206
227
  const isAll = !customStore.isAll;
@@ -658,7 +679,7 @@ export default defineVxeComponent({
658
679
  const { isCustomStatus, customColumnList, isCustomDragStatus } = tableReactData;
659
680
  const customOpts = computeCustomOpts.value;
660
681
  const columnDragOpts = computeColumnDragOpts.value;
661
- const { popupStyle } = customStore;
682
+ const { defPopupStyle } = customStore;
662
683
  const { immediate, checkMethod, visibleMethod, allowVisible, allowSort, allowFixed, allowGroup, allowValues, trigger, placement, showSortDragButton, showSortMoveButton, showSortPutButton } = customOpts;
663
684
  const isMaxFixedColumn = computeIsMaxFixedColumn.value;
664
685
  const vSize = computeSize.value;
@@ -816,9 +837,9 @@ export default defineVxeComponent({
816
837
  !parentItem && allowFixed
817
838
  ? h('div', {
818
839
  class: 'vxe-table-custom--fixed-option'
819
- }, [
820
- VxeUIButtonComponent
821
- ? h(VxeUIButtonComponent, {
840
+ }, VxeUIButtonComponent
841
+ ? [
842
+ h(VxeUIButtonComponent, {
822
843
  mode: 'text',
823
844
  icon: column.renderFixed === 'left' ? getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_LEFT,
824
845
  status: column.renderFixed === 'left' ? 'primary' : '',
@@ -827,10 +848,8 @@ export default defineVxeComponent({
827
848
  onClick: ({ $event }) => {
828
849
  changeFixedOption(column, 'left', $event);
829
850
  }
830
- })
831
- : renderEmptyElement($xeTable),
832
- VxeUIButtonComponent
833
- ? h(VxeUIButtonComponent, {
851
+ }),
852
+ h(VxeUIButtonComponent, {
834
853
  mode: 'text',
835
854
  icon: column.renderFixed === 'right' ? getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,
836
855
  status: column.renderFixed === 'right' ? 'primary' : '',
@@ -840,8 +859,8 @@ export default defineVxeComponent({
840
859
  changeFixedOption(column, 'right', $event);
841
860
  }
842
861
  })
843
- : renderEmptyElement($xeTable)
844
- ])
862
+ ]
863
+ : [])
845
864
  : renderEmptyElement($xeTable)
846
865
  ]));
847
866
  }
@@ -853,7 +872,7 @@ export default defineVxeComponent({
853
872
  [`size--${vSize}`]: vSize,
854
873
  'is--active': customStore.visible
855
874
  }],
856
- style: popupStyle
875
+ style: defPopupStyle
857
876
  }, customStore.visible
858
877
  ? [
859
878
  h('div', {
@@ -974,44 +993,18 @@ export default defineVxeComponent({
974
993
  ]
975
994
  : []);
976
995
  };
977
- const renderPopupPanel = () => {
978
- const $xeGrid = $xeTable.xeGrid;
979
- const $xeGantt = $xeTable.xeGantt;
980
- const { customStore } = props;
981
- const { treeConfig, rowGroupConfig, aggregateConfig, resizable: allResizable } = tableProps;
982
- const { isCustomStatus, customColumnList } = tableReactData;
996
+ const renderPopupBodys = () => {
997
+ const { resizable: allResizable } = tableProps;
998
+ const { customColumnList } = tableReactData;
983
999
  const customOpts = computeCustomOpts.value;
984
1000
  const columnDragOpts = computeColumnDragOpts.value;
985
- const aggregateOpts = computeAggregateOpts.value;
986
- const { placement: aggPlacement } = aggregateOpts;
987
- const { mode, immediate, showSortDragButton, showSortMoveButton, showSortPutButton, modalOptions, drawerOptions, allowVisible, allowSort, allowFixed, allowResizable, allowGroup, allowValues, checkMethod, visibleMethod } = customOpts;
1001
+ const { immediate, showSortDragButton, showSortMoveButton, showSortPutButton, allowVisible, allowSort, allowFixed, allowAlign, allowHeaderAlign, allowFooterAlign, allowResizable, allowGroup, allowValues, checkMethod, visibleMethod } = customOpts;
988
1002
  const columnOpts = computeColumnOpts.value;
989
- const { maxFixedSize } = columnOpts;
990
1003
  const resizableOpts = computeResizableOpts.value;
991
1004
  const { minWidth: reMinWidth, maxWidth: reMaxWidth } = resizableOpts;
992
- const modalOpts = Object.assign({}, modalOptions);
993
- const drawerOpts = Object.assign({}, drawerOptions);
994
1005
  const isMaxFixedColumn = computeIsMaxFixedColumn.value;
995
1006
  const { isCrossDrag, isPeerDrag } = columnDragOpts;
996
- const slots = customOpts.slots || {};
997
- const headerSlot = slots.header;
998
- const topSlot = slots.top;
999
- const bottomSlot = slots.bottom;
1000
- const defaultSlot = slots.default;
1001
- const footerSlot = slots.footer;
1002
1007
  const trVNs = [];
1003
- const isAllChecked = customStore.isAll;
1004
- const isAllIndeterminate = customStore.isIndeterminate;
1005
- const isAggRtBmLayout = aggPlacement === 'right' || aggPlacement === 'bottom';
1006
- const params = {
1007
- $table: $xeTable,
1008
- $grid: $xeGrid,
1009
- $gantt: $xeGantt,
1010
- columns: customColumnList,
1011
- isAllChecked,
1012
- isAllIndeterminate,
1013
- isCustomStatus
1014
- };
1015
1008
  XEUtils.eachTree(customColumnList, (column, index, items, path, parentItem) => {
1016
1009
  const isVisible = visibleMethod ? visibleMethod({ $table: $xeTable, column }) : true;
1017
1010
  if (isVisible) {
@@ -1043,6 +1036,243 @@ export default defineVxeComponent({
1043
1036
  const isDisabled = checkMethod ? !checkMethod({ $table: $xeTable, column }) : false;
1044
1037
  const isHidden = !isChecked;
1045
1038
  const showSortBtn = (isCrossDrag || isPeerDrag ? immediate : false) || column.level === 1;
1039
+ const alignList = [
1040
+ { icon: getIcon().TABLE_CUSTOM_ALIGN_LEFT, value: 'left', title: getI18n('vxe.custom.setting.anLeftTitle'), disabled: isHidden },
1041
+ { icon: getIcon().TABLE_CUSTOM_ALIGN_CENTER, value: 'center', title: getI18n('vxe.custom.setting.anCenterTitle'), disabled: isHidden },
1042
+ { icon: getIcon().TABLE_CUSTOM_ALIGN_RIGHT, value: 'right', title: getI18n('vxe.custom.setting.anRightTitle'), disabled: isHidden }
1043
+ ];
1044
+ const tdVNs = [];
1045
+ if (allowVisible) {
1046
+ tdVNs.push(h('td', {
1047
+ key: 'av',
1048
+ class: 'vxe-table-custom-popup--column-td col--visible'
1049
+ }, [
1050
+ h('div', {
1051
+ class: ['vxe-table-custom--checkbox-option', {
1052
+ 'is--checked': isChecked,
1053
+ 'is--indeterminate': isIndeterminate,
1054
+ 'is--disabled': isDisabled
1055
+ }],
1056
+ title: getI18n('vxe.custom.setting.colVisible'),
1057
+ onClick: (evnt) => {
1058
+ if (!isDisabled) {
1059
+ changeCheckboxOption(column, evnt);
1060
+ }
1061
+ }
1062
+ }, [
1063
+ h('span', {
1064
+ class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
1065
+ })
1066
+ ])
1067
+ ]));
1068
+ }
1069
+ tdVNs.push(h('td', {
1070
+ key: 'at',
1071
+ class: 'vxe-table-custom-popup--column-td col--name'
1072
+ }, [
1073
+ h('div', {
1074
+ class: 'vxe-table-custom-popup--name'
1075
+ }, [
1076
+ (allowSort && showSortDragButton) || (allowGroup || allowValues)
1077
+ ? (showSortBtn || ((allowGroup || allowValues) && !isColGroup)
1078
+ ? h('div', Object.assign({ class: ['vxe-table-custom-popup--column-sort-btn', {
1079
+ 'is--disabled': isHidden
1080
+ }], title: getI18n('vxe.custom.setting.sortHelpTip') }, (isHidden
1081
+ ? {}
1082
+ : {
1083
+ onMousedown: sortMousedownEvent,
1084
+ onMouseup: sortMouseupEvent
1085
+ })), [
1086
+ h('i', {
1087
+ class: getIcon().TABLE_CUSTOM_SORT
1088
+ })
1089
+ ])
1090
+ : h('div', {
1091
+ class: 'vxe-table-custom-popup--column-sort-placeholder'
1092
+ }))
1093
+ : renderEmptyElement($xeTable),
1094
+ column.type === 'html'
1095
+ ? h('div', {
1096
+ key: '1',
1097
+ class: 'vxe-table-custom-popup--title',
1098
+ innerHTML: colTitle
1099
+ })
1100
+ : h('div', {
1101
+ key: '0',
1102
+ class: 'vxe-table-custom-popup--title',
1103
+ title: colTitle
1104
+ }, colTitle),
1105
+ showSortBtn && (showSortMoveButton || showSortPutButton)
1106
+ ? h('div', {
1107
+ class: 'vxe-table-custom-popup--move-btn'
1108
+ }, VxeUIButtonComponent
1109
+ ? [
1110
+ showSortMoveButton
1111
+ ? h(VxeUIButtonComponent, {
1112
+ mode: 'text',
1113
+ icon: 'vxe-icon-arrows-up',
1114
+ title: getI18n('vxe.custom.setting.moveUpTitle'),
1115
+ disabled: index <= 0,
1116
+ onClick(evntParame) {
1117
+ sortMoveUpEvent(evntParame, column);
1118
+ }
1119
+ })
1120
+ : renderEmptyElement($xeTable),
1121
+ showSortMoveButton
1122
+ ? h(VxeUIButtonComponent, {
1123
+ mode: 'text',
1124
+ icon: 'vxe-icon-arrows-down',
1125
+ title: getI18n('vxe.custom.setting.moveDnTitle'),
1126
+ disabled: index >= items.length - 1,
1127
+ onClick(evntParame) {
1128
+ sortMoveDnEvent(evntParame, column);
1129
+ }
1130
+ })
1131
+ : renderEmptyElement($xeTable),
1132
+ showSortPutButton && !parentItem
1133
+ ? h(VxeUIButtonComponent, {
1134
+ mode: 'text',
1135
+ icon: 'vxe-icon-top',
1136
+ title: getI18n('vxe.custom.setting.putTopTitle'),
1137
+ disabled: index <= 0,
1138
+ onClick(evntParame) {
1139
+ sortMoveTopEvent(evntParame, column);
1140
+ }
1141
+ })
1142
+ : renderEmptyElement($xeTable),
1143
+ showSortPutButton && !parentItem
1144
+ ? h(VxeUIButtonComponent, {
1145
+ mode: 'text',
1146
+ icon: 'vxe-icon-bottom',
1147
+ title: getI18n('vxe.custom.setting.putBottomTitle'),
1148
+ disabled: index >= items.length - 1,
1149
+ onClick(evntParame) {
1150
+ sortMoveBottomEvent(evntParame, column);
1151
+ }
1152
+ })
1153
+ : renderEmptyElement($xeTable)
1154
+ ]
1155
+ : [])
1156
+ : renderEmptyElement($xeTable)
1157
+ ])
1158
+ ]));
1159
+ if (allowResizable) {
1160
+ tdVNs.push(h('td', {
1161
+ key: 'aw',
1162
+ class: 'vxe-table-custom-popup--column-td col--resizable'
1163
+ }, [
1164
+ ((column.children && column.children.length) ||
1165
+ !(XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable)))
1166
+ ? h('span', '-')
1167
+ : (VxeUINumberInputComponent
1168
+ ? h(VxeUINumberInputComponent, {
1169
+ type: 'integer',
1170
+ immediate: false,
1171
+ disabled: isHidden,
1172
+ modelValue: column.renderResizeWidth,
1173
+ min: customMinWidth || undefined,
1174
+ max: customMaxWidth || undefined,
1175
+ 'onUpdate:modelValue'(value) {
1176
+ const width = Math.max(0, Number(value));
1177
+ column.renderResizeWidth = width;
1178
+ },
1179
+ onChange() {
1180
+ changeColumnWidth(column);
1181
+ }
1182
+ })
1183
+ : renderEmptyElement($xeTable))
1184
+ ]));
1185
+ }
1186
+ if (allowFixed) {
1187
+ tdVNs.push(h('td', {
1188
+ key: 'af',
1189
+ class: 'vxe-table-custom-popup--column-td col--fixed'
1190
+ }, parentItem
1191
+ ? [h('span', '-')]
1192
+ : (VxeUIRadioGroupComponent
1193
+ ? [
1194
+ h(VxeUIButtonComponent, {
1195
+ icon: column.renderFixed === 'left' ? getIcon().TOOLBAR_TOOLS_FIXED_LEFT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_LEFT,
1196
+ status: column.renderFixed === 'left' ? 'primary' : '',
1197
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
1198
+ title: getI18n(column.renderFixed === 'left' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedLeft'),
1199
+ onClick: ({ $event }) => {
1200
+ changeFixedOption(column, 'left', $event);
1201
+ }
1202
+ }),
1203
+ h(VxeUIButtonComponent, {
1204
+ icon: column.renderFixed === 'right' ? getIcon().TOOLBAR_TOOLS_FIXED_RIGHT_ACTIVE : getIcon().TOOLBAR_TOOLS_FIXED_RIGHT,
1205
+ status: column.renderFixed === 'right' ? 'primary' : '',
1206
+ disabled: isHidden || (isMaxFixedColumn && !column.renderFixed),
1207
+ title: getI18n(column.renderFixed === 'right' ? 'vxe.toolbar.cancelFixed' : 'vxe.toolbar.fixedRight'),
1208
+ onClick: ({ $event }) => {
1209
+ changeFixedOption(column, 'right', $event);
1210
+ }
1211
+ })
1212
+ ]
1213
+ : [])));
1214
+ }
1215
+ if (allowAlign) {
1216
+ tdVNs.push(h('td', {
1217
+ key: 'aa',
1218
+ class: 'vxe-table-custom-popup--column-td col--align'
1219
+ }, VxeUIRadioGroupComponent
1220
+ ? [
1221
+ h(VxeUIRadioGroupComponent, {
1222
+ modelValue: column.renderAlign || '',
1223
+ type: 'button',
1224
+ strict: false,
1225
+ disabled: isHidden,
1226
+ options: alignList,
1227
+ onChange({ value, $event }) {
1228
+ changeAlignOption(column, value, 'align', 'renderAlign', 'custom-align-change', $event);
1229
+ }
1230
+ })
1231
+ ]
1232
+ : []));
1233
+ }
1234
+ if (allowHeaderAlign) {
1235
+ tdVNs.push(h('td', {
1236
+ key: 'aha',
1237
+ class: 'vxe-table-custom-popup--column-td col--header-align'
1238
+ }, isColGroup
1239
+ ? [h('span', '-')]
1240
+ : (VxeUIRadioGroupComponent
1241
+ ? [
1242
+ h(VxeUIRadioGroupComponent, {
1243
+ modelValue: column.renderHeaderAlign || '',
1244
+ type: 'button',
1245
+ strict: false,
1246
+ disabled: isHidden,
1247
+ options: alignList,
1248
+ onChange({ value, $event }) {
1249
+ changeAlignOption(column, value, 'headerAlign', 'renderHeaderAlign', 'custom-header-align-change', $event);
1250
+ }
1251
+ })
1252
+ ]
1253
+ : [])));
1254
+ }
1255
+ if (allowFooterAlign) {
1256
+ tdVNs.push(h('td', {
1257
+ key: 'afa',
1258
+ class: 'vxe-table-custom-popup--column-td col--footer-align'
1259
+ }, isColGroup
1260
+ ? [h('span', '-')]
1261
+ : (VxeUIRadioGroupComponent
1262
+ ? [
1263
+ h(VxeUIRadioGroupComponent, {
1264
+ modelValue: column.renderFooterAlign || '',
1265
+ type: 'button',
1266
+ strict: false,
1267
+ disabled: isHidden,
1268
+ options: alignList,
1269
+ onChange({ value, $event }) {
1270
+ changeAlignOption(column, value, 'footerAlign', 'renderFooterAlign', 'custom-footer-align-change', $event);
1271
+ }
1272
+ })
1273
+ ]
1274
+ : [])));
1275
+ }
1046
1276
  trVNs.push(h('tr', {
1047
1277
  key: column.id,
1048
1278
  colid: column.id,
@@ -1052,177 +1282,139 @@ export default defineVxeComponent({
1052
1282
  onDragstart: sortDragstartEvent,
1053
1283
  onDragend: sortDragendEvent,
1054
1284
  onDragover: sortDragoverEvent
1055
- }, [
1056
- allowVisible
1057
- ? h('td', {
1058
- class: 'vxe-table-custom-popup--column-item col--visible'
1059
- }, [
1060
- h('div', {
1061
- class: ['vxe-table-custom--checkbox-option', {
1062
- 'is--checked': isChecked,
1063
- 'is--indeterminate': isIndeterminate,
1064
- 'is--disabled': isDisabled
1065
- }],
1066
- title: getI18n('vxe.custom.setting.colVisible'),
1067
- onClick: (evnt) => {
1068
- if (!isDisabled) {
1069
- changeCheckboxOption(column, evnt);
1070
- }
1071
- }
1072
- }, [
1073
- h('span', {
1074
- class: ['vxe-checkbox--icon', isIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
1075
- })
1076
- ])
1077
- ])
1078
- : renderEmptyElement($xeTable),
1079
- h('td', {
1080
- class: 'vxe-table-custom-popup--column-item col--name'
1081
- }, [
1082
- h('div', {
1083
- class: 'vxe-table-custom-popup--name'
1084
- }, [
1085
- (allowSort && showSortDragButton) || (allowGroup || allowValues)
1086
- ? (showSortBtn || ((allowGroup || allowValues) && !isColGroup)
1087
- ? h('div', Object.assign({ class: ['vxe-table-custom-popup--column-sort-btn', {
1088
- 'is--disabled': isHidden
1089
- }], title: getI18n('vxe.custom.setting.sortHelpTip') }, (isHidden
1090
- ? {}
1091
- : {
1092
- onMousedown: sortMousedownEvent,
1093
- onMouseup: sortMouseupEvent
1094
- })), [
1095
- h('i', {
1096
- class: getIcon().TABLE_CUSTOM_SORT
1097
- })
1098
- ])
1099
- : h('div', {
1100
- class: 'vxe-table-custom-popup--column-sort-placeholder'
1101
- }))
1102
- : renderEmptyElement($xeTable),
1103
- column.type === 'html'
1104
- ? h('div', {
1105
- key: '1',
1106
- class: 'vxe-table-custom-popup--title',
1107
- innerHTML: colTitle
1108
- })
1109
- : h('div', {
1110
- key: '0',
1111
- class: 'vxe-table-custom-popup--title',
1112
- title: colTitle
1113
- }, colTitle),
1114
- showSortBtn && (showSortMoveButton || showSortPutButton)
1115
- ? h('div', {
1116
- class: 'vxe-table-custom-popup--move-btn'
1117
- }, VxeUIButtonComponent
1118
- ? [
1119
- showSortMoveButton
1120
- ? h(VxeUIButtonComponent, {
1121
- mode: 'text',
1122
- content: getI18n('vxe.custom.setting.moveUp'),
1123
- title: getI18n('vxe.custom.setting.moveUpTitle'),
1124
- disabled: index <= 0,
1125
- onClick(evntParame) {
1126
- sortMoveUpEvent(evntParame, column);
1127
- }
1128
- })
1129
- : renderEmptyElement($xeTable),
1130
- showSortMoveButton
1131
- ? h(VxeUIButtonComponent, {
1132
- mode: 'text',
1133
- content: getI18n('vxe.custom.setting.moveDn'),
1134
- title: getI18n('vxe.custom.setting.moveDnTitle'),
1135
- disabled: index >= items.length - 1,
1136
- onClick(evntParame) {
1137
- sortMoveDnEvent(evntParame, column);
1138
- }
1139
- })
1140
- : renderEmptyElement($xeTable),
1141
- showSortPutButton && !parentItem
1142
- ? h(VxeUIButtonComponent, {
1143
- mode: 'text',
1144
- content: getI18n('vxe.custom.setting.putTop'),
1145
- title: getI18n('vxe.custom.setting.putTopTitle'),
1146
- disabled: index <= 0,
1147
- onClick(evntParame) {
1148
- sortMoveTopEvent(evntParame, column);
1149
- }
1150
- })
1151
- : renderEmptyElement($xeTable),
1152
- showSortPutButton && !parentItem
1153
- ? h(VxeUIButtonComponent, {
1154
- mode: 'text',
1155
- content: getI18n('vxe.custom.setting.putBottom'),
1156
- title: getI18n('vxe.custom.setting.putBottomTitle'),
1157
- disabled: index >= items.length - 1,
1158
- onClick(evntParame) {
1159
- sortMoveBottomEvent(evntParame, column);
1160
- }
1161
- })
1162
- : renderEmptyElement($xeTable)
1163
- ]
1164
- : [])
1165
- : renderEmptyElement($xeTable)
1166
- ])
1167
- ]),
1168
- allowResizable
1169
- ? h('td', {
1170
- class: 'vxe-table-custom-popup--column-item col--resizable'
1171
- }, [
1172
- ((column.children && column.children.length) ||
1173
- !(XEUtils.isBoolean(column.resizable) ? column.resizable : (columnOpts.resizable || allResizable)))
1174
- ? h('span', '-')
1175
- : (VxeUINumberInputComponent
1176
- ? h(VxeUINumberInputComponent, {
1177
- type: 'integer',
1178
- immediate: false,
1179
- disabled: isHidden,
1180
- modelValue: column.renderResizeWidth,
1181
- min: customMinWidth || undefined,
1182
- max: customMaxWidth || undefined,
1183
- 'onUpdate:modelValue'(value) {
1184
- const width = Math.max(0, Number(value));
1185
- column.renderResizeWidth = width;
1186
- },
1187
- onChange() {
1188
- changeColumnWidth(column);
1189
- }
1190
- })
1191
- : renderEmptyElement($xeTable))
1192
- ])
1193
- : renderEmptyElement($xeTable),
1194
- allowFixed
1195
- ? h('td', {
1196
- class: 'vxe-table-custom-popup--column-item col--fixed'
1197
- }, [
1198
- parentItem
1199
- ? h('span', '-')
1200
- : (VxeUIRadioGroupComponent
1201
- ? h(VxeUIRadioGroupComponent, {
1202
- modelValue: column.renderFixed || '',
1203
- type: 'button',
1204
- size: 'mini',
1205
- disabled: isHidden,
1206
- options: [
1207
- { label: getI18n('vxe.custom.setting.fixedLeft'), value: 'left', disabled: isHidden || isMaxFixedColumn },
1208
- { label: getI18n('vxe.custom.setting.fixedUnset'), value: '', disabled: isHidden },
1209
- { label: getI18n('vxe.custom.setting.fixedRight'), value: 'right', disabled: isHidden || isMaxFixedColumn }
1210
- ],
1211
- onChange({ label, $event }) {
1212
- changeFixedOption(column, label, $event);
1213
- }
1214
- })
1215
- : renderEmptyElement($xeTable))
1216
- ])
1217
- : renderEmptyElement($xeTable)
1218
- ]));
1285
+ }, tdVNs));
1219
1286
  }
1220
1287
  });
1288
+ return trVNs;
1289
+ };
1290
+ const renderPopupPanel = () => {
1291
+ const $xeGrid = $xeTable.xeGrid;
1292
+ const $xeGantt = $xeTable.xeGantt;
1293
+ const { customStore } = props;
1294
+ const { treeConfig, rowGroupConfig, aggregateConfig } = tableProps;
1295
+ const { isCustomStatus, customColumnList } = tableReactData;
1296
+ const vSize = computeSize.value;
1297
+ const customOpts = computeCustomOpts.value;
1298
+ const aggregateOpts = computeAggregateOpts.value;
1299
+ const { panePopupStyle } = customStore;
1300
+ const { placement: aggPlacement } = aggregateOpts;
1301
+ const { mode, immediate, modalOptions, drawerOptions, allowVisible, allowFixed, allowAlign, allowHeaderAlign, allowFooterAlign, allowResizable } = customOpts;
1302
+ const columnOpts = computeColumnOpts.value;
1303
+ const { maxFixedSize } = columnOpts;
1304
+ const modalOpts = Object.assign({}, modalOptions);
1305
+ const drawerOpts = Object.assign({}, drawerOptions);
1306
+ const slots = customOpts.slots || {};
1307
+ const headerSlot = slots.header;
1308
+ const topSlot = slots.top;
1309
+ const bottomSlot = slots.bottom;
1310
+ const defaultSlot = slots.default;
1311
+ const footerSlot = slots.footer;
1312
+ const isAllChecked = customStore.isAll;
1313
+ const isAllIndeterminate = customStore.isIndeterminate;
1314
+ const isAggRtBmLayout = aggPlacement === 'right' || aggPlacement === 'bottom';
1315
+ const params = {
1316
+ $table: $xeTable,
1317
+ $grid: $xeGrid,
1318
+ $gantt: $xeGantt,
1319
+ columns: customColumnList,
1320
+ isAllChecked,
1321
+ isAllIndeterminate,
1322
+ isCustomStatus
1323
+ };
1324
+ const colVNs = [];
1325
+ const headVNs = [];
1326
+ if (allowVisible) {
1327
+ colVNs.push(h('col', {
1328
+ key: 'av',
1329
+ class: 'vxe-table-custom-popup--column-col col--checkbox'
1330
+ }));
1331
+ headVNs.push(h('th', {
1332
+ key: 'av',
1333
+ class: 'vxe-table-custom-popup--column-th col--checkbox'
1334
+ }, [
1335
+ h('div', {
1336
+ class: ['vxe-table-custom--checkbox-option', {
1337
+ 'is--checked': isAllChecked,
1338
+ 'is--indeterminate': isAllIndeterminate
1339
+ }],
1340
+ title: getI18n('vxe.table.allTitle'),
1341
+ onClick: allOptionEvent
1342
+ }, [
1343
+ h('span', {
1344
+ class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
1345
+ })
1346
+ // h('span', {
1347
+ // class: 'vxe-checkbox--label'
1348
+ // }, getI18n('vxe.toolbar.customAll'))
1349
+ ])
1350
+ ]));
1351
+ }
1352
+ colVNs.push(h('col', {
1353
+ key: 'at',
1354
+ class: 'vxe-table-custom-popup--column-col col--title'
1355
+ }));
1356
+ headVNs.push(h('th', {
1357
+ key: 'at',
1358
+ class: 'vxe-table-custom-popup--column-th col--title'
1359
+ }, getI18n('vxe.custom.setting.colTitle')));
1360
+ if (allowResizable) {
1361
+ colVNs.push(h('col', {
1362
+ key: 'aw',
1363
+ class: 'vxe-table-custom-popup--column-col col--width'
1364
+ }));
1365
+ headVNs.push(h('th', {
1366
+ key: 'aw',
1367
+ class: 'vxe-table-custom-popup--column-th col--width'
1368
+ }, getI18n('vxe.custom.setting.colResizable')));
1369
+ }
1370
+ if (allowFixed) {
1371
+ colVNs.push(h('col', {
1372
+ key: 'af',
1373
+ class: 'vxe-table-custom-popup--column-col col--fixed'
1374
+ }));
1375
+ headVNs.push(h('th', {
1376
+ key: 'af',
1377
+ class: 'vxe-table-custom-popup--column-th col--fixed'
1378
+ }, getI18n(`vxe.custom.setting.${maxFixedSize ? 'colFixedMax' : 'colFixed'}`, [maxFixedSize])));
1379
+ }
1380
+ if (allowAlign) {
1381
+ colVNs.push(h('col', {
1382
+ key: 'aa',
1383
+ class: 'vxe-table-custom-popup--column-col col--align'
1384
+ }));
1385
+ headVNs.push(h('th', {
1386
+ key: 'aa',
1387
+ class: 'vxe-table-custom-popup--column-th col--align'
1388
+ }, getI18n('vxe.custom.setting.colAlign')));
1389
+ }
1390
+ if (allowHeaderAlign) {
1391
+ colVNs.push(h('col', {
1392
+ key: 'aha',
1393
+ class: 'vxe-table-custom-popup--column-col col--header-align'
1394
+ }));
1395
+ headVNs.push(h('th', {
1396
+ key: 'aha',
1397
+ class: 'vxe-table-custom-popup--column-th col--header-align'
1398
+ }, getI18n('vxe.custom.setting.colHeadAlign')));
1399
+ }
1400
+ if (allowFooterAlign) {
1401
+ colVNs.push(h('col', {
1402
+ key: 'afa',
1403
+ class: 'vxe-table-custom-popup--column-col col--footer-align'
1404
+ }));
1405
+ headVNs.push(h('th', {
1406
+ key: 'afa',
1407
+ class: 'vxe-table-custom-popup--column-th col--footer-align'
1408
+ }, getI18n('vxe.custom.setting.colFootAlign')));
1409
+ }
1221
1410
  const scopedSlots = {
1222
1411
  default: () => {
1223
1412
  return h('div', {
1224
1413
  ref: refBodyWrapperElem,
1225
- class: ['vxe-table-custom-popup--body-wrapper', `agg-layout--${aggPlacement}`]
1414
+ class: ['vxe-table-custom-popup--body-wrapper', `agg-layout--${aggPlacement}`, {
1415
+ [`size--${vSize}`]: vSize
1416
+ }],
1417
+ style: panePopupStyle
1226
1418
  }, defaultSlot
1227
1419
  ? $xeTable.callSlot(defaultSlot, params)
1228
1420
  : [
@@ -1244,62 +1436,16 @@ export default defineVxeComponent({
1244
1436
  class: 'vxe-table-custom-popup--table-wrapper'
1245
1437
  }, [
1246
1438
  h('table', {}, [
1247
- h('colgroup', {}, [
1248
- allowVisible
1249
- ? h('col', {
1250
- class: 'vxe-table-custom-popup--table-col-seq'
1251
- })
1252
- : renderEmptyElement($xeTable),
1253
- h('col', {
1254
- class: 'vxe-table-custom-popup--table-col-title'
1255
- }),
1256
- allowResizable
1257
- ? h('col', {
1258
- class: 'vxe-table-custom-popup--table-col-width'
1259
- })
1260
- : renderEmptyElement($xeTable),
1261
- allowFixed
1262
- ? h('col', {
1263
- class: 'vxe-table-custom-popup--table-col-fixed'
1264
- })
1265
- : renderEmptyElement($xeTable)
1266
- ]),
1439
+ h('colgroup', {}, colVNs),
1267
1440
  h('thead', {}, [
1268
- h('tr', {}, [
1269
- allowVisible
1270
- ? h('th', {}, [
1271
- h('div', {
1272
- class: ['vxe-table-custom--checkbox-option', {
1273
- 'is--checked': isAllChecked,
1274
- 'is--indeterminate': isAllIndeterminate
1275
- }],
1276
- title: getI18n('vxe.table.allTitle'),
1277
- onClick: allOptionEvent
1278
- }, [
1279
- h('span', {
1280
- class: ['vxe-checkbox--icon', isAllIndeterminate ? getIcon().TABLE_CHECKBOX_INDETERMINATE : (isAllChecked ? getIcon().TABLE_CHECKBOX_CHECKED : getIcon().TABLE_CHECKBOX_UNCHECKED)]
1281
- }),
1282
- h('span', {
1283
- class: 'vxe-checkbox--label'
1284
- }, getI18n('vxe.toolbar.customAll'))
1285
- ])
1286
- ])
1287
- : renderEmptyElement($xeTable),
1288
- h('th', {}, getI18n('vxe.custom.setting.colTitle')),
1289
- allowResizable
1290
- ? h('th', {}, getI18n('vxe.custom.setting.colResizable'))
1291
- : renderEmptyElement($xeTable),
1292
- allowFixed
1293
- ? h('th', {}, getI18n(`vxe.custom.setting.${maxFixedSize ? 'colFixedMax' : 'colFixed'}`, [maxFixedSize]))
1294
- : renderEmptyElement($xeTable)
1295
- ])
1441
+ h('tr', {}, headVNs)
1296
1442
  ]),
1297
1443
  h(TransitionGroup, {
1298
1444
  class: 'vxe-table-custom--panel-list',
1299
1445
  tag: 'tbody',
1300
1446
  name: 'vxe-table-custom--list'
1301
1447
  }, {
1302
- default: () => trVNs
1448
+ default: () => renderPopupBodys()
1303
1449
  })
1304
1450
  ])
1305
1451
  ]),
@@ -1334,6 +1480,7 @@ export default defineVxeComponent({
1334
1480
  immediate
1335
1481
  ? (VxeUIButtonComponent
1336
1482
  ? h(VxeUIButtonComponent, {
1483
+ status: 'primary',
1337
1484
  content: customOpts.closeButtonText || getI18n('vxe.table.customClose'),
1338
1485
  onClick: cancelCloseEvent
1339
1486
  })
@@ -1385,8 +1532,8 @@ export default defineVxeComponent({
1385
1532
  className: ['vxe-table-custom-modal-wrapper', 'vxe-table--ignore-clear', modalOpts.className || ''].join(' '),
1386
1533
  modelValue: customStore.visible,
1387
1534
  title: modalOpts.title || getI18n('vxe.custom.cstmTitle'),
1388
- width: modalOpts.width || Math.min(880, document.documentElement.clientWidth),
1389
- minWidth: modalOpts.minWidth || 700,
1535
+ width: modalOpts.width || Math.min(1000, document.documentElement.clientWidth),
1536
+ minWidth: modalOpts.minWidth || 800,
1390
1537
  height: modalOpts.height || Math.min(680, document.documentElement.clientHeight),
1391
1538
  minHeight: modalOpts.minHeight || 400,
1392
1539
  showZoom: modalOpts.showZoom,
@@ -1395,6 +1542,7 @@ export default defineVxeComponent({
1395
1542
  mask: modalOpts.mask,
1396
1543
  lockView: modalOpts.lockView,
1397
1544
  resize: modalOpts.resize,
1545
+ transfer: modalOpts.transfer,
1398
1546
  escClosable: !!modalOpts.escClosable,
1399
1547
  maskClosable: !!modalOpts.maskClosable,
1400
1548
  destroyOnClose: true,