vxe-table 3.10.6 → 3.10.8
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.
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +31 -8
- package/es/table/module/validator/mixin.js +1 -1
- package/es/table/src/body.js +14 -8
- package/es/table/src/cell.js +7 -3
- package/es/table/src/header.js +2 -2
- package/es/table/src/methods.js +67 -17
- package/es/table/src/table.js +10 -3
- package/es/table/style.css +25 -15
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +3 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +25 -15
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.umd.js +136 -36
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/custom/panel.js +31 -5
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/validator/mixin.js +1 -1
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/src/body.js +5 -3
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +10 -3
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/header.js +2 -2
- package/lib/table/src/methods.js +70 -16
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +13 -3
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +25 -15
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +3 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +25 -15
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/panel.ts +34 -8
- package/packages/table/module/validator/mixin.ts +6 -1
- package/packages/table/src/body.ts +14 -8
- package/packages/table/src/cell.ts +9 -5
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/methods.ts +68 -17
- package/packages/table/src/table.ts +10 -3
- package/packages/ui/index.ts +2 -1
- package/styles/components/table-module/custom.scss +2 -1
- package/styles/components/table.scss +36 -26
- /package/es/{iconfont.1730978752470.ttf → iconfont.1731060585164.ttf} +0 -0
- /package/es/{iconfont.1730978752470.woff → iconfont.1731060585164.woff} +0 -0
- /package/es/{iconfont.1730978752470.woff2 → iconfont.1731060585164.woff2} +0 -0
- /package/lib/{iconfont.1730978752470.ttf → iconfont.1731060585164.ttf} +0 -0
- /package/lib/{iconfont.1730978752470.woff → iconfont.1731060585164.woff} +0 -0
- /package/lib/{iconfont.1730978752470.woff2 → iconfont.1731060585164.woff2} +0 -0
|
@@ -339,6 +339,17 @@ function clearRowDropOrigin ($xeTable: any) {
|
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
341
|
|
|
342
|
+
function updateRowDropOrigin ($xeTable: any, row: any) {
|
|
343
|
+
const el = $xeTable.$el
|
|
344
|
+
if (el) {
|
|
345
|
+
const clss = 'row--drag-origin'
|
|
346
|
+
const rowid = getRowid($xeTable, row)
|
|
347
|
+
XEUtils.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`), (elem) => {
|
|
348
|
+
addClass(elem, clss)
|
|
349
|
+
})
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
|
|
342
353
|
function clearRowDropTarget ($xeTable: any) {
|
|
343
354
|
const el = $xeTable.$el
|
|
344
355
|
if (el) {
|
|
@@ -349,6 +360,18 @@ function clearRowDropTarget ($xeTable: any) {
|
|
|
349
360
|
}
|
|
350
361
|
}
|
|
351
362
|
|
|
363
|
+
function updateRowDropTarget ($xeTable: any, row: any, dragPos: string) {
|
|
364
|
+
const el = $xeTable.$el
|
|
365
|
+
if (el) {
|
|
366
|
+
const clss = 'row--drag-active-target'
|
|
367
|
+
const rowid = getRowid($xeTable, row)
|
|
368
|
+
XEUtils.arrayEach(el.querySelectorAll(`[rowid="${rowid}"]`), (elem: any) => {
|
|
369
|
+
addClass(elem, clss)
|
|
370
|
+
elem.setAttribute('drag-pos', dragPos)
|
|
371
|
+
})
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
352
375
|
function showRowDropTip (evnt: DragEvent | MouseEvent, $xeTable: any) {
|
|
353
376
|
const rdTipEl = $xeTable.$refs.refRowDragTipElem as HTMLDivElement
|
|
354
377
|
if (!rdTipEl) {
|
|
@@ -376,7 +399,18 @@ const hideRowDropTip = ($xeTable: any) => {
|
|
|
376
399
|
const updateRowDropTipContent = ($xeTable: any, tdEl: HTMLElement) => {
|
|
377
400
|
const reactData = $xeTable
|
|
378
401
|
|
|
379
|
-
|
|
402
|
+
const { dragRow } = reactData
|
|
403
|
+
const dragOpts = $xeTable.computeDragOpts
|
|
404
|
+
const { rowTooltipMethod } = dragOpts
|
|
405
|
+
let tipContent = ''
|
|
406
|
+
if (rowTooltipMethod) {
|
|
407
|
+
tipContent = `${rowTooltipMethod({
|
|
408
|
+
row: dragRow
|
|
409
|
+
}) || ''}`
|
|
410
|
+
} else {
|
|
411
|
+
tipContent = getI18n('vxe.table.dragTip', [tdEl.textContent || ''])
|
|
412
|
+
}
|
|
413
|
+
reactData.dragTipText = tipContent
|
|
380
414
|
}
|
|
381
415
|
|
|
382
416
|
const Methods = {
|
|
@@ -4577,7 +4611,7 @@ const Methods = {
|
|
|
4577
4611
|
const treeOpts = $xeTable.computeTreeOpts
|
|
4578
4612
|
const { transform } = treeOpts
|
|
4579
4613
|
const { dragRow } = reactData
|
|
4580
|
-
const { afterFullData, tableFullData, prevDragRow, prevDragPos } = internalData
|
|
4614
|
+
const { afterFullData, afterTreeFullData, tableFullData, tableFullTreeData, prevDragRow, prevDragPos } = internalData
|
|
4581
4615
|
if (prevDragRow && dragRow) {
|
|
4582
4616
|
// 判断是否有拖动
|
|
4583
4617
|
if (prevDragRow !== dragRow) {
|
|
@@ -4594,18 +4628,36 @@ const Methods = {
|
|
|
4594
4628
|
}
|
|
4595
4629
|
const dragOffsetIndex = prevDragPos === 'bottom' ? 1 : 0
|
|
4596
4630
|
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4601
|
-
|
|
4602
|
-
|
|
4603
|
-
|
|
4604
|
-
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4631
|
+
let oafIndex = -1
|
|
4632
|
+
let nafIndex = -1
|
|
4633
|
+
if (treeConfig) {
|
|
4634
|
+
// 移出源位置
|
|
4635
|
+
oafIndex = $xeTable.findRowIndexOf(afterTreeFullData, dragRow)
|
|
4636
|
+
const otfIndex = $xeTable.findRowIndexOf(tableFullTreeData, dragRow)
|
|
4637
|
+
afterTreeFullData.splice(oafIndex, 1)
|
|
4638
|
+
tableFullTreeData.splice(otfIndex, 1)
|
|
4639
|
+
|
|
4640
|
+
// 插新位置
|
|
4641
|
+
const pafIndex = $xeTable.findRowIndexOf(afterTreeFullData, prevDragRow)
|
|
4642
|
+
const ptfIndex = $xeTable.findRowIndexOf(tableFullTreeData, prevDragRow)
|
|
4643
|
+
nafIndex = pafIndex + dragOffsetIndex
|
|
4644
|
+
const ntfIndex = ptfIndex + dragOffsetIndex
|
|
4645
|
+
afterTreeFullData.splice(nafIndex, 0, dragRow)
|
|
4646
|
+
tableFullTreeData.splice(ntfIndex, 0, dragRow)
|
|
4647
|
+
} else {
|
|
4648
|
+
// 移出源位置
|
|
4649
|
+
oafIndex = $xeTable.findRowIndexOf(afterFullData, dragRow)
|
|
4650
|
+
const otfIndex = $xeTable.findRowIndexOf(tableFullData, dragRow)
|
|
4651
|
+
afterFullData.splice(oafIndex, 1)
|
|
4652
|
+
tableFullData.splice(otfIndex, 1)
|
|
4653
|
+
// 插新位置
|
|
4654
|
+
const pafIndex = $xeTable.findRowIndexOf(afterFullData, prevDragRow)
|
|
4655
|
+
const ptfIndex = $xeTable.findRowIndexOf(tableFullData, prevDragRow)
|
|
4656
|
+
nafIndex = pafIndex + dragOffsetIndex
|
|
4657
|
+
const ntfIndex = ptfIndex + dragOffsetIndex
|
|
4658
|
+
afterFullData.splice(nafIndex, 0, dragRow)
|
|
4659
|
+
tableFullData.splice(ntfIndex, 0, dragRow)
|
|
4660
|
+
}
|
|
4609
4661
|
|
|
4610
4662
|
reactData.isDragRowMove = true
|
|
4611
4663
|
$xeTable.cacheRowMap()
|
|
@@ -4659,8 +4711,7 @@ const Methods = {
|
|
|
4659
4711
|
const { dragRow } = reactData
|
|
4660
4712
|
const offsetY = evnt.clientY - trEl.getBoundingClientRect().y
|
|
4661
4713
|
const dragPos = offsetY < trEl.clientHeight / 2 ? 'top' : 'bottom'
|
|
4662
|
-
|
|
4663
|
-
trEl.setAttribute('drag-pos', dragPos)
|
|
4714
|
+
updateRowDropTarget($xeTable, row, dragPos)
|
|
4664
4715
|
internalData.prevDragRow = row
|
|
4665
4716
|
internalData.prevDragPos = dragPos
|
|
4666
4717
|
$xeTable.dispatchEvent('row-dragover', {
|
|
@@ -4692,7 +4743,7 @@ const Methods = {
|
|
|
4692
4743
|
}
|
|
4693
4744
|
reactData.dragRow = row
|
|
4694
4745
|
trEl.draggable = true
|
|
4695
|
-
|
|
4746
|
+
updateRowDropOrigin($xeTable, row)
|
|
4696
4747
|
showRowDropTip(evnt, $xeTable)
|
|
4697
4748
|
updateRowDropTipContent($xeTable, tdEl)
|
|
4698
4749
|
$xeTable.dispatchEvent('row-dragstart', params, evnt)
|
|
@@ -1044,6 +1044,7 @@ export default {
|
|
|
1044
1044
|
const VxeUITooltipComponent = VxeUI.getComponent<VxeTooltipComponent>('VxeTooltip')
|
|
1045
1045
|
|
|
1046
1046
|
const $xeTable = this
|
|
1047
|
+
const reactData = $xeTable
|
|
1047
1048
|
|
|
1048
1049
|
const {
|
|
1049
1050
|
_e,
|
|
@@ -1089,10 +1090,14 @@ export default {
|
|
|
1089
1090
|
loadingOpts,
|
|
1090
1091
|
editRules
|
|
1091
1092
|
} = $xeTable
|
|
1093
|
+
const { dragRow, dragTipText } = reactData
|
|
1092
1094
|
const { leftList, rightList } = columnStore
|
|
1093
1095
|
const currLoading = this._isLoading || loading
|
|
1094
1096
|
const vSize = computeSize
|
|
1097
|
+
const dragOpts = $xeTable.computeDragOpts
|
|
1095
1098
|
const virtualScrollBars = $xeTable.computeVirtualScrollBars
|
|
1099
|
+
const dragSlots = dragOpts.slots || {}
|
|
1100
|
+
const rowTipSlot = dragSlots.rowTip
|
|
1096
1101
|
return h('div', {
|
|
1097
1102
|
class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
|
|
1098
1103
|
[`valid-msg--${validOpts.msgMode}`]: !!editRules,
|
|
@@ -1339,11 +1344,13 @@ export default {
|
|
|
1339
1344
|
/**
|
|
1340
1345
|
* 拖拽提示
|
|
1341
1346
|
*/
|
|
1342
|
-
rowOpts.drag
|
|
1347
|
+
rowOpts.drag && (dragRow || dragTipText)
|
|
1343
1348
|
? h('div', {
|
|
1344
1349
|
ref: 'refRowDragTipElem',
|
|
1345
|
-
class: 'vxe-table--row-drag-
|
|
1346
|
-
},
|
|
1350
|
+
class: 'vxe-table--row-drag-tip'
|
|
1351
|
+
}, rowTipSlot
|
|
1352
|
+
? (dragRow ? this.callSlot(rowTipSlot, { row: dragRow }, h) : [renderEmptyElement($xeTable)])
|
|
1353
|
+
: (dragTipText ? [h('span', dragTipText)] : [renderEmptyElement($xeTable)]))
|
|
1347
1354
|
: _e(),
|
|
1348
1355
|
h('div', {}, [
|
|
1349
1356
|
/**
|
package/packages/ui/index.ts
CHANGED
|
@@ -1299,7 +1299,7 @@
|
|
|
1299
1299
|
.vxe-body--row-list-move {
|
|
1300
1300
|
transition: transform 0.35s;
|
|
1301
1301
|
}
|
|
1302
|
-
.vxe-table--row-drag-
|
|
1302
|
+
.vxe-table--row-drag-tip {
|
|
1303
1303
|
display: none;
|
|
1304
1304
|
position: absolute;
|
|
1305
1305
|
top: 0;
|
|
@@ -1427,30 +1427,40 @@
|
|
|
1427
1427
|
|
|
1428
1428
|
/*校验不通过*/
|
|
1429
1429
|
.vxe-body--column {
|
|
1430
|
+
.vxe-cell--valid-error-tip {
|
|
1431
|
+
width: 100%;
|
|
1432
|
+
position: absolute;
|
|
1433
|
+
left: 50%;
|
|
1434
|
+
font-size: 12px;
|
|
1435
|
+
line-height: 1.2em;
|
|
1436
|
+
transform: translateX(-50%);
|
|
1437
|
+
text-align: left;
|
|
1438
|
+
z-index: 4;
|
|
1439
|
+
padding-left: var(--vxe-ui-table-cell-padding-left);
|
|
1440
|
+
padding-right: var(--vxe-ui-table-cell-padding-right);
|
|
1441
|
+
}
|
|
1442
|
+
.vxe-cell--valid-error-wrapper {
|
|
1443
|
+
display: inline-block;
|
|
1444
|
+
border-radius: var(--vxe-ui-border-radius);
|
|
1445
|
+
pointer-events: auto;
|
|
1446
|
+
}
|
|
1447
|
+
.vxe-cell--valid-error-theme-beautify {
|
|
1448
|
+
padding: 0.4em 0.8em;
|
|
1449
|
+
color: #fff;
|
|
1450
|
+
background-color: #f56c6c;
|
|
1451
|
+
.vxe-cell--valid-error-msg {
|
|
1452
|
+
background: transparent;
|
|
1453
|
+
}
|
|
1454
|
+
}
|
|
1455
|
+
.vxe-cell--valid-error-theme-normal {
|
|
1456
|
+
color: var(--vxe-ui-table-validate-error-color);
|
|
1457
|
+
background-color: var(--vxe-ui-table-validate-error-background-color);
|
|
1458
|
+
}
|
|
1430
1459
|
&.col--active,
|
|
1431
1460
|
&.col--selected {
|
|
1432
1461
|
position: relative;
|
|
1433
1462
|
}
|
|
1434
1463
|
&.col--valid-error {
|
|
1435
|
-
.vxe-cell--valid-error-hint {
|
|
1436
|
-
width: 100%;
|
|
1437
|
-
position: absolute;
|
|
1438
|
-
left: 50%;
|
|
1439
|
-
font-size: 12px;
|
|
1440
|
-
line-height: 1.2em;
|
|
1441
|
-
transform: translateX(-50%);
|
|
1442
|
-
text-align: left;
|
|
1443
|
-
z-index: 4;
|
|
1444
|
-
padding-left: var(--vxe-ui-table-cell-padding-left);
|
|
1445
|
-
padding-right: var(--vxe-ui-table-cell-padding-right);
|
|
1446
|
-
.vxe-cell--valid-error-msg {
|
|
1447
|
-
display: inline-block;
|
|
1448
|
-
border-radius: var(--vxe-ui-border-radius);
|
|
1449
|
-
color: var(--vxe-ui-table-validate-error-color);
|
|
1450
|
-
background-color: var(--vxe-ui-table-validate-error-background-color);
|
|
1451
|
-
pointer-events: auto;
|
|
1452
|
-
}
|
|
1453
|
-
}
|
|
1454
1464
|
.vxe-default-input,
|
|
1455
1465
|
.vxe-default-textarea,
|
|
1456
1466
|
.vxe-default-select {
|
|
@@ -1465,11 +1475,11 @@
|
|
|
1465
1475
|
&.valid-msg--single {
|
|
1466
1476
|
.vxe-body--row {
|
|
1467
1477
|
&:last-child {
|
|
1468
|
-
.vxe-cell--valid-error-
|
|
1478
|
+
.vxe-cell--valid-error-tip {
|
|
1469
1479
|
bottom: calc(100%);
|
|
1470
1480
|
}
|
|
1471
1481
|
&:first-child {
|
|
1472
|
-
.vxe-cell--valid-error-
|
|
1482
|
+
.vxe-cell--valid-error-tip {
|
|
1473
1483
|
bottom: auto;
|
|
1474
1484
|
}
|
|
1475
1485
|
}
|
|
@@ -1479,7 +1489,7 @@
|
|
|
1479
1489
|
&.valid-msg--full {
|
|
1480
1490
|
.vxe-body--row {
|
|
1481
1491
|
&:last-child {
|
|
1482
|
-
.vxe-cell--valid-error-
|
|
1492
|
+
.vxe-cell--valid-error-tip {
|
|
1483
1493
|
top: calc(100% - 1.3em);
|
|
1484
1494
|
}
|
|
1485
1495
|
}
|
|
@@ -1489,7 +1499,7 @@
|
|
|
1489
1499
|
&.old-cell-valid {
|
|
1490
1500
|
.vxe-body--column {
|
|
1491
1501
|
&.col--valid-error {
|
|
1492
|
-
.vxe-cell--valid-error-
|
|
1502
|
+
.vxe-cell--valid-error-tip {
|
|
1493
1503
|
width: 320px;
|
|
1494
1504
|
position: absolute;
|
|
1495
1505
|
bottom: calc(100% + 4px);
|
|
@@ -1511,7 +1521,7 @@
|
|
|
1511
1521
|
}
|
|
1512
1522
|
.vxe-body--row {
|
|
1513
1523
|
&:first-child {
|
|
1514
|
-
.vxe-cell--valid-error-
|
|
1524
|
+
.vxe-cell--valid-error-tip {
|
|
1515
1525
|
bottom: auto;
|
|
1516
1526
|
top: calc(100% + 4px);
|
|
1517
1527
|
}
|
|
@@ -1519,7 +1529,7 @@
|
|
|
1519
1529
|
}
|
|
1520
1530
|
.vxe-body--column {
|
|
1521
1531
|
&:first-child {
|
|
1522
|
-
.vxe-cell--valid-error-
|
|
1532
|
+
.vxe-cell--valid-error-tip {
|
|
1523
1533
|
left: 10px;
|
|
1524
1534
|
transform: translateX(0);
|
|
1525
1535
|
text-align: left;
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|