vxe-table 3.11.31 → 3.11.33
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/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +7 -6
- package/es/table/module/keyboard/mixin.js +1 -26
- package/es/table/src/body.js +21 -5
- package/es/table/src/cell.js +23 -19
- package/es/table/src/footer.js +4 -2
- package/es/table/src/header.js +40 -28
- package/es/table/src/methods.js +77 -4
- package/es/table/src/table.js +3 -1
- package/es/table/style.css +36 -0
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +5 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +36 -0
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +200 -111
- 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 +7 -14
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +0 -32
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/src/body.js +21 -5
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +23 -17
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/footer.js +4 -2
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +42 -34
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +94 -2
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +3 -1
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +36 -0
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +5 -3
- 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 +36 -0
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/custom/panel.ts +9 -6
- package/packages/table/module/keyboard/mixin.ts +1 -26
- package/packages/table/src/body.ts +21 -5
- package/packages/table/src/cell.ts +23 -19
- package/packages/table/src/footer.ts +6 -2
- package/packages/table/src/header.ts +43 -28
- package/packages/table/src/methods.ts +79 -4
- package/packages/table/src/table.ts +3 -1
- package/packages/ui/index.ts +4 -2
- package/styles/components/table.scss +36 -0
- /package/es/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
- /package/es/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
- /package/es/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
- /package/lib/{iconfont.1734190867802.ttf → iconfont.1734402738434.ttf} +0 -0
- /package/lib/{iconfont.1734190867802.woff → iconfont.1734402738434.woff} +0 -0
- /package/lib/{iconfont.1734190867802.woff2 → iconfont.1734402738434.woff2} +0 -0
package/es/table/src/body.js
CHANGED
|
@@ -50,6 +50,8 @@ function renderLine(h, _vm, $xetable, params) {
|
|
|
50
50
|
*/
|
|
51
51
|
function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
52
52
|
const { $listeners: tableListeners, fullAllDataRowIdData, afterFullData, tableData, height, columnKey, overflowX, sYOpts, scrollXLoad, scrollYLoad, highlightCurrentRow, showOverflow: allColumnOverflow, isAllOverflow, align: allAlign, currentColumn, cellClassName: allCellClassName, cellStyle, mergeList, spanMethod, radioOpts, checkboxOpts, expandOpts, treeOpts, tooltipOpts, mouseConfig, editConfig, editOpts, editRules, validOpts, editStore, tooltipConfig, rowOpts, columnOpts, mouseOpts, areaOpts, validErrorMaps } = $xetable;
|
|
53
|
+
const rowDragOpts = $xetable.computeRowDragOpts;
|
|
54
|
+
const { disabledMethod: dragDisabledMethod } = rowDragOpts;
|
|
53
55
|
const { selectCellToRow } = areaOpts;
|
|
54
56
|
const cellOpts = $xetable.computeCellOpts;
|
|
55
57
|
const { type, cellRender, editRender, align, showOverflow, className, treeNode, slots } = column;
|
|
@@ -83,6 +85,14 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
83
85
|
const bindMouseleave = tableListeners['cell-mouseleave'];
|
|
84
86
|
const triggerDblclick = (editRender && editConfig && editOpts.trigger === 'dblclick');
|
|
85
87
|
const params = { $table: $xetable, $grid: $xetable.$xegrid, isEdit: false, seq, rowid, row, rowIndex, $rowIndex, _rowIndex, column, columnIndex, $columnIndex, _columnIndex, fixed: fixedType, type: renderType, isHidden: fixedHiddenColumn, level: rowLevel, visibleData: afterFullData, data: tableData, items };
|
|
88
|
+
let isColDragCell = false;
|
|
89
|
+
let isDisabledDrag = false;
|
|
90
|
+
if (rowOpts.drag) {
|
|
91
|
+
isColDragCell = rowDragOpts.trigger === 'row' || (column.dragSort && rowDragOpts.trigger === 'cell');
|
|
92
|
+
}
|
|
93
|
+
if (isColDragCell) {
|
|
94
|
+
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
|
|
95
|
+
}
|
|
86
96
|
// hover 进入事件
|
|
87
97
|
if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
|
|
88
98
|
tdOns.mouseenter = (evnt) => {
|
|
@@ -116,7 +126,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
116
126
|
};
|
|
117
127
|
}
|
|
118
128
|
// 按下事件处理
|
|
119
|
-
if (checkboxOpts.range || mouseConfig) {
|
|
129
|
+
if (isColDragCell || checkboxOpts.range || mouseConfig) {
|
|
120
130
|
tdOns.mousedown = (evnt) => {
|
|
121
131
|
$xetable.triggerCellMousedownEvent(evnt, params);
|
|
122
132
|
};
|
|
@@ -262,6 +272,8 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
262
272
|
'col--edit': isEdit,
|
|
263
273
|
'col--ellipsis': hasEllipsis,
|
|
264
274
|
'fixed--hidden': fixedHiddenColumn,
|
|
275
|
+
'is--drag-cell': isColDragCell,
|
|
276
|
+
'is--drag-disabled': isDisabledDrag,
|
|
265
277
|
'col--dirty': isDirty,
|
|
266
278
|
'col--active': editConfig && isEdit && (actived.row === row && (actived.column === column || editOpts.mode === 'row')),
|
|
267
279
|
'col--valid-error': !!errorValidItem,
|
|
@@ -280,7 +292,9 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
280
292
|
}, tdVNs);
|
|
281
293
|
}
|
|
282
294
|
function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
|
|
283
|
-
const
|
|
295
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
296
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
297
|
+
const { stripe, rowKey, highlightHoverRow, rowClassName, rowStyle, editConfig, showOverflow: allColumnOverflow, treeConfig, treeOpts, expandOpts, editOpts, treeExpandedMaps, scrollYLoad, rowExpandedMaps, radioOpts, checkboxOpts, expandColumn, hasFixedColumn, fullAllDataRowIdData, rowOpts, pendingRowMaps, isDragColMove } = $xeTable;
|
|
284
298
|
const { transform, seqMode } = treeOpts;
|
|
285
299
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
286
300
|
const rows = [];
|
|
@@ -364,7 +378,7 @@ function renderRows(h, _vm, $xeTable, fixedType, tableData, tableColumn) {
|
|
|
364
378
|
const tdVNs = tableColumn.map((column, $columnIndex) => {
|
|
365
379
|
return renderColumn(h, _vm, $xeTable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, tableColumn, tableData);
|
|
366
380
|
});
|
|
367
|
-
rows.push(columnOpts.drag
|
|
381
|
+
rows.push(columnOpts.drag && columnDragOpts.animation
|
|
368
382
|
? h('transition-group', {
|
|
369
383
|
props: {
|
|
370
384
|
tag: 'tr',
|
|
@@ -484,7 +498,9 @@ export default {
|
|
|
484
498
|
render(h) {
|
|
485
499
|
const $xeTable = this.$parent;
|
|
486
500
|
const { _e, $parent: $xetable, fixedColumn, fixedType } = this;
|
|
487
|
-
|
|
501
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
502
|
+
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
503
|
+
let { $scopedSlots, tId, tableData, tableColumn, visibleColumn, expandColumn, showOverflow: allColumnOverflow, keyboardConfig, keyboardOpts, mergeList, spanMethod, scrollXLoad, scrollYLoad, isAllOverflow, emptyOpts, mouseConfig, mouseOpts, sYOpts, isDragRowMove } = $xetable;
|
|
488
504
|
// 如果是使用优化模式
|
|
489
505
|
if (fixedType) {
|
|
490
506
|
// 如果存在展开行使用全量渲染
|
|
@@ -572,7 +588,7 @@ export default {
|
|
|
572
588
|
/**
|
|
573
589
|
* 内容
|
|
574
590
|
*/
|
|
575
|
-
rowOpts.drag
|
|
591
|
+
rowOpts.drag && rowDragOpts.animation
|
|
576
592
|
? h('transition-group', {
|
|
577
593
|
props: {
|
|
578
594
|
tag: 'tbody',
|
package/es/table/src/cell.js
CHANGED
|
@@ -46,22 +46,24 @@ function renderCellDragIcon(h, params) {
|
|
|
46
46
|
const tableProps = $table;
|
|
47
47
|
const { dragConfig } = tableProps;
|
|
48
48
|
const rowDragOpts = $table.computeRowDragOpts;
|
|
49
|
-
const { icon, disabledMethod } = rowDragOpts;
|
|
49
|
+
const { icon, trigger, disabledMethod } = rowDragOpts;
|
|
50
50
|
const rDisabledMethod = disabledMethod || (dragConfig ? dragConfig.rowDisabledMethod : null);
|
|
51
51
|
const isDisabled = rDisabledMethod && rDisabledMethod(params);
|
|
52
|
+
const ons = {};
|
|
53
|
+
if (trigger !== 'cell') {
|
|
54
|
+
ons.mousedown = (evnt) => {
|
|
55
|
+
if (!isDisabled) {
|
|
56
|
+
$table.handleCellDragMousedownEvent(evnt, params);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
ons.mouseup = $table.handleCellDragMouseupEvent;
|
|
60
|
+
}
|
|
52
61
|
return h('span', {
|
|
53
62
|
key: 'dg',
|
|
54
63
|
class: ['vxe-cell--drag-handle', {
|
|
55
64
|
'is--disabled': isDisabled
|
|
56
65
|
}],
|
|
57
|
-
on:
|
|
58
|
-
mousedown(evnt) {
|
|
59
|
-
if (!isDisabled) {
|
|
60
|
-
$table.handleCellDragMousedownEvent(evnt, params);
|
|
61
|
-
}
|
|
62
|
-
},
|
|
63
|
-
mouseup: $table.handleCellDragMouseupEvent
|
|
64
|
-
}
|
|
66
|
+
on: ons
|
|
65
67
|
}, [
|
|
66
68
|
h('i', {
|
|
67
69
|
class: icon || (dragConfig ? dragConfig.rowIcon : '') || getIcon().TABLE_DRAG_ROW
|
|
@@ -94,23 +96,25 @@ function renderHeaderCellDragIcon(h, params) {
|
|
|
94
96
|
const { $table, column } = params;
|
|
95
97
|
const columnOpts = $table.computeColumnOpts;
|
|
96
98
|
const columnDragOpts = $table.computeColumnDragOpts;
|
|
97
|
-
const { showIcon, icon, isCrossDrag, visibleMethod, disabledMethod } = columnDragOpts;
|
|
98
|
-
const isDisabled = disabledMethod && disabledMethod(params);
|
|
99
|
+
const { showIcon, icon, trigger, isCrossDrag, visibleMethod, disabledMethod } = columnDragOpts;
|
|
99
100
|
if (columnOpts.drag && showIcon && (!visibleMethod || visibleMethod(params))) {
|
|
100
101
|
if (!column.fixed && (isCrossDrag || !column.parentId)) {
|
|
102
|
+
const isDisabled = disabledMethod && disabledMethod(params);
|
|
103
|
+
const ons = {};
|
|
104
|
+
if (trigger !== 'cell') {
|
|
105
|
+
ons.mousedown = (evnt) => {
|
|
106
|
+
if (!isDisabled) {
|
|
107
|
+
$table.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
ons.mouseup = $table.handleHeaderCellDragMouseupEvent;
|
|
111
|
+
}
|
|
101
112
|
return h('span', {
|
|
102
113
|
key: 'dg',
|
|
103
114
|
class: ['vxe-cell--drag-handle', {
|
|
104
115
|
'is--disabled': isDisabled
|
|
105
116
|
}],
|
|
106
|
-
on:
|
|
107
|
-
mousedown(evnt) {
|
|
108
|
-
if (!isDisabled) {
|
|
109
|
-
$table.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
mouseup: $table.handleHeaderCellDragMouseupEvent
|
|
113
|
-
}
|
|
117
|
+
on: ons
|
|
114
118
|
}, [
|
|
115
119
|
h('i', {
|
|
116
120
|
class: icon || getIcon().TABLE_DRAG_COLUMN
|
package/es/table/src/footer.js
CHANGED
|
@@ -146,13 +146,15 @@ function renderRows(h, _vm, tableColumn, footerTableData, row, $rowIndex, _rowIn
|
|
|
146
146
|
: []);
|
|
147
147
|
}
|
|
148
148
|
function renderHeads(h, _vm, footerTableData) {
|
|
149
|
+
const $xeTable = _vm.$parent;
|
|
150
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
151
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
149
152
|
const { $parent: $xetable, fixedType, tableColumn } = _vm;
|
|
150
153
|
const { footerRowClassName, footerRowStyle, isDragColMove } = $xetable;
|
|
151
|
-
const columnOpts = $xetable.columnOpts;
|
|
152
154
|
return footerTableData.map((row, $rowIndex) => {
|
|
153
155
|
const _rowIndex = $rowIndex;
|
|
154
156
|
const rowParams = { $table: $xetable, row, _rowIndex, $rowIndex, fixed: fixedType, type: renderType };
|
|
155
|
-
if (columnOpts.drag) {
|
|
157
|
+
if (columnOpts.drag && columnDragOpts.animation) {
|
|
156
158
|
return h('transition-group', {
|
|
157
159
|
props: {
|
|
158
160
|
tag: 'tr',
|
package/es/table/src/header.js
CHANGED
|
@@ -6,8 +6,12 @@ import { convertHeaderColumnToRows, getColReMinWidth } from './util';
|
|
|
6
6
|
const { renderer } = VxeUI;
|
|
7
7
|
const cellType = 'header';
|
|
8
8
|
const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
9
|
-
const
|
|
10
|
-
const
|
|
9
|
+
const $xeTable = _vm.$parent;
|
|
10
|
+
const $xeGrid = $xeTable.xegrid;
|
|
11
|
+
const { fixedType } = _vm;
|
|
12
|
+
const { resizable: allResizable, border, columnKey, headerCellClassName, headerCellStyle, showHeaderOverflow: allColumnHeaderOverflow, headerAlign: allHeaderAlign, align: allAlign, currentColumn, scrollXLoad, overflowX, scrollbarWidth, mouseConfig, columnOpts } = $xeTable;
|
|
13
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
14
|
+
const { disabledMethod: dragDisabledMethod } = columnDragOpts;
|
|
11
15
|
return cols.map((column, $columnIndex) => {
|
|
12
16
|
const { type, showHeaderOverflow, headerAlign, align, headerClassName, editRender, cellRender } = column;
|
|
13
17
|
// const { enabled } = tooltipOpts
|
|
@@ -22,30 +26,40 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
22
26
|
const showTitle = headOverflow === 'title';
|
|
23
27
|
const showTooltip = headOverflow === true || headOverflow === 'tooltip';
|
|
24
28
|
let hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
25
|
-
const thOns = {};
|
|
26
29
|
const hasFilter = column.filters && column.filters.some((item) => item.checked);
|
|
27
|
-
const columnIndex = $
|
|
28
|
-
const _columnIndex = $
|
|
29
|
-
const params = { $table: $
|
|
30
|
+
const columnIndex = $xeTable.getColumnIndex(column);
|
|
31
|
+
const _columnIndex = $xeTable.getVTColumnIndex(column);
|
|
32
|
+
const params = { $table: $xeTable, $grid: $xeGrid, $rowIndex, column, columnIndex, $columnIndex, _columnIndex, fixed: fixedType, type: cellType, isHidden: fixedHiddenColumn, hasFilter };
|
|
33
|
+
const thAttrs = {
|
|
34
|
+
colid,
|
|
35
|
+
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
36
|
+
rowspan: column.rowSpan > 1 ? column.rowSpan : null
|
|
37
|
+
};
|
|
38
|
+
const thOns = {
|
|
39
|
+
click: (evnt) => $xeTable.triggerHeaderCellClickEvent(evnt, params),
|
|
40
|
+
dblclick: (evnt) => $xeTable.triggerHeaderCellDblclickEvent(evnt, params)
|
|
41
|
+
};
|
|
30
42
|
// 虚拟滚动不支持动态高度
|
|
31
43
|
if (scrollXLoad && !hasEllipsis) {
|
|
32
44
|
showEllipsis = hasEllipsis = true;
|
|
33
45
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
thOns.dblclick = (evnt) => $xetable.triggerHeaderCellDblclickEvent(evnt, params);
|
|
46
|
+
const isColDragCell = columnOpts.drag && columnDragOpts.trigger === 'cell';
|
|
47
|
+
let isDisabledDrag = false;
|
|
48
|
+
if (isColDragCell) {
|
|
49
|
+
isDisabledDrag = !!(dragDisabledMethod && dragDisabledMethod(params));
|
|
39
50
|
}
|
|
40
51
|
// 按下事件处理
|
|
41
|
-
if (mouseConfig) {
|
|
42
|
-
thOns.mousedown = (evnt) => $
|
|
52
|
+
if (mouseConfig || isColDragCell) {
|
|
53
|
+
thOns.mousedown = (evnt) => $xeTable.triggerHeaderCellMousedownEvent(evnt, params);
|
|
43
54
|
}
|
|
44
|
-
//
|
|
55
|
+
// 拖拽列事件
|
|
45
56
|
if (columnOpts.drag) {
|
|
46
|
-
thOns.dragstart = $
|
|
47
|
-
thOns.dragend = $
|
|
48
|
-
thOns.dragover = $
|
|
57
|
+
thOns.dragstart = $xeTable.handleHeaderCellDragDragstartEvent;
|
|
58
|
+
thOns.dragend = $xeTable.handleHeaderCellDragDragendEvent;
|
|
59
|
+
thOns.dragover = $xeTable.handleHeaderCellDragDragoverEvent;
|
|
60
|
+
if (isColDragCell) {
|
|
61
|
+
thOns.mouseup = $xeTable.handleHeaderCellDragMouseupEvent;
|
|
62
|
+
}
|
|
49
63
|
}
|
|
50
64
|
return h('th', {
|
|
51
65
|
class: ['vxe-header--column', colid, {
|
|
@@ -59,13 +73,10 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
59
73
|
'is--sortable': column.sortable,
|
|
60
74
|
'col--filter': !!column.filters,
|
|
61
75
|
'is--filter-active': hasFilter,
|
|
76
|
+
'is--drag-disabled': isDisabledDrag,
|
|
62
77
|
'col--current': currentColumn === column
|
|
63
78
|
}, getClass(headerClassName, params), getClass(headerCellClassName, params)],
|
|
64
|
-
attrs:
|
|
65
|
-
colid,
|
|
66
|
-
colspan: column.colSpan > 1 ? column.colSpan : null,
|
|
67
|
-
rowspan: column.rowSpan > 1 ? column.rowSpan : null
|
|
68
|
-
},
|
|
79
|
+
attrs: thAttrs,
|
|
69
80
|
style: headerCellStyle ? (XEUtils.isFunction(headerCellStyle) ? headerCellStyle(params) : headerCellStyle) : null,
|
|
70
81
|
on: thOns,
|
|
71
82
|
key: columnKey || columnOpts.useKey || columnOpts.drag || isColGroup ? colid : $columnIndex
|
|
@@ -101,15 +112,16 @@ const renderRows = (h, _vm, cols, $rowIndex) => {
|
|
|
101
112
|
: []);
|
|
102
113
|
};
|
|
103
114
|
function renderHeads(h, _vm, headerGroups) {
|
|
104
|
-
const
|
|
105
|
-
const tableProps = $
|
|
115
|
+
const $xeTable = _vm.$parent;
|
|
116
|
+
const tableProps = $xeTable;
|
|
106
117
|
const { fixedType } = _vm;
|
|
118
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
119
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
107
120
|
const { headerRowClassName, headerRowStyle } = tableProps;
|
|
108
|
-
const { isDragColMove } = $
|
|
109
|
-
const columnOpts = $xetable.columnOpts;
|
|
121
|
+
const { isDragColMove } = $xeTable;
|
|
110
122
|
return headerGroups.map((cols, $rowIndex) => {
|
|
111
|
-
const params = { $table: $
|
|
112
|
-
if (columnOpts.drag) {
|
|
123
|
+
const params = { $table: $xeTable, $rowIndex, fixed: fixedType, type: cellType };
|
|
124
|
+
if (columnOpts.drag && columnDragOpts.animation) {
|
|
113
125
|
return h('transition-group', {
|
|
114
126
|
props: {
|
|
115
127
|
tag: 'tr',
|
package/es/table/src/methods.js
CHANGED
|
@@ -5137,6 +5137,77 @@ const Methods = {
|
|
|
5137
5137
|
$xeTable.handleColumnSortEvent(evnt, column);
|
|
5138
5138
|
}
|
|
5139
5139
|
},
|
|
5140
|
+
/**
|
|
5141
|
+
* 表头单元格按下事件
|
|
5142
|
+
*/
|
|
5143
|
+
triggerHeaderCellMousedownEvent(evnt, params) {
|
|
5144
|
+
const $xeTable = this;
|
|
5145
|
+
const props = $xeTable;
|
|
5146
|
+
const { mouseConfig } = props;
|
|
5147
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
5148
|
+
const columnOpts = $xeTable.computeColumnOpts;
|
|
5149
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
5150
|
+
const { trigger, disabledMethod } = columnDragOpts;
|
|
5151
|
+
const cell = evnt.currentTarget;
|
|
5152
|
+
const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
|
|
5153
|
+
const triggerCheckbox = getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
|
|
5154
|
+
const triggerSort = getEventTargetNode(evnt, cell, 'vxe-cell--sort').flag;
|
|
5155
|
+
const triggerFilter = getEventTargetNode(evnt, cell, 'vxe-cell--filter').flag;
|
|
5156
|
+
let triggerDrag = false;
|
|
5157
|
+
if (!(triggerInput || triggerCheckbox || triggerSort || triggerFilter)) {
|
|
5158
|
+
if (columnOpts.drag && trigger === 'cell' && !(disabledMethod && disabledMethod(params))) {
|
|
5159
|
+
triggerDrag = true;
|
|
5160
|
+
$xeTable.handleHeaderCellDragMousedownEvent(evnt, params);
|
|
5161
|
+
}
|
|
5162
|
+
}
|
|
5163
|
+
if (!triggerDrag && mouseConfig && mouseOpts.area && $xeTable.handleHeaderCellAreaEvent) {
|
|
5164
|
+
$xeTable.handleHeaderCellAreaEvent(evnt, Object.assign({ cell, triggerSort, triggerFilter }, params));
|
|
5165
|
+
}
|
|
5166
|
+
$xeTable.focus();
|
|
5167
|
+
if ($xeTable.closeMenu) {
|
|
5168
|
+
$xeTable.closeMenu();
|
|
5169
|
+
}
|
|
5170
|
+
},
|
|
5171
|
+
/**
|
|
5172
|
+
* 单元格按下事件
|
|
5173
|
+
*/
|
|
5174
|
+
triggerCellMousedownEvent(evnt, params) {
|
|
5175
|
+
const $xeTable = this;
|
|
5176
|
+
const { column } = params;
|
|
5177
|
+
const { type, treeNode } = column;
|
|
5178
|
+
const isRadioType = type === 'radio';
|
|
5179
|
+
const isCheckboxType = type === 'checkbox';
|
|
5180
|
+
const isExpandType = type === 'expand';
|
|
5181
|
+
const rowOpts = $xeTable.computeRowOpts;
|
|
5182
|
+
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
5183
|
+
const { trigger, disabledMethod } = rowDragOpts;
|
|
5184
|
+
const cell = evnt.currentTarget;
|
|
5185
|
+
params.cell = cell;
|
|
5186
|
+
const triggerInput = cell && cell.tagName && cell.tagName.toLowerCase() === 'input';
|
|
5187
|
+
const triggerRadio = isRadioType && getEventTargetNode(evnt, cell, 'vxe-cell--radio').flag;
|
|
5188
|
+
const triggerCheckbox = isCheckboxType && getEventTargetNode(evnt, cell, 'vxe-cell--checkbox').flag;
|
|
5189
|
+
const triggerTreeNode = treeNode && getEventTargetNode(evnt, cell, 'vxe-tree--btn-wrapper').flag;
|
|
5190
|
+
const triggerExpandNode = isExpandType && getEventTargetNode(evnt, cell, 'vxe-table--expanded').flag;
|
|
5191
|
+
let isColDragCell = false;
|
|
5192
|
+
if (rowOpts.drag) {
|
|
5193
|
+
isColDragCell = trigger === 'row' || (column.dragSort && trigger === 'cell');
|
|
5194
|
+
}
|
|
5195
|
+
let triggerDrag = false;
|
|
5196
|
+
if (!(triggerInput || triggerRadio || triggerCheckbox || triggerTreeNode || triggerExpandNode)) {
|
|
5197
|
+
if (isColDragCell && !(disabledMethod && disabledMethod(params))) {
|
|
5198
|
+
triggerDrag = true;
|
|
5199
|
+
$xeTable.handleCellDragMousedownEvent(evnt, params);
|
|
5200
|
+
}
|
|
5201
|
+
}
|
|
5202
|
+
if (!triggerDrag && $xeTable.handleCellMousedownEvent) {
|
|
5203
|
+
$xeTable.handleCellMousedownEvent(evnt, params);
|
|
5204
|
+
}
|
|
5205
|
+
$xeTable.focus();
|
|
5206
|
+
$xeTable.closeFilter();
|
|
5207
|
+
if ($xeTable.closeMenu) {
|
|
5208
|
+
$xeTable.closeMenu();
|
|
5209
|
+
}
|
|
5210
|
+
},
|
|
5140
5211
|
/**
|
|
5141
5212
|
* 行拖拽
|
|
5142
5213
|
*/
|
|
@@ -5362,12 +5433,13 @@ const Methods = {
|
|
|
5362
5433
|
const $xeTable = this;
|
|
5363
5434
|
const props = $xeTable;
|
|
5364
5435
|
const reactData = $xeTable;
|
|
5436
|
+
evnt.stopPropagation();
|
|
5365
5437
|
const { dragConfig } = props;
|
|
5366
5438
|
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
5367
|
-
const { dragStartMethod } = rowDragOpts;
|
|
5439
|
+
const { trigger, dragStartMethod } = rowDragOpts;
|
|
5368
5440
|
const { row } = params;
|
|
5369
5441
|
const dragEl = evnt.currentTarget;
|
|
5370
|
-
const tdEl = (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5442
|
+
const tdEl = trigger === 'cell' || trigger === 'row' ? dragEl : (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5371
5443
|
const trEl = tdEl.parentElement;
|
|
5372
5444
|
const dStartMethod = dragStartMethod || (dragConfig ? dragConfig.dragStartMethod : null);
|
|
5373
5445
|
reactData.isDragRowMove = false;
|
|
@@ -5604,11 +5676,12 @@ const Methods = {
|
|
|
5604
5676
|
var _a;
|
|
5605
5677
|
const $xeTable = this;
|
|
5606
5678
|
const reactData = $xeTable;
|
|
5679
|
+
evnt.stopPropagation();
|
|
5607
5680
|
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
5608
|
-
const { dragStartMethod } = columnDragOpts;
|
|
5681
|
+
const { trigger, dragStartMethod } = columnDragOpts;
|
|
5609
5682
|
const { column } = params;
|
|
5610
5683
|
const dragEl = evnt.currentTarget;
|
|
5611
|
-
const thEl = (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5684
|
+
const thEl = trigger === 'cell' ? dragEl : (_a = dragEl.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement;
|
|
5612
5685
|
reactData.isDragColMove = false;
|
|
5613
5686
|
clearColDropOrigin($xeTable);
|
|
5614
5687
|
if (dragStartMethod && !dragStartMethod(params)) {
|
package/es/table/src/table.js
CHANGED
|
@@ -1038,7 +1038,7 @@ export default {
|
|
|
1038
1038
|
if (this.editRules && !this._validate) {
|
|
1039
1039
|
errLog('vxe.error.reqModule', ['Validator']);
|
|
1040
1040
|
}
|
|
1041
|
-
if ((this.checkboxOpts.range || this.keyboardConfig || this.mouseConfig) && !this.
|
|
1041
|
+
if ((this.checkboxOpts.range || this.keyboardConfig || this.mouseConfig) && !this.handleCellMousedownEvent) {
|
|
1042
1042
|
errLog('vxe.error.reqModule', ['Keyboard']);
|
|
1043
1043
|
}
|
|
1044
1044
|
if ((this.printConfig || this.importConfig || this.exportConfig) && !this._exportData) {
|
|
@@ -1168,6 +1168,7 @@ export default {
|
|
|
1168
1168
|
const virtualScrollBars = $xeTable.computeVirtualScrollBars;
|
|
1169
1169
|
const isArea = mouseConfig && mouseOpts.area;
|
|
1170
1170
|
const tableStyle = $xeTable.computeTableStyle;
|
|
1171
|
+
const columnDragOpts = $xeTable.computeColumnDragOpts;
|
|
1171
1172
|
return h('div', {
|
|
1172
1173
|
ref: 'refElem',
|
|
1173
1174
|
class: ['vxe-table', 'vxe-table--render-default', `tid_${tId}`, vSize ? `size--${vSize}` : '', `border--${tableBorder}`, {
|
|
@@ -1183,6 +1184,7 @@ export default {
|
|
|
1183
1184
|
'column--highlight': columnOpts.isHover || highlightHoverColumn,
|
|
1184
1185
|
'checkbox--range': checkboxOpts.range,
|
|
1185
1186
|
'column--calc': isCalcColumn,
|
|
1187
|
+
'col--drag-cell': columnOpts.drag && columnDragOpts.trigger === 'cell',
|
|
1186
1188
|
'is--header': showHeader,
|
|
1187
1189
|
'is--footer': showFooter,
|
|
1188
1190
|
'is--group': isGroup,
|
package/es/table/style.css
CHANGED
|
@@ -2231,6 +2231,24 @@
|
|
|
2231
2231
|
.vxe-table--render-default.drag--extend-range .vxe-table--fixed-right-wrapper * {
|
|
2232
2232
|
cursor: crosshair;
|
|
2233
2233
|
}
|
|
2234
|
+
.vxe-table--render-default.col--drag-cell .vxe-header--column {
|
|
2235
|
+
-webkit-user-select: none;
|
|
2236
|
+
-moz-user-select: none;
|
|
2237
|
+
user-select: none;
|
|
2238
|
+
}
|
|
2239
|
+
.vxe-table--render-default.col--drag-cell .vxe-header--column:not(.is--drag-disabled) {
|
|
2240
|
+
cursor: grab;
|
|
2241
|
+
}
|
|
2242
|
+
.vxe-table--render-default.col--drag-cell .vxe-header--column:not(.is--drag-disabled):active {
|
|
2243
|
+
cursor: grabbing;
|
|
2244
|
+
}
|
|
2245
|
+
.vxe-table--render-default.col--drag-cell .vxe-header--column:not(.is--drag-disabled):hover {
|
|
2246
|
+
color: var(--vxe-ui-font-primary-color);
|
|
2247
|
+
}
|
|
2248
|
+
.vxe-table--render-default.col--drag-cell .vxe-header--column.is--drag-disabled {
|
|
2249
|
+
color: var(--vxe-ui-input-disabled-color);
|
|
2250
|
+
cursor: not-allowed;
|
|
2251
|
+
}
|
|
2234
2252
|
.vxe-table--render-default.column--highlight .vxe-header--column:not(.col--seq):hover {
|
|
2235
2253
|
background-color: var(--vxe-ui-table-column-hover-background-color);
|
|
2236
2254
|
}
|
|
@@ -2811,6 +2829,24 @@
|
|
|
2811
2829
|
.vxe-table--render-default .vxe-body--row.row--drag-origin > .vxe-body--column > .vxe-cell {
|
|
2812
2830
|
opacity: 0.5;
|
|
2813
2831
|
}
|
|
2832
|
+
.vxe-table--render-default .vxe-body--column.is--drag-cell {
|
|
2833
|
+
-webkit-user-select: none;
|
|
2834
|
+
-moz-user-select: none;
|
|
2835
|
+
user-select: none;
|
|
2836
|
+
}
|
|
2837
|
+
.vxe-table--render-default .vxe-body--column.is--drag-cell:not(.is--drag-disabled) {
|
|
2838
|
+
cursor: grab;
|
|
2839
|
+
}
|
|
2840
|
+
.vxe-table--render-default .vxe-body--column.is--drag-cell:not(.is--drag-disabled):active {
|
|
2841
|
+
cursor: grabbing;
|
|
2842
|
+
}
|
|
2843
|
+
.vxe-table--render-default .vxe-body--column.is--drag-cell:not(.is--drag-disabled):hover {
|
|
2844
|
+
color: var(--vxe-ui-font-primary-color);
|
|
2845
|
+
}
|
|
2846
|
+
.vxe-table--render-default .vxe-body--column.is--drag-cell.is--drag-disabled {
|
|
2847
|
+
color: var(--vxe-ui-input-disabled-color);
|
|
2848
|
+
cursor: not-allowed;
|
|
2849
|
+
}
|
|
2814
2850
|
.vxe-table--render-default .vxe-body--row-list-move {
|
|
2815
2851
|
transition-property: transform;
|
|
2816
2852
|
transition-duration: 0.35s;
|