vxe-table 4.19.0 → 4.19.2

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 (170) hide show
  1. package/dist/all.esm.js +31751 -0
  2. package/dist/style.css +1 -0
  3. package/dist/style.min.css +1 -0
  4. package/es/index.css +1 -1
  5. package/es/index.min.css +1 -1
  6. package/es/locale/lang/ar-EG.js +6 -4
  7. package/es/locale/lang/de-DE.js +6 -4
  8. package/es/locale/lang/en-US.js +6 -4
  9. package/es/locale/lang/es-ES.js +6 -4
  10. package/es/locale/lang/fr-FR.js +6 -4
  11. package/es/locale/lang/hu-HU.js +6 -4
  12. package/es/locale/lang/hy-AM.js +6 -4
  13. package/es/locale/lang/id-ID.js +6 -4
  14. package/es/locale/lang/it-IT.js +6 -4
  15. package/es/locale/lang/ja-JP.js +6 -4
  16. package/es/locale/lang/ko-KR.js +6 -4
  17. package/es/locale/lang/ms-MY.js +6 -4
  18. package/es/locale/lang/nb-NO.js +6 -4
  19. package/es/locale/lang/pt-BR.js +6 -4
  20. package/es/locale/lang/ru-RU.js +6 -4
  21. package/es/locale/lang/th-TH.js +6 -4
  22. package/es/locale/lang/ug-CN.js +6 -4
  23. package/es/locale/lang/uk-UA.js +6 -4
  24. package/es/locale/lang/uz-UZ.js +6 -4
  25. package/es/locale/lang/vi-VN.js +6 -4
  26. package/es/locale/lang/zh-CHT.js +6 -4
  27. package/es/locale/lang/zh-CN.js +6 -4
  28. package/es/style.css +1 -1
  29. package/es/style.min.css +1 -1
  30. package/es/table/module/custom/panel.js +39 -28
  31. package/es/table/module/validator/hook.js +2 -2
  32. package/es/table/src/cell.js +1 -1
  33. package/es/table/src/column.js +2 -0
  34. package/es/table/src/columnInfo.js +1 -0
  35. package/es/table/src/table.js +1 -1
  36. package/es/table/style.css +4 -1
  37. package/es/table/style.min.css +1 -1
  38. package/es/ui/index.js +2 -1
  39. package/es/ui/src/log.js +1 -1
  40. package/es/vxe-table/style.css +4 -1
  41. package/es/vxe-table/style.min.css +1 -1
  42. package/lib/index.css +1 -1
  43. package/lib/index.min.css +1 -1
  44. package/lib/index.umd.js +43 -27
  45. package/lib/index.umd.min.js +1 -1
  46. package/lib/locale/lang/ar-EG.js +6 -4
  47. package/lib/locale/lang/ar-EG.min.js +1 -1
  48. package/lib/locale/lang/ar-EG.umd.js +6 -4
  49. package/lib/locale/lang/de-DE.js +6 -4
  50. package/lib/locale/lang/de-DE.min.js +1 -1
  51. package/lib/locale/lang/de-DE.umd.js +6 -4
  52. package/lib/locale/lang/en-US.js +6 -4
  53. package/lib/locale/lang/en-US.min.js +1 -1
  54. package/lib/locale/lang/en-US.umd.js +6 -4
  55. package/lib/locale/lang/es-ES.js +6 -4
  56. package/lib/locale/lang/es-ES.min.js +1 -1
  57. package/lib/locale/lang/es-ES.umd.js +6 -4
  58. package/lib/locale/lang/fr-FR.js +6 -4
  59. package/lib/locale/lang/fr-FR.min.js +1 -1
  60. package/lib/locale/lang/fr-FR.umd.js +6 -4
  61. package/lib/locale/lang/hu-HU.js +6 -4
  62. package/lib/locale/lang/hu-HU.min.js +1 -1
  63. package/lib/locale/lang/hu-HU.umd.js +6 -4
  64. package/lib/locale/lang/hy-AM.js +6 -4
  65. package/lib/locale/lang/hy-AM.min.js +1 -1
  66. package/lib/locale/lang/hy-AM.umd.js +6 -4
  67. package/lib/locale/lang/id-ID.js +6 -4
  68. package/lib/locale/lang/id-ID.min.js +1 -1
  69. package/lib/locale/lang/id-ID.umd.js +6 -4
  70. package/lib/locale/lang/it-IT.js +6 -4
  71. package/lib/locale/lang/it-IT.min.js +1 -1
  72. package/lib/locale/lang/it-IT.umd.js +6 -4
  73. package/lib/locale/lang/ja-JP.js +6 -4
  74. package/lib/locale/lang/ja-JP.min.js +1 -1
  75. package/lib/locale/lang/ja-JP.umd.js +6 -4
  76. package/lib/locale/lang/ko-KR.js +6 -4
  77. package/lib/locale/lang/ko-KR.min.js +1 -1
  78. package/lib/locale/lang/ko-KR.umd.js +6 -4
  79. package/lib/locale/lang/ms-MY.js +6 -4
  80. package/lib/locale/lang/ms-MY.min.js +1 -1
  81. package/lib/locale/lang/ms-MY.umd.js +6 -4
  82. package/lib/locale/lang/nb-NO.js +6 -4
  83. package/lib/locale/lang/nb-NO.min.js +1 -1
  84. package/lib/locale/lang/nb-NO.umd.js +6 -4
  85. package/lib/locale/lang/pt-BR.js +6 -4
  86. package/lib/locale/lang/pt-BR.min.js +1 -1
  87. package/lib/locale/lang/pt-BR.umd.js +6 -4
  88. package/lib/locale/lang/ru-RU.js +6 -4
  89. package/lib/locale/lang/ru-RU.min.js +1 -1
  90. package/lib/locale/lang/ru-RU.umd.js +6 -4
  91. package/lib/locale/lang/th-TH.js +6 -4
  92. package/lib/locale/lang/th-TH.min.js +1 -1
  93. package/lib/locale/lang/th-TH.umd.js +6 -4
  94. package/lib/locale/lang/ug-CN.js +6 -4
  95. package/lib/locale/lang/ug-CN.min.js +1 -1
  96. package/lib/locale/lang/ug-CN.umd.js +6 -4
  97. package/lib/locale/lang/uk-UA.js +6 -4
  98. package/lib/locale/lang/uk-UA.min.js +1 -1
  99. package/lib/locale/lang/uk-UA.umd.js +6 -4
  100. package/lib/locale/lang/uz-UZ.js +6 -4
  101. package/lib/locale/lang/uz-UZ.min.js +1 -1
  102. package/lib/locale/lang/uz-UZ.umd.js +6 -4
  103. package/lib/locale/lang/vi-VN.js +6 -4
  104. package/lib/locale/lang/vi-VN.min.js +1 -1
  105. package/lib/locale/lang/vi-VN.umd.js +6 -4
  106. package/lib/locale/lang/zh-CHT.js +6 -4
  107. package/lib/locale/lang/zh-CHT.min.js +1 -1
  108. package/lib/locale/lang/zh-CHT.umd.js +6 -4
  109. package/lib/locale/lang/zh-CN.js +6 -4
  110. package/lib/locale/lang/zh-CN.min.js +1 -1
  111. package/lib/locale/lang/zh-CN.umd.js +6 -4
  112. package/lib/style.css +1 -1
  113. package/lib/style.min.css +1 -1
  114. package/lib/table/module/custom/panel.js +27 -17
  115. package/lib/table/module/custom/panel.min.js +1 -1
  116. package/lib/table/module/validator/hook.js +2 -2
  117. package/lib/table/module/validator/hook.min.js +1 -1
  118. package/lib/table/src/cell.js +1 -1
  119. package/lib/table/src/cell.min.js +1 -1
  120. package/lib/table/src/column.js +2 -0
  121. package/lib/table/src/column.min.js +1 -1
  122. package/lib/table/src/columnInfo.js +1 -0
  123. package/lib/table/src/columnInfo.min.js +1 -1
  124. package/lib/table/src/table.js +1 -1
  125. package/lib/table/src/table.min.js +1 -1
  126. package/lib/table/style/style.css +4 -1
  127. package/lib/table/style/style.min.css +1 -1
  128. package/lib/ui/index.js +2 -1
  129. package/lib/ui/index.min.js +1 -1
  130. package/lib/ui/src/log.js +1 -1
  131. package/lib/ui/src/log.min.js +1 -1
  132. package/lib/vxe-table/style/style.css +4 -1
  133. package/lib/vxe-table/style/style.min.css +1 -1
  134. package/package.json +5 -2
  135. package/packages/locale/lang/ar-EG.ts +6 -4
  136. package/packages/locale/lang/de-DE.ts +6 -4
  137. package/packages/locale/lang/en-US.ts +6 -4
  138. package/packages/locale/lang/es-ES.ts +6 -4
  139. package/packages/locale/lang/fr-FR.ts +6 -4
  140. package/packages/locale/lang/hu-HU.ts +6 -4
  141. package/packages/locale/lang/hy-AM.ts +6 -4
  142. package/packages/locale/lang/id-ID.ts +6 -4
  143. package/packages/locale/lang/it-IT.ts +6 -4
  144. package/packages/locale/lang/ja-JP.ts +6 -4
  145. package/packages/locale/lang/ko-KR.ts +6 -4
  146. package/packages/locale/lang/ms-MY.ts +6 -4
  147. package/packages/locale/lang/nb-NO.ts +6 -4
  148. package/packages/locale/lang/pt-BR.ts +6 -4
  149. package/packages/locale/lang/ru-RU.ts +6 -4
  150. package/packages/locale/lang/th-TH.ts +6 -4
  151. package/packages/locale/lang/ug-CN.ts +6 -4
  152. package/packages/locale/lang/uk-UA.ts +6 -4
  153. package/packages/locale/lang/uz-UZ.ts +6 -4
  154. package/packages/locale/lang/vi-VN.ts +6 -4
  155. package/packages/locale/lang/zh-CHT.ts +6 -4
  156. package/packages/locale/lang/zh-CN.ts +6 -4
  157. package/packages/table/module/custom/panel.ts +66 -51
  158. package/packages/table/module/validator/hook.ts +2 -2
  159. package/packages/table/src/cell.ts +1 -1
  160. package/packages/table/src/column.ts +2 -0
  161. package/packages/table/src/columnInfo.ts +1 -0
  162. package/packages/table/src/table.ts +1 -1
  163. package/packages/ui/index.ts +1 -0
  164. package/styles/components/table-module/custom.scss +5 -1
  165. /package/es/{iconfont.1779330847998.ttf → iconfont.1779778422561.ttf} +0 -0
  166. /package/es/{iconfont.1779330847998.woff → iconfont.1779778422561.woff} +0 -0
  167. /package/es/{iconfont.1779330847998.woff2 → iconfont.1779778422561.woff2} +0 -0
  168. /package/lib/{iconfont.1779330847998.ttf → iconfont.1779778422561.ttf} +0 -0
  169. /package/lib/{iconfont.1779330847998.woff → iconfont.1779778422561.woff} +0 -0
  170. /package/lib/{iconfont.1779330847998.woff2 → iconfont.1779778422561.woff2} +0 -0
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: '清除',
106
106
  allChecked: '全选',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: 'ئىزدەش',
109
110
  loadingText: 'يۈكلىنىۋاتىدۇ',
110
111
  emptyText: 'ھازىرچە ئۇچۇر يوق',
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: '全选',
122
123
  allExpand: '全部展开',
123
124
  clearExpand: '全部收起',
124
- total: '已选 {0}',
125
+ total: '已选 {0}',
126
+ close: '关闭',
125
127
  search: '搜索',
126
128
  emptyText: '暂无数据'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: 'يۆتكەش:{0}',
165
167
  setting: {
166
168
  colSort: 'تەرتىپلەش',
167
- sortHelpTip: '点击并拖动图标可以调整顺序',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: '列标题',
169
171
  colResizable: 'قۇر كەڭلىڭى(پېكسىل)',
170
172
  colVisible: 'كۆرۈنەمدۇ-كۆرۈنمەمدۇ',
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: '拖至此处进行分组',
651
653
  valuesPlaceholder: '拖至此处进行聚合',
652
654
  dragExistCol: '该列已存在',
653
- sortHelpTip: '点击并拖动图标可以调整顺序'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: '求和',
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: '清除',
106
106
  allChecked: '全选',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: 'обшук',
109
110
  loadingText: 'навантаження',
110
111
  emptyText: 'Ще немає даних',
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: '全选',
122
123
  allExpand: '全部展开',
123
124
  clearExpand: '全部收起',
124
- total: '已选 {0}',
125
+ total: '已选 {0}',
126
+ close: '关闭',
125
127
  search: '搜索',
126
128
  emptyText: '暂无数据'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: 'Перемістити: {0}',
165
167
  setting: {
166
168
  colSort: 'Сортувати',
167
- sortHelpTip: '点击并拖动图标可以调整顺序',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: 'Заголовок стовпців',
169
171
  colResizable: 'Ширина стовпця (пікселі)',
170
172
  colVisible: 'Чи відображати',
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: '拖至此处进行分组',
651
653
  valuesPlaceholder: '拖至此处进行聚合',
652
654
  dragExistCol: '该列已存在',
653
- sortHelpTip: '点击并拖动图标可以调整顺序'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: '求和',
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: '清除',
106
106
  allChecked: '全选',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: 'qidirish',
109
110
  loadingText: 'yuklamoq',
110
111
  emptyText: "Hali ma'lumot yo'q",
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: '全选',
122
123
  allExpand: '全部展开',
123
124
  clearExpand: '全部收起',
124
- total: '{0} / {1}',
125
+ total: '已选 {0} ',
126
+ close: '关闭',
125
127
  search: '搜索',
126
128
  emptyText: '暂无数据'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: "Ko'chiring: {0}",
165
167
  setting: {
166
168
  colSort: 'Tartib',
167
- sortHelpTip: '点击并拖动图标可以调整顺序',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: 'Ustun unvon',
169
171
  colResizable: 'Ustun kengligi (piksellar)',
170
172
  colVisible: "Ko'rsatish kerakmi",
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: '拖至此处进行分组',
651
653
  valuesPlaceholder: '拖至此处进行聚合',
652
654
  dragExistCol: '该列已存在',
653
- sortHelpTip: '点击并拖动图标可以调整顺序'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: '求和',
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: 'Thông thoáng',
106
106
  allChecked: 'Chọn tất cả',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: 'tìm kiếm',
109
110
  loadingText: 'đang tải',
110
111
  emptyText: 'Chưa có dữ liệu',
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: 'Chọn tất cả',
122
123
  allExpand: 'Mở rộng tất cả',
123
124
  clearExpand: 'Đóng tất cả',
124
- total: 'Đã chọn {0}',
125
+ total: '已选 {0}',
126
+ close: '关闭',
125
127
  search: 'tìm kiếm',
126
128
  emptyText: 'Chưa có dữ liệu'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: 'Di chuyển: {0}',
165
167
  setting: {
166
168
  colSort: 'Loại',
167
- sortHelpTip: 'Nhấp và kéo biểu tượng để điều chỉnh thứ tự',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: 'Tiêu đề cột',
169
171
  colResizable: 'Chiều rộng cột (pixel)',
170
172
  colVisible: 'Có hiển thị không',
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: 'Kéo ở đây để nhóm',
651
653
  valuesPlaceholder: 'Kéo ở đây để tổng hợp',
652
654
  dragExistCol: 'Cột này đã tồn tại',
653
- sortHelpTip: 'Nhấp và kéo biểu tượng để điều chỉnh thứ tự'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: 'Yêu cầu tổng',
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: '清除',
106
106
  allChecked: '全選',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: '搜尋',
109
110
  loadingText: '載入中',
110
111
  emptyText: '暫無數據',
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: '全選',
122
123
  allExpand: '全部展開',
123
124
  clearExpand: '全部收起',
124
- total: '已選 {0}',
125
+ total: '已选 {0}',
126
+ close: '关闭',
125
127
  search: '搜尋',
126
128
  emptyText: '暫無數據'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: '移動:{0}',
165
167
  setting: {
166
168
  colSort: '排序',
167
- sortHelpTip: '點擊並拖動圖標可以調整順序',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: '列標題',
169
171
  colResizable: '列寬(像素)',
170
172
  colVisible: '是否顯示',
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: '拖至此處進行分組',
651
653
  valuesPlaceholder: '拖至此處進行聚合',
652
654
  dragExistCol: '該列已存在',
653
- sortHelpTip: '點擊並拖動圖標可以調整順序'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: '求和',
@@ -104,7 +104,8 @@ export default {
104
104
  select: {
105
105
  clear: '清除',
106
106
  allChecked: '全选',
107
- total: '{0} / {1}',
107
+ total: '已选 {0} ',
108
+ close: '关闭',
108
109
  search: '搜索',
109
110
  loadingText: '加载中...',
110
111
  emptyText: '暂无数据',
@@ -121,7 +122,8 @@ export default {
121
122
  allChecked: '全选',
122
123
  allExpand: '全部展开',
123
124
  clearExpand: '全部收起',
124
- total: '已选 {0}',
125
+ total: '已选 {0}',
126
+ close: '关闭',
125
127
  search: '搜索',
126
128
  emptyText: '暂无数据'
127
129
  },
@@ -164,7 +166,7 @@ export default {
164
166
  cstmDragTarget: '移动:{0}',
165
167
  setting: {
166
168
  colSort: '排序',
167
- sortHelpTip: '点击并拖动图标可以调整顺序',
169
+ sortHelpTip: '点击图标开始拖动',
168
170
  colTitle: '列标题',
169
171
  colResizable: '列宽(像素)',
170
172
  colVisible: '是否显示',
@@ -650,7 +652,7 @@ export default {
650
652
  groupPlaceholder: '拖至此处进行分组',
651
653
  valuesPlaceholder: '拖至此处进行聚合',
652
654
  dragExistCol: '该列已存在',
653
- sortHelpTip: '点击并拖动图标可以调整顺序'
655
+ sortHelpTip: '点击图标开始拖动'
654
656
  },
655
657
  aggFuncs: {
656
658
  sum: '求和',
@@ -43,7 +43,7 @@ export default defineVxeComponent({
43
43
  const $xeTable = inject('$xeTable', {} as VxeTableConstructor & VxeTableMethods & VxeTablePrivateMethods)
44
44
 
45
45
  const { props: tableProps, reactData: tableReactData, internalData: tableInternalData } = $xeTable
46
- const { computeSize, computeCustomOpts, computeColumnDragOpts, computeColumnOpts, computeIsMaxFixedColumn, computeResizableOpts } = $xeTable.getComputeMaps()
46
+ const { computeSize, computeCustomOpts, computeColumnDragOpts, computeColumnOpts, computeIsMaxFixedColumn, computeResizableOpts, computeAggregateOpts } = $xeTable.getComputeMaps()
47
47
 
48
48
  const refElem = ref() as Ref<HTMLDivElement>
49
49
  const refBodyWrapperElem = ref() as Ref<HTMLDivElement>
@@ -537,7 +537,7 @@ export default defineVxeComponent({
537
537
 
538
538
  const sortDragoverEvent = (evnt: DragEvent) => {
539
539
  const customOpts = computeCustomOpts.value
540
- const { immediate } = customOpts
540
+ const { showSortDragButton, allowSort, immediate } = customOpts
541
541
  const columnDragOpts = computeColumnDragOpts.value
542
542
  const { isCrossDrag, isToChildDrag } = columnDragOpts
543
543
  const optEl = evnt.currentTarget as HTMLElement
@@ -554,9 +554,12 @@ export default defineVxeComponent({
554
554
  const dragPos = offsetY < optEl.clientHeight / 2 ? 'top' : 'bottom'
555
555
  if (
556
556
  !dragCol ||
557
+ !(showSortDragButton && allowSort) ||
557
558
  (dragCol && dragCol.id === column.id) ||
558
559
  (!isCrossDrag && column.level > 1) ||
559
- (!immediate && column.level > 1)
560
+ (!immediate && column.level > 1) ||
561
+ (!isCrossDrag && dragCol.level > 1) ||
562
+ (!immediate && dragCol.level > 1)
560
563
  ) {
561
564
  showDropTip(evnt, optEl, false, dragPos)
562
565
  return
@@ -694,10 +697,9 @@ export default defineVxeComponent({
694
697
  const { treeConfig, rowGroupConfig, aggregateConfig } = tableProps
695
698
  const { isCustomStatus, customColumnList, isCustomDragStatus } = tableReactData
696
699
  const customOpts = computeCustomOpts.value
697
- const { immediate } = customOpts
698
700
  const columnDragOpts = computeColumnDragOpts.value
699
701
  const { popupStyle } = customStore
700
- const { checkMethod, visibleMethod, allowVisible, allowSort, allowFixed, trigger, placement, showSortDragButton, showSortMoveButton, showSortPutButton } = customOpts
702
+ const { immediate, checkMethod, visibleMethod, allowVisible, allowSort, allowFixed, allowGroup, allowValues, trigger, placement, showSortDragButton, showSortMoveButton, showSortPutButton } = customOpts
701
703
  const isMaxFixedColumn = computeIsMaxFixedColumn.value
702
704
  const vSize = computeSize.value
703
705
  const { isCrossDrag } = columnDragOpts
@@ -769,27 +771,31 @@ export default defineVxeComponent({
769
771
  h('div', {
770
772
  class: 'vxe-table-custom--name-option'
771
773
  }, [
772
- allowSort && showSortDragButton && showSortBtn
773
- ? h('div', {
774
- class: 'vxe-table-custom--sort-option'
775
- }, [
776
- h('span', {
777
- class: ['vxe-table-custom--sort-btn', {
778
- 'is--disabled': isHidden
779
- }],
780
- title: getI18n('vxe.custom.setting.sortHelpTip'),
781
- ...(isHidden
782
- ? {}
783
- : {
784
- onMousedown: sortMousedownEvent,
785
- onMouseup: sortMouseupEvent
786
- })
787
- }, [
788
- h('i', {
789
- class: getIcon().TABLE_CUSTOM_SORT
790
- })
791
- ])
792
- ])
774
+ (allowSort && showSortDragButton) || (allowGroup || allowValues)
775
+ ? (
776
+ showSortBtn || ((allowGroup || allowValues) && !isColGroup)
777
+ ? h('div', {
778
+ class: 'vxe-table-custom--sort-option'
779
+ }, [
780
+ h('span', {
781
+ class: ['vxe-table-custom--sort-btn', {
782
+ 'is--disabled': isHidden
783
+ }],
784
+ title: getI18n('vxe.custom.setting.sortHelpTip'),
785
+ ...(isHidden
786
+ ? {}
787
+ : {
788
+ onMousedown: sortMousedownEvent,
789
+ onMouseup: sortMouseupEvent
790
+ })
791
+ }, [
792
+ h('i', {
793
+ class: getIcon().TABLE_CUSTOM_SORT
794
+ })
795
+ ])
796
+ ])
797
+ : renderEmptyElement($xeTable)
798
+ )
793
799
  : renderEmptyElement($xeTable),
794
800
  column.type === 'html'
795
801
  ? h('div', {
@@ -1030,9 +1036,10 @@ export default defineVxeComponent({
1030
1036
  const { treeConfig, rowGroupConfig, aggregateConfig, resizable: allResizable } = tableProps
1031
1037
  const { isCustomStatus, customColumnList } = tableReactData
1032
1038
  const customOpts = computeCustomOpts.value
1033
- const { immediate, showSortDragButton, showSortMoveButton, showSortPutButton } = customOpts
1034
1039
  const columnDragOpts = computeColumnDragOpts.value
1035
- const { mode, modalOptions, drawerOptions, allowVisible, allowSort, allowFixed, allowResizable, checkMethod, visibleMethod } = customOpts
1040
+ const aggregateOpts = computeAggregateOpts.value
1041
+ const { placement: aggPlacement } = aggregateOpts
1042
+ const { mode, immediate, showSortDragButton, showSortMoveButton, showSortPutButton, modalOptions, drawerOptions, allowVisible, allowSort, allowFixed, allowResizable, allowGroup, allowValues, checkMethod, visibleMethod } = customOpts
1036
1043
  const columnOpts = computeColumnOpts.value
1037
1044
  const { maxFixedSize } = columnOpts
1038
1045
  const resizableOpts = computeResizableOpts.value
@@ -1050,6 +1057,7 @@ export default defineVxeComponent({
1050
1057
  const trVNs: VNode[] = []
1051
1058
  const isAllChecked = customStore.isAll
1052
1059
  const isAllIndeterminate = customStore.isIndeterminate
1060
+ const isAggRtBmLayout = aggPlacement === 'right' || aggPlacement === 'bottom'
1053
1061
  const params = {
1054
1062
  $table: $xeTable,
1055
1063
  $grid: $xeGrid,
@@ -1128,27 +1136,29 @@ export default defineVxeComponent({
1128
1136
  h('div', {
1129
1137
  class: 'vxe-table-custom-popup--name'
1130
1138
  }, [
1131
- allowSort
1132
- ? showSortDragButton && (showSortBtn
1133
- ? h('div', {
1134
- class: ['vxe-table-custom-popup--column-sort-btn', {
1135
- 'is--disabled': isHidden
1136
- }],
1137
- title: getI18n('vxe.custom.setting.sortHelpTip'),
1138
- ...(isHidden
1139
- ? {}
1140
- : {
1141
- onMousedown: sortMousedownEvent,
1142
- onMouseup: sortMouseupEvent
1139
+ (allowSort && showSortDragButton) || (allowGroup || allowValues)
1140
+ ? (
1141
+ showSortBtn || ((allowGroup || allowValues) && !isColGroup)
1142
+ ? h('div', {
1143
+ class: ['vxe-table-custom-popup--column-sort-btn', {
1144
+ 'is--disabled': isHidden
1145
+ }],
1146
+ title: getI18n('vxe.custom.setting.sortHelpTip'),
1147
+ ...(isHidden
1148
+ ? {}
1149
+ : {
1150
+ onMousedown: sortMousedownEvent,
1151
+ onMouseup: sortMouseupEvent
1152
+ })
1153
+ }, [
1154
+ h('i', {
1155
+ class: getIcon().TABLE_CUSTOM_SORT
1143
1156
  })
1144
- }, [
1145
- h('i', {
1146
- class: getIcon().TABLE_CUSTOM_SORT
1147
- })
1148
- ])
1149
- : h('div', {
1150
- class: 'vxe-table-custom-popup--column-sort-placeholder'
1151
- }))
1157
+ ])
1158
+ : h('div', {
1159
+ class: 'vxe-table-custom-popup--column-sort-placeholder'
1160
+ })
1161
+ )
1152
1162
  : renderEmptyElement($xeTable),
1153
1163
  column.type === 'html'
1154
1164
  ? h('div', {
@@ -1279,11 +1289,11 @@ export default defineVxeComponent({
1279
1289
  default: () => {
1280
1290
  return h('div', {
1281
1291
  ref: refBodyWrapperElem,
1282
- class: 'vxe-table-custom-popup--body-wrapper'
1292
+ class: ['vxe-table-custom-popup--body-wrapper', `agg-layout--${aggPlacement}`]
1283
1293
  }, defaultSlot
1284
1294
  ? $xeTable.callSlot(defaultSlot, params)
1285
1295
  : [
1286
- !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregatePopupPanel
1296
+ !isAggRtBmLayout && !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregatePopupPanel
1287
1297
  ? h($xeTable.getPivotTableAggregatePopupPanel(), {
1288
1298
  customStore
1289
1299
  })
@@ -1366,7 +1376,12 @@ export default defineVxeComponent({
1366
1376
  }, $xeTable.callSlot(bottomSlot, params))
1367
1377
  : renderEmptyElement($xeTable),
1368
1378
  renderDragTip()
1369
- ])
1379
+ ]),
1380
+ isAggRtBmLayout && !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregatePopupPanel
1381
+ ? h($xeTable.getPivotTableAggregatePopupPanel(), {
1382
+ customStore
1383
+ })
1384
+ : renderEmptyElement($xeTable)
1370
1385
  ])
1371
1386
  },
1372
1387
  footer: () => {
@@ -469,7 +469,7 @@ hooks.add('tableValidatorModule', {
469
469
  const errorRules: Rule[] = []
470
470
  const syncValidList: Promise<any>[] = []
471
471
  if (field && editRules) {
472
- const rules = XEUtils.get(editRules, field)
472
+ const rules = column.rules ? column.rules : XEUtils.get(editRules, field)
473
473
  if (rules) {
474
474
  const cellValue = XEUtils.isUndefined(val) ? XEUtils.get(row, field) : val
475
475
  rules.forEach((rule) => {
@@ -540,7 +540,7 @@ hooks.add('tableValidatorModule', {
540
540
  const { editRules } = props
541
541
  const { field } = column
542
542
  if (field && editRules) {
543
- const rules = XEUtils.get(editRules, field)
543
+ const rules = column.rules ? column.rules : XEUtils.get(editRules, field)
544
544
  return rules && !!XEUtils.find(rules, rule => type === 'all' || !rule.trigger || type === rule.trigger)
545
545
  }
546
546
  return false
@@ -1165,7 +1165,7 @@ export const Cell = {
1165
1165
  const editRenderOpts = isEnableEdit && isEnableConf(editRender) ? editRender : null
1166
1166
  let isRequired = false
1167
1167
  if (editRules) {
1168
- const columnRules = XEUtils.get(editRules, column.field) as VxeTableDefines.ValidatorRule[]
1168
+ const columnRules = column.rules ? column.rules : XEUtils.get(editRules, column.field)
1169
1169
  if (columnRules) {
1170
1170
  isRequired = columnRules.some((rule) => rule.required)
1171
1171
  }
@@ -96,6 +96,8 @@ export const columnProps = {
96
96
  filterRender: Object as PropType<VxeColumnPropTypes.FilterRender>,
97
97
  // 是否显示浮动筛选
98
98
  floatingFilters: Object as PropType<VxeColumnPropTypes.FloatingFilters>,
99
+ // 列的校验规则
100
+ rules: Array as PropType<VxeColumnPropTypes.Rules>,
99
101
  // 设置为分组节点
100
102
  rowGroupNode: Boolean as PropType<VxeColumnPropTypes.RowGroupNode>,
101
103
  // 设置为树节点
@@ -113,6 +113,7 @@ export class ColumnInfo {
113
113
  filterRecoverMethod: _vm.filterRecoverMethod,
114
114
  filterRender: filterRender,
115
115
  floatingFilters: _vm.floatingFilters,
116
+ rules: _vm.rules,
116
117
  rowGroupNode: _vm.rowGroupNode,
117
118
  treeNode: _vm.treeNode,
118
119
  dragSort: _vm.dragSort,
@@ -14111,7 +14111,7 @@ export default defineVxeComponent({
14111
14111
  warnLog('vxe.error.errConflicts', ['mouse-config.area', 'mouse-config.selected'])
14112
14112
  }
14113
14113
  if (mouseOpts.area && (props.treeConfig && !treeOpts.transform)) {
14114
- errLog('vxe.error.noTree', ['mouse-config.area'])
14114
+ errLog('vxe.error.notSupportProp', ['mouse-config.area', 'tree-config.transform=false', 'tree-config.transform=true'])
14115
14115
  }
14116
14116
  if (props.editConfig && editOpts.activeMethod) {
14117
14117
  warnLog('vxe.error.delProp', ['edit-config.activeMethod', 'edit-config.beforeEditMethod'])
@@ -170,6 +170,7 @@ VxeUI.setConfig({
170
170
  },
171
171
  aggregateConfig: {
172
172
  padding: true,
173
+ placement: 'left',
173
174
  rowField: 'id',
174
175
  parentField: '_X_ROW_PARENT_KEY',
175
176
  childrenField: '_X_ROW_CHILDREN',
@@ -225,10 +225,14 @@
225
225
  .vxe-table-custom-popup--body-wrapper {
226
226
  position: relative;
227
227
  display: flex;
228
- flex-direction: column;
228
+ flex-direction: row;
229
229
  overflow: hidden;
230
230
  height: 100%;
231
231
  outline: 0;
232
+ &.agg-layout--top,
233
+ &.agg-layout--bottom {
234
+ flex-direction: column;
235
+ }
232
236
  }
233
237
  .vxe-table-custom-popup--handle-wrapper {
234
238
  flex-grow: 1;