vxe-table 3.11.24 → 3.11.26

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.1733816028970.ttf → iconfont.1733885890565.ttf} +0 -0
  2. package/es/iconfont.1733885890565.woff +0 -0
  3. package/es/iconfont.1733885890565.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 +77 -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.1733816028970.ttf → iconfont.1733885890565.ttf} +0 -0
  18. package/lib/iconfont.1733885890565.woff +0 -0
  19. package/lib/iconfont.1733885890565.woff2 +0 -0
  20. package/lib/index.css +1 -1
  21. package/lib/index.min.css +1 -1
  22. package/lib/index.umd.js +152 -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 +104 -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 +80 -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.1733816028970.woff +0 -0
  51. package/es/iconfont.1733816028970.woff2 +0 -0
  52. package/lib/iconfont.1733816028970.woff +0 -0
  53. package/lib/iconfont.1733816028970.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
 
@@ -5031,23 +5034,36 @@ const Methods = {
5031
5034
  }
5032
5035
  }
5033
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
+ },
5034
5052
  /**
5035
5053
  * 点击排序事件
5036
5054
  */
5037
5055
  triggerSortEvent (evnt: any, column: any, order: any) {
5038
- const { sortOpts } = this
5056
+ const $xeTable = this
5057
+
5058
+ const sortOpts = $xeTable.computeSortOpts
5039
5059
  const { field, sortable, remoteSort } = column
5040
5060
  if (sortable || remoteSort) {
5041
5061
  if (!order || column.order === order) {
5042
- this.clearSort(sortOpts.multiple ? column : null)
5062
+ $xeTable.clearSort(sortOpts.multiple ? column : null)
5043
5063
  } else {
5044
- this.sort({ field, order })
5064
+ $xeTable.sort({ field, order })
5045
5065
  }
5046
- const params = { $table: this, $event: evnt, column, field, property: field, order: column.order, sortList: this.getSortColumns(), sortTime: column.sortTime }
5047
- if (this.mouseConfig && this.mouseOpts.area && this.handleSortEvent) {
5048
- this.handleSortEvent(evnt, params)
5049
- }
5050
- this.emitEvent('sort-change', params, evnt)
5066
+ $xeTable.handleColumnSortEvent(evnt, column)
5051
5067
  }
5052
5068
  },
5053
5069
  /**
@@ -5067,10 +5083,10 @@ const Methods = {
5067
5083
 
5068
5084
  const { treeConfig, dragConfig } = props
5069
5085
  const rowDragOpts = $xeTable.computeRowDragOpts
5070
- const { fullAllDataRowIdData } = internalData
5086
+ const { fullAllDataRowIdData, prevDragToChild } = internalData
5071
5087
  const { isCrossDrag, isSelfToChildDrag, dragEndMethod } = rowDragOpts
5072
5088
  const treeOpts = $xeTable.computeTreeOpts
5073
- const { transform, mapChildrenField, parentField } = treeOpts
5089
+ const { transform, rowField, mapChildrenField, parentField } = treeOpts
5074
5090
  const childrenField = treeOpts.children || treeOpts.childrenField
5075
5091
  const { dragRow } = reactData
5076
5092
  const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData
@@ -5177,7 +5193,7 @@ const Methods = {
5177
5193
  childRow[parentField] = dragRow[parentField]
5178
5194
  })
5179
5195
  }
5180
- dragRow[parentField] = prevDragRow[parentField]
5196
+ dragRow[parentField] = prevDragToChild ? prevDragRow[rowField] : prevDragRow[parentField]
5181
5197
 
5182
5198
  internalData.tableFullTreeData = XEUtils.toArrayTree(fullList, {
5183
5199
  key: treeOpts.rowField,
@@ -5249,12 +5265,15 @@ const Methods = {
5249
5265
  const { treeConfig } = props
5250
5266
  const { fullAllDataRowIdData } = internalData
5251
5267
  const { dragRow } = reactData
5268
+ const treeOpts = $xeTable.computeTreeOpts
5269
+ const { transform } = treeOpts
5252
5270
  const rowDragOpts = $xeTable.computeRowDragOpts
5253
- const { isCrossDrag } = rowDragOpts
5271
+ const { isCrossDrag, isToChildDrag } = rowDragOpts
5254
5272
  if (!dragRow) {
5255
5273
  evnt.preventDefault()
5256
5274
  return
5257
5275
  }
5276
+ const hasCtrlKey = evnt.ctrlKey
5258
5277
  const trEl = evnt.currentTarget as HTMLElement
5259
5278
  const rowid = trEl.getAttribute('rowid') || ''
5260
5279
  const rest = fullAllDataRowIdData[rowid]
@@ -5268,6 +5287,7 @@ const Methods = {
5268
5287
  showDropTip($xeTable, evnt, trEl, null, false, dragPos)
5269
5288
  return
5270
5289
  }
5290
+ internalData.prevDragToChild = !!(treeConfig && transform && isToChildDrag && hasCtrlKey)
5271
5291
  internalData.prevDragRow = row
5272
5292
  internalData.prevDragPos = dragPos
5273
5293
  showDropTip($xeTable, evnt, trEl, null, true, dragPos)
@@ -5438,6 +5458,7 @@ const Methods = {
5438
5458
  showDropTip($xeTable, evnt, null, thEl, false, dragPos)
5439
5459
  return
5440
5460
  }
5461
+ internalData.prevDragToChild = false
5441
5462
  internalData.prevDragCol = column
5442
5463
  internalData.prevDragPos = dragPos
5443
5464
  showDropTip($xeTable, evnt, null, thEl, true, dragPos)
@@ -5600,6 +5621,52 @@ const Methods = {
5600
5621
  }
5601
5622
  return this.$nextTick()
5602
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
+ },
5603
5670
  /**
5604
5671
  * 清空指定列的排序条件
5605
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,d09GMgABAAAAAA4sAAsAAAAAHRQAAA3eAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFQGYACHVAqjcJ1LATYCJAOBAAtCAAQgBYVHB4NYG+sYM5JyVlay/8sBN2RCDfWvgkAhqbTMjLTs0ehRWEywWCRzi0LwHxK9kTUNNS55p6fNbt65HNwp7H8rtbjRW7SdwvxfXHh+XhtKyQPPXPubn4i8fpEomkiWCe1KRBO0TqrkbXCNjAHXvPvIxMgl6EB1RrMd0DbvfTDAf8J+ouwYYeWieDB6TJZlwxJx0ciqwWXgonDVCch0GJQzLU8sLAECzP1/99Mb+JRXoIzZTag5diUJpEYaE5vYD2fCrlZOiS5TS77V1MawXN9+TS+7DMLmAxIR4toy5H/n8scm71xhz6ObUBNyiggT29iW3R2nI4ACPN/N944mEZoc3W4pr2cfFgOTa6XdfJldd262mLJQZ1yFrzBJDnPJQY737omOH2j/S0DjAeUj7BZYVVVWWBKursJVmOpqXSFt3ZhGXfsUlcplsNx2YDWLopZpv/RjBKBudyq8fvPpl8H3oGQIsculAQRNg33swbiuA6SYOQHNo6QdNsZPSCB8dzoL4MP5/sEBYtMgJEcur3Q7e+3N4edxc1CdQ0f0DbrydkL3IUhABHYtC4a38WXBjUE9unOYofsTghKscWQrFo1AEEEPChlGI5OYjU3cIDPNt8R+nvLn8XyVUvu7YFbcHIeDHGDH7cubvX8v1yNwu4Ljcaf/BY+xkYZcTGYopcg3MNGX0VgEhaEWh8sTqaxM1TQ2BCk0bgLBE01vKBAGGVMQkBFFBKQBRQ/IjKJQiI98GIQEvBFCHXwShAX4bAgpuA2QAEoc0qMMggwoMyETynxIn7JEyMD7QcjBT0Fogn8BJITqOGRO9RYypHoHaUH1HtKG6oPQAf8ISJefFCFy+D4IS/D9gKz4LYBMOayA1OBvtrAGn4M2NmBrDXMO8ABIvkD2aC7uf6pGhOsEURVIDJhugkmSiUQqU9Jy0vaXWysirZvNNV091slafKV1uaZMkrNWKI1GQJDDUOvShDW4VdNb5UYyL7wu167J7bWr5tXtE34oZoWWByiXpwVCoBbuI0beZ6JNf4Ur7gJgOghxk2g6xMqZSJC/RspEGULMkqqHD8/NB5gFpNpOjUQdqM2FK5rxXmGm1UoNqVMgdW/aDGSO070h1aRZxUQia61UAwbFOVXUz8gGhEYvvPjZ1V33udfrb0wmr829VnPVX2e0XDrJ1ap26ZMYKjMqcznzuTybOXYaf7g88DJAhQbFs3KTEyV3AbIDtHrWCCu6lKkjt/Jn7RVq/yKVvHp6KO9Jq7QFL1Cpp/1RhVpqFKuPLNB88wYpDzAbNIGYrfBS0UL1Ebt1ht2P5nvbOOYnBBpsK0phE3qWp3e1LvJ0P065MQjoCfkfsxtVHoyiYjujO6hnsAqrMtUAf+l9Asm0+eth8FTQDTusJMOoYfafkLD+GBh6lWuzXQD5cBl3LztIs/s6GOJ9f4w63nsbUPU6885HmZeGDMyKP0DMtYoIuAeCn9fHBIz8T0piZeuIw97seaJwrQPbcm/G1f7CXa7JNaknder3edN/Ig3SZHQJNq9JaTzNNSmWJTTceOpiAomhjwN6E+QfVlOBO5RfAD4Nop1KcbWXpeA8PY4NUPexCEyBckFxjKo6mXQ2SncZRzNf59EM4GjmIBYrM4Y7IeK4hyIMNzQYFPrj0F+B/tMB/vDHb3kPN8U6zSl1T5Y6+9t+UdKk8W3PAgVMMkdQsvUFj2pnwdkp4SrKQarhta17vZp0XvejBVt8thh/6OSLRb/rHKHV99RKngSdOFdnuqY3nXSfoXpYiRsFj6QUdlFtYkKTLq4G0SMoxfmVcveTQTYdWtFsPNmgm6f8fPtF4OO2VTxkTHvIZMisz6yh1jLLWyAcS2lmmG0QF317EWA2yPZa2z5attcZc/Fhaqd3l4qSC5Z4QKhxHJI6y9r6tjdQK+UGrrLNc77nABvSaFULOSYfU5B6T5jahCDLgkz0sXs3coF5PEnSjDs9lTahskZtT1WbliMqo+caHugyz4lXrtmwzYvUaMkFdPocjno57vvAHNMyb5VqYf1aAONFWhLID5nLK4Pe/jXK+YELvRcSqmWhqoU02k5iIaL3UY/nX1+hVoNuqRfZkU1qVKtSVAt305Q6L3NSK0osPNKcObnWR92/pnEYcwJVu3EfReDCtrWvnC/vZSgrxdiEGCvVbDEhWrEMExEsrKwdFsH+2MzVckW8cNp2Xd6neWss31mq2thI2jvauE/L4jQqVUjJJol+CXjrBd0pJCWfoqQ82HLPv8C50E11Fl0cocR4vJuRxADsurfZdbjq+beWPCLbJdLtHI2pboN/KdYjn3835OHZruIsDV+EG+BmUHlkSXhK77Q+IeeJ/kR1Ro+sHpXBI6ImMMbgZTlVueWPGOPxMTnleZXDo/qKqTuStYVxZEwMGac+H1cYoyRj3+h59ULkDM7NJsmYt9mxF7cmxJv5mTxLQoI2bjSdDo8jrXgcTlLd3c5KSDyOS4pF74XtmC1qF2J8ljds0VTfdKWB6TZVNI9MTY1//nx8HhqXlpG9XS41C7OEZqk8hwVCNK12gEIjl2sUAz4TyaeRv4f/TFMTHK0DwdfaWTkHNnmzE+fhRcRYomT00ziwTKfgxJJ9RPC4YE2NsNC8/FAVa4fmhwuHHxMXPzulVjtZJpO0k7WyyTLt7qUSl3mKAaMxOTZ2cuFFJILDX6QxLS+sWKeKtgos3n7BmSeU5azhYME8uOPPW/LA4VM6bM5cRjaf5Cv52XnYO9dFrjoV9WeiRMet9C7SERGQpFfnU/NB9ccxU+cGRKSlQoIkY7Ug+Qo/q68kC1bzLwZC/+v3XbzQ86tO5+7eswdQHlmd+X81E1CrQ7B6QFc5J0oxaM5gxeA5cgUnsqPyIykRHXT4+a2pSG6SD5av+6oL5Tw0Uv2pFeCIGNtPVtmlS6Ws32sioL58P9lrqY5L32CtOvaxkmIRyUN0eXXseaoP4icqZzPsxrwGrff43AajHRK2Xth8fIgy1LXhzNyG3A0NvrOhNHnjvGHr7Ya3cXZFHDbtmO0A2Ax7xTsePjTrTpy243ztlrVwxIQZ+yS13QWnhX+8pG0JM4Tc2I6JOMulTidEuHjUpt62pTV6B84m2DiWcNjYdrKD8fLtOIsjkp3GYeGg5fJt0a2V8EdoD2IPpxQFZwQGZgQL5WUyAoO5e3rkB9UEFTFdIFtNaWOFhx/3qxvlwmxfvHg/Mxg6WamEOwEdVFHFd+EuDCEQbFNGxjiyTYeudoq+Dxemf8fALnz/dAz+luHmTYMfy89w9Gin/bSL+E24d88Afd9JkByXQPS1eABqIAVDJMwc4KOw9CVErsf0MopZ2TT0ROKGgyiiBpqbhw3Lydl1QaUPYjLuYmCPM9r/UjPMlg8ZKpuxlEiodZphpqzG4Iv4Gd5PmE6E2tiS0pjxUyaaA9fGToQJ0e9tleBe/VjuVnfWJcYEe4xHYr/AfomB1tmWLubMkswLzNnPBJeUIfQ660UGts7SfNWAdCWKZ2G7qSrqTaNkN5bFAf7Q0ZsEk/ZGvt2w/hkWz43HXpx/lUEQy1n05LGZa3782MqRHAb5Uafd/DSs1mpvuEut8rpvu0hh7NdP0rDZmkn6s0z8zLveQE23260mTMaasQDzfD9hXVt7oCes/zEMHDQwlC3osHbKktAeoWHd0dGrO613PrFpw7EFM1gyzGS32tOB2vvdGZx5dpKerdGw9ZP2MygXbfe9qFWeDVZ77UUaf3dj2v7yar0HnyeKwe3YKYsTg6d9f/FZ5CGplLFuFpHEVzMtaOASwfCnO53W1aN7oGGhaPckmbWzQ8AeTsOKbho7da7wIXJ2cXM7g4KhQRp/8A1KO/U1O0zD8uw1tJsjXz2Mhsv2MWi83CEuoD3k43NQD/nwETQN1cWH0FTIp+6iSfJBcRTNkE/uR2Vfd3kzGgkAiNdJaWzGt9MzXOa4w3YQWDFnF8qlv8ti0rLHHZNPM9BE04VYp3sFn9PgOJCZumNDmfzFx9EUhx5tmzcL1p9i3eH20riugqH45kr/d3bTf9O5mJQuOyT0P4kYgUucgR9e5aUUBP4i7OZYDuxRdDuxw8n/zbC0xrQHlUBPcAB1PQn41VXUgPttdjdTE4t6nHWlcFRGReBBKJATZEqAyUcJ8YBUFBP0H5kIYTagMLsBcAKrDYV0cEoRcPgpIh38kKQZiI8ikyBJVNFN6K4YyHbL+sic9M0UBEVvu42Njilwe12uUaFLyD/oD+xbAlHtFt/yD0qNTHY2nqqzb5FQqhigLvu5arBBONs351fDlNgW4Wt0Oh5Uy9VkEnSGx46zeUkgoJBndTbWppHDSKitltbQSYBO8nYbR3+s1F5bXRuQlPtE6R+aElXkH581MzbNAd4yyrXbntB6nNObJ1RgGRWayaw3REXpmmJW0Xd1DTlqbMiRKK5MyOFCWjau352fRua+3uPlxbcJFClRpkKVGnUaNGnR/p0woKdvYGhkbGLqV+8tLSytrG1s7ew5Au9HtXX7dQUlf0sWPSIeeeGyjz7q3X8Nq0amkYviEo5CTOlCwEceuQHdX/S3OUvk6gdFIum9Szte64e7cK0q55Hj1DLdyBhqtO721IGgjjyv6NjPb+XMzUjsB43TlTDoaWgpVSeIdJwjxSja4u3qHKW1OgyNCNPxUpMY/FEtUWgoZyDCq/MbHQoWBD3zAv1oAPIJn5RSO5JHRSk+CNr32GErpORGiOsOkXZYVAed8vymbynYoj/4TPAbAw==') 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