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
@@ -4555,6 +4555,50 @@ export default defineComponent({
4555
4555
  }
4556
4556
  return nextTick()
4557
4557
  },
4558
+ setSort (sortConfs, isUpdate) {
4559
+ const sortOpts = computeSortOpts.value
4560
+ const { multiple, remote, orders } = sortOpts
4561
+ if (!XEUtils.isArray(sortConfs)) {
4562
+ sortConfs = [sortConfs]
4563
+ }
4564
+ if (sortConfs && sortConfs.length) {
4565
+ if (!multiple) {
4566
+ sortConfs = [sortConfs[0]]
4567
+ clearAllSort()
4568
+ }
4569
+ let firstColumn: any = null
4570
+ sortConfs.forEach((confs: any, index: number) => {
4571
+ let { field, order } = confs
4572
+ let column = field
4573
+ if (XEUtils.isString(field)) {
4574
+ column = tableMethods.getColumnByField(field)
4575
+ }
4576
+ if (!firstColumn) {
4577
+ firstColumn = column
4578
+ }
4579
+ if (column && column.sortable) {
4580
+ if (orders.indexOf(order) === -1) {
4581
+ order = getNextSortOrder(column)
4582
+ }
4583
+ if (column.order !== order) {
4584
+ column.order = order
4585
+ }
4586
+ column.sortTime = Date.now() + index
4587
+ }
4588
+ })
4589
+ if (isUpdate) {
4590
+ if (!remote) {
4591
+ tablePrivateMethods.handleTableData(true)
4592
+ }
4593
+ $xeTable.handleColumnSortEvent(new Event('click'), firstColumn)
4594
+ }
4595
+ return nextTick().then(() => {
4596
+ tableMethods.updateCellAreas()
4597
+ return updateStyle()
4598
+ })
4599
+ }
4600
+ return nextTick()
4601
+ },
4558
4602
  /**
4559
4603
  * 清空指定列的排序条件
4560
4604
  * 如果为空则清空所有列的排序条件
@@ -5977,6 +6021,7 @@ export default defineComponent({
5977
6021
  return
5978
6022
  }
5979
6023
  const { scrollbarWidth, scrollbarHeight } = reactData
6024
+ const { prevDragToChild } = internalData
5980
6025
  const wrapperRect = el.getBoundingClientRect()
5981
6026
  if (trEl) {
5982
6027
  const rdLineEl = refDragRowLineElem.value
@@ -5988,6 +6033,7 @@ export default defineComponent({
5988
6033
  rdLineEl.style.height = `${trRect.height}px`
5989
6034
  rdLineEl.style.width = `${wrapperRect.width - scrollbarWidth}px`
5990
6035
  rdLineEl.setAttribute('drag-pos', dragPos)
6036
+ rdLineEl.setAttribute('drag-to-child', prevDragToChild ? 'y' : 'n')
5991
6037
  } else {
5992
6038
  rdLineEl.style.display = ''
5993
6039
  }
@@ -6012,7 +6058,7 @@ export default defineComponent({
6012
6058
  rdTipEl.style.display = 'block'
6013
6059
  rdTipEl.style.top = `${Math.min(el.clientHeight - el.scrollTop - rdTipEl.clientHeight, evnt.clientY - wrapperRect.y)}px`
6014
6060
  rdTipEl.style.left = `${Math.min(el.clientWidth - el.scrollLeft - rdTipEl.clientWidth - 16, evnt.clientX - wrapperRect.x)}px`
6015
- rdTipEl.setAttribute('drag-status', showLine ? 'normal' : 'disabled')
6061
+ rdTipEl.setAttribute('drag-status', showLine ? (prevDragToChild ? 'sub' : 'normal') : 'disabled')
6016
6062
  }
6017
6063
  }
6018
6064
 
@@ -7068,13 +7114,23 @@ export default defineComponent({
7068
7114
  dispatchEvent('toggle-tree-expand', { expanded, column, columnIndex, $columnIndex, row }, evnt)
7069
7115
  }
7070
7116
  },
7117
+ handleColumnSortEvent (evnt, column) {
7118
+ const { mouseConfig } = props
7119
+ const mouseOpts = computeMouseOpts.value
7120
+ const { field, sortable } = column
7121
+ if (sortable) {
7122
+ const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime }
7123
+ if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7124
+ $xeTable.handleSortEvent(evnt, params)
7125
+ }
7126
+ dispatchEvent('sort-change', params, evnt)
7127
+ }
7128
+ },
7071
7129
  /**
7072
7130
  * 点击排序事件
7073
7131
  */
7074
7132
  triggerSortEvent (evnt, column, order) {
7075
- const { mouseConfig } = props
7076
7133
  const sortOpts = computeSortOpts.value
7077
- const mouseOpts = computeMouseOpts.value
7078
7134
  const { field, sortable } = column
7079
7135
  if (sortable) {
7080
7136
  if (!order || column.order === order) {
@@ -7082,11 +7138,7 @@ export default defineComponent({
7082
7138
  } else {
7083
7139
  tableMethods.sort({ field, order })
7084
7140
  }
7085
- const params = { $table: $xeTable, $event: evnt, column, field, property: field, order: column.order, sortList: tableMethods.getSortColumns(), sortTime: column.sortTime }
7086
- if (mouseConfig && mouseOpts.area && $xeTable.handleSortEvent) {
7087
- $xeTable.handleSortEvent(evnt, params)
7088
- }
7089
- dispatchEvent('sort-change', params, evnt)
7141
+ $xeTable.handleColumnSortEvent(evnt, column)
7090
7142
  }
7091
7143
  },
7092
7144
  /**
@@ -7101,15 +7153,16 @@ export default defineComponent({
7101
7153
  handleRowDragDragendEvent (evnt) {
7102
7154
  const { treeConfig, dragConfig } = props
7103
7155
  const rowDragOpts = computeRowDragOpts.value
7104
- const { fullAllDataRowIdData } = internalData
7156
+ const { fullAllDataRowIdData, prevDragToChild } = internalData
7105
7157
  const { isCrossDrag, isSelfToChildDrag, dragEndMethod } = rowDragOpts
7106
7158
  const treeOpts = computeTreeOpts.value
7107
- const { transform, mapChildrenField, parentField } = treeOpts
7159
+ const { transform, rowField, mapChildrenField, parentField } = treeOpts
7108
7160
  const childrenField = treeOpts.children || treeOpts.childrenField
7109
7161
  const { dragRow } = reactData
7110
7162
  const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData
7111
7163
  const dEndMethod = dragEndMethod || (dragConfig ? dragConfig.dragEndMethod : null)
7112
7164
  const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
7165
+ console.log(evnt.ctrlKey)
7113
7166
  if (prevDragRow && dragRow) {
7114
7167
  // 判断是否有拖动
7115
7168
  if (prevDragRow !== dragRow) {
@@ -7211,7 +7264,7 @@ export default defineComponent({
7211
7264
  childRow[parentField] = dragRow[parentField]
7212
7265
  })
7213
7266
  }
7214
- dragRow[parentField] = prevDragRow[parentField]
7267
+ dragRow[parentField] = prevDragToChild ? prevDragRow[rowField] : prevDragRow[parentField]
7215
7268
 
7216
7269
  internalData.tableFullTreeData = XEUtils.toArrayTree(fullList, {
7217
7270
  key: treeOpts.rowField,
@@ -7278,12 +7331,15 @@ export default defineComponent({
7278
7331
  const { treeConfig } = props
7279
7332
  const { fullAllDataRowIdData } = internalData
7280
7333
  const { dragRow } = reactData
7334
+ const treeOpts = computeTreeOpts.value
7335
+ const { transform } = treeOpts
7281
7336
  const rowDragOpts = computeRowDragOpts.value
7282
- const { isCrossDrag } = rowDragOpts
7337
+ const { isCrossDrag, isToChildDrag } = rowDragOpts
7283
7338
  if (!dragRow) {
7284
7339
  evnt.preventDefault()
7285
7340
  return
7286
7341
  }
7342
+ const hasCtrlKey = evnt.ctrlKey
7287
7343
  const trEl = evnt.currentTarget as HTMLElement
7288
7344
  const rowid = trEl.getAttribute('rowid') || ''
7289
7345
  const rest = fullAllDataRowIdData[rowid]
@@ -7297,6 +7353,7 @@ export default defineComponent({
7297
7353
  showDropTip(evnt, trEl, null, false, dragPos)
7298
7354
  return
7299
7355
  }
7356
+ internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey)
7300
7357
  internalData.prevDragRow = row
7301
7358
  internalData.prevDragPos = dragPos
7302
7359
  showDropTip(evnt, trEl, null, true, dragPos)
@@ -7451,6 +7508,7 @@ export default defineComponent({
7451
7508
  showDropTip(evnt, null, thEl, false, dragPos)
7452
7509
  return
7453
7510
  }
7511
+ internalData.prevDragToChild = false
7454
7512
  internalData.prevDragCol = column
7455
7513
  internalData.prevDragPos = dragPos
7456
7514
  showDropTip(evnt, null, thEl, true, dragPos)
@@ -7956,6 +8014,9 @@ export default defineComponent({
7956
8014
  h('span', {
7957
8015
  class: ['vxe-table--drag-sort-tip-normal-status', dragRow ? getIcon().TABLE_DRAG_STATUS_ROW : getIcon().TABLE_DRAG_STATUS_COLUMN]
7958
8016
  }),
8017
+ h('span', {
8018
+ class: ['vxe-table--drag-sort-tip-sub-status', getIcon().TABLE_DRAG_STATUS_SUB_ROW]
8019
+ }),
7959
8020
  h('span', {
7960
8021
  class: ['vxe-table--drag-sort-tip-disabled-status', getIcon().TABLE_DRAG_DISABLED]
7961
8022
  })
@@ -259,6 +259,7 @@ VxeUI.setIcon({
259
259
  TABLE_DRAG_ROW: iconPrefix + 'drag-handle',
260
260
  TABLE_DRAG_COLUMN: iconPrefix + 'drag-handle',
261
261
  TABLE_DRAG_STATUS_ROW: iconPrefix + 'sort',
262
+ TABLE_DRAG_STATUS_SUB_ROW: iconPrefix + 'add-sub',
262
263
  TABLE_DRAG_STATUS_COLUMN: iconPrefix + 'swap',
263
264
  TABLE_DRAG_DISABLED: iconPrefix + 'no-drop',
264
265
 
@@ -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