vxe-table 4.9.20 → 4.9.22

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 (53) hide show
  1. package/es/grid/src/grid.js +1 -1
  2. package/es/{iconfont.1733815980030.ttf → iconfont.1733885894979.ttf} +0 -0
  3. package/es/iconfont.1733885894979.woff +0 -0
  4. package/es/iconfont.1733885894979.woff2 +0 -0
  5. package/es/index.css +1 -1
  6. package/es/index.min.css +1 -1
  7. package/es/style.css +1 -1
  8. package/es/style.min.css +1 -1
  9. package/es/table/module/filter/hook.js +17 -10
  10. package/es/table/src/table.js +73 -12
  11. package/es/table/style.css +15 -2
  12. package/es/table/style.min.css +1 -1
  13. package/es/ui/index.js +2 -1
  14. package/es/ui/src/log.js +1 -1
  15. package/es/vxe-table/style.css +15 -2
  16. package/es/vxe-table/style.min.css +1 -1
  17. package/lib/grid/src/grid.js +1 -1
  18. package/lib/grid/src/grid.min.js +1 -1
  19. package/lib/{iconfont.1733815980030.ttf → iconfont.1733885894979.ttf} +0 -0
  20. package/lib/iconfont.1733885894979.woff +0 -0
  21. package/lib/iconfont.1733885894979.woff2 +0 -0
  22. package/lib/index.css +1 -1
  23. package/lib/index.min.css +1 -1
  24. package/lib/index.umd.js +118 -32
  25. package/lib/index.umd.min.js +1 -1
  26. package/lib/style.css +1 -1
  27. package/lib/style.min.css +1 -1
  28. package/lib/table/module/filter/hook.js +20 -12
  29. package/lib/table/module/filter/hook.min.js +1 -1
  30. package/lib/table/src/table.js +94 -17
  31. package/lib/table/src/table.min.js +1 -1
  32. package/lib/table/style/style.css +15 -2
  33. package/lib/table/style/style.min.css +1 -1
  34. package/lib/ui/index.js +2 -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 +15 -2
  39. package/lib/vxe-table/style/style.min.css +1 -1
  40. package/package.json +2 -2
  41. package/packages/grid/src/grid.ts +1 -1
  42. package/packages/table/module/filter/hook.ts +19 -12
  43. package/packages/table/src/table.ts +73 -12
  44. package/packages/ui/index.ts +1 -0
  45. package/styles/components/icon.scss +5 -1
  46. package/styles/components/table.scss +12 -1
  47. package/styles/icon/iconfont.ttf +0 -0
  48. package/styles/icon/iconfont.woff +0 -0
  49. package/styles/icon/iconfont.woff2 +0 -0
  50. package/es/iconfont.1733815980030.woff +0 -0
  51. package/es/iconfont.1733815980030.woff2 +0 -0
  52. package/lib/iconfont.1733815980030.woff +0 -0
  53. package/lib/iconfont.1733815980030.woff2 +0 -0
@@ -4451,6 +4451,50 @@ export default defineComponent({
4451
4451
  }
4452
4452
  return nextTick();
4453
4453
  },
4454
+ setSort(sortConfs, isUpdate) {
4455
+ const sortOpts = computeSortOpts.value;
4456
+ const { multiple, remote, orders } = sortOpts;
4457
+ if (!XEUtils.isArray(sortConfs)) {
4458
+ sortConfs = [sortConfs];
4459
+ }
4460
+ if (sortConfs && sortConfs.length) {
4461
+ if (!multiple) {
4462
+ sortConfs = [sortConfs[0]];
4463
+ clearAllSort();
4464
+ }
4465
+ let firstColumn = null;
4466
+ sortConfs.forEach((confs, index) => {
4467
+ let { field, order } = confs;
4468
+ let column = field;
4469
+ if (XEUtils.isString(field)) {
4470
+ column = tableMethods.getColumnByField(field);
4471
+ }
4472
+ if (!firstColumn) {
4473
+ firstColumn = column;
4474
+ }
4475
+ if (column && column.sortable) {
4476
+ if (orders.indexOf(order) === -1) {
4477
+ order = getNextSortOrder(column);
4478
+ }
4479
+ if (column.order !== order) {
4480
+ column.order = order;
4481
+ }
4482
+ column.sortTime = Date.now() + index;
4483
+ }
4484
+ });
4485
+ if (isUpdate) {
4486
+ if (!remote) {
4487
+ tablePrivateMethods.handleTableData(true);
4488
+ }
4489
+ $xeTable.handleColumnSortEvent(new Event('click'), firstColumn);
4490
+ }
4491
+ return nextTick().then(() => {
4492
+ tableMethods.updateCellAreas();
4493
+ return updateStyle();
4494
+ });
4495
+ }
4496
+ return nextTick();
4497
+ },
4454
4498
  /**
4455
4499
  * 清空指定列的排序条件
4456
4500
  * 如果为空则清空所有列的排序条件
@@ -5900,6 +5944,7 @@ export default defineComponent({
5900
5944
  return;
5901
5945
  }
5902
5946
  const { scrollbarWidth, scrollbarHeight } = reactData;
5947
+ const { prevDragToChild } = internalData;
5903
5948
  const wrapperRect = el.getBoundingClientRect();
5904
5949
  if (trEl) {
5905
5950
  const rdLineEl = refDragRowLineElem.value;
@@ -5911,6 +5956,7 @@ export default defineComponent({
5911
5956
  rdLineEl.style.height = `${trRect.height}px`;
5912
5957
  rdLineEl.style.width = `${wrapperRect.width - scrollbarWidth}px`;
5913
5958
  rdLineEl.setAttribute('drag-pos', dragPos);
5959
+ rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n');
5914
5960
  }
5915
5961
  else {
5916
5962
  rdLineEl.style.display = '';
@@ -5938,7 +5984,7 @@ export default defineComponent({
5938
5984
  rdTipEl.style.display = 'block';
5939
5985
  rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`;
5940
5986
  rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`;
5941
- rdTipEl.setAttribute('drag-status', showLine ? 'normal' : 'disabled');
5987
+ rdTipEl.setAttribute('drag-status', showLine ? (prevDragToChild ? 'sub' : 'normal') : 'disabled');
5942
5988
  }
5943
5989
  };
5944
5990
  const hideDropTip = () => {
@@ -7023,13 +7069,23 @@ export default defineComponent({
7023
7069
  dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt);
7024
7070
  }
7025
7071
  },
7072
+ handleColumnSortEvent(evnt, column) {
7073
+ const { mouseConfig } = props;
7074
+ const mouseOpts = computeMouseOpts.value;
7075
+ const { field, sortable } = column;
7076
+ if (sortable) {
7077
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime };
7078
+ if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7079
+ $xeTable.handleSortEvent(evnt, params);
7080
+ }
7081
+ dispatchEvent('sort-change', params, evnt);
7082
+ }
7083
+ },
7026
7084
  /**
7027
7085
  * 点击排序事件
7028
7086
  */
7029
7087
  triggerSortEvent(evnt, column, order) {
7030
- const { mouseConfig } = props;
7031
7088
  const sortOpts = computeSortOpts.value;
7032
- const mouseOpts = computeMouseOpts.value;
7033
7089
  const { field, sortable } = column;
7034
7090
  if (sortable) {
7035
7091
  if (!order || column.order === order) {
@@ -7038,11 +7094,7 @@ export default defineComponent({
7038
7094
  else {
7039
7095
  tableMethods.sort({ field, order });
7040
7096
  }
7041
- const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime };
7042
- if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7043
- $xeTable.handleSortEvent(evnt, params);
7044
- }
7045
- dispatchEvent('sort-change', params, evnt);
7097
+ $xeTable.handleColumnSortEvent(evnt, column);
7046
7098
  }
7047
7099
  },
7048
7100
  /**
@@ -7057,15 +7109,16 @@ export default defineComponent({
7057
7109
  handleRowDragDragendEvent(evnt) {
7058
7110
  const { treeConfig, dragConfig } = props;
7059
7111
  const rowDragOpts = computeRowDragOpts.value;
7060
- const { fullAllDataRowIdData } = internalData;
7112
+ const { fullAllDataRowIdData, prevDragToChild } = internalData;
7061
7113
  const { isCrossDrag, isSelfToChildDrag, dragEndMethod } = rowDragOpts;
7062
7114
  const treeOpts = computeTreeOpts.value;
7063
- const { transform, mapChildrenField, parentField } = treeOpts;
7115
+ const { transform, rowField, mapChildrenField, parentField } = treeOpts;
7064
7116
  const childrenField = treeOpts.children || treeOpts.childrenField;
7065
7117
  const { dragRow } = reactData;
7066
7118
  const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData;
7067
7119
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null);
7068
7120
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0;
7121
+ console.log(evnt.ctrlKey);
7069
7122
  if (prevDragRow && dragRow) {
7070
7123
  // 判断是否有拖动
7071
7124
  if (prevDragRow !== dragRow) {
@@ -7157,7 +7210,7 @@ export default defineComponent({
7157
7210
  childRow[parentField] = dragRow[parentField];
7158
7211
  });
7159
7212
  }
7160
- dragRow[parentField] = prevDragRow[parentField];
7213
+ dragRow[parentField] = prevDragToChild ? prevDragRow[rowField] : prevDragRow[parentField];
7161
7214
  internalData.tableFullTreeData = XEUtils.toArrayTree(fullList, {
7162
7215
  key: treeOpts.rowField,
7163
7216
  parentKey: treeOpts.parentField,
@@ -7222,12 +7275,15 @@ export default defineComponent({
7222
7275
  const { treeConfig } = props;
7223
7276
  const { fullAllDataRowIdData } = internalData;
7224
7277
  const { dragRow } = reactData;
7278
+ const treeOpts = computeTreeOpts.value;
7279
+ const { transform } = treeOpts;
7225
7280
  const rowDragOpts = computeRowDragOpts.value;
7226
- const { isCrossDrag } = rowDragOpts;
7281
+ const { isCrossDrag, isToChildDrag } = rowDragOpts;
7227
7282
  if (!dragRow) {
7228
7283
  evnt.preventDefault();
7229
7284
  return;
7230
7285
  }
7286
+ const hasCtrlKey = evnt.ctrlKey;
7231
7287
  const trEl = evnt.currentTarget;
7232
7288
  const rowid = trEl.getAttribute('rowid') || '';
7233
7289
  const rest = fullAllDataRowIdData[rowid];
@@ -7241,6 +7297,7 @@ export default defineComponent({
7241
7297
  showDropTip(evnt, trEl, null, false, dragPos);
7242
7298
  return;
7243
7299
  }
7300
+ internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey);
7244
7301
  internalData.prevDragRow = row;
7245
7302
  internalData.prevDragPos = dragPos;
7246
7303
  showDropTip(evnt, trEl, null, true, dragPos);
@@ -7389,6 +7446,7 @@ export default defineComponent({
7389
7446
  showDropTip(evnt, null, thEl, false, dragPos);
7390
7447
  return;
7391
7448
  }
7449
+ internalData.prevDragToChild = false;
7392
7450
  internalData.prevDragCol = column;
7393
7451
  internalData.prevDragPos = dragPos;
7394
7452
  showDropTip(evnt, null, thEl, true, dragPos);
@@ -7890,6 +7948,9 @@ export default defineComponent({
7890
7948
  h('span', {
7891
7949
  class: ['vxe-table--drag-sort-tip-normal-status', dragRow ? getIcon().TABLE_DRAG_STATUS_ROW : getIcon().TABLE_DRAG_STATUS_COLUMN]
7892
7950
  }),
7951
+ h('span', {
7952
+ class: ['vxe-table--drag-sort-tip-sub-status', getIcon().TABLE_DRAG_STATUS_SUB_ROW]
7953
+ }),
7893
7954
  h('span', {
7894
7955
  class: ['vxe-table--drag-sort-tip-disabled-status', getIcon().TABLE_DRAG_DISABLED]
7895
7956
  })
@@ -543,7 +543,7 @@
543
543
 
544
544
  @font-face {
545
545
  font-family: "vxetableiconfont";
546
- src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
546
+ src: url("data:application/x-font-woff2;charset=utf-8;base64,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") format("woff2");
547
547
  }
548
548
  @keyframes rollCircle {
549
549
  0% {
@@ -599,6 +599,10 @@
599
599
  color: var(--vxe-ui-status-error-color);
600
600
  }
601
601
 
602
+ .vxe-table-icon-add-sub:before {
603
+ content: "\e6bc";
604
+ }
605
+
602
606
  .vxe-table-icon-swap:before {
603
607
  content: "\e7f3";
604
608
  }
@@ -2723,6 +2727,11 @@
2723
2727
  .vxe-table--render-default .vxe-table--drag-row-line[drag-pos=bottom] {
2724
2728
  border-bottom-color: var(--vxe-ui-font-primary-color);
2725
2729
  }
2730
+ .vxe-table--render-default .vxe-table--drag-row-line[drag-to-child=y] {
2731
+ border-top-color: transparent;
2732
+ border-bottom-color: transparent;
2733
+ border-left-color: var(--vxe-ui-status-success-color);
2734
+ }
2726
2735
  .vxe-table--render-default .vxe-table--drag-row-line.is--guides {
2727
2736
  background-color: var(--vxe-ui-table-drag-over-background-color);
2728
2737
  }
@@ -2755,6 +2764,9 @@
2755
2764
  .vxe-table--render-default .vxe-table--drag-sort-tip[drag-status=normal] .vxe-table--drag-sort-tip-normal-status {
2756
2765
  display: block;
2757
2766
  }
2767
+ .vxe-table--render-default .vxe-table--drag-sort-tip[drag-status=sub] .vxe-table--drag-sort-tip-sub-status {
2768
+ display: block;
2769
+ }
2758
2770
  .vxe-table--render-default .vxe-table--drag-sort-tip[drag-status=disabled] .vxe-table--drag-sort-tip-disabled-status {
2759
2771
  display: block;
2760
2772
  }
@@ -2771,7 +2783,8 @@
2771
2783
  flex-shrink: 0;
2772
2784
  color: var(--vxe-ui-status-error-color);
2773
2785
  }
2774
- .vxe-table--render-default .vxe-table--drag-sort-tip-normal-status {
2786
+ .vxe-table--render-default .vxe-table--drag-sort-tip-normal-status,
2787
+ .vxe-table--render-default .vxe-table--drag-sort-tip-sub-status {
2775
2788
  display: none;
2776
2789
  }
2777
2790
  .vxe-table--render-default .vxe-table--drag-sort-tip-content {