vxe-table 4.13.47 → 4.13.49

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 (176) 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 +3 -2
  4. package/es/locale/lang/de-DE.js +3 -2
  5. package/es/locale/lang/en-US.js +3 -2
  6. package/es/locale/lang/es-ES.js +3 -2
  7. package/es/locale/lang/fr-FR.js +3 -2
  8. package/es/locale/lang/hu-HU.js +3 -2
  9. package/es/locale/lang/hy-AM.js +3 -2
  10. package/es/locale/lang/id-ID.js +3 -2
  11. package/es/locale/lang/it-IT.js +3 -2
  12. package/es/locale/lang/ja-JP.js +3 -2
  13. package/es/locale/lang/ko-KR.js +3 -2
  14. package/es/locale/lang/ms-MY.js +3 -2
  15. package/es/locale/lang/nb-NO.js +3 -2
  16. package/es/locale/lang/pt-BR.js +3 -2
  17. package/es/locale/lang/ru-RU.js +3 -2
  18. package/es/locale/lang/th-TH.js +3 -2
  19. package/es/locale/lang/ug-CN.js +3 -2
  20. package/es/locale/lang/uk-UA.js +3 -2
  21. package/es/locale/lang/uz-UZ.js +3 -2
  22. package/es/locale/lang/vi-VN.js +3 -2
  23. package/es/locale/lang/zh-CHT.js +3 -2
  24. package/es/locale/lang/zh-CN.js +3 -2
  25. package/es/style.css +1 -1
  26. package/es/style.min.css +1 -1
  27. package/es/table/module/custom/panel.js +8 -3
  28. package/es/table/src/body.js +8 -5
  29. package/es/table/src/cell.js +19 -4
  30. package/es/table/src/table.js +29 -14
  31. package/es/table/style.css +5 -1
  32. package/es/table/style.min.css +1 -1
  33. package/es/ui/index.js +3 -2
  34. package/es/ui/src/log.js +1 -1
  35. package/es/vxe-table/style.css +5 -1
  36. package/es/vxe-table/style.min.css +1 -1
  37. package/lib/index.common.js +1 -2
  38. package/lib/index.css +1 -1
  39. package/lib/index.min.css +1 -1
  40. package/lib/index.umd.js +1945 -1822
  41. package/lib/index.umd.min.js +1 -1
  42. package/lib/locale/lang/ar-EG.js +3 -2
  43. package/lib/locale/lang/ar-EG.min.js +1 -1
  44. package/lib/locale/lang/ar-EG.umd.js +3 -2
  45. package/lib/locale/lang/de-DE.js +3 -2
  46. package/lib/locale/lang/de-DE.min.js +1 -1
  47. package/lib/locale/lang/de-DE.umd.js +3 -2
  48. package/lib/locale/lang/en-US.js +3 -2
  49. package/lib/locale/lang/en-US.min.js +1 -1
  50. package/lib/locale/lang/en-US.umd.js +3 -2
  51. package/lib/locale/lang/es-ES.js +3 -2
  52. package/lib/locale/lang/es-ES.min.js +1 -1
  53. package/lib/locale/lang/es-ES.umd.js +3 -2
  54. package/lib/locale/lang/fr-FR.js +3 -2
  55. package/lib/locale/lang/fr-FR.min.js +1 -1
  56. package/lib/locale/lang/fr-FR.umd.js +3 -2
  57. package/lib/locale/lang/hu-HU.js +3 -2
  58. package/lib/locale/lang/hu-HU.min.js +1 -1
  59. package/lib/locale/lang/hu-HU.umd.js +3 -2
  60. package/lib/locale/lang/hy-AM.js +3 -2
  61. package/lib/locale/lang/hy-AM.min.js +1 -1
  62. package/lib/locale/lang/hy-AM.umd.js +3 -2
  63. package/lib/locale/lang/id-ID.js +3 -2
  64. package/lib/locale/lang/id-ID.min.js +1 -1
  65. package/lib/locale/lang/id-ID.umd.js +3 -2
  66. package/lib/locale/lang/it-IT.js +3 -2
  67. package/lib/locale/lang/it-IT.min.js +1 -1
  68. package/lib/locale/lang/it-IT.umd.js +3 -2
  69. package/lib/locale/lang/ja-JP.js +3 -2
  70. package/lib/locale/lang/ja-JP.min.js +1 -1
  71. package/lib/locale/lang/ja-JP.umd.js +3 -2
  72. package/lib/locale/lang/ko-KR.js +3 -2
  73. package/lib/locale/lang/ko-KR.min.js +1 -1
  74. package/lib/locale/lang/ko-KR.umd.js +3 -2
  75. package/lib/locale/lang/ms-MY.js +3 -2
  76. package/lib/locale/lang/ms-MY.min.js +1 -1
  77. package/lib/locale/lang/ms-MY.umd.js +3 -2
  78. package/lib/locale/lang/nb-NO.js +3 -2
  79. package/lib/locale/lang/nb-NO.min.js +1 -1
  80. package/lib/locale/lang/nb-NO.umd.js +3 -2
  81. package/lib/locale/lang/pt-BR.js +3 -2
  82. package/lib/locale/lang/pt-BR.min.js +1 -1
  83. package/lib/locale/lang/pt-BR.umd.js +3 -2
  84. package/lib/locale/lang/ru-RU.js +3 -2
  85. package/lib/locale/lang/ru-RU.min.js +1 -1
  86. package/lib/locale/lang/ru-RU.umd.js +3 -2
  87. package/lib/locale/lang/th-TH.js +3 -2
  88. package/lib/locale/lang/th-TH.min.js +1 -1
  89. package/lib/locale/lang/th-TH.umd.js +3 -2
  90. package/lib/locale/lang/ug-CN.js +3 -2
  91. package/lib/locale/lang/ug-CN.min.js +1 -1
  92. package/lib/locale/lang/ug-CN.umd.js +3 -2
  93. package/lib/locale/lang/uk-UA.js +3 -2
  94. package/lib/locale/lang/uk-UA.min.js +1 -1
  95. package/lib/locale/lang/uk-UA.umd.js +3 -2
  96. package/lib/locale/lang/uz-UZ.js +3 -2
  97. package/lib/locale/lang/uz-UZ.min.js +1 -1
  98. package/lib/locale/lang/uz-UZ.umd.js +3 -2
  99. package/lib/locale/lang/vi-VN.js +3 -2
  100. package/lib/locale/lang/vi-VN.min.js +1 -1
  101. package/lib/locale/lang/vi-VN.umd.js +3 -2
  102. package/lib/locale/lang/zh-CHT.js +3 -2
  103. package/lib/locale/lang/zh-CHT.min.js +1 -1
  104. package/lib/locale/lang/zh-CHT.umd.js +3 -2
  105. package/lib/locale/lang/zh-CN.js +3 -2
  106. package/lib/locale/lang/zh-CN.min.js +1 -1
  107. package/lib/locale/lang/zh-CN.umd.js +3 -2
  108. package/lib/style.css +1 -1
  109. package/lib/style.min.css +1 -1
  110. package/lib/table/module/custom/panel.js +7 -2
  111. package/lib/table/module/custom/panel.min.js +1 -1
  112. package/lib/table/src/body.js +8 -5
  113. package/lib/table/src/body.min.js +1 -1
  114. package/lib/table/src/cell.js +17 -6
  115. package/lib/table/src/cell.min.js +1 -1
  116. package/lib/table/src/table.js +10 -5
  117. package/lib/table/src/table.min.js +1 -1
  118. package/lib/table/style/style.css +5 -1
  119. package/lib/table/style/style.min.css +1 -1
  120. package/lib/ui/index.js +3 -2
  121. package/lib/ui/index.min.js +1 -1
  122. package/lib/ui/src/log.js +1 -1
  123. package/lib/ui/src/log.min.js +1 -1
  124. package/lib/v-x-e-table/index.js +1 -2
  125. package/lib/v-x-e-table/index.min.js +1 -1
  126. package/lib/vxe-colgroup/index.js +1 -2
  127. package/lib/vxe-colgroup/index.min.js +1 -1
  128. package/lib/vxe-column/index.js +1 -2
  129. package/lib/vxe-column/index.min.js +1 -1
  130. package/lib/vxe-grid/index.js +1 -2
  131. package/lib/vxe-grid/index.min.js +1 -1
  132. package/lib/vxe-table/index.js +1 -2
  133. package/lib/vxe-table/index.min.js +1 -1
  134. package/lib/vxe-table/style/style.css +5 -1
  135. package/lib/vxe-table/style/style.min.css +1 -1
  136. package/lib/vxe-toolbar/index.js +1 -2
  137. package/lib/vxe-toolbar/index.min.js +1 -1
  138. package/lib/vxe-ui/index.js +1 -2
  139. package/lib/vxe-ui/index.min.js +1 -1
  140. package/lib/vxe-v-x-e-table/index.js +1 -2
  141. package/lib/vxe-v-x-e-table/index.min.js +1 -1
  142. package/package.json +1 -1
  143. package/packages/locale/lang/ar-EG.ts +3 -2
  144. package/packages/locale/lang/de-DE.ts +3 -2
  145. package/packages/locale/lang/en-US.ts +3 -2
  146. package/packages/locale/lang/es-ES.ts +3 -2
  147. package/packages/locale/lang/fr-FR.ts +3 -2
  148. package/packages/locale/lang/hu-HU.ts +3 -2
  149. package/packages/locale/lang/hy-AM.ts +3 -2
  150. package/packages/locale/lang/id-ID.ts +3 -2
  151. package/packages/locale/lang/it-IT.ts +3 -2
  152. package/packages/locale/lang/ja-JP.ts +3 -2
  153. package/packages/locale/lang/ko-KR.ts +3 -2
  154. package/packages/locale/lang/ms-MY.ts +3 -2
  155. package/packages/locale/lang/nb-NO.ts +3 -2
  156. package/packages/locale/lang/pt-BR.ts +3 -2
  157. package/packages/locale/lang/ru-RU.ts +3 -2
  158. package/packages/locale/lang/th-TH.ts +3 -2
  159. package/packages/locale/lang/ug-CN.ts +3 -2
  160. package/packages/locale/lang/uk-UA.ts +3 -2
  161. package/packages/locale/lang/uz-UZ.ts +3 -2
  162. package/packages/locale/lang/vi-VN.ts +3 -2
  163. package/packages/locale/lang/zh-CHT.ts +3 -2
  164. package/packages/locale/lang/zh-CN.ts +3 -2
  165. package/packages/table/module/custom/panel.ts +8 -3
  166. package/packages/table/src/body.ts +8 -5
  167. package/packages/table/src/cell.ts +23 -11
  168. package/packages/table/src/table.ts +26 -14
  169. package/packages/ui/index.ts +2 -1
  170. package/styles/components/table-module/custom.scss +5 -1
  171. /package/es/{iconfont.1750732182259.ttf → iconfont.1750995837815.ttf} +0 -0
  172. /package/es/{iconfont.1750732182259.woff → iconfont.1750995837815.woff} +0 -0
  173. /package/es/{iconfont.1750732182259.woff2 → iconfont.1750995837815.woff2} +0 -0
  174. /package/lib/{iconfont.1750732182259.ttf → iconfont.1750995837815.ttf} +0 -0
  175. /package/lib/{iconfont.1750732182259.woff → iconfont.1750995837815.woff} +0 -0
  176. /package/lib/{iconfont.1750732182259.woff2 → iconfont.1750995837815.woff2} +0 -0
@@ -701,7 +701,7 @@ export default defineVxeComponent({
701
701
  class: ['vxe-table-custom-wrapper', `placement--${placement}`, {
702
702
  'is--active': customStore.visible
703
703
  }],
704
- style: maxHeight && !['left', 'right'].includes(placement)
704
+ style: maxHeight && !['left', 'right'].includes(placement || '')
705
705
  ? {
706
706
  maxHeight: `${maxHeight}px`
707
707
  }
@@ -829,7 +829,7 @@ export default defineVxeComponent({
829
829
  const renderPopupPanel = () => {
830
830
  const $xeGrid = $xeTable.xeGrid;
831
831
  const { customStore } = props;
832
- const { resizable: allResizable } = tableProps;
832
+ const { treeConfig, rowGroupConfig, aggregateConfig, resizable: allResizable } = tableProps;
833
833
  const { isCustomStatus, customColumnList } = tableReactData;
834
834
  const customOpts = computeCustomOpts.value;
835
835
  const { immediate } = customOpts;
@@ -1096,7 +1096,12 @@ export default defineVxeComponent({
1096
1096
  }, $xeTable.callSlot(bottomSlot, params))
1097
1097
  : renderEmptyElement($xeTable),
1098
1098
  renderDragTip()
1099
- ])
1099
+ ]),
1100
+ !treeConfig && (aggregateConfig || rowGroupConfig) && $xeTable.getPivotTableAggregatePopupPanel
1101
+ ? h($xeTable.getPivotTableAggregatePopupPanel(), {
1102
+ customStore
1103
+ })
1104
+ : renderEmptyElement($xeTable)
1100
1105
  ]);
1101
1106
  },
1102
1107
  footer: () => {
@@ -209,6 +209,7 @@ export default defineVxeComponent({
209
209
  $xeTable.triggerCellDblclickEvent(evnt, cellParams);
210
210
  };
211
211
  let isMergeCell = false;
212
+ let mergeColspan = 1;
212
213
  let mergeRowspan = 1;
213
214
  // 合并行或列
214
215
  if (mergeBodyFlag && mergeBodyList.length) {
@@ -225,6 +226,7 @@ export default defineVxeComponent({
225
226
  }
226
227
  if (colspan > 1) {
227
228
  isMergeCell = true;
229
+ mergeColspan = colspan;
228
230
  tdAttrs.colspan = colspan;
229
231
  }
230
232
  }
@@ -242,6 +244,7 @@ export default defineVxeComponent({
242
244
  }
243
245
  if (colspan > 1) {
244
246
  isMergeCell = true;
247
+ mergeColspan = colspan;
245
248
  tdAttrs.colspan = colspan;
246
249
  }
247
250
  }
@@ -281,16 +284,16 @@ export default defineVxeComponent({
281
284
  }
282
285
  const tcStyle = {};
283
286
  if (hasEllipsis && resizeWidthFlag) {
284
- let tsColspan = tdAttrs.colspan || 0;
285
- if (tsColspan > 1) {
286
- for (let index = 1; index < tsColspan; index++) {
287
+ let mergeColWidth = 0;
288
+ if (mergeColspan > 1) {
289
+ for (let index = 1; index < mergeColspan; index++) {
287
290
  const nextColumn = visibleColumn[columnIndex + index];
288
291
  if (nextColumn) {
289
- tsColspan += nextColumn.renderWidth;
292
+ mergeColWidth += nextColumn.renderWidth;
290
293
  }
291
294
  }
292
295
  }
293
- tcStyle.width = `${column.renderWidth - (cellOffsetWidth * tsColspan)}px`;
296
+ tcStyle.width = `${column.renderWidth + mergeColWidth - cellOffsetWidth}px`;
294
297
  }
295
298
  if (scrollYLoad || hasEllipsis || isCsHeight || isRsHeight) {
296
299
  tcStyle.height = `${cellHeight}px`;
@@ -146,13 +146,25 @@ function renderHeaderCellBaseVNs(params, content) {
146
146
  ];
147
147
  return vns;
148
148
  }
149
+ function getRenderDefaultColumnTitle(column, content) {
150
+ if (column.type === 'html' && XEUtils.isString(content)) {
151
+ return h('span', {
152
+ key: 'ch',
153
+ innerHTML: content
154
+ });
155
+ }
156
+ return h('span', {
157
+ key: 'ct'
158
+ }, getSlotVNs(content));
159
+ }
149
160
  function renderTitleContent(params, content) {
150
161
  const { $table, column } = params;
151
162
  const tableProps = $table.props;
152
163
  const tableReactData = $table.reactData;
153
164
  const { computeTooltipOpts } = $table.getComputeMaps();
154
165
  const { showHeaderOverflow: allColumnHeaderOverflow } = tableProps;
155
- const { type, showHeaderOverflow } = column;
166
+ const { isRowGroupStatus } = tableReactData;
167
+ const { showHeaderOverflow } = column;
156
168
  const tooltipOpts = computeTooltipOpts.value;
157
169
  const showAllTip = tooltipOpts.showAll;
158
170
  const headOverflow = XEUtils.isUndefined(showHeaderOverflow) || XEUtils.isNull(showHeaderOverflow) ? allColumnHeaderOverflow : showHeaderOverflow;
@@ -182,10 +194,13 @@ function renderTitleContent(params, content) {
182
194
  }
183
195
  };
184
196
  }
197
+ const titleVN = getRenderDefaultColumnTitle(column, content);
185
198
  return [
186
- type === 'html' && XEUtils.isString(content)
187
- ? h('span', Object.assign({ class: 'vxe-cell--title', innerHTML: content }, ons))
188
- : h('span', Object.assign({ class: 'vxe-cell--title' }, ons), getSlotVNs(content))
199
+ h('span', Object.assign({ class: 'vxe-cell--title' }, ons), isRowGroupStatus && column.aggFunc && $table.getPivotTableAggregateRenderColTitles
200
+ ? $table.getPivotTableAggregateRenderColTitles(column, titleVN)
201
+ : [
202
+ titleVN
203
+ ])
189
204
  ];
190
205
  }
191
206
  function getFooterContent(params) {
@@ -680,10 +680,10 @@ export default defineVxeComponent({
680
680
  return Object.assign({}, getConfig().table.customConfig, props.customConfig);
681
681
  });
682
682
  const computeTableRowExpandedList = computed(() => {
683
- const { rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData;
683
+ const { tableData, rowExpandedFlag, expandColumn, rowGroupExpandedFlag, treeExpandedFlag } = reactData;
684
684
  const { visibleDataRowIdData, rowExpandedMaps } = internalData;
685
685
  const expandList = [];
686
- if (expandColumn && rowExpandedFlag && rowGroupExpandedFlag && treeExpandedFlag) {
686
+ if (tableData.length && expandColumn && rowExpandedFlag && rowGroupExpandedFlag && treeExpandedFlag) {
687
687
  XEUtils.each(rowExpandedMaps, (row, rowid) => {
688
688
  if (visibleDataRowIdData[rowid]) {
689
689
  expandList.push(row);
@@ -6093,7 +6093,6 @@ export default defineVxeComponent({
6093
6093
  },
6094
6094
  setRowGroups(fieldOrColumns) {
6095
6095
  const { aggregateConfig, rowGroupConfig } = props;
6096
- const { rowGroupList } = reactData;
6097
6096
  const aggregateOpts = computeAggregateOpts.value;
6098
6097
  const { maxGroupSize } = aggregateOpts;
6099
6098
  if (!(aggregateConfig || rowGroupConfig)) {
@@ -6101,7 +6100,7 @@ export default defineVxeComponent({
6101
6100
  return nextTick();
6102
6101
  }
6103
6102
  const confList = fieldOrColumns ? (XEUtils.isArray(fieldOrColumns) ? fieldOrColumns : [fieldOrColumns]) : [];
6104
- if (maxGroupSize && (rowGroupList.length + confList.length > maxGroupSize)) {
6103
+ if (maxGroupSize && confList.length > maxGroupSize) {
6105
6104
  if (VxeUI.modal) {
6106
6105
  VxeUI.modal.message({
6107
6106
  status: 'error',
@@ -8286,7 +8285,8 @@ export default defineVxeComponent({
8286
8285
  const childList = vals[2];
8287
8286
  let sLen = 0; // 已选
8288
8287
  let hLen = 0; // 半选
8289
- let vLen = 0; // 有效行
8288
+ let vLen = 0; // 有效子行
8289
+ const cLen = childList.length; // 有效子行
8290
8290
  childList.forEach(checkMethod
8291
8291
  ? (item) => {
8292
8292
  const childRowid = handleGetRowId(item);
@@ -8320,16 +8320,29 @@ export default defineVxeComponent({
8320
8320
  }
8321
8321
  vLen++;
8322
8322
  });
8323
- let isSelected = (sLen >= vLen && (vLen >= 1 || hLen >= 1));
8324
- if (checkMethod) {
8325
- if (checkMethod({ $table: $xeTable, row })) {
8326
- isSelected = sLen >= vLen;
8323
+ let isSelected = false;
8324
+ if (cLen > 0) {
8325
+ if (vLen > 0) {
8326
+ isSelected = (sLen > 0 || hLen > 0) && sLen >= vLen;
8327
8327
  }
8328
8328
  else {
8329
- isSelected = selectCheckboxMaps[rowid];
8329
+ // 如果存在子项禁用
8330
+ if ((sLen > 0 && sLen >= vLen)) {
8331
+ isSelected = true;
8332
+ }
8333
+ else if (selectCheckboxMaps[rowid]) {
8334
+ isSelected = true;
8335
+ }
8336
+ else {
8337
+ isSelected = false;
8338
+ }
8330
8339
  }
8331
8340
  }
8332
- const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
8341
+ else {
8342
+ // 如果无子项
8343
+ isSelected = selectCheckboxMaps[rowid];
8344
+ }
8345
+ const halfSelect = !isSelected && (sLen > 0 || hLen > 0);
8333
8346
  if (checkField) {
8334
8347
  XEUtils.set(row, checkField, isSelected);
8335
8348
  }
@@ -8368,7 +8381,9 @@ export default defineVxeComponent({
8368
8381
  const { checkField, checkMethod, showReserveStatus } = checkboxOpts;
8369
8382
  const { handleGetRowId } = createHandleGetRowId($xeTable);
8370
8383
  let sLen = 0; // 已选
8384
+ let dsLen = 0; // 禁用的已选
8371
8385
  let hLen = 0; // 半选
8386
+ let dhLen = 0; // 禁用的半选
8372
8387
  let vLen = 0; // 有效行
8373
8388
  const rootList = (treeConfig ? afterTreeFullData : (isRowGroupStatus ? afterGroupFullData : afterFullData));
8374
8389
  rootList.forEach(checkMethod
@@ -8386,10 +8401,10 @@ export default defineVxeComponent({
8386
8401
  }
8387
8402
  else {
8388
8403
  if (selected) {
8389
- sLen++;
8404
+ dsLen++;
8390
8405
  }
8391
8406
  else if (treeIndeterminateRowMaps[childRowid]) {
8392
- hLen++;
8407
+ dhLen++;
8393
8408
  }
8394
8409
  }
8395
8410
  }
@@ -8405,7 +8420,7 @@ export default defineVxeComponent({
8405
8420
  vLen++;
8406
8421
  });
8407
8422
  const isSelected = rootList.length > 0 ? (vLen > 0 ? (sLen >= vLen) : (sLen >= rootList.length)) : false;
8408
- let halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
8423
+ let halfSelect = !isSelected && (sLen > 0 || hLen > 0 || dsLen > 0 || dhLen > 0);
8409
8424
  // 如果复选框启用保留记录,当保留数据存在时显示半选
8410
8425
  if (!isSelected && !halfSelect && showReserveStatus) {
8411
8426
  halfSelect = !XEUtils.isEmpty(checkboxReserveRowMap);
@@ -999,13 +999,17 @@
999
999
 
1000
1000
  .vxe-table-custom-popup--body-wrapper {
1001
1001
  position: relative;
1002
- overflow: auto;
1002
+ display: flex;
1003
+ flex-direction: column;
1004
+ overflow: hidden;
1003
1005
  height: 100%;
1004
1006
  outline: 0;
1005
1007
  }
1006
1008
 
1007
1009
  .vxe-table-custom-popup--handle-wrapper {
1010
+ flex-grow: 1;
1008
1011
  outline: 0;
1012
+ overflow: auto;
1009
1013
  }
1010
1014
 
1011
1015
  .vxe-table-custom-popup--table-wrapper {