vxe-table 4.17.12 → 4.17.14

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 (155) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/locale/lang/ar-EG.js +2 -1
  4. package/es/locale/lang/de-DE.js +2 -1
  5. package/es/locale/lang/en-US.js +2 -1
  6. package/es/locale/lang/es-ES.js +2 -1
  7. package/es/locale/lang/fr-FR.js +2 -1
  8. package/es/locale/lang/hu-HU.js +2 -1
  9. package/es/locale/lang/hy-AM.js +2 -1
  10. package/es/locale/lang/id-ID.js +2 -1
  11. package/es/locale/lang/it-IT.js +2 -1
  12. package/es/locale/lang/ja-JP.js +2 -1
  13. package/es/locale/lang/ko-KR.js +2 -1
  14. package/es/locale/lang/ms-MY.js +2 -1
  15. package/es/locale/lang/nb-NO.js +2 -1
  16. package/es/locale/lang/pt-BR.js +2 -1
  17. package/es/locale/lang/ru-RU.js +2 -1
  18. package/es/locale/lang/th-TH.js +2 -1
  19. package/es/locale/lang/ug-CN.js +2 -1
  20. package/es/locale/lang/uk-UA.js +2 -1
  21. package/es/locale/lang/uz-UZ.js +2 -1
  22. package/es/locale/lang/vi-VN.js +2 -1
  23. package/es/locale/lang/zh-CHT.js +2 -1
  24. package/es/locale/lang/zh-CN.js +2 -1
  25. package/es/style.css +1 -1
  26. package/es/style.min.css +1 -1
  27. package/es/table/module/menu/hook.js +1 -1
  28. package/es/table/module/menu/panel.js +30 -14
  29. package/es/table/src/header.js +2 -3
  30. package/es/table/style.css +6 -3
  31. package/es/table/style.min.css +1 -1
  32. package/es/ui/index.js +2 -1
  33. package/es/ui/src/log.js +1 -1
  34. package/es/vxe-table/style.css +6 -3
  35. package/es/vxe-table/style.min.css +1 -1
  36. package/lib/index.css +1 -1
  37. package/lib/index.min.css +1 -1
  38. package/lib/index.umd.js +29 -17
  39. package/lib/index.umd.min.js +1 -1
  40. package/lib/locale/lang/ar-EG.js +2 -1
  41. package/lib/locale/lang/ar-EG.min.js +1 -1
  42. package/lib/locale/lang/ar-EG.umd.js +2 -1
  43. package/lib/locale/lang/de-DE.js +2 -1
  44. package/lib/locale/lang/de-DE.min.js +1 -1
  45. package/lib/locale/lang/de-DE.umd.js +2 -1
  46. package/lib/locale/lang/en-US.js +2 -1
  47. package/lib/locale/lang/en-US.min.js +1 -1
  48. package/lib/locale/lang/en-US.umd.js +2 -1
  49. package/lib/locale/lang/es-ES.js +2 -1
  50. package/lib/locale/lang/es-ES.min.js +1 -1
  51. package/lib/locale/lang/es-ES.umd.js +2 -1
  52. package/lib/locale/lang/fr-FR.js +2 -1
  53. package/lib/locale/lang/fr-FR.min.js +1 -1
  54. package/lib/locale/lang/fr-FR.umd.js +2 -1
  55. package/lib/locale/lang/hu-HU.js +2 -1
  56. package/lib/locale/lang/hu-HU.min.js +1 -1
  57. package/lib/locale/lang/hu-HU.umd.js +2 -1
  58. package/lib/locale/lang/hy-AM.js +2 -1
  59. package/lib/locale/lang/hy-AM.min.js +1 -1
  60. package/lib/locale/lang/hy-AM.umd.js +2 -1
  61. package/lib/locale/lang/id-ID.js +2 -1
  62. package/lib/locale/lang/id-ID.min.js +1 -1
  63. package/lib/locale/lang/id-ID.umd.js +2 -1
  64. package/lib/locale/lang/it-IT.js +2 -1
  65. package/lib/locale/lang/it-IT.min.js +1 -1
  66. package/lib/locale/lang/it-IT.umd.js +2 -1
  67. package/lib/locale/lang/ja-JP.js +2 -1
  68. package/lib/locale/lang/ja-JP.min.js +1 -1
  69. package/lib/locale/lang/ja-JP.umd.js +2 -1
  70. package/lib/locale/lang/ko-KR.js +2 -1
  71. package/lib/locale/lang/ko-KR.min.js +1 -1
  72. package/lib/locale/lang/ko-KR.umd.js +2 -1
  73. package/lib/locale/lang/ms-MY.js +2 -1
  74. package/lib/locale/lang/ms-MY.min.js +1 -1
  75. package/lib/locale/lang/ms-MY.umd.js +2 -1
  76. package/lib/locale/lang/nb-NO.js +2 -1
  77. package/lib/locale/lang/nb-NO.min.js +1 -1
  78. package/lib/locale/lang/nb-NO.umd.js +2 -1
  79. package/lib/locale/lang/pt-BR.js +2 -1
  80. package/lib/locale/lang/pt-BR.min.js +1 -1
  81. package/lib/locale/lang/pt-BR.umd.js +2 -1
  82. package/lib/locale/lang/ru-RU.js +2 -1
  83. package/lib/locale/lang/ru-RU.min.js +1 -1
  84. package/lib/locale/lang/ru-RU.umd.js +2 -1
  85. package/lib/locale/lang/th-TH.js +2 -1
  86. package/lib/locale/lang/th-TH.min.js +1 -1
  87. package/lib/locale/lang/th-TH.umd.js +2 -1
  88. package/lib/locale/lang/ug-CN.js +2 -1
  89. package/lib/locale/lang/ug-CN.min.js +1 -1
  90. package/lib/locale/lang/ug-CN.umd.js +2 -1
  91. package/lib/locale/lang/uk-UA.js +2 -1
  92. package/lib/locale/lang/uk-UA.min.js +1 -1
  93. package/lib/locale/lang/uk-UA.umd.js +2 -1
  94. package/lib/locale/lang/uz-UZ.js +2 -1
  95. package/lib/locale/lang/uz-UZ.min.js +1 -1
  96. package/lib/locale/lang/uz-UZ.umd.js +2 -1
  97. package/lib/locale/lang/vi-VN.js +2 -1
  98. package/lib/locale/lang/vi-VN.min.js +1 -1
  99. package/lib/locale/lang/vi-VN.umd.js +2 -1
  100. package/lib/locale/lang/zh-CHT.js +2 -1
  101. package/lib/locale/lang/zh-CHT.min.js +1 -1
  102. package/lib/locale/lang/zh-CHT.umd.js +2 -1
  103. package/lib/locale/lang/zh-CN.js +2 -1
  104. package/lib/locale/lang/zh-CN.min.js +1 -1
  105. package/lib/locale/lang/zh-CN.umd.js +2 -1
  106. package/lib/style.css +1 -1
  107. package/lib/style.min.css +1 -1
  108. package/lib/table/module/menu/hook.js +1 -1
  109. package/lib/table/module/menu/hook.min.js +1 -1
  110. package/lib/table/module/menu/panel.js +21 -7
  111. package/lib/table/module/menu/panel.min.js +1 -1
  112. package/lib/table/src/header.js +2 -6
  113. package/lib/table/src/header.min.js +1 -1
  114. package/lib/table/style/style.css +6 -3
  115. package/lib/table/style/style.min.css +1 -1
  116. package/lib/ui/index.js +2 -1
  117. package/lib/ui/index.min.js +1 -1
  118. package/lib/ui/src/log.js +1 -1
  119. package/lib/ui/src/log.min.js +1 -1
  120. package/lib/vxe-table/style/style.css +6 -3
  121. package/lib/vxe-table/style/style.min.css +1 -1
  122. package/package.json +1 -1
  123. package/packages/locale/lang/ar-EG.ts +2 -1
  124. package/packages/locale/lang/de-DE.ts +2 -1
  125. package/packages/locale/lang/en-US.ts +2 -1
  126. package/packages/locale/lang/es-ES.ts +2 -1
  127. package/packages/locale/lang/fr-FR.ts +2 -1
  128. package/packages/locale/lang/hu-HU.ts +2 -1
  129. package/packages/locale/lang/hy-AM.ts +2 -1
  130. package/packages/locale/lang/id-ID.ts +2 -1
  131. package/packages/locale/lang/it-IT.ts +2 -1
  132. package/packages/locale/lang/ja-JP.ts +2 -1
  133. package/packages/locale/lang/ko-KR.ts +2 -1
  134. package/packages/locale/lang/ms-MY.ts +2 -1
  135. package/packages/locale/lang/nb-NO.ts +2 -1
  136. package/packages/locale/lang/pt-BR.ts +2 -1
  137. package/packages/locale/lang/ru-RU.ts +2 -1
  138. package/packages/locale/lang/th-TH.ts +2 -1
  139. package/packages/locale/lang/ug-CN.ts +2 -1
  140. package/packages/locale/lang/uk-UA.ts +2 -1
  141. package/packages/locale/lang/uz-UZ.ts +2 -1
  142. package/packages/locale/lang/vi-VN.ts +2 -1
  143. package/packages/locale/lang/zh-CHT.ts +2 -1
  144. package/packages/locale/lang/zh-CN.ts +2 -1
  145. package/packages/table/module/menu/hook.ts +3 -3
  146. package/packages/table/module/menu/panel.ts +30 -14
  147. package/packages/table/src/header.ts +2 -3
  148. package/packages/ui/index.ts +1 -0
  149. package/styles/components/table-module/menu.scss +1 -0
  150. /package/es/{iconfont.1762579794801.ttf → iconfont.1762844790572.ttf} +0 -0
  151. /package/es/{iconfont.1762579794801.woff → iconfont.1762844790572.woff} +0 -0
  152. /package/es/{iconfont.1762579794801.woff2 → iconfont.1762844790572.woff2} +0 -0
  153. /package/lib/{iconfont.1762579794801.ttf → iconfont.1762844790572.ttf} +0 -0
  154. /package/lib/{iconfont.1762579794801.woff → iconfont.1762844790572.woff} +0 -0
  155. /package/lib/{iconfont.1762579794801.woff2 → iconfont.1762844790572.woff2} +0 -0
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Déplacer: {0}',
90
90
  resizeColTip: 'Largeur: {0} pixels',
91
91
  resizeRowTip: 'Hauteur: {0} pixels',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Veuillez sélectionner au moins un enregistrement!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Mozgás: {0}',
90
90
  resizeColTip: 'Szélesség: {0} pixelek',
91
91
  resizeRowTip: 'Magasság: {0} pixelek',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Kérjük, válasszon legalább egy rekordot!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: '移动:{0}',
90
90
  resizeColTip: '宽:{0} 像素',
91
91
  resizeRowTip: '高:{0} 像素',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: '请至少选择一条记录!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Pindahkan: {0}',
90
90
  resizeColTip: 'Lebar: {0} piksel',
91
91
  resizeRowTip: 'Tinggi: {0} piksel',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Pilih setidaknya satu catatan!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Muovi: {0}',
90
90
  resizeColTip: 'Larghezza: {0} pixel',
91
91
  resizeRowTip: 'Altezza: {0} pixel',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Seleziona almeno un record!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: '移動:{0}',
90
90
  resizeColTip: '幅:{0}ピクセル',
91
91
  resizeRowTip: '高:{0}ピクセル',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: '少なくとも1つのレコードを選択してください!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: '움직임 : {0}',
90
90
  resizeColTip: '너비 : {0} 픽셀',
91
91
  resizeRowTip: '높음 : {0} 픽셀',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: '하나 이상의 레코드를 선택하십시오!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Bergerak: {0}',
90
90
  resizeColTip: 'Lebar: {0} piksel',
91
91
  resizeRowTip: 'Tinggi: {0} piksel',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Sila pilih sekurang -kurangnya satu rekod!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Flytt: {0}',
90
90
  resizeColTip: 'Bredde: {0} piksler',
91
91
  resizeRowTip: 'Høyde: {0} piksler',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Velg minst en post!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Move: {0}',
90
90
  resizeColTip: 'Largura: {0} pixels',
91
91
  resizeRowTip: 'Altura: {0} pixels',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Selecione pelo menos um registro!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'MOVE: {0}',
90
90
  resizeColTip: 'Ширина: {0} пиксели',
91
91
  resizeRowTip: 'Высокий: {0} пиксели',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Пожалуйста, выберите хотя бы одну запись!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'ย้าย: {0}',
90
90
  resizeColTip: 'ความกว้าง: {0} พิกเซล',
91
91
  resizeRowTip: 'ความสูง: {0} พิกเซล',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'กรุณาเลือกอย่างน้อยหนึ่งบันทึก!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'يۆتكەش:{0}',
90
90
  resizeColTip: '宽:{0} 像素',
91
91
  resizeRowTip: '高:{0} 像素',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'كەم بولغاندا بىر تال ئۇچۇر تاللاڭ',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Перемістити: {0}',
90
90
  resizeColTip: 'Ширина: {0} пікселів',
91
91
  resizeRowTip: 'Висота: {0} пікселів',
92
- rowGroupContentTotal: '{0} ({1})'
92
+ rowGroupContentTotal: '{0} ({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Виберіть принаймні один запис!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: "Ko'chiring: {0}",
90
90
  resizeColTip: 'Kengligi: {0} piksel',
91
91
  resizeRowTip: 'Yuqori: {0} piksel',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Iltimos, kamida bitta yozuvni tanlang!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: 'Di chuyển: {0}',
90
90
  resizeColTip: 'Chiều rộng: {0} pixel',
91
91
  resizeRowTip: 'Cao: {0} pixel',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: 'Vui lòng chọn ít nhất một bản ghi!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: '移動:{0}',
90
90
  resizeColTip: '寬:{0} 像素',
91
91
  resizeRowTip: '高:{0} 像素',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: '請至少選擇一條記錄!',
@@ -89,7 +89,8 @@ export default {
89
89
  dragTip: '移动:{0}',
90
90
  resizeColTip: '宽:{0} 像素',
91
91
  resizeRowTip: '高:{0} 像素',
92
- rowGroupContentTotal: '{0}({1})'
92
+ rowGroupContentTotal: '{0}({1})',
93
+ menuLoading: '加载中...'
93
94
  },
94
95
  grid: {
95
96
  selectOneRecord: '请至少选择一条记录!',
@@ -248,7 +248,7 @@ hooks.add('tableMenuModule', {
248
248
  menuMethods.closeMenu()
249
249
  },
250
250
  ctxMenuMouseoverEvent (evnt, item, child) {
251
- const menuElem = evnt.currentTarget
251
+ const menuElem = evnt.currentTarget as HTMLDivElement
252
252
  const { ctxMenuStore } = reactData
253
253
  evnt.preventDefault()
254
254
  evnt.stopPropagation()
@@ -258,7 +258,7 @@ hooks.add('tableMenuModule', {
258
258
  ctxMenuStore.showChild = hasChildrenList(item)
259
259
  if (ctxMenuStore.showChild) {
260
260
  nextTick(() => {
261
- const childWrapperElem = menuElem.nextElementSibling
261
+ const childWrapperElem = menuElem.nextElementSibling as HTMLDivElement
262
262
  if (childWrapperElem) {
263
263
  const { boundingTop, boundingLeft, visibleHeight, visibleWidth } = getAbsolutePos(menuElem)
264
264
  const posTop = boundingTop + menuElem.offsetHeight
@@ -301,7 +301,7 @@ hooks.add('tableMenuModule', {
301
301
  const $xeGantt = $xeTable.xeGantt
302
302
 
303
303
  // 如果一级菜单有配置 code 则允许点击,否则不能点击
304
- if (!menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
304
+ if (!menu.loading && !menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
305
305
  const gMenuOpts = menus.get(menu.code)
306
306
  const params = Object.assign({}, internalData._currMenuParams, { menu, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, $event: evnt })
307
307
  const tmMethod = gMenuOpts ? (gMenuOpts.tableMenuMethod || gMenuOpts.menuMethod) : null
@@ -7,7 +7,7 @@ import { getSlotVNs } from '../../../ui/src/vn'
7
7
 
8
8
  import type { VxeTablePrivateMethods, VxeTableConstructor, VxeTableMethods } from '../../../../types'
9
9
 
10
- const { getIcon, renderEmptyElement } = VxeUI
10
+ const { getIcon, getI18n, renderEmptyElement } = VxeUI
11
11
 
12
12
  export default defineVxeComponent({
13
13
  name: 'VxeTableMenuPanel',
@@ -56,7 +56,8 @@ export default defineVxeComponent({
56
56
  class: 'vxe-context-menu--option-wrapper',
57
57
  key: gIndex
58
58
  }, options.map((item, index) => {
59
- const hasChildMenus = item.children && item.children.some((child) => child.visible !== false)
59
+ const { children, loading } = item
60
+ const hasChildMenus = children && children.some((child) => child.visible !== false)
60
61
  const prefixOpts = Object.assign({}, item.prefixConfig)
61
62
  const prefixIcon = prefixOpts.icon || item.prefixIcon
62
63
  const suffixOpts = Object.assign({}, item.suffixConfig)
@@ -66,6 +67,7 @@ export default defineVxeComponent({
66
67
  ? renderEmptyElement($xeTable)
67
68
  : h('li', {
68
69
  class: [item.className, {
70
+ 'link--loading': loading,
69
71
  'link--disabled': item.disabled,
70
72
  'link--active': item === ctxMenuStore.selected
71
73
  }],
@@ -86,17 +88,23 @@ export default defineVxeComponent({
86
88
  h('div', {
87
89
  class: ['vxe-context-menu--link-prefix', prefixOpts.className || '']
88
90
  }, [
89
- prefixIcon && XEUtils.isFunction(prefixIcon)
90
- ? h('span', {}, getSlotVNs(prefixIcon({})))
91
- : h('i', {
92
- class: prefixIcon
93
- }),
91
+ loading
92
+ ? h('span', {
93
+ class: getIcon('TABLE_MENU_OPTION_LOADING')
94
+ })
95
+ : (prefixIcon && XEUtils.isFunction(prefixIcon)
96
+ ? h('span', {}, getSlotVNs(prefixIcon({})))
97
+ : h('span', {}, [
98
+ h('i', {
99
+ class: prefixIcon
100
+ })
101
+ ])),
94
102
  prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
95
103
  ]),
96
104
  h('div', {
97
105
  class: 'vxe-context-menu--link-content',
98
106
  title: menuContent
99
- }, menuContent),
107
+ }, loading ? getI18n('vxe.table.menuLoading') : menuContent),
100
108
  h('div', {
101
109
  class: ['vxe-context-menu--link-suffix', suffixOpts.className || '']
102
110
  }, [
@@ -114,6 +122,7 @@ export default defineVxeComponent({
114
122
  'is--show': item === ctxMenuStore.selected && ctxMenuStore.showChild
115
123
  }]
116
124
  }, item.children.map((child, cIndex) => {
125
+ const { loading: childLoading } = child
117
126
  const childPrefixOpts = Object.assign({}, child.prefixConfig)
118
127
  const childPrefixIcon = childPrefixOpts.icon || child.prefixIcon
119
128
  const childSuffixOpts = Object.assign({}, child.suffixConfig)
@@ -123,6 +132,7 @@ export default defineVxeComponent({
123
132
  ? null
124
133
  : h('li', {
125
134
  class: [child.className, {
135
+ 'link--loading': childLoading,
126
136
  'link--disabled': child.disabled,
127
137
  'link--active': child === ctxMenuStore.selectChild
128
138
  }],
@@ -143,17 +153,23 @@ export default defineVxeComponent({
143
153
  h('div', {
144
154
  class: ['vxe-context-menu--link-prefix', childPrefixOpts.className || '']
145
155
  }, [
146
- childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
147
- ? h('span', {}, getSlotVNs(childPrefixIcon({})))
148
- : h('i', {
149
- class: childPrefixIcon
150
- }),
156
+ child.loading
157
+ ? h('span', {
158
+ class: getIcon('TABLE_MENU_OPTION_LOADING')
159
+ })
160
+ : (childPrefixIcon && XEUtils.isFunction(childPrefixIcon)
161
+ ? h('span', {}, getSlotVNs(childPrefixIcon({})))
162
+ : h('span', {}, [
163
+ h('i', {
164
+ class: childPrefixIcon
165
+ })
166
+ ])),
151
167
  childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
152
168
  ]),
153
169
  h('div', {
154
170
  class: 'vxe-context-menu--link-content',
155
171
  title: childMenuContent
156
- }, childMenuContent),
172
+ }, childLoading ? getI18n('vxe.table.menuLoading') : childMenuContent),
157
173
  h('div', {
158
174
  class: ['vxe-context-menu--link-suffix', childSuffixOpts.className || '']
159
175
  }, [
@@ -377,10 +377,9 @@ export default defineVxeComponent({
377
377
  }
378
378
 
379
379
  const renderHeads = (isGroup: boolean, isOptimizeMode: boolean, headerGroups: VxeTableDefines.ColumnInfo[][]) => {
380
- const { fixedType, fixedColumn } = props
380
+ const { fixedType } = props
381
381
 
382
382
  const { headerRowClassName, headerRowStyle } = tableProps
383
- const { visibleColumn } = tableInternalData
384
383
  const floatingFilterOpts = computeFloatingFilterOpts.value
385
384
  const rowVNs = headerGroups.map((cols, $rowIndex) => {
386
385
  const params = { $table: $xeTable, $rowIndex, fixed: fixedType, type: renderType }
@@ -401,7 +400,7 @@ export default defineVxeComponent({
401
400
  class: [
402
401
  'vxe-header--row'
403
402
  ]
404
- }, renderFilterRows(isOptimizeMode, isOptimizeMode && fixedType ? fixedColumn as VxeTableDefines.ColumnInfo[] : visibleColumn))
403
+ }, renderFilterRows(isOptimizeMode, headerGroups[headerGroups.length - 1]))
405
404
  )
406
405
  }
407
406
 
@@ -341,6 +341,7 @@ VxeUI.setIcon({
341
341
  TABLE_RADIO_DISABLED_UNCHECKED: iconPrefix + 'radio-unchecked-fill',
342
342
  TABLE_CUSTOM_SORT: iconPrefix + 'drag-handle',
343
343
  TABLE_MENU_OPTIONS: iconPrefix + 'arrow-right',
344
+ TABLE_MENU_OPTION_LOADING: iconPrefix + 'repeat roll',
344
345
  TABLE_DRAG_ROW: iconPrefix + 'drag-handle',
345
346
  TABLE_DRAG_COLUMN: iconPrefix + 'drag-handle',
346
347
  TABLE_DRAG_STATUS_ROW: iconPrefix + 'sort',
@@ -61,6 +61,7 @@
61
61
  color: #2B2B2B;
62
62
  }
63
63
  }
64
+ &.link--loading,
64
65
  &.link--disabled {
65
66
  & > .vxe-context-menu--link {
66
67
  color: var(--vxe-ui-font-disabled-color);