vxe-table 4.19.25 → 4.20.1

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.
package/README.md CHANGED
@@ -22,7 +22,8 @@
22
22
 
23
23
  * 版本说明
24
24
  * **V4**
25
- * [ ] v4.20 功能需求收集中,大福提升渲染性能,优化百万级渲染量
25
+ * [ ] v4.21 功能需求收集中,大福提升渲染性能,优化百万级渲染量
26
+ * [x] v4.20 内部重构优化,内部结构调整
26
27
  * [x] v4.19 增加对增删改操作撤销回退的支持;优化虚拟渲染,优化提升 Window/Mac 触摸板滚动流畅度
27
28
  * [x] v4.18 基于 xe-utils@4.0+,内部优化,优化键盘操作
28
29
  * [x] v4.17 优化触摸板操作;重构筛选渲染,筛选配置更简单功能更强大
@@ -35,7 +36,8 @@
35
36
  * [x] v4.7 基于 vue3.2+,内部重构,拆分 Table 库和 UI 库,只支持现代浏览器,不支持 IE
36
37
  * [x] ~~v4.0 基于 vue3.2+,只支持现代浏览器,不支持 IE(2020-03-01 ~ 2024-12-01 已停止维护)~~
37
38
  * **V3**
38
- * [ ] v3.22 功能需求收集中,大福提升渲染性能,优化百万级渲染量
39
+ * [ ] v3.23 功能需求收集中,大福提升渲染性能,优化百万级渲染量
40
+ * [x] v3.22 内部重构优化,内部结构调整
39
41
  * [x] v3.21 增加对增删改操作撤销回退的支持;优化虚拟渲染,优化提升 Window/Mac 触摸板滚动流畅度
40
42
  * [x] v3.20 基于 xe-utils@4.0+,优化渲染性能,优化键盘操作
41
43
  * [x] v3.19 优化触摸板操作;重构筛选渲染,筛选配置更简单功能更强大
package/dist/all.esm.js CHANGED
@@ -44,7 +44,7 @@ function eqEmptyValue(cellValue) {
44
44
  return cellValue === '' || XEUtils.eqNull(cellValue);
45
45
  }
46
46
 
47
- const version = "4.19.25";
47
+ const version = "4.20.1";
48
48
  VxeUI.version = version;
49
49
  VxeUI.tableVersion = version;
50
50
  VxeUI.setConfig({
@@ -755,7 +755,7 @@ function wheelScrollTopTo(diffNum, cb) {
755
755
  }
756
756
 
757
757
  const { log } = VxeUI;
758
- const tableVersion = `table v${"4.19.25"}`;
758
+ const tableVersion = `table v${"4.20.1"}`;
759
759
  function createComponentLog(name) {
760
760
  const uiVersion = VxeUI.uiVersion ? `ui v${VxeUI.uiVersion}` : '';
761
761
  const ganttVersion = VxeUI.ganttVersion ? `gantt v${VxeUI.ganttVersion}` : '';
@@ -18552,13 +18552,13 @@ var VxeTableComponent = defineVxeComponent({
18552
18552
  const minRunDelay = (options ? options.minRunDelay : defaultMinRunDelay) || defaultMinRunDelay;
18553
18553
  return new Promise(resolve => {
18554
18554
  const $xeGanttView = internalData.xeGanttView;
18555
- const { customStore } = reactData;
18555
+ const { customStore, tableData, tableColumn } = reactData;
18556
18556
  const { rceTimeout, rceRunTime } = internalData;
18557
18557
  const resizeOpts = computeResizeOpts.value;
18558
18558
  let rceDelay = internalData.rceDelay;
18559
18559
  // 如果在500毫秒内频繁执行,则执行次数减缓
18560
18560
  if (rceRunTime && rceRunTime > Date.now() - 500) {
18561
- rceDelay += 50;
18561
+ rceDelay = Math.min(Math.max(60, Math.min(800, tableData.length / 8)), rceDelay + 50);
18562
18562
  }
18563
18563
  else {
18564
18564
  rceDelay = 0;
@@ -18574,6 +18574,17 @@ var VxeTableComponent = defineVxeComponent({
18574
18574
  if (customStore.visible && $xeTable.handleCustomStyle) {
18575
18575
  $xeTable.handleCustomStyle();
18576
18576
  }
18577
+ const renderCellSize = tableData.length * tableColumn.length;
18578
+ // 渲染量低的场景
18579
+ if (renderCellSize < 400) {
18580
+ rceDelay = 20;
18581
+ }
18582
+ else if (renderCellSize < 600) {
18583
+ rceDelay = 40;
18584
+ }
18585
+ else if (renderCellSize < 800) {
18586
+ rceDelay = 80;
18587
+ }
18577
18588
  if (rceTimeout) {
18578
18589
  clearTimeout(rceTimeout);
18579
18590
  // 多少毫秒内至少执行一次
@@ -18593,6 +18604,7 @@ var VxeTableComponent = defineVxeComponent({
18593
18604
  $xeGanttView.handleLazyRecalculate();
18594
18605
  }
18595
18606
  internalData.rceTimeout = setTimeout(() => {
18607
+ internalData.rceDelay = 0;
18596
18608
  internalData.rceTimeout = undefined;
18597
18609
  handleRecalculateStyle(reFull, reWidth, reHeight);
18598
18610
  if ($xeGanttView && $xeGanttView.handleLazyRecalculate) {