vxe-table 4.16.17 → 4.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 (242) hide show
  1. package/es/colgroup/style.css +0 -0
  2. package/es/colgroup/style.min.css +0 -0
  3. package/es/column/style.css +0 -0
  4. package/es/column/style.min.css +0 -0
  5. package/es/grid/style.css +86 -0
  6. package/es/grid/style.min.css +1 -0
  7. package/es/iconfont.1758609514163.ttf +0 -0
  8. package/es/iconfont.1758609514163.woff +0 -0
  9. package/es/iconfont.1758609514163.woff2 +0 -0
  10. package/es/index.esm.js +3 -0
  11. package/es/locale/lang/ar-EG.d.ts +2 -0
  12. package/es/locale/lang/de-DE.d.ts +2 -0
  13. package/es/locale/lang/en-US.d.ts +2 -0
  14. package/es/locale/lang/es-ES.d.ts +2 -0
  15. package/es/locale/lang/fr-FR.d.ts +2 -0
  16. package/es/locale/lang/hu-HU.d.ts +2 -0
  17. package/es/locale/lang/hy-AM.d.ts +2 -0
  18. package/es/locale/lang/id-ID.d.ts +2 -0
  19. package/es/locale/lang/it-IT.d.ts +2 -0
  20. package/es/locale/lang/ja-JP.d.ts +2 -0
  21. package/es/locale/lang/ko-KR.d.ts +2 -0
  22. package/es/locale/lang/ms-MY.d.ts +2 -0
  23. package/es/locale/lang/nb-NO.d.ts +2 -0
  24. package/es/locale/lang/pt-BR.d.ts +2 -0
  25. package/es/locale/lang/ru-RU.d.ts +2 -0
  26. package/es/locale/lang/th-TH.d.ts +2 -0
  27. package/es/locale/lang/ug-CN.d.ts +2 -0
  28. package/es/locale/lang/uk-UA.d.ts +2 -0
  29. package/es/locale/lang/uz-UZ.d.ts +2 -0
  30. package/es/locale/lang/vi-VN.d.ts +2 -0
  31. package/es/locale/lang/zh-CHT.d.ts +2 -0
  32. package/es/locale/lang/zh-CN.d.ts +2 -0
  33. package/es/locale/lang/zh-HK.d.ts +2 -0
  34. package/es/locale/lang/zh-MO.d.ts +2 -0
  35. package/es/locale/lang/zh-TW.d.ts +2 -0
  36. package/es/style.css +1 -1
  37. package/es/table/module/filter/hook.js +21 -5
  38. package/es/table/module/filter/panel.js +4 -4
  39. package/es/table/module/menu/panel.js +27 -14
  40. package/es/table/src/cell.js +10 -7
  41. package/es/table/src/table.js +22 -22
  42. package/es/table/style.css +3657 -0
  43. package/es/table/style.min.css +1 -0
  44. package/es/toolbar/style.css +90 -0
  45. package/es/toolbar/style.min.css +1 -0
  46. package/es/ui/index.js +1 -1
  47. package/es/ui/src/log.js +1 -1
  48. package/es/ui/style.css +0 -0
  49. package/es/ui/style.min.css +0 -0
  50. package/es/v-x-e-table/style.css +0 -0
  51. package/es/v-x-e-table/style.min.css +0 -0
  52. package/es/vxe-colgroup/style.css +0 -0
  53. package/es/vxe-colgroup/style.min.css +0 -0
  54. package/es/vxe-column/style.css +0 -0
  55. package/es/vxe-column/style.min.css +0 -0
  56. package/es/vxe-grid/style.css +86 -0
  57. package/es/vxe-grid/style.min.css +1 -0
  58. package/es/vxe-table/style.css +3657 -0
  59. package/es/vxe-table/style.min.css +1 -0
  60. package/es/vxe-toolbar/style.css +90 -0
  61. package/es/vxe-toolbar/style.min.css +1 -0
  62. package/es/vxe-ui/style.css +0 -0
  63. package/es/vxe-ui/style.min.css +0 -0
  64. package/es/vxe-v-x-e-table/style.css +0 -0
  65. package/es/vxe-v-x-e-table/style.min.css +0 -0
  66. package/helper/vetur/attributes.json +1 -1
  67. package/helper/vetur/tags.json +1 -1
  68. package/lib/colgroup/style/index.js +1 -0
  69. package/lib/colgroup/style/style.css +0 -0
  70. package/lib/colgroup/style/style.min.css +0 -0
  71. package/lib/column/style/index.js +1 -0
  72. package/lib/column/style/style.css +0 -0
  73. package/lib/column/style/style.min.css +0 -0
  74. package/lib/grid/style/index.js +1 -0
  75. package/lib/grid/style/style.css +86 -0
  76. package/lib/grid/style/style.min.css +1 -0
  77. package/lib/iconfont.1758609514163.ttf +0 -0
  78. package/lib/iconfont.1758609514163.woff +0 -0
  79. package/lib/iconfont.1758609514163.woff2 +0 -0
  80. package/lib/index.common.js +22 -0
  81. package/lib/index.umd.js +73 -25
  82. package/lib/index.umd.min.js +1 -1
  83. package/lib/locale/lang/ar-EG.d.ts +2 -0
  84. package/lib/locale/lang/ar-EG.min.js +1 -1
  85. package/lib/locale/lang/ar-EG.umd.js +806 -0
  86. package/lib/locale/lang/de-DE.d.ts +2 -0
  87. package/lib/locale/lang/de-DE.min.js +1 -1
  88. package/lib/locale/lang/de-DE.umd.js +806 -0
  89. package/lib/locale/lang/en-US.d.ts +2 -0
  90. package/lib/locale/lang/en-US.min.js +1 -1
  91. package/lib/locale/lang/en-US.umd.js +806 -0
  92. package/lib/locale/lang/es-ES.d.ts +2 -0
  93. package/lib/locale/lang/es-ES.min.js +1 -1
  94. package/lib/locale/lang/es-ES.umd.js +806 -0
  95. package/lib/locale/lang/fr-FR.d.ts +2 -0
  96. package/lib/locale/lang/fr-FR.min.js +1 -1
  97. package/lib/locale/lang/fr-FR.umd.js +806 -0
  98. package/lib/locale/lang/hu-HU.d.ts +2 -0
  99. package/lib/locale/lang/hu-HU.min.js +1 -1
  100. package/lib/locale/lang/hu-HU.umd.js +806 -0
  101. package/lib/locale/lang/hy-AM.d.ts +2 -0
  102. package/lib/locale/lang/hy-AM.min.js +1 -1
  103. package/lib/locale/lang/hy-AM.umd.js +806 -0
  104. package/lib/locale/lang/id-ID.d.ts +2 -0
  105. package/lib/locale/lang/id-ID.min.js +1 -1
  106. package/lib/locale/lang/id-ID.umd.js +806 -0
  107. package/lib/locale/lang/it-IT.d.ts +2 -0
  108. package/lib/locale/lang/it-IT.min.js +1 -1
  109. package/lib/locale/lang/it-IT.umd.js +806 -0
  110. package/lib/locale/lang/ja-JP.d.ts +2 -0
  111. package/lib/locale/lang/ja-JP.min.js +1 -1
  112. package/lib/locale/lang/ja-JP.umd.js +806 -0
  113. package/lib/locale/lang/ko-KR.d.ts +2 -0
  114. package/lib/locale/lang/ko-KR.min.js +1 -1
  115. package/lib/locale/lang/ko-KR.umd.js +806 -0
  116. package/lib/locale/lang/ms-MY.d.ts +2 -0
  117. package/lib/locale/lang/ms-MY.min.js +1 -1
  118. package/lib/locale/lang/ms-MY.umd.js +806 -0
  119. package/lib/locale/lang/nb-NO.d.ts +2 -0
  120. package/lib/locale/lang/nb-NO.min.js +1 -1
  121. package/lib/locale/lang/nb-NO.umd.js +806 -0
  122. package/lib/locale/lang/pt-BR.d.ts +2 -0
  123. package/lib/locale/lang/pt-BR.min.js +1 -1
  124. package/lib/locale/lang/pt-BR.umd.js +806 -0
  125. package/lib/locale/lang/ru-RU.d.ts +2 -0
  126. package/lib/locale/lang/ru-RU.min.js +1 -1
  127. package/lib/locale/lang/ru-RU.umd.js +806 -0
  128. package/lib/locale/lang/th-TH.d.ts +2 -0
  129. package/lib/locale/lang/th-TH.min.js +1 -1
  130. package/lib/locale/lang/th-TH.umd.js +806 -0
  131. package/lib/locale/lang/ug-CN.d.ts +2 -0
  132. package/lib/locale/lang/ug-CN.min.js +1 -1
  133. package/lib/locale/lang/ug-CN.umd.js +806 -0
  134. package/lib/locale/lang/uk-UA.d.ts +2 -0
  135. package/lib/locale/lang/uk-UA.min.js +1 -1
  136. package/lib/locale/lang/uk-UA.umd.js +806 -0
  137. package/lib/locale/lang/uz-UZ.d.ts +2 -0
  138. package/lib/locale/lang/uz-UZ.min.js +1 -1
  139. package/lib/locale/lang/uz-UZ.umd.js +806 -0
  140. package/lib/locale/lang/vi-VN.d.ts +2 -0
  141. package/lib/locale/lang/vi-VN.min.js +1 -1
  142. package/lib/locale/lang/vi-VN.umd.js +806 -0
  143. package/lib/locale/lang/zh-CHT.d.ts +2 -0
  144. package/lib/locale/lang/zh-CHT.min.js +1 -1
  145. package/lib/locale/lang/zh-CHT.umd.js +806 -0
  146. package/lib/locale/lang/zh-CN.d.ts +2 -0
  147. package/lib/locale/lang/zh-CN.min.js +1 -1
  148. package/lib/locale/lang/zh-CN.umd.js +808 -0
  149. package/lib/locale/lang/zh-HK.d.ts +2 -0
  150. package/lib/locale/lang/zh-HK.min.js +1 -1
  151. package/lib/locale/lang/zh-HK.umd.js +23 -0
  152. package/lib/locale/lang/zh-MO.d.ts +2 -0
  153. package/lib/locale/lang/zh-MO.min.js +1 -1
  154. package/lib/locale/lang/zh-MO.umd.js +23 -0
  155. package/lib/locale/lang/zh-TW.d.ts +2 -0
  156. package/lib/locale/lang/zh-TW.min.js +1 -1
  157. package/lib/locale/lang/zh-TW.umd.js +23 -0
  158. package/lib/style.css +1 -1
  159. package/lib/table/module/custom/hook.js +430 -0
  160. package/lib/table/module/custom/hook.min.js +1 -0
  161. package/lib/table/module/custom/panel.js +1193 -0
  162. package/lib/table/module/custom/panel.min.js +1 -0
  163. package/lib/table/module/edit/hook.js +1308 -0
  164. package/lib/table/module/edit/hook.min.js +1 -0
  165. package/lib/table/module/export/export-panel.js +467 -0
  166. package/lib/table/module/export/export-panel.min.js +1 -0
  167. package/lib/table/module/export/hook.js +1888 -0
  168. package/lib/table/module/export/hook.min.js +1 -0
  169. package/lib/table/module/export/import-panel.js +226 -0
  170. package/lib/table/module/export/import-panel.min.js +1 -0
  171. package/lib/table/module/export/util.js +20 -0
  172. package/lib/table/module/export/util.min.js +1 -0
  173. package/lib/table/module/filter/hook.js +458 -0
  174. package/lib/table/module/filter/hook.min.js +1 -0
  175. package/lib/table/module/filter/panel.js +265 -0
  176. package/lib/table/module/filter/panel.min.js +1 -0
  177. package/lib/table/module/keyboard/hook.js +579 -0
  178. package/lib/table/module/keyboard/hook.min.js +1 -0
  179. package/lib/table/module/menu/hook.js +392 -0
  180. package/lib/table/module/menu/hook.min.js +1 -0
  181. package/lib/table/module/menu/panel.js +150 -0
  182. package/lib/table/module/menu/panel.min.js +1 -0
  183. package/lib/table/module/validator/hook.js +681 -0
  184. package/lib/table/module/validator/hook.min.js +1 -0
  185. package/lib/table/src/cell.js +9 -4
  186. package/lib/table/src/cell.min.js +1 -1
  187. package/lib/table/src/header.min.js +1 -0
  188. package/lib/table/src/props.js +318 -0
  189. package/lib/table/src/props.min.js +1 -0
  190. package/lib/table/src/store.js +15 -0
  191. package/lib/table/src/store.min.js +1 -0
  192. package/lib/table/src/table.js +924 -0
  193. package/lib/table/src/table.min.js +1 -0
  194. package/lib/table/src/use/cell-view.js +57 -0
  195. package/lib/table/src/use/cell-view.min.js +1 -0
  196. package/lib/table/src/use/index.js +16 -0
  197. package/lib/table/src/use/index.min.js +1 -0
  198. package/lib/table/src/util.js +916 -0
  199. package/lib/table/src/util.min.js +1 -0
  200. package/lib/table/style/index.js +1 -0
  201. package/lib/table/style/style.css +3657 -0
  202. package/lib/table/style/style.min.css +1 -0
  203. package/lib/toolbar/style/index.js +1 -0
  204. package/lib/toolbar/style/style.css +90 -0
  205. package/lib/toolbar/style/style.min.css +1 -0
  206. package/lib/ui/index.js +1 -1
  207. package/lib/ui/index.min.js +1 -1
  208. package/lib/ui/src/log.js +1 -1
  209. package/lib/ui/src/log.min.js +1 -1
  210. package/lib/ui/style/index.js +1 -0
  211. package/lib/ui/style/style.css +0 -0
  212. package/lib/ui/style/style.min.css +0 -0
  213. package/lib/v-x-e-table/style/index.js +1 -0
  214. package/lib/v-x-e-table/style/style.css +0 -0
  215. package/lib/v-x-e-table/style/style.min.css +0 -0
  216. package/lib/vxe-colgroup/style/index.js +1 -0
  217. package/lib/vxe-colgroup/style/style.css +0 -0
  218. package/lib/vxe-colgroup/style/style.min.css +0 -0
  219. package/lib/vxe-column/style/index.js +1 -0
  220. package/lib/vxe-column/style/style.css +0 -0
  221. package/lib/vxe-column/style/style.min.css +0 -0
  222. package/lib/vxe-grid/style/index.js +1 -0
  223. package/lib/vxe-grid/style/style.css +86 -0
  224. package/lib/vxe-grid/style/style.min.css +1 -0
  225. package/lib/vxe-table/style/index.js +1 -0
  226. package/lib/vxe-table/style/style.css +3657 -0
  227. package/lib/vxe-table/style/style.min.css +1 -0
  228. package/lib/vxe-toolbar/style/index.js +1 -0
  229. package/lib/vxe-toolbar/style/style.css +90 -0
  230. package/lib/vxe-toolbar/style/style.min.css +1 -0
  231. package/lib/vxe-ui/style/index.js +1 -0
  232. package/lib/vxe-ui/style/style.css +0 -0
  233. package/lib/vxe-ui/style/style.min.css +0 -0
  234. package/lib/vxe-v-x-e-table/style/index.js +1 -0
  235. package/lib/vxe-v-x-e-table/style/style.css +0 -0
  236. package/lib/vxe-v-x-e-table/style/style.min.css +0 -0
  237. package/package.json +1 -1
  238. package/packages/table/module/filter/hook.ts +23 -6
  239. package/packages/table/module/filter/panel.ts +4 -4
  240. package/packages/table/module/menu/panel.ts +29 -16
  241. package/packages/table/src/cell.ts +10 -7
  242. package/packages/table/src/table.ts +22 -22
@@ -8,6 +8,9 @@ const { renderer, hooks } = VxeUI;
8
8
  const tableFilterMethodKeys = ['openFilter', 'setFilter', 'clearFilter', 'saveFilterPanel', 'saveFilterPanelByEvent', 'resetFilterPanel', 'resetFilterPanelByEvent', 'getCheckedFilters', 'updateFilterOptionStatus'];
9
9
  hooks.add('tableFilterModule', {
10
10
  setupTable($xeTable) {
11
+ const $xeGrid = $xeTable.xeGrid;
12
+ const $xeGantt = $xeTable.xeGantt;
13
+ const $xeGGWrapper = $xeGrid || $xeGantt;
11
14
  const { props, reactData, internalData } = $xeTable;
12
15
  const { refElem, refTableFilter } = $xeTable.getRefMaps();
13
16
  const { computeFilterOpts, computeMouseOpts } = $xeTable.getComputeMaps();
@@ -69,12 +72,14 @@ hooks.add('tableFilterModule', {
69
72
  filterStore.visible = false;
70
73
  }
71
74
  else {
72
- const el = refElem.value;
75
+ const tableEl = refElem.value;
73
76
  const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode();
74
77
  const filterOpts = computeFilterOpts.value;
75
78
  const { transfer } = filterOpts;
76
- const tableRect = el.getBoundingClientRect();
79
+ const tableRect = tableEl.getBoundingClientRect();
77
80
  const btnElem = evnt.currentTarget;
81
+ const filterRender = column ? column.filterRender : null;
82
+ const compConf = filterRender && isEnableConf(filterRender) ? renderer.get(filterRender.name) : null;
78
83
  $xeTable.handleFilterOptions(column);
79
84
  internalData._currFilterParams = params;
80
85
  filterStore.style = null;
@@ -112,18 +117,29 @@ hooks.add('tableFilterModule', {
112
117
  else {
113
118
  left = btnRect.left - tableRect.left - centerWidth;
114
119
  top = btnRect.top - tableRect.top + btnElem.clientHeight;
115
- maxHeight = Math.max(40, el.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
120
+ maxHeight = Math.max(40, tableEl.clientHeight - top - (filterHeadElem ? filterHeadElem.clientHeight : 0) - (filterFootElem ? filterFootElem.clientHeight : 0) - 14);
116
121
  if (left < 1) {
117
122
  left = 1;
118
123
  }
119
- else if (left > (el.clientWidth - filterWidth - 1)) {
120
- left = el.clientWidth - filterWidth - 1;
124
+ else if (left > (tableEl.clientWidth - filterWidth - 1)) {
125
+ left = tableEl.clientWidth - filterWidth - 1;
126
+ }
127
+ if ($xeGGWrapper) {
128
+ const wrapperEl = $xeGGWrapper.getRefMaps().refElem.value;
129
+ if (wrapperEl) {
130
+ const wrapperRect = wrapperEl.getBoundingClientRect();
131
+ top += tableRect.top - wrapperRect.top;
132
+ }
121
133
  }
122
134
  }
123
135
  filterStore.style = {
124
136
  top: toCssUnit(top),
125
137
  left: toCssUnit(left)
126
138
  };
139
+ // 筛选面板是自适应表格高度
140
+ if (compConf ? !compConf.tableFilterAutoHeight : false) {
141
+ maxHeight = 0;
142
+ }
127
143
  // 判断面板不能大于表格高度
128
144
  filterStore.maxHeight = maxHeight;
129
145
  });
@@ -2,7 +2,7 @@ import { h, ref, computed, inject, Teleport } from 'vue';
2
2
  import { defineVxeComponent } from '../../../ui/src/comp';
3
3
  import { VxeUI } from '../../../ui';
4
4
  import { formatText, isEnableConf } from '../../../ui/src/utils';
5
- import { getPropClass } from '../../../ui/src/dom';
5
+ import { getPropClass, toCssUnit } from '../../../ui/src/dom';
6
6
  import { getSlotVNs } from '../../../ui/src/vn';
7
7
  import { warnLog } from '../../../ui/src/log';
8
8
  import XEUtils from 'xe-utils';
@@ -105,7 +105,7 @@ export default defineVxeComponent({
105
105
  class: 'vxe-table--filter-template',
106
106
  style: maxHeight
107
107
  ? {
108
- maxHeight: `${maxHeight}px`
108
+ maxHeight: toCssUnit(maxHeight)
109
109
  }
110
110
  : {}
111
111
  }, $xeTable.callSlot(filterSlot, params))
@@ -117,7 +117,7 @@ export default defineVxeComponent({
117
117
  class: 'vxe-table--filter-template',
118
118
  style: maxHeight
119
119
  ? {
120
- maxHeight: `${maxHeight}px`
120
+ maxHeight: toCssUnit(maxHeight)
121
121
  }
122
122
  : {}
123
123
  }, getSlotVNs(rtFilter(filterRender, params)))
@@ -154,7 +154,7 @@ export default defineVxeComponent({
154
154
  class: 'vxe-table--filter-body',
155
155
  style: maxHeight
156
156
  ? {
157
- maxHeight: `${maxHeight}px`
157
+ maxHeight: toCssUnit(maxHeight)
158
158
  }
159
159
  : {}
160
160
  }, filterStore.options.map((item) => {
@@ -1,8 +1,9 @@
1
1
  import { h, Teleport, inject, ref } from 'vue';
2
2
  import { defineVxeComponent } from '../../../ui/src/comp';
3
+ import XEUtils from 'xe-utils';
3
4
  import { VxeUI } from '../../../ui';
4
5
  import { getFuncText } from '../../../ui/src/utils';
5
- import XEUtils from 'xe-utils';
6
+ import { getSlotVNs } from '../../../ui/src/vn';
6
7
  const { getIcon, renderEmptyElement } = VxeUI;
7
8
  export default defineVxeComponent({
8
9
  name: 'VxeTableMenuPanel',
@@ -46,7 +47,9 @@ export default defineVxeComponent({
46
47
  }, options.map((item, index) => {
47
48
  const hasChildMenus = item.children && item.children.some((child) => child.visible !== false);
48
49
  const prefixOpts = Object.assign({}, item.prefixConfig);
50
+ const prefixIcon = prefixOpts.icon || item.prefixIcon;
49
51
  const suffixOpts = Object.assign({}, item.suffixConfig);
52
+ const suffixIcon = suffixOpts.icon || item.suffixIcon;
50
53
  const menuContent = getFuncText(item.name);
51
54
  return item.visible === false
52
55
  ? renderEmptyElement($xeTable)
@@ -72,9 +75,11 @@ export default defineVxeComponent({
72
75
  h('div', {
73
76
  class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
74
77
  }, [
75
- h('i', {
76
- class: prefixOpts.icon || item.prefixIcon
77
- }),
78
+ prefixIcon && XEUtils.isFunction(prefixIcon)
79
+ ? h('span', {}, getSlotVNs(prefixIcon({})))
80
+ : h('i', {
81
+ class: prefixIcon
82
+ }),
78
83
  prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
79
84
  ]),
80
85
  h('div', {
@@ -84,20 +89,24 @@ export default defineVxeComponent({
84
89
  h('div', {
85
90
  class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
86
91
  }, [
87
- h('i', {
88
- class: (suffixOpts.icon || item.suffixIcon) || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
89
- }),
92
+ suffixIcon && XEUtils.isFunction(suffixIcon)
93
+ ? h('span', {}, getSlotVNs(suffixIcon({})))
94
+ : h('i', {
95
+ class: suffixIcon || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
96
+ }),
90
97
  suffixOpts.content ? h('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)
91
98
  ])
92
99
  ]),
93
- hasChildMenus
100
+ hasChildMenus && item.children
94
101
  ? h('ul', {
95
102
  class: ['vxe-table--context-menu-clild-wrapper', {
96
103
  'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
97
104
  }]
98
105
  }, item.children.map((child, cIndex) => {
99
106
  const childPrefixOpts = Object.assign({}, child.prefixConfig);
107
+ const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon;
100
108
  const childSuffixOpts = Object.assign({}, child.suffixConfig);
109
+ const childSuffixIcon = childSuffixOpts.icon || child.suffixIcon;
101
110
  const childMenuContent = getFuncText(child.name);
102
111
  return child.visible === false
103
112
  ? null
@@ -123,9 +132,11 @@ export default defineVxeComponent({
123
132
  h('div', {
124
133
  class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
125
134
  }, [
126
- h('i', {
127
- class: childPrefixOpts.icon || child.prefixIcon
128
- }),
135
+ childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
136
+ ? h('span', {}, getSlotVNs(childPrefixIcon({})))
137
+ : h('i', {
138
+ class: childPrefixIcon
139
+ }),
129
140
  childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
130
141
  ]),
131
142
  h('div', {
@@ -135,9 +146,11 @@ export default defineVxeComponent({
135
146
  h('div', {
136
147
  class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
137
148
  }, [
138
- h('i', {
139
- class: childSuffixOpts.icon
140
- }),
149
+ childSuffixIcon && XEUtils.isFunction(childSuffixIcon)
150
+ ? h('span', {}, getSlotVNs(childSuffixIcon({})))
151
+ : h('i', {
152
+ class: childSuffixIcon
153
+ }),
141
154
  childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)
142
155
  ])
143
156
  ])
@@ -1090,22 +1090,25 @@ export const Cell = {
1090
1090
  }
1091
1091
  let editIconVNs = [];
1092
1092
  if (isEnableConf(editConfig)) {
1093
+ const { showAsterisk, showIcon, icon } = editOpts;
1093
1094
  editIconVNs = [
1094
- isRequired && editOpts.showAsterisk
1095
+ isRequired && showAsterisk
1095
1096
  ? h('span', {
1096
1097
  class: 'vxe-cell--required-icon'
1097
1098
  }, [
1098
1099
  h('i')
1099
1100
  ])
1100
1101
  : renderEmptyElement($table),
1101
- isEnableConf(editRender) && editOpts.showIcon
1102
+ isEnableConf(editRender) && showIcon
1102
1103
  ? h('span', {
1103
1104
  class: 'vxe-cell--edit-icon'
1104
- }, [
1105
- h('i', {
1106
- class: editOpts.icon || getIcon().TABLE_EDIT
1107
- })
1108
- ])
1105
+ }, XEUtils.isFunction(icon)
1106
+ ? getSlotVNs(icon({}))
1107
+ : [
1108
+ h('i', {
1109
+ class: icon || getIcon().TABLE_EDIT
1110
+ })
1111
+ ])
1109
1112
  : renderEmptyElement($table)
1110
1113
  ];
1111
1114
  }
@@ -11715,16 +11715,16 @@ export default defineVxeComponent({
11715
11715
  }
11716
11716
  };
11717
11717
  // 检测对应模块是否安装
11718
- 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
11719
- $xeTable[name] = function () {
11720
- errLog('vxe.error.reqModule', ['Export']);
11721
- };
11722
- });
11723
- 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
11724
- $xeTable[name] = function () {
11725
- errLog('vxe.error.reqModule', ['Validator']);
11726
- };
11727
- });
11718
+ // 'openExport,openPrint,exportData,openImport,importData,saveFile,readFile,importByFile,print'.split(',').forEach(name => {
11719
+ // ($xeTable as any)[name] = function () {
11720
+ // errLog('vxe.error.reqModule', ['Export'])
11721
+ // }
11722
+ // })
11723
+ // 'clearValidate,fullValidate,validate'.split(',').forEach(name => {
11724
+ // ($xeTable as any)[name] = function () {
11725
+ // errLog('vxe.error.reqModule', ['Validator'])
11726
+ // }
11727
+ // })
11728
11728
  Object.assign($xeTable, tableMethods, tablePrivateMethods);
11729
11729
  /**
11730
11730
  * 渲染浮固定列
@@ -12832,18 +12832,18 @@ export default defineVxeComponent({
12832
12832
  // }
12833
12833
  // }
12834
12834
  // 检查是否有安装需要的模块
12835
- if (props.editConfig && !$xeTable.insert) {
12836
- errLog('vxe.error.reqModule', ['Edit']);
12837
- }
12838
- if (props.editRules && !$xeTable.validate) {
12839
- errLog('vxe.error.reqModule', ['Validator']);
12840
- }
12841
- if ((checkboxOpts.range || props.keyboardConfig || props.mouseConfig) && !$xeTable.handleCellMousedownEvent) {
12842
- errLog('vxe.error.reqModule', ['Keyboard']);
12843
- }
12844
- if ((props.printConfig || props.importConfig || props.exportConfig) && !$xeTable.exportData) {
12845
- errLog('vxe.error.reqModule', ['Export']);
12846
- }
12835
+ // if (props.editConfig && !$xeTable.insert) {
12836
+ // errLog('vxe.error.reqModule', ['Edit'])
12837
+ // }
12838
+ // if (props.editRules && !$xeTable.validate) {
12839
+ // errLog('vxe.error.reqModule', ['Validator'])
12840
+ // }
12841
+ // if ((checkboxOpts.range || props.keyboardConfig || props.mouseConfig) && !$xeTable.handleCellMousedownEvent) {
12842
+ // errLog('vxe.error.reqModule', ['Keyboard'])
12843
+ // }
12844
+ // if ((props.printConfig || props.importConfig || props.exportConfig) && !$xeTable.exportData) {
12845
+ // errLog('vxe.error.reqModule', ['Export'])
12846
+ // }
12847
12847
  Object.assign(scrollYStore, {
12848
12848
  startIndex: 0,
12849
12849
  endIndex: 0,