vxe-table 3.9.0-rc.8 → 3.9.0
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/README.md +1 -1
- package/es/grid/src/grid.js +120 -66
- package/es/grid/style.css +0 -1
- package/es/grid/style.min.css +1 -1
- package/es/index.esm.js +22 -3
- package/es/locale/lang/en-US.js +2 -8
- package/es/locale/lang/es-ES.js +2 -1
- package/es/locale/lang/hu-HU.d.ts +2 -0
- package/es/locale/lang/hu-HU.js +497 -501
- package/es/locale/lang/ja-JP.js +2 -8
- package/es/locale/lang/ko-KR.d.ts +2 -0
- package/es/locale/lang/ko-KR.js +2 -8
- package/es/locale/lang/pt-BR.js +2 -8
- package/es/locale/lang/ru-RU.d.ts +2 -0
- package/es/locale/lang/ru-RU.js +497 -503
- package/es/locale/lang/uk-UA.d.ts +2 -0
- package/es/locale/lang/uk-UA.js +667 -0
- package/es/locale/lang/vi-VN.js +2 -8
- package/es/locale/lang/zh-CHT.d.ts +2 -0
- package/es/locale/lang/zh-CHT.js +667 -0
- package/es/locale/lang/zh-CN.js +2 -8
- package/es/locale/lang/zh-HK.js +2 -2
- package/es/locale/lang/zh-MO.js +2 -2
- package/es/locale/lang/zh-TC.js +2 -673
- package/es/locale/lang/zh-TW.js +2 -2
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/custom/panel.js +183 -173
- package/es/table/module/edit/mixin.js +33 -24
- package/es/table/module/export/export-panel.js +32 -4
- package/es/table/module/export/import-panel.js +25 -6
- package/es/table/module/export/mixin.js +11 -11
- package/es/table/module/menu/mixin.js +2 -2
- package/es/table/module/validator/mixin.js +4 -4
- package/es/table/render/index.js +17 -11
- package/es/table/src/body.js +1 -0
- package/es/table/src/columnInfo.js +3 -3
- package/es/table/src/methods.js +54 -42
- package/es/table/src/props.js +65 -15
- package/es/table/src/table.js +175 -60
- package/es/table/src/util.js +3 -2
- package/es/table/style.css +37 -48
- package/es/table/style.min.css +1 -1
- package/es/toolbar/src/toolbar.js +21 -7
- package/es/toolbar/style.css +0 -1
- package/es/toolbar/style.min.css +1 -1
- package/es/ui/index.js +5 -3
- package/es/ui/src/log.js +1 -1
- package/es/vxe-grid/style.css +0 -1
- package/es/vxe-grid/style.min.css +1 -1
- package/es/vxe-table/style.css +37 -48
- package/es/vxe-table/style.min.css +1 -1
- package/es/vxe-toolbar/style.css +0 -1
- package/es/vxe-toolbar/style.min.css +1 -1
- package/lib/colgroup/index.js +3 -3
- package/lib/colgroup/index.min.js +1 -1
- package/lib/column/index.js +3 -3
- package/lib/column/index.min.js +1 -1
- package/lib/components.js +9 -11
- package/lib/components.min.js +1 -1
- package/lib/grid/index.js +3 -3
- package/lib/grid/index.min.js +1 -1
- package/lib/grid/src/grid.js +581 -491
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/grid/style/style.css +0 -1
- package/lib/grid/style/style.min.css +1 -1
- package/lib/index.common.js +3 -4
- package/lib/index.umd.js +9212 -17224
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/en-US.js +2 -8
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +2 -8
- package/lib/locale/lang/es-ES.js +2 -1
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +2 -1
- package/lib/locale/lang/hu-HU.d.ts +2 -0
- package/lib/locale/lang/hu-HU.js +497 -501
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +687 -0
- package/lib/locale/lang/ja-JP.js +2 -8
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +2 -8
- package/lib/locale/lang/ko-KR.d.ts +2 -0
- package/lib/locale/lang/ko-KR.js +2 -8
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +687 -0
- package/lib/locale/lang/pt-BR.js +2 -8
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +2 -8
- package/lib/locale/lang/ru-RU.d.ts +2 -0
- package/lib/locale/lang/ru-RU.js +497 -503
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +687 -0
- package/lib/locale/lang/uk-UA.d.ts +2 -0
- package/lib/locale/lang/uk-UA.js +673 -0
- package/lib/locale/lang/uk-UA.min.js +1 -0
- package/lib/locale/lang/uk-UA.umd.js +687 -0
- package/lib/locale/lang/vi-VN.js +2 -8
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.d.ts +2 -0
- package/lib/locale/lang/zh-CHT.js +673 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -0
- package/lib/locale/lang/zh-CHT.umd.js +687 -0
- package/lib/locale/lang/zh-CN.js +2 -8
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +2 -8
- package/lib/locale/lang/zh-HK.js +2 -2
- package/lib/locale/lang/zh-HK.min.js +1 -1
- package/lib/locale/lang/zh-HK.umd.js +7 -677
- package/lib/locale/lang/zh-MO.js +2 -2
- package/lib/locale/lang/zh-MO.min.js +1 -1
- package/lib/locale/lang/zh-MO.umd.js +7 -677
- package/lib/locale/lang/zh-TC.js +3 -673
- package/lib/locale/lang/zh-TC.min.js +1 -1
- package/lib/locale/lang/zh-TC.umd.js +7 -677
- package/lib/locale/lang/zh-TW.js +2 -2
- package/lib/locale/lang/zh-TW.min.js +1 -1
- package/lib/locale/lang/zh-TW.umd.js +7 -677
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/index.js +4 -4
- package/lib/table/index.min.js +1 -1
- package/lib/table/module/custom/mixin.js +53 -44
- package/lib/table/module/custom/mixin.min.js +1 -1
- package/lib/table/module/custom/panel.js +310 -239
- package/lib/table/module/custom/panel.min.js +1 -1
- package/lib/table/module/edit/mixin.js +436 -371
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/module/export/export-panel.js +136 -106
- package/lib/table/module/export/export-panel.min.js +1 -1
- package/lib/table/module/export/import-panel.js +75 -54
- package/lib/table/module/export/import-panel.min.js +1 -1
- package/lib/table/module/export/mixin.js +592 -597
- package/lib/table/module/export/mixin.min.js +1 -1
- package/lib/table/module/export/util.js +6 -4
- package/lib/table/module/export/util.min.js +1 -1
- package/lib/table/module/filter/mixin.js +147 -118
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +86 -65
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/module/keyboard/mixin.js +163 -151
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/module/menu/mixin.js +125 -114
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/menu/panel.js +36 -34
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/module/validator/mixin.js +225 -214
- package/lib/table/module/validator/mixin.min.js +1 -1
- package/lib/table/render/index.js +401 -297
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +411 -349
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/cell.js +470 -344
- package/lib/table/src/cell.min.js +1 -1
- package/lib/table/src/column.js +10 -10
- package/lib/table/src/column.min.js +1 -1
- package/lib/table/src/columnInfo.js +46 -55
- package/lib/table/src/columnInfo.min.js +1 -1
- package/lib/table/src/footer.js +157 -132
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/group.js +1 -1
- package/lib/table/src/group.min.js +1 -1
- package/lib/table/src/header.js +170 -153
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/methods.js +2758 -2478
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/props.js +33 -74
- package/lib/table/src/props.min.js +1 -1
- package/lib/table/src/table.js +519 -397
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +143 -131
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +37 -48
- package/lib/table/style/style.min.css +1 -1
- package/lib/toolbar/index.js +3 -3
- package/lib/toolbar/index.min.js +1 -1
- package/lib/toolbar/src/toolbar.js +332 -284
- package/lib/toolbar/src/toolbar.min.js +1 -1
- package/lib/toolbar/style/style.css +0 -1
- package/lib/toolbar/style/style.min.css +1 -1
- package/lib/ui/index.js +50 -41
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/comp.js +2 -3
- package/lib/ui/src/comp.min.js +1 -1
- package/lib/ui/src/dom.js +29 -28
- package/lib/ui/src/dom.min.js +1 -1
- package/lib/ui/src/log.js +6 -4
- package/lib/ui/src/log.min.js +1 -1
- package/lib/ui/src/utils.js +7 -7
- package/lib/v-x-e-table/index.js +3 -4
- package/lib/v-x-e-table/index.min.js +1 -1
- package/lib/vxe-colgroup/index.js +3 -4
- package/lib/vxe-colgroup/index.min.js +1 -1
- package/lib/vxe-column/index.js +3 -4
- package/lib/vxe-column/index.min.js +1 -1
- package/lib/vxe-grid/index.js +3 -4
- package/lib/vxe-grid/index.min.js +1 -1
- package/lib/vxe-grid/style/style.css +0 -1
- package/lib/vxe-grid/style/style.min.css +1 -1
- package/lib/vxe-table/index.js +3 -4
- package/lib/vxe-table/index.min.js +1 -1
- package/lib/vxe-table/style/style.css +37 -48
- package/lib/vxe-table/style/style.min.css +1 -1
- package/lib/vxe-toolbar/index.js +3 -4
- package/lib/vxe-toolbar/index.min.js +1 -1
- package/lib/vxe-toolbar/style/style.css +0 -1
- package/lib/vxe-toolbar/style/style.min.css +1 -1
- package/lib/vxe-ui/index.js +3 -4
- package/lib/vxe-ui/index.min.js +1 -1
- package/lib/vxe-v-x-e-table/index.js +3 -4
- package/lib/vxe-v-x-e-table/index.min.js +1 -1
- package/package.json +5 -4
- package/packages/grid/src/grid.ts +127 -65
- package/packages/locale/lang/en-US.ts +2 -10
- package/packages/locale/lang/es-ES.ts +2 -1
- package/packages/locale/lang/hu-HU.ts +497 -503
- package/packages/locale/lang/ja-JP.ts +2 -10
- package/packages/locale/lang/ko-KR.ts +2 -10
- package/packages/locale/lang/pt-BR.ts +2 -10
- package/packages/locale/lang/ru-RU.ts +497 -505
- package/packages/locale/lang/uk-UA.ts +667 -0
- package/packages/locale/lang/vi-VN.ts +2 -10
- package/packages/locale/lang/zh-CHT.ts +667 -0
- package/packages/locale/lang/zh-CN.ts +2 -10
- package/packages/locale/lang/zh-HK.ts +2 -2
- package/packages/locale/lang/zh-MO.ts +2 -2
- package/packages/locale/lang/zh-TC.ts +2 -674
- package/packages/locale/lang/zh-TW.ts +2 -2
- package/packages/table/module/custom/panel.ts +186 -175
- package/packages/table/module/edit/mixin.ts +32 -23
- package/packages/table/module/export/export-panel.ts +36 -4
- package/packages/table/module/export/import-panel.ts +29 -6
- package/packages/table/module/export/mixin.ts +11 -11
- package/packages/table/module/menu/mixin.ts +2 -2
- package/packages/table/module/validator/mixin.ts +4 -4
- package/packages/table/render/index.ts +20 -11
- package/packages/table/src/body.ts +1 -0
- package/packages/table/src/columnInfo.ts +3 -3
- package/packages/table/src/methods.ts +53 -42
- package/packages/table/src/props.ts +68 -15
- package/packages/table/src/table.ts +183 -57
- package/packages/table/src/util.ts +3 -2
- package/packages/toolbar/src/toolbar.ts +21 -7
- package/packages/ui/index.ts +3 -1
- package/styles/components/table.scss +82 -17
- package/types/all.d.ts +1 -0
- /package/es/{iconfont.1726318179195.ttf → iconfont.1728348263835.ttf} +0 -0
- /package/es/{iconfont.1726318179195.woff → iconfont.1728348263835.woff} +0 -0
- /package/es/{iconfont.1726318179195.woff2 → iconfont.1728348263835.woff2} +0 -0
- /package/lib/{iconfont.1726318179195.ttf → iconfont.1728348263835.ttf} +0 -0
- /package/lib/{iconfont.1726318179195.woff → iconfont.1728348263835.woff} +0 -0
- /package/lib/{iconfont.1726318179195.woff2 → iconfont.1728348263835.woff2} +0 -0
|
@@ -8,11 +8,11 @@ var _xeUtils = _interopRequireDefault(require("xe-utils"));
|
|
|
8
8
|
var _dom = require("../../../ui/src/dom");
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
10
|
function getTargetOffset(target, container) {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
let offsetTop = 0;
|
|
12
|
+
let offsetLeft = 0;
|
|
13
|
+
const triggerCheckboxLabel = !_dom.browse.firefox && (0, _dom.hasClass)(target, 'vxe-checkbox--label');
|
|
14
14
|
if (triggerCheckboxLabel) {
|
|
15
|
-
|
|
15
|
+
const checkboxLabelStyle = getComputedStyle(target);
|
|
16
16
|
offsetTop -= _xeUtils.default.toNumber(checkboxLabelStyle.paddingTop);
|
|
17
17
|
offsetLeft -= _xeUtils.default.toNumber(checkboxLabelStyle.paddingLeft);
|
|
18
18
|
}
|
|
@@ -21,37 +21,39 @@ function getTargetOffset(target, container) {
|
|
|
21
21
|
offsetLeft += target.offsetLeft;
|
|
22
22
|
target = target.offsetParent;
|
|
23
23
|
if (triggerCheckboxLabel) {
|
|
24
|
-
|
|
24
|
+
const checkboxStyle = getComputedStyle(target);
|
|
25
25
|
offsetTop -= _xeUtils.default.toNumber(checkboxStyle.paddingTop);
|
|
26
26
|
offsetLeft -= _xeUtils.default.toNumber(checkboxStyle.paddingLeft);
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
29
|
return {
|
|
30
|
-
offsetTop
|
|
31
|
-
offsetLeft
|
|
30
|
+
offsetTop,
|
|
31
|
+
offsetLeft
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
let countHeight = 0;
|
|
36
|
+
let rangeRows = [];
|
|
37
|
+
const isDown = moveRange > 0;
|
|
38
|
+
const moveSize = moveRange > 0 ? moveRange : Math.abs(moveRange) + targetTrElem.offsetHeight;
|
|
39
|
+
const {
|
|
40
|
+
afterFullData,
|
|
41
|
+
scrollYStore,
|
|
42
|
+
scrollYLoad
|
|
43
|
+
} = _vm;
|
|
42
44
|
if (scrollYLoad) {
|
|
43
|
-
|
|
45
|
+
const _rowIndex = _vm.getVTRowIndex(params.row);
|
|
44
46
|
if (isDown) {
|
|
45
47
|
rangeRows = afterFullData.slice(_rowIndex, _rowIndex + Math.ceil(moveSize / scrollYStore.rowHeight));
|
|
46
48
|
} else {
|
|
47
49
|
rangeRows = afterFullData.slice(_rowIndex - Math.floor(moveSize / scrollYStore.rowHeight) + 1, _rowIndex + 1);
|
|
48
50
|
}
|
|
49
51
|
} else {
|
|
50
|
-
|
|
52
|
+
const siblingProp = isDown ? 'next' : 'previous';
|
|
51
53
|
while (targetTrElem && countHeight < moveSize) {
|
|
52
54
|
rangeRows.push(_vm.getRowNode(targetTrElem).item);
|
|
53
55
|
countHeight += targetTrElem.offsetHeight;
|
|
54
|
-
targetTrElem = targetTrElem[
|
|
56
|
+
targetTrElem = targetTrElem[`${siblingProp}ElementSibling`];
|
|
55
57
|
}
|
|
56
58
|
}
|
|
57
59
|
return rangeRows;
|
|
@@ -59,18 +61,19 @@ function getCheckboxRangeRows(_vm, params, targetTrElem, moveRange) {
|
|
|
59
61
|
var _default = exports.default = {
|
|
60
62
|
methods: {
|
|
61
63
|
// 处理 Tab 键移动
|
|
62
|
-
moveTabSelected
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
visibleColumn
|
|
66
|
-
editConfig
|
|
67
|
-
editOpts
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
64
|
+
moveTabSelected(args, isLeft, evnt) {
|
|
65
|
+
const {
|
|
66
|
+
afterFullData,
|
|
67
|
+
visibleColumn,
|
|
68
|
+
editConfig,
|
|
69
|
+
editOpts
|
|
70
|
+
} = this;
|
|
71
|
+
let targetRow;
|
|
72
|
+
let targetRowIndex;
|
|
73
|
+
let targetColumnIndex;
|
|
74
|
+
const params = Object.assign({}, args);
|
|
75
|
+
const _rowIndex = this.getVTRowIndex(params.row);
|
|
76
|
+
const _columnIndex = this.getVTColumnIndex(params.column);
|
|
74
77
|
evnt.preventDefault();
|
|
75
78
|
if (isLeft) {
|
|
76
79
|
// 向左
|
|
@@ -96,7 +99,7 @@ var _default = exports.default = {
|
|
|
96
99
|
targetColumnIndex = _columnIndex + 1;
|
|
97
100
|
}
|
|
98
101
|
}
|
|
99
|
-
|
|
102
|
+
const targetColumn = visibleColumn[targetColumnIndex];
|
|
100
103
|
if (targetColumn) {
|
|
101
104
|
if (targetRow) {
|
|
102
105
|
params.rowIndex = targetRowIndex;
|
|
@@ -112,44 +115,40 @@ var _default = exports.default = {
|
|
|
112
115
|
if (editOpts.mode === 'row') {
|
|
113
116
|
this.handleEdit(params, evnt);
|
|
114
117
|
} else {
|
|
115
|
-
this.scrollToRow(params.row, params.column).then(
|
|
116
|
-
return _this.handleSelected(params, evnt);
|
|
117
|
-
});
|
|
118
|
+
this.scrollToRow(params.row, params.column).then(() => this.handleSelected(params, evnt));
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
121
|
} else {
|
|
121
|
-
this.scrollToRow(params.row, params.column).then(
|
|
122
|
-
return _this.handleSelected(params, evnt);
|
|
123
|
-
});
|
|
122
|
+
this.scrollToRow(params.row, params.column).then(() => this.handleSelected(params, evnt));
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
125
|
},
|
|
127
126
|
// 处理当前行方向键移动
|
|
128
|
-
moveCurrentRow
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
treeConfig
|
|
132
|
-
treeOpts
|
|
133
|
-
afterFullData
|
|
134
|
-
|
|
135
|
-
|
|
127
|
+
moveCurrentRow(isUpArrow, isDwArrow, evnt) {
|
|
128
|
+
const {
|
|
129
|
+
currentRow,
|
|
130
|
+
treeConfig,
|
|
131
|
+
treeOpts,
|
|
132
|
+
afterFullData
|
|
133
|
+
} = this;
|
|
134
|
+
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
135
|
+
let targetRow;
|
|
136
136
|
evnt.preventDefault();
|
|
137
137
|
if (currentRow) {
|
|
138
138
|
if (treeConfig) {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
items = _XEUtils$findTree.items;
|
|
139
|
+
const {
|
|
140
|
+
index,
|
|
141
|
+
items
|
|
142
|
+
} = _xeUtils.default.findTree(afterFullData, item => item === currentRow, {
|
|
143
|
+
children: childrenField
|
|
144
|
+
});
|
|
146
145
|
if (isUpArrow && index > 0) {
|
|
147
146
|
targetRow = items[index - 1];
|
|
148
147
|
} else if (isDwArrow && index < items.length - 1) {
|
|
149
148
|
targetRow = items[index + 1];
|
|
150
149
|
}
|
|
151
150
|
} else {
|
|
152
|
-
|
|
151
|
+
const _rowIndex = this.getVTRowIndex(currentRow);
|
|
153
152
|
if (isUpArrow && _rowIndex > 0) {
|
|
154
153
|
targetRow = afterFullData[_rowIndex - 1];
|
|
155
154
|
} else if (isDwArrow && _rowIndex < afterFullData.length - 1) {
|
|
@@ -160,23 +159,22 @@ var _default = exports.default = {
|
|
|
160
159
|
targetRow = afterFullData[0];
|
|
161
160
|
}
|
|
162
161
|
if (targetRow) {
|
|
163
|
-
|
|
162
|
+
const params = {
|
|
164
163
|
$table: this,
|
|
165
164
|
row: targetRow
|
|
166
165
|
};
|
|
167
|
-
this.scrollToRow(targetRow).then(
|
|
168
|
-
return _this2.triggerCurrentRowEvent(evnt, params);
|
|
169
|
-
});
|
|
166
|
+
this.scrollToRow(targetRow).then(() => this.triggerCurrentRowEvent(evnt, params));
|
|
170
167
|
}
|
|
171
168
|
},
|
|
172
169
|
// 处理可编辑方向键移动
|
|
173
|
-
moveSelected
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
visibleColumn
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
170
|
+
moveSelected(args, isLeftArrow, isUpArrow, isRightArrow, isDwArrow, evnt) {
|
|
171
|
+
const {
|
|
172
|
+
afterFullData,
|
|
173
|
+
visibleColumn
|
|
174
|
+
} = this;
|
|
175
|
+
const params = Object.assign({}, args);
|
|
176
|
+
const _rowIndex = this.getVTRowIndex(params.row);
|
|
177
|
+
const _columnIndex = this.getVTColumnIndex(params.column);
|
|
180
178
|
evnt.preventDefault();
|
|
181
179
|
if (isUpArrow && _rowIndex > 0) {
|
|
182
180
|
// 移动到上一行
|
|
@@ -195,25 +193,27 @@ var _default = exports.default = {
|
|
|
195
193
|
params.columnIndex = _columnIndex + 1;
|
|
196
194
|
params.column = visibleColumn[params.columnIndex];
|
|
197
195
|
}
|
|
198
|
-
this.scrollToRow(params.row, params.column).then(
|
|
199
|
-
params.cell =
|
|
200
|
-
|
|
196
|
+
this.scrollToRow(params.row, params.column).then(() => {
|
|
197
|
+
params.cell = this.getCellElement(params.row, params.column);
|
|
198
|
+
this.handleSelected(params, evnt);
|
|
201
199
|
});
|
|
202
200
|
},
|
|
203
201
|
/**
|
|
204
202
|
* 表头单元格按下事件
|
|
205
203
|
*/
|
|
206
|
-
triggerHeaderCellMousedownEvent
|
|
207
|
-
|
|
208
|
-
|
|
204
|
+
triggerHeaderCellMousedownEvent(evnt, params) {
|
|
205
|
+
const {
|
|
206
|
+
mouseConfig,
|
|
207
|
+
mouseOpts
|
|
208
|
+
} = this;
|
|
209
209
|
if (mouseConfig && mouseOpts.area && this.handleHeaderCellAreaEvent) {
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
210
|
+
const cell = evnt.currentTarget;
|
|
211
|
+
const triggerSort = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--sort').flag;
|
|
212
|
+
const triggerFilter = (0, _dom.getEventTargetNode)(evnt, cell, 'vxe-cell--filter').flag;
|
|
213
213
|
this.handleHeaderCellAreaEvent(evnt, Object.assign({
|
|
214
|
-
cell
|
|
215
|
-
triggerSort
|
|
216
|
-
triggerFilter
|
|
214
|
+
cell,
|
|
215
|
+
triggerSort,
|
|
216
|
+
triggerFilter
|
|
217
217
|
}, params));
|
|
218
218
|
}
|
|
219
219
|
this.focus();
|
|
@@ -222,22 +222,24 @@ var _default = exports.default = {
|
|
|
222
222
|
/**
|
|
223
223
|
* 单元格按下事件
|
|
224
224
|
*/
|
|
225
|
-
triggerCellMousedownEvent
|
|
226
|
-
|
|
225
|
+
triggerCellMousedownEvent(evnt, params) {
|
|
226
|
+
const cell = evnt.currentTarget;
|
|
227
227
|
params.cell = cell;
|
|
228
228
|
this.handleCellMousedownEvent(evnt, params);
|
|
229
229
|
this.focus();
|
|
230
230
|
this.closeFilter();
|
|
231
231
|
this.closeMenu();
|
|
232
232
|
},
|
|
233
|
-
handleCellMousedownEvent
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
233
|
+
handleCellMousedownEvent(evnt, params) {
|
|
234
|
+
const {
|
|
235
|
+
editConfig,
|
|
236
|
+
editOpts,
|
|
237
|
+
handleSelected,
|
|
238
|
+
checkboxConfig,
|
|
239
|
+
checkboxOpts,
|
|
240
|
+
mouseConfig,
|
|
241
|
+
mouseOpts
|
|
242
|
+
} = this;
|
|
241
243
|
if (mouseConfig && mouseOpts.area && this.handleCellAreaEvent) {
|
|
242
244
|
return this.handleCellAreaEvent(evnt, params);
|
|
243
245
|
} else {
|
|
@@ -251,46 +253,51 @@ var _default = exports.default = {
|
|
|
251
253
|
}
|
|
252
254
|
}
|
|
253
255
|
},
|
|
254
|
-
handleCheckboxRangeEvent
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
cell
|
|
256
|
+
handleCheckboxRangeEvent(evnt, params) {
|
|
257
|
+
const {
|
|
258
|
+
column,
|
|
259
|
+
cell
|
|
260
|
+
} = params;
|
|
258
261
|
if (column.type === 'checkbox') {
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
262
|
+
const {
|
|
263
|
+
$el,
|
|
264
|
+
elemStore
|
|
265
|
+
} = this;
|
|
266
|
+
const disX = evnt.clientX;
|
|
267
|
+
const disY = evnt.clientY;
|
|
268
|
+
const bodyWrapperElem = elemStore[`${column.fixed || 'main'}-body-wrapper`] || elemStore['main-body-wrapper'];
|
|
269
|
+
const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
|
|
270
|
+
const domMousemove = document.onmousemove;
|
|
271
|
+
const domMouseup = document.onmouseup;
|
|
272
|
+
const trElem = cell.parentNode;
|
|
273
|
+
const selectRecords = this.getCheckboxRecords();
|
|
274
|
+
let lastRangeRows = [];
|
|
275
|
+
const marginSize = 1;
|
|
276
|
+
const offsetRest = getTargetOffset(evnt.target, bodyWrapperElem);
|
|
277
|
+
const startTop = offsetRest.offsetTop + evnt.offsetY;
|
|
278
|
+
const startLeft = offsetRest.offsetLeft + evnt.offsetX;
|
|
279
|
+
const startScrollTop = bodyWrapperElem.scrollTop;
|
|
280
|
+
const rowHeight = trElem.offsetHeight;
|
|
281
|
+
let mouseScrollTimeout = null;
|
|
282
|
+
let isMouseScrollDown = false;
|
|
283
|
+
let mouseScrollSpaceSize = 1;
|
|
284
|
+
const triggerEvent = (type, evnt) => {
|
|
285
|
+
this.emitEvent(`checkbox-range-${type}`, {
|
|
286
|
+
records: this.getCheckboxRecords(),
|
|
287
|
+
reserves: this.getCheckboxReserveRecords()
|
|
283
288
|
}, evnt);
|
|
284
289
|
};
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
290
|
+
const handleChecked = evnt => {
|
|
291
|
+
const {
|
|
292
|
+
clientX,
|
|
293
|
+
clientY
|
|
294
|
+
} = evnt;
|
|
295
|
+
const offsetLeft = clientX - disX;
|
|
296
|
+
const offsetTop = clientY - disY + (bodyWrapperElem.scrollTop - startScrollTop);
|
|
297
|
+
let rangeHeight = Math.abs(offsetTop);
|
|
298
|
+
let rangeWidth = Math.abs(offsetLeft);
|
|
299
|
+
let rangeTop = startTop;
|
|
300
|
+
let rangeLeft = startLeft;
|
|
294
301
|
if (offsetTop < marginSize) {
|
|
295
302
|
// 向上
|
|
296
303
|
rangeTop += offsetTop;
|
|
@@ -313,55 +320,57 @@ var _default = exports.default = {
|
|
|
313
320
|
// 向右
|
|
314
321
|
rangeWidth = Math.min(rangeWidth, bodyWrapperElem.clientWidth - startLeft - marginSize);
|
|
315
322
|
}
|
|
316
|
-
checkboxRangeElem.style.height =
|
|
317
|
-
checkboxRangeElem.style.width =
|
|
318
|
-
checkboxRangeElem.style.left =
|
|
319
|
-
checkboxRangeElem.style.top =
|
|
323
|
+
checkboxRangeElem.style.height = `${rangeHeight}px`;
|
|
324
|
+
checkboxRangeElem.style.width = `${rangeWidth}px`;
|
|
325
|
+
checkboxRangeElem.style.left = `${rangeLeft}px`;
|
|
326
|
+
checkboxRangeElem.style.top = `${rangeTop}px`;
|
|
320
327
|
checkboxRangeElem.style.display = 'block';
|
|
321
|
-
|
|
328
|
+
const rangeRows = getCheckboxRangeRows(this, params, trElem, offsetTop < marginSize ? -rangeHeight : rangeHeight);
|
|
322
329
|
// 至少滑动 10px 才能有效匹配
|
|
323
330
|
if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
|
|
324
331
|
lastRangeRows = rangeRows;
|
|
325
332
|
if (evnt.ctrlKey) {
|
|
326
|
-
rangeRows.forEach(
|
|
327
|
-
|
|
328
|
-
row
|
|
333
|
+
rangeRows.forEach(row => {
|
|
334
|
+
this.handleSelectRow({
|
|
335
|
+
row
|
|
329
336
|
}, selectRecords.indexOf(row) === -1);
|
|
330
337
|
});
|
|
331
338
|
} else {
|
|
332
|
-
|
|
333
|
-
|
|
339
|
+
this.setAllCheckboxRow(false);
|
|
340
|
+
this.handleCheckedCheckboxRow(rangeRows, true, false);
|
|
334
341
|
}
|
|
335
342
|
triggerEvent('change', evnt);
|
|
336
343
|
}
|
|
337
344
|
};
|
|
338
345
|
// 停止鼠标滚动
|
|
339
|
-
|
|
346
|
+
const stopMouseScroll = () => {
|
|
340
347
|
clearTimeout(mouseScrollTimeout);
|
|
341
348
|
mouseScrollTimeout = null;
|
|
342
349
|
};
|
|
343
350
|
// 开始鼠标滚动
|
|
344
|
-
|
|
351
|
+
const startMouseScroll = evnt => {
|
|
345
352
|
stopMouseScroll();
|
|
346
|
-
mouseScrollTimeout = setTimeout(
|
|
353
|
+
mouseScrollTimeout = setTimeout(() => {
|
|
347
354
|
if (mouseScrollTimeout) {
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
355
|
+
const {
|
|
356
|
+
scrollLeft,
|
|
357
|
+
scrollTop,
|
|
358
|
+
clientHeight,
|
|
359
|
+
scrollHeight
|
|
360
|
+
} = bodyWrapperElem;
|
|
361
|
+
const topSize = Math.ceil(mouseScrollSpaceSize * 50 / rowHeight);
|
|
353
362
|
if (isMouseScrollDown) {
|
|
354
363
|
if (scrollTop + clientHeight < scrollHeight) {
|
|
355
|
-
|
|
356
|
-
|
|
364
|
+
this.scrollTo(scrollLeft, scrollTop + topSize);
|
|
365
|
+
startMouseScroll(evnt);
|
|
357
366
|
handleChecked(evnt);
|
|
358
367
|
} else {
|
|
359
368
|
stopMouseScroll();
|
|
360
369
|
}
|
|
361
370
|
} else {
|
|
362
371
|
if (scrollTop) {
|
|
363
|
-
|
|
364
|
-
|
|
372
|
+
this.scrollTo(scrollLeft, scrollTop - topSize);
|
|
373
|
+
startMouseScroll(evnt);
|
|
365
374
|
handleChecked(evnt);
|
|
366
375
|
} else {
|
|
367
376
|
stopMouseScroll();
|
|
@@ -371,31 +380,34 @@ var _default = exports.default = {
|
|
|
371
380
|
}, 50);
|
|
372
381
|
};
|
|
373
382
|
(0, _dom.addClass)($el, 'drag--range');
|
|
374
|
-
document.onmousemove =
|
|
383
|
+
document.onmousemove = evnt => {
|
|
375
384
|
evnt.preventDefault();
|
|
376
385
|
evnt.stopPropagation();
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
386
|
+
const {
|
|
387
|
+
clientY
|
|
388
|
+
} = evnt;
|
|
389
|
+
const {
|
|
390
|
+
boundingTop
|
|
391
|
+
} = (0, _dom.getAbsolutePos)(bodyWrapperElem);
|
|
380
392
|
// 如果超过可视区,触发滚动
|
|
381
393
|
if (clientY < boundingTop) {
|
|
382
394
|
isMouseScrollDown = false;
|
|
383
395
|
mouseScrollSpaceSize = boundingTop - clientY;
|
|
384
396
|
if (!mouseScrollTimeout) {
|
|
385
|
-
|
|
397
|
+
startMouseScroll(evnt);
|
|
386
398
|
}
|
|
387
399
|
} else if (clientY > boundingTop + bodyWrapperElem.clientHeight) {
|
|
388
400
|
isMouseScrollDown = true;
|
|
389
401
|
mouseScrollSpaceSize = clientY - boundingTop - bodyWrapperElem.clientHeight;
|
|
390
402
|
if (!mouseScrollTimeout) {
|
|
391
|
-
|
|
403
|
+
startMouseScroll(evnt);
|
|
392
404
|
}
|
|
393
405
|
} else if (mouseScrollTimeout) {
|
|
394
406
|
stopMouseScroll();
|
|
395
407
|
}
|
|
396
408
|
handleChecked(evnt);
|
|
397
409
|
};
|
|
398
|
-
document.onmouseup =
|
|
410
|
+
document.onmouseup = evnt => {
|
|
399
411
|
stopMouseScroll();
|
|
400
412
|
(0, _dom.removeClass)($el, 'drag--range');
|
|
401
413
|
checkboxRangeElem.removeAttribute('style');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getTargetOffset(e,t){
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getTargetOffset(e,t){let o=0,l=0;var r,n,s=!_dom.browse.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(s&&(r=getComputedStyle(e),o-=_xeUtils.default.toNumber(r.paddingTop),l-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)o+=e.offsetTop,l+=e.offsetLeft,e=e.offsetParent,s&&(n=getComputedStyle(e),o-=_xeUtils.default.toNumber(n.paddingTop),l-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:o,offsetLeft:l}}function getCheckboxRangeRows(e,t,o,l){let r=0,n=[];var s=0<l,i=0<l?l:Math.abs(l)+o.offsetHeight,{afterFullData:l,scrollYStore:a,scrollYLoad:d}=e;if(d){d=e.getVTRowIndex(t.row);n=s?l.slice(d,d+Math.ceil(i/a.rowHeight)):l.slice(d-Math.floor(i/a.rowHeight)+1,d+1)}else for(var c=s?"next":"previous";o&&r<i;)n.push(e.getRowNode(o).item),r+=o.offsetHeight,o=o[c+"ElementSibling"];return n}var _default=exports.default={methods:{moveTabSelected(e,t,o){var{afterFullData:l,visibleColumn:r,editConfig:n,editOpts:s}=this;let i,a,d,c=Object.assign({},e);var e=this.getVTRowIndex(c.row),h=this.getVTColumnIndex(c.column),t=(o.preventDefault(),t?h<=0?0<e&&(a=e-1,i=l[a],d=r.length-1):d=h-1:h>=r.length-1?e<l.length-1&&(a=e+1,i=l[a],d=0):d=h+1,r[d]);t&&(i?(c.rowIndex=a,c.row=i):c.rowIndex=e,c.columnIndex=d,c.column=t,c.cell=this.getCellElement(c.row,c.column),n?"click"!==s.trigger&&"dblclick"!==s.trigger||("row"===s.mode?this.handleEdit(c,o):this.scrollToRow(c.row,c.column).then(()=>this.handleSelected(c,o))):this.scrollToRow(c.row,c.column).then(()=>this.handleSelected(c,o)))},moveCurrentRow(e,t,o){let{currentRow:l,treeConfig:r,treeOpts:n,afterFullData:s}=this;var i,a=n.children||n.childrenField;let d;if(o.preventDefault(),l?r?({index:a,items:i}=_xeUtils.default.findTree(s,e=>e===l,{children:a}),e&&0<a?d=i[a-1]:t&&a<i.length-1&&(d=i[a+1])):(i=this.getVTRowIndex(l),e&&0<i?d=s[i-1]:t&&i<s.length-1&&(d=s[i+1])):d=s[0],d){let e={$table:this,row:d};this.scrollToRow(d).then(()=>this.triggerCurrentRowEvent(o,e))}},moveSelected(e,t,o,l,r,n){var{afterFullData:s,visibleColumn:i}=this;let a=Object.assign({},e);var e=this.getVTRowIndex(a.row),d=this.getVTColumnIndex(a.column);n.preventDefault(),o&&0<e?(a.rowIndex=e-1,a.row=s[a.rowIndex]):r&&e<s.length-1?(a.rowIndex=e+1,a.row=s[a.rowIndex]):t&&d?(a.columnIndex=d-1,a.column=i[a.columnIndex]):l&&d<i.length-1&&(a.columnIndex=d+1,a.column=i[a.columnIndex]),this.scrollToRow(a.row,a.column).then(()=>{a.cell=this.getCellElement(a.row,a.column),this.handleSelected(a,n)})},triggerHeaderCellMousedownEvent(e,t){var o,{mouseConfig:l,mouseOpts:r}=this;l&&r.area&&this.handleHeaderCellAreaEvent&&(l=e.currentTarget,r=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--sort").flag,o=(0,_dom.getEventTargetNode)(e,l,"vxe-cell--filter").flag,this.handleHeaderCellAreaEvent(e,Object.assign({cell:l,triggerSort:r,triggerFilter:o},t))),this.focus(),this.closeMenu()},triggerCellMousedownEvent(e,t){var o=e.currentTarget;t.cell=o,this.handleCellMousedownEvent(e,t),this.focus(),this.closeFilter(),this.closeMenu()},handleCellMousedownEvent(e,t){var{editConfig:o,editOpts:l,handleSelected:r,checkboxConfig:n,checkboxOpts:s,mouseConfig:i,mouseOpts:a}=this;if(i&&a.area&&this.handleCellAreaEvent)return this.handleCellAreaEvent(e,t);n&&s.range&&this.handleCheckboxRangeEvent(e,t),i&&a.selected&&(o&&"cell"!==l.mode||r(t,e))},handleCheckboxRangeEvent(r,k){var{column:n,cell:E}=k;if("checkbox"===n.type){let{$el:t,elemStore:e}=this,i=r.clientX,a=r.clientY,d=e[`${n.fixed||"main"}-body-wrapper`]||e["main-body-wrapper"],c=d.querySelector(".vxe-table--checkbox-range"),o=document.onmousemove,l=document.onmouseup,h=E.parentNode,u=this.getCheckboxRecords(),g=[],f=1;n=getTargetOffset(r.target,d);let m=n.offsetTop+r.offsetY,x=n.offsetLeft+r.offsetX,v=d.scrollTop,s=h.offsetHeight,p=null,w=!1,b=1,C=(e,t)=>{this.emitEvent("checkbox-range-"+e,{records:this.getCheckboxRecords(),reserves:this.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:o}=e,t=t-i,o=o-a+(d.scrollTop-v);let l=Math.abs(o),r=Math.abs(t),n=m,s=x;o<f?(n+=o)<f&&(n=f,l=m):l=Math.min(l,d.scrollHeight-m-f),t<f?(s+=t,r>x&&(s=f,r=x)):r=Math.min(r,d.clientWidth-x-f),c.style.height=l+"px",c.style.width=r+"px",c.style.left=s+"px",c.style.top=n+"px",c.style.display="block";t=getCheckboxRangeRows(this,k,h,o<f?-l:l);10<l&&t.length!==g.length&&(g=t,e.ctrlKey?t.forEach(e=>{this.handleSelectRow({row:e},-1===u.indexOf(e))}):(this.setAllCheckboxRow(!1),this.handleCheckedCheckboxRow(t,!0,!1)),C("change",e))},R=()=>{clearTimeout(p),p=null},_=n=>{R(),p=setTimeout(()=>{var e,t,o,l,r;p&&({scrollLeft:e,scrollTop:t,clientHeight:o,scrollHeight:l}=d,r=Math.ceil(50*b/s),w?t+o<l?(this.scrollTo(e,t+r),_(n),T(n)):R():t?(this.scrollTo(e,t-r),_(n),T(n)):R())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,o=(0,_dom.getAbsolutePos)(d).boundingTop;t<o?(w=!1,b=o-t,p||_(e)):t>o+d.clientHeight?(w=!0,b=t-o-d.clientHeight,p||_(e)):p&&R(),T(e)},document.onmouseup=e=>{R(),(0,_dom.removeClass)(t,"drag--range"),c.removeAttribute("style"),document.onmousemove=o,document.onmouseup=l,C("end",e)},C("start",r)}}}};
|