vxe-table 3.11.23 → 3.11.25

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/{iconfont.1733805838288.ttf → iconfont.1733882708391.ttf} +0 -0
  2. package/es/iconfont.1733882708391.woff +0 -0
  3. package/es/iconfont.1733882708391.woff2 +0 -0
  4. package/es/index.css +1 -1
  5. package/es/index.min.css +1 -1
  6. package/es/style.css +1 -1
  7. package/es/style.min.css +1 -1
  8. package/es/table/module/filter/mixin.js +37 -21
  9. package/es/table/src/methods.js +80 -13
  10. package/es/table/src/table.js +3 -0
  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/{iconfont.1733805838288.ttf → iconfont.1733882708391.ttf} +0 -0
  18. package/lib/iconfont.1733882708391.woff +0 -0
  19. package/lib/iconfont.1733882708391.woff2 +0 -0
  20. package/lib/index.css +1 -1
  21. package/lib/index.min.css +1 -1
  22. package/lib/index.umd.js +155 -50
  23. package/lib/index.umd.min.js +1 -1
  24. package/lib/style.css +1 -1
  25. package/lib/style.min.css +1 -1
  26. package/lib/table/module/filter/mixin.js +43 -25
  27. package/lib/table/module/filter/mixin.min.js +1 -1
  28. package/lib/table/src/methods.js +107 -23
  29. package/lib/table/src/methods.min.js +1 -1
  30. package/lib/table/src/table.js +2 -0
  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/table/module/filter/mixin.ts +42 -21
  42. package/packages/table/src/methods.ts +83 -13
  43. package/packages/table/src/table.ts +3 -0
  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.1733805838288.woff +0 -0
  51. package/es/iconfont.1733805838288.woff2 +0 -0
  52. package/lib/iconfont.1733805838288.woff +0 -0
  53. package/lib/iconfont.1733805838288.woff2 +0 -0
@@ -441,12 +441,14 @@ const updateColDropTipContent = ($xeTable: any, tdEl: HTMLElement) => {
441
441
 
442
442
  function showDropTip ($xeTable: any, evnt: DragEvent | MouseEvent, trEl: HTMLElement | null, thEl: HTMLElement | null, showLine: boolean, dragPos: string) {
443
443
  const reactData = $xeTable
444
+ const internalData = $xeTable
444
445
 
445
446
  const el = $xeTable.$refs.refElem as HTMLElement
446
447
  if (!el) {
447
448
  return
448
449
  }
449
450
  const { scrollbarWidth, scrollbarHeight } = reactData
451
+ const { prevDragToChild } = internalData
450
452
  const wrapperRect = el.getBoundingClientRect()
451
453
  if (trEl) {
452
454
  const rdLineEl = $xeTable.$refs.refDragRowLineElem as HTMLElement
@@ -458,6 +460,7 @@ function showDropTip ($xeTable: any, evnt: DragEvent | MouseEvent, trEl: HTMLEle
458
460
  rdLineEl.style.height = `${trRect.height}px`
459
461
  rdLineEl.style.width = `${wrapperRect.width - scrollbarWidth}px`
460
462
  rdLineEl.setAttribute('drag-pos', dragPos)
463
+ rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n')
461
464
  } else {
462
465
  rdLineEl.style.display = ''
463
466
  }
@@ -482,7 +485,7 @@ function showDropTip ($xeTable: any, evnt: DragEvent | MouseEvent, trEl: HTMLEle
482
485
  rdTipEl.style.display = 'block'
483
486
  rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`
484
487
  rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`
485
- rdTipEl.setAttribute('drag-status', showLine ? 'normal' : 'disabled')
488
+ rdTipEl.setAttribute('drag-status', showLine ? (prevDragToChild ? 'sub' : 'normal') : 'disabled')
486
489
  }
487
490
  }
488
491
 
@@ -969,6 +972,9 @@ const Methods = {
969
972
  cacheItem = { row, rowid, seq, index: -1, _index: -1, $index: -1, items, parent, level, height: 0 }
970
973
  }
971
974
  if (isSource) {
975
+ cacheItem.row = row
976
+ cacheItem.items = items
977
+ cacheItem.parent = parent
972
978
  cacheItem.level = level
973
979
  cacheItem.index = treeConfig && parent ? -1 : index
974
980
  fullDataRowIdMaps[rowid] = cacheItem
@@ -5028,23 +5034,36 @@ const Methods = {
5028
5034
  }
5029
5035
  }
5030
5036
  },
5037
+ handleColumnSortEvent (evnt: any, column: any) {
5038
+ const $xeTable = this
5039
+ const props = $xeTable
5040
+
5041
+ const { mouseConfig } = props
5042
+ const mouseOpts = $xeTable.computeMouseOpts
5043
+ const { field, sortable } = column
5044
+ if (sortable) {
5045
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: $xeTable.getSortColumns(), sortTime: column.sortTime }
5046
+ if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
5047
+ $xeTable.handleSortEvent(evnt, params)
5048
+ }
5049
+ $xeTable.dispatchEvent('sort-change', params, evnt)
5050
+ }
5051
+ },
5031
5052
  /**
5032
5053
  * 点击排序事件
5033
5054
  */
5034
5055
  triggerSortEvent (evnt: any, column: any, order: any) {
5035
- const { sortOpts } = this
5056
+ const $xeTable = this
5057
+
5058
+ const sortOpts = $xeTable.computeSortOpts
5036
5059
  const { field, sortable, remoteSort } = column
5037
5060
  if (sortable || remoteSort) {
5038
5061
  if (!order || column.order === order) {
5039
- this.clearSort(sortOpts.multiple ? column : null)
5062
+ $xeTable.clearSort(sortOpts.multiple ? column : null)
5040
5063
  } else {
5041
- this.sort({ field, order })
5064
+ $xeTable.sort({ field, order })
5042
5065
  }
5043
- const params = { $table: this, $event: evnt, column, field, property: field, order: column.order, sortList: this.getSortColumns(), sortTime: column.sortTime }
5044
- if (this.mouseConfig && this.mouseOpts.area && this.handleSortEvent) {
5045
- this.handleSortEvent(evnt, params)
5046
- }
5047
- this.emitEvent('sort-change', params, evnt)
5066
+ $xeTable.handleColumnSortEvent(evnt, column)
5048
5067
  }
5049
5068
  },
5050
5069
  /**
@@ -5064,10 +5083,10 @@ const Methods = {
5064
5083
 
5065
5084
  const { treeConfig, dragConfig } = props
5066
5085
  const rowDragOpts = $xeTable.computeRowDragOpts
5067
- const { fullAllDataRowIdData } = internalData
5086
+ const { fullAllDataRowIdData, prevDragToChild } = internalData
5068
5087
  const { isCrossDrag, isSelfToChildDrag, dragEndMethod } = rowDragOpts
5069
5088
  const treeOpts = $xeTable.computeTreeOpts
5070
- const { transform, mapChildrenField, parentField } = treeOpts
5089
+ const { transform, rowField, mapChildrenField, parentField } = treeOpts
5071
5090
  const childrenField = treeOpts.children || treeOpts.childrenField
5072
5091
  const { dragRow } = reactData
5073
5092
  const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData
@@ -5174,7 +5193,7 @@ const Methods = {
5174
5193
  childRow[parentField] = dragRow[parentField]
5175
5194
  })
5176
5195
  }
5177
- dragRow[parentField] = prevDragRow[parentField]
5196
+ dragRow[parentField] = prevDragToChild ? prevDragRow[rowField] : prevDragRow[parentField]
5178
5197
 
5179
5198
  internalData.tableFullTreeData = XEUtils.toArrayTree(fullList, {
5180
5199
  key: treeOpts.rowField,
@@ -5246,12 +5265,15 @@ const Methods = {
5246
5265
  const { treeConfig } = props
5247
5266
  const { fullAllDataRowIdData } = internalData
5248
5267
  const { dragRow } = reactData
5268
+ const treeOpts = $xeTable.computeTreeOpts
5269
+ const { transform } = treeOpts
5249
5270
  const rowDragOpts = $xeTable.computeRowDragOpts
5250
- const { isCrossDrag } = rowDragOpts
5271
+ const { isCrossDrag, isToChildDrag } = rowDragOpts
5251
5272
  if (!dragRow) {
5252
5273
  evnt.preventDefault()
5253
5274
  return
5254
5275
  }
5276
+ const hasCtrlKey = evnt.ctrlKey
5255
5277
  const trEl = evnt.currentTarget as HTMLElement
5256
5278
  const rowid = trEl.getAttribute('rowid') || ''
5257
5279
  const rest = fullAllDataRowIdData[rowid]
@@ -5265,6 +5287,7 @@ const Methods = {
5265
5287
  showDropTip($xeTable, evnt, trEl, null, false, dragPos)
5266
5288
  return
5267
5289
  }
5290
+ internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey)
5268
5291
  internalData.prevDragRow = row
5269
5292
  internalData.prevDragPos = dragPos
5270
5293
  showDropTip($xeTable, evnt, trEl, null, true, dragPos)
@@ -5435,6 +5458,7 @@ const Methods = {
5435
5458
  showDropTip($xeTable, evnt, null, thEl, false, dragPos)
5436
5459
  return
5437
5460
  }
5461
+ internalData.prevDragToChild = false
5438
5462
  internalData.prevDragCol = column
5439
5463
  internalData.prevDragPos = dragPos
5440
5464
  showDropTip($xeTable, evnt, null, thEl, true, dragPos)
@@ -5597,6 +5621,52 @@ const Methods = {
5597
5621
  }
5598
5622
  return this.$nextTick()
5599
5623
  },
5624
+ setSort (sortConfs: VxeTableDefines.SortConfs | VxeTableDefines.SortConfs[], isUpdate?: boolean) {
5625
+ const $xeTable = this
5626
+
5627
+ const sortOpts = $xeTable.computeSortOpts
5628
+ const { multiple, remote, orders } = sortOpts
5629
+ if (!XEUtils.isArray(sortConfs)) {
5630
+ sortConfs = [sortConfs]
5631
+ }
5632
+ if (sortConfs && sortConfs.length) {
5633
+ if (!multiple) {
5634
+ sortConfs = [sortConfs[0]]
5635
+ clearAllSort($xeTable)
5636
+ }
5637
+ let firstColumn: any = null
5638
+ sortConfs.forEach((confs: any, index: number) => {
5639
+ let { field, order } = confs
5640
+ let column = field
5641
+ if (XEUtils.isString(field)) {
5642
+ column = $xeTable.getColumnByField(field)
5643
+ }
5644
+ if (!firstColumn) {
5645
+ firstColumn = column
5646
+ }
5647
+ if (column && column.sortable) {
5648
+ if (orders.indexOf(order) === -1) {
5649
+ order = getNextSortOrder($xeTable, column)
5650
+ }
5651
+ if (column.order !== order) {
5652
+ column.order = order
5653
+ }
5654
+ column.sortTime = Date.now() + index
5655
+ }
5656
+ })
5657
+ if (isUpdate) {
5658
+ if (!remote) {
5659
+ $xeTable.handleTableData(true)
5660
+ }
5661
+ $xeTable.handleColumnSortEvent(new Event('click'), firstColumn)
5662
+ }
5663
+ return $xeTable.$nextTick().then(() => {
5664
+ $xeTable.updateCellAreas()
5665
+ return $xeTable.updateStyle()
5666
+ })
5667
+ }
5668
+ return $xeTable.$nextTick()
5669
+ },
5600
5670
  /**
5601
5671
  * 清空指定列的排序条件
5602
5672
  * 如果为空则清空所有列的排序条件
@@ -158,6 +158,9 @@ const renderDragTip = (h: CreateElement, $xeTable: any) => {
158
158
  h('span', {
159
159
  class: ['vxe-table--drag-sort-tip-normal-status', dragRow ? getIcon().TABLE_DRAG_STATUS_ROW : getIcon().TABLE_DRAG_STATUS_COLUMN]
160
160
  }),
161
+ h('span', {
162
+ class: ['vxe-table--drag-sort-tip-sub-status', getIcon().TABLE_DRAG_STATUS_SUB_ROW]
163
+ }),
161
164
  h('span', {
162
165
  class: ['vxe-table--drag-sort-tip-disabled-status', getIcon().TABLE_DRAG_DISABLED]
163
166
  })
@@ -258,6 +258,7 @@ VxeUI.setIcon({
258
258
  TABLE_DRAG_ROW: iconPrefix + 'drag-handle',
259
259
  TABLE_DRAG_COLUMN: iconPrefix + 'drag-handle',
260
260
  TABLE_DRAG_STATUS_ROW: iconPrefix + 'sort',
261
+ TABLE_DRAG_STATUS_SUB_ROW: iconPrefix + 'add-sub',
261
262
  TABLE_DRAG_STATUS_COLUMN: iconPrefix + 'swap',
262
263
  TABLE_DRAG_DISABLED: iconPrefix + 'no-drop',
263
264
 
@@ -5,7 +5,7 @@
5
5
  @font-face {
6
6
  font-family: "vxetableiconfont";
7
7
  src:
8
- url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
8
+ url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2');
9
9
  }
10
10
 
11
11
  @keyframes rollCircle {
@@ -79,6 +79,10 @@ $btnThemeList: (
79
79
  }
80
80
  }
81
81
 
82
+ .vxe-table-icon-add-sub:before {
83
+ content: "\e6bc";
84
+ }
85
+
82
86
  .vxe-table-icon-swap:before {
83
87
  content: "\e7f3";
84
88
  }
@@ -1343,6 +1343,11 @@
1343
1343
  &[drag-pos="bottom"] {
1344
1344
  border-bottom-color: var(--vxe-ui-font-primary-color);
1345
1345
  }
1346
+ &[drag-to-child="y"] {
1347
+ border-top-color: transparent;
1348
+ border-bottom-color: transparent;
1349
+ border-left-color: var(--vxe-ui-status-success-color);
1350
+ }
1346
1351
  &.is--guides {
1347
1352
  background-color: var( --vxe-ui-table-drag-over-background-color);
1348
1353
  }
@@ -1381,6 +1386,11 @@
1381
1386
  display: block;
1382
1387
  }
1383
1388
  }
1389
+ &[drag-status="sub"] {
1390
+ .vxe-table--drag-sort-tip-sub-status {
1391
+ display: block;
1392
+ }
1393
+ }
1384
1394
  &[drag-status="disabled"] {
1385
1395
  .vxe-table--drag-sort-tip-disabled-status {
1386
1396
  display: block;
@@ -1400,7 +1410,8 @@
1400
1410
  flex-shrink: 0;
1401
1411
  color: var(--vxe-ui-status-error-color)
1402
1412
  }
1403
- .vxe-table--drag-sort-tip-normal-status {
1413
+ .vxe-table--drag-sort-tip-normal-status,
1414
+ .vxe-table--drag-sort-tip-sub-status {
1404
1415
  display: none;
1405
1416
  }
1406
1417
  .vxe-table--drag-sort-tip-content {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file