vxe-table 3.15.2 → 3.15.4

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 (52) hide show
  1. package/es/index.css +1 -1
  2. package/es/index.min.css +1 -1
  3. package/es/style.css +1 -1
  4. package/es/style.min.css +1 -1
  5. package/es/table/src/body.js +5 -3
  6. package/es/table/src/footer.js +4 -2
  7. package/es/table/src/header.js +2 -1
  8. package/es/table/src/methods.js +95 -95
  9. package/es/table/src/table.js +3 -0
  10. package/es/table/style.css +0 -3
  11. package/es/table/style.min.css +1 -1
  12. package/es/ui/index.js +1 -1
  13. package/es/ui/src/log.js +1 -1
  14. package/es/vxe-table/style.css +0 -3
  15. package/es/vxe-table/style.min.css +1 -1
  16. package/lib/index.css +1 -1
  17. package/lib/index.min.css +1 -1
  18. package/lib/index.umd.js +132 -123
  19. package/lib/index.umd.min.js +1 -1
  20. package/lib/style.css +1 -1
  21. package/lib/style.min.css +1 -1
  22. package/lib/table/src/body.js +5 -2
  23. package/lib/table/src/body.min.js +1 -1
  24. package/lib/table/src/footer.js +4 -2
  25. package/lib/table/src/footer.min.js +1 -1
  26. package/lib/table/src/header.js +2 -1
  27. package/lib/table/src/header.min.js +1 -1
  28. package/lib/table/src/methods.js +116 -116
  29. package/lib/table/src/methods.min.js +1 -1
  30. package/lib/table/src/table.js +3 -0
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/style/style.css +0 -3
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +1 -1
  35. package/lib/ui/index.min.js +1 -1
  36. package/lib/ui/src/log.js +1 -1
  37. package/lib/ui/src/log.min.js +1 -1
  38. package/lib/vxe-table/style/style.css +0 -3
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/table/src/body.ts +5 -3
  42. package/packages/table/src/footer.ts +4 -2
  43. package/packages/table/src/header.ts +2 -1
  44. package/packages/table/src/methods.ts +102 -100
  45. package/packages/table/src/table.ts +3 -0
  46. package/styles/components/table.scss +3 -3
  47. /package/es/{iconfont.1744428010256.ttf → iconfont.1744768256934.ttf} +0 -0
  48. /package/es/{iconfont.1744428010256.woff → iconfont.1744768256934.woff} +0 -0
  49. /package/es/{iconfont.1744428010256.woff2 → iconfont.1744768256934.woff2} +0 -0
  50. /package/lib/{iconfont.1744428010256.ttf → iconfont.1744768256934.ttf} +0 -0
  51. /package/lib/{iconfont.1744428010256.woff → iconfont.1744768256934.woff} +0 -0
  52. /package/lib/{iconfont.1744428010256.woff2 → iconfont.1744768256934.woff2} +0 -0
@@ -15,6 +15,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
15
15
  const { resizable: allResizable, columnKey, headerCellClassName, headerCellStyle, showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign, mouseConfig } = tableProps;
16
16
  const { currentColumn, dragCol, scrollXLoad, scrollYLoad, overflowX } = tableReactData;
17
17
  const { fullColumnIdData, scrollXStore } = tableInternalData;
18
+ const virtualXOpts = $xeTable.computeVirtualXOpts;
18
19
  const columnOpts = $xeTable.computeColumnOpts;
19
20
  const columnDragOpts = $xeTable.computeColumnDragOpts;
20
21
  const cellOpts = $xeTable.computeCellOpts;
@@ -84,7 +85,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
84
85
  let isVNPreEmptyStatus = false;
85
86
  if (!isGroup) {
86
87
  if (!dragCol || dragCol.id !== colid) {
87
- if (scrollXLoad && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
88
+ if (scrollXLoad && !column.fixed && !virtualXOpts.immediate && (_columnIndex < scrollXStore.visibleStartIndex - scrollXStore.preloadSize || _columnIndex > scrollXStore.visibleEndIndex + scrollXStore.preloadSize)) {
88
89
  isVNPreEmptyStatus = true;
89
90
  }
90
91
  }
@@ -308,6 +308,95 @@ const updateScrollYStatus = ($xeTable, fullData) => {
308
308
  reactData.scrollYLoad = scrollYLoad;
309
309
  return scrollYLoad;
310
310
  };
311
+ /**
312
+ * 展开与收起树节点
313
+ * @param rows
314
+ * @param expanded
315
+ * @returns
316
+ */
317
+ function handleBaseTreeExpand($xeTable, rows, expanded) {
318
+ const reactData = $xeTable;
319
+ const internalData = $xeTable;
320
+ const { treeNodeColumn } = reactData;
321
+ const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
322
+ const treeOpts = $xeTable.computeTreeOpts;
323
+ const { reserve, lazy, accordion, toggleMethod } = treeOpts;
324
+ const childrenField = treeOpts.children || treeOpts.childrenField;
325
+ const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
326
+ const result = [];
327
+ const columnIndex = $xeTable.getColumnIndex(treeNodeColumn);
328
+ const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn);
329
+ const { handleGetRowId } = createHandleGetRowId($xeTable);
330
+ let validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows;
331
+ if (accordion) {
332
+ validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
333
+ // 同一级只能展开一个
334
+ const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField });
335
+ if (matchObj) {
336
+ matchObj.items.forEach(item => {
337
+ const rowid = handleGetRowId(item);
338
+ if (treeExpandedMaps[rowid]) {
339
+ delete treeExpandedMaps[rowid];
340
+ }
341
+ });
342
+ }
343
+ }
344
+ if (expanded) {
345
+ validRows.forEach((row) => {
346
+ const rowid = handleGetRowId(row);
347
+ if (!treeExpandedMaps[rowid]) {
348
+ const rowRest = fullAllDataRowIdData[rowid];
349
+ if (rowRest) {
350
+ const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
351
+ // 是否使用懒加载
352
+ if (isLoad) {
353
+ result.push(handleAsyncTreeExpandChilds($xeTable, row));
354
+ }
355
+ else {
356
+ if (row[childrenField] && row[childrenField].length) {
357
+ treeExpandedMaps[rowid] = row;
358
+ }
359
+ }
360
+ }
361
+ }
362
+ });
363
+ }
364
+ else {
365
+ validRows.forEach(item => {
366
+ const rowid = handleGetRowId(item);
367
+ if (treeExpandedMaps[rowid]) {
368
+ delete treeExpandedMaps[rowid];
369
+ }
370
+ });
371
+ }
372
+ if (reserve) {
373
+ validRows.forEach((row) => handleTreeExpandReserve($xeTable, row, expanded));
374
+ }
375
+ reactData.treeExpandedFlag++;
376
+ return Promise.all(result).then(() => {
377
+ return $xeTable.recalculate();
378
+ });
379
+ }
380
+ /**
381
+ * 虚拟树的展开与收起
382
+ * @param rows
383
+ * @param expanded
384
+ * @returns
385
+ */
386
+ function handleVirtualTreeExpand($xeTable, rows, expanded) {
387
+ return handleBaseTreeExpand($xeTable, rows, expanded).then(() => {
388
+ handleVirtualTreeToList($xeTable);
389
+ $xeTable.handleTableData();
390
+ updateAfterDataIndex($xeTable);
391
+ return $xeTable.$nextTick();
392
+ }).then(() => {
393
+ return $xeTable.recalculate(true);
394
+ }).then(() => {
395
+ setTimeout(() => {
396
+ $xeTable.updateCellAreas();
397
+ }, 30);
398
+ });
399
+ }
311
400
  function updateAfterListIndex($xeTable) {
312
401
  const props = $xeTable;
313
402
  const internalData = $xeTable;
@@ -7991,7 +8080,7 @@ const Methods = {
7991
8080
  internalData.rowExpandedMaps = rowExpandedMaps;
7992
8081
  rows = rows.slice(rows.length - 1, rows.length);
7993
8082
  }
7994
- const validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: this.getRowIndex(row), $rowIndex: this.getVMRowIndex(row) })) : rows;
8083
+ const validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: expandColumn, columnIndex, $columnIndex, row, rowIndex: $xeTable.getRowIndex(row), $rowIndex: $xeTable.getVMRowIndex(row) })) : rows;
7995
8084
  if (expanded) {
7996
8085
  validRows.forEach((row) => {
7997
8086
  const rowid = handleGetRowId(row);
@@ -8008,7 +8097,7 @@ const Methods = {
8008
8097
  });
8009
8098
  }
8010
8099
  else {
8011
- validRows.forEach((item) => {
8100
+ validRows.forEach(item => {
8012
8101
  const rowid = handleGetRowId(item);
8013
8102
  if (rowExpandedMaps[rowid]) {
8014
8103
  delete rowExpandedMaps[rowid];
@@ -8221,7 +8310,7 @@ const Methods = {
8221
8310
  internalData.treeEATime = setTimeout(() => {
8222
8311
  internalData.treeEATime = undefined;
8223
8312
  $xeTable.scrollToRow(row);
8224
- }, 20);
8313
+ }, 30);
8225
8314
  }
8226
8315
  });
8227
8316
  $xeTable.dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt);
@@ -8250,96 +8339,6 @@ const Methods = {
8250
8339
  }, { children: childrenField });
8251
8340
  return this.setTreeExpand(expandeds, expanded);
8252
8341
  },
8253
- /**
8254
- * 默认,展开与收起树节点
8255
- * @param rows
8256
- * @param expanded
8257
- * @returns
8258
- */
8259
- handleBaseTreeExpand(rows, expanded) {
8260
- const $xeTable = this;
8261
- const reactData = $xeTable;
8262
- const internalData = $xeTable;
8263
- const { treeNodeColumn } = reactData;
8264
- const { fullAllDataRowIdData, tableFullData, treeExpandedMaps, treeExpandLazyLoadedMaps } = internalData;
8265
- const treeOpts = $xeTable.computeTreeOpts;
8266
- const { reserve, lazy, accordion, toggleMethod } = treeOpts;
8267
- const childrenField = treeOpts.children || treeOpts.childrenField;
8268
- const hasChildField = treeOpts.hasChild || treeOpts.hasChildField;
8269
- const result = [];
8270
- const columnIndex = $xeTable.getColumnIndex(treeNodeColumn);
8271
- const $columnIndex = $xeTable.getVMColumnIndex(treeNodeColumn);
8272
- const { handleGetRowId } = createHandleGetRowId($xeTable);
8273
- let validRows = toggleMethod ? rows.filter((row) => toggleMethod({ $table: $xeTable, expanded, column: treeNodeColumn, columnIndex, $columnIndex, row })) : rows;
8274
- if (accordion) {
8275
- validRows = validRows.length ? [validRows[validRows.length - 1]] : [];
8276
- // 同一级只能展开一个
8277
- const matchObj = XEUtils.findTree(tableFullData, item => item === validRows[0], { children: childrenField });
8278
- if (matchObj) {
8279
- matchObj.items.forEach(item => {
8280
- const rowid = handleGetRowId(item);
8281
- if (treeExpandedMaps[rowid]) {
8282
- delete treeExpandedMaps[rowid];
8283
- }
8284
- });
8285
- }
8286
- }
8287
- if (expanded) {
8288
- validRows.forEach((row) => {
8289
- const rowid = handleGetRowId(row);
8290
- if (!treeExpandedMaps[rowid]) {
8291
- const rowRest = fullAllDataRowIdData[rowid];
8292
- if (rowRest) {
8293
- const isLoad = lazy && row[hasChildField] && !rowRest.treeLoaded && !treeExpandLazyLoadedMaps[rowid];
8294
- // 是否使用懒加载
8295
- if (isLoad) {
8296
- result.push(handleAsyncTreeExpandChilds($xeTable, row));
8297
- }
8298
- else {
8299
- if (row[childrenField] && row[childrenField].length) {
8300
- treeExpandedMaps[rowid] = row;
8301
- }
8302
- }
8303
- }
8304
- }
8305
- });
8306
- }
8307
- else {
8308
- validRows.forEach((item) => {
8309
- const rowid = handleGetRowId(item);
8310
- if (treeExpandedMaps[rowid]) {
8311
- delete treeExpandedMaps[rowid];
8312
- }
8313
- });
8314
- }
8315
- if (reserve) {
8316
- validRows.forEach((row) => handleTreeExpandReserve($xeTable, row, expanded));
8317
- }
8318
- reactData.treeExpandedFlag++;
8319
- return Promise.all(result).then(() => {
8320
- return $xeTable.recalculate();
8321
- });
8322
- },
8323
- /**
8324
- * 虚拟树的展开与收起
8325
- * @param rows
8326
- * @param expanded
8327
- * @returns
8328
- */
8329
- handleVirtualTreeExpand(rows, expanded) {
8330
- const $xeTable = this;
8331
- return this.handleBaseTreeExpand(rows, expanded).then(() => {
8332
- handleVirtualTreeToList($xeTable);
8333
- this.handleTableData();
8334
- updateAfterDataIndex($xeTable);
8335
- }).then(() => {
8336
- return this.recalculate();
8337
- }).then(() => {
8338
- setTimeout(() => {
8339
- this.updateCellAreas();
8340
- }, 30);
8341
- });
8342
- },
8343
8342
  /**
8344
8343
  * 设置展开树形节点,二个参数设置这一行展开与否
8345
8344
  * 支持单行
@@ -8348,6 +8347,7 @@ const Methods = {
8348
8347
  * @param {Boolean} expanded 是否展开
8349
8348
  */
8350
8349
  setTreeExpand(rows, expanded) {
8350
+ const $xeTable = this;
8351
8351
  const { treeOpts } = this;
8352
8352
  const { transform } = treeOpts;
8353
8353
  if (rows) {
@@ -8357,10 +8357,10 @@ const Methods = {
8357
8357
  if (rows.length) {
8358
8358
  // 如果为虚拟树
8359
8359
  if (transform) {
8360
- return this.handleVirtualTreeExpand(rows, expanded);
8360
+ return handleVirtualTreeExpand($xeTable, rows, expanded);
8361
8361
  }
8362
8362
  else {
8363
- return this.handleBaseTreeExpand(rows, expanded);
8363
+ return handleBaseTreeExpand($xeTable, rows, expanded);
8364
8364
  }
8365
8365
  }
8366
8366
  }
@@ -1407,6 +1407,9 @@ export default {
1407
1407
  if (this.highlightHoverColumn) {
1408
1408
  warnLog('vxe.error.delProp', ['highlight-hover-column', 'column-config.isHover']);
1409
1409
  }
1410
+ if (props.resizable) {
1411
+ warnLog('vxe.error.delProp', ['resizable', 'column-config.resizable']);
1412
+ }
1410
1413
  // if (props.scrollY) {
1411
1414
  // warnLog('vxe.error.delProp', ['scroll-y', 'virtual-y-config'])
1412
1415
  // }
@@ -3009,9 +3009,6 @@
3009
3009
  user-select: none;
3010
3010
  cursor: pointer;
3011
3011
  }
3012
- .vxe-table--render-default .vxe-tree--btn-wrapper > i {
3013
- background-color: var(--vxe-ui-layout-background-color);
3014
- }
3015
3012
  .vxe-table--render-default .vxe-tree--node-btn {
3016
3013
  display: block;
3017
3014
  color: var(--vxe-ui-font-lighten-color);