vxe-table 3.18.2 → 3.18.4
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/grid/src/grid.js +5 -1
- 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/menu/mixin.js +67 -43
- package/es/table/module/menu/panel.js +10 -8
- package/es/table/render/index.js +4 -3
- package/es/table/src/body.js +12 -14
- package/es/table/src/methods.js +17 -5
- package/es/table/src/table.js +6 -7
- package/es/table/style.css +0 -4
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/ui/src/vn.js +17 -7
- package/es/vxe-table/style.css +0 -4
- package/es/vxe-table/style.min.css +1 -1
- package/lib/grid/src/grid.js +6 -0
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +161 -104
- 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/menu/mixin.js +84 -58
- package/lib/table/module/menu/mixin.min.js +1 -1
- package/lib/table/module/menu/panel.js +11 -10
- package/lib/table/module/menu/panel.min.js +1 -1
- package/lib/table/render/index.js +6 -3
- package/lib/table/render/index.min.js +1 -1
- package/lib/table/src/body.js +11 -13
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/methods.js +18 -5
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +6 -7
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +0 -4
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- 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/ui/src/vn.js +17 -6
- package/lib/ui/src/vn.min.js +1 -1
- package/lib/vxe-table/style/style.css +0 -4
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +1 -1
- package/packages/grid/src/grid.ts +5 -1
- package/packages/table/module/menu/mixin.ts +79 -50
- package/packages/table/module/menu/panel.ts +11 -9
- package/packages/table/render/index.ts +27 -26
- package/packages/table/src/body.ts +11 -13
- package/packages/table/src/methods.ts +17 -5
- package/packages/table/src/table.ts +9 -7
- package/packages/ui/src/vn.ts +20 -9
- package/styles/components/table.scss +0 -1
- /package/es/{iconfont.1756452257212.ttf → iconfont.1756734865034.ttf} +0 -0
- /package/es/{iconfont.1756452257212.woff → iconfont.1756734865034.woff} +0 -0
- /package/es/{iconfont.1756452257212.woff2 → iconfont.1756734865034.woff2} +0 -0
- /package/lib/{iconfont.1756452257212.ttf → iconfont.1756734865034.ttf} +0 -0
- /package/lib/{iconfont.1756452257212.woff → iconfont.1756734865034.woff} +0 -0
- /package/lib/{iconfont.1756452257212.woff2 → iconfont.1756734865034.woff2} +0 -0
|
@@ -10,13 +10,15 @@ export default {
|
|
|
10
10
|
* 关闭快捷菜单
|
|
11
11
|
*/
|
|
12
12
|
_closeMenu() {
|
|
13
|
-
|
|
13
|
+
const $xeTable = this;
|
|
14
|
+
const reactData = $xeTable;
|
|
15
|
+
Object.assign(reactData.ctxMenuStore, {
|
|
14
16
|
visible: false,
|
|
15
17
|
selected: null,
|
|
16
18
|
selectChild: null,
|
|
17
19
|
showChild: false
|
|
18
20
|
});
|
|
19
|
-
return
|
|
21
|
+
return $xeTable.$nextTick();
|
|
20
22
|
},
|
|
21
23
|
// 处理菜单的移动
|
|
22
24
|
moveCtxMenu(evnt, ctxMenuStore, property, hasOper, operRest, menuList) {
|
|
@@ -61,26 +63,35 @@ export default {
|
|
|
61
63
|
const $xeTable = this;
|
|
62
64
|
const $xeGrid = $xeTable.$xeGrid;
|
|
63
65
|
const $xeGantt = $xeTable.$xeGantt;
|
|
66
|
+
const props = $xeTable;
|
|
67
|
+
const reactData = $xeTable;
|
|
64
68
|
const internalData = $xeTable;
|
|
65
|
-
const {
|
|
66
|
-
const {
|
|
69
|
+
const { xID } = $xeTable;
|
|
70
|
+
const { mouseConfig, menuConfig } = props;
|
|
71
|
+
const { editStore, ctxMenuStore } = reactData;
|
|
72
|
+
const { visibleColumn } = internalData;
|
|
67
73
|
const tableFilter = $xeTable.$refs.refTableFilter;
|
|
74
|
+
const tableMenu = $xeTable.$refs.refTableMenu;
|
|
75
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
76
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
77
|
+
const el = $xeTable.$refs.refElem;
|
|
78
|
+
const { selected } = editStore;
|
|
68
79
|
const layoutList = ['header', 'body', 'footer'];
|
|
69
|
-
if (isEnableConf(menuConfig)
|
|
70
|
-
if (ctxMenuStore.visible &&
|
|
80
|
+
if (isEnableConf(menuConfig)) {
|
|
81
|
+
if (ctxMenuStore.visible && tableMenu && getEventTargetNode(evnt, tableMenu.$el).flag) {
|
|
71
82
|
evnt.preventDefault();
|
|
72
83
|
return;
|
|
73
84
|
}
|
|
74
85
|
if (internalData._keyCtx) {
|
|
75
86
|
const type = 'body';
|
|
76
|
-
const params = { type, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, keyboard: true, columns:
|
|
87
|
+
const params = { type, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, keyboard: true, columns: visibleColumn.slice(0), $event: evnt };
|
|
77
88
|
// 如果开启单元格区域
|
|
78
89
|
if (mouseConfig && mouseOpts.area) {
|
|
79
|
-
const activeArea =
|
|
90
|
+
const activeArea = $xeTable.getActiveCellArea();
|
|
80
91
|
if (activeArea && activeArea.row && activeArea.column) {
|
|
81
92
|
params.row = activeArea.row;
|
|
82
93
|
params.column = activeArea.column;
|
|
83
|
-
|
|
94
|
+
$xeTable.handleOpenMenuEvent(evnt, type, params);
|
|
84
95
|
return;
|
|
85
96
|
}
|
|
86
97
|
}
|
|
@@ -89,7 +100,7 @@ export default {
|
|
|
89
100
|
if (selected.row && selected.column) {
|
|
90
101
|
params.row = selected.row;
|
|
91
102
|
params.column = selected.column;
|
|
92
|
-
|
|
103
|
+
$xeTable.handleOpenMenuEvent(evnt, type, params);
|
|
93
104
|
return;
|
|
94
105
|
}
|
|
95
106
|
}
|
|
@@ -97,11 +108,11 @@ export default {
|
|
|
97
108
|
// 分别匹配表尾、内容、表尾的快捷菜单
|
|
98
109
|
for (let index = 0; index < layoutList.length; index++) {
|
|
99
110
|
const layout = layoutList[index];
|
|
100
|
-
const columnTargetNode = getEventTargetNode(evnt,
|
|
111
|
+
const columnTargetNode = getEventTargetNode(evnt, el, `vxe-${layout}--column`, (target) => {
|
|
101
112
|
// target=td|th,直接向上找 table 去匹配即可
|
|
102
|
-
return target.parentNode.parentNode.parentNode.getAttribute('xid') ===
|
|
113
|
+
return target.parentNode.parentNode.parentNode.getAttribute('xid') === xID;
|
|
103
114
|
});
|
|
104
|
-
const params = { type: layout, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, columns:
|
|
115
|
+
const params = { type: layout, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, columns: visibleColumn.slice(0), $event: evnt };
|
|
105
116
|
if (columnTargetNode.flag) {
|
|
106
117
|
const cell = columnTargetNode.targetElem;
|
|
107
118
|
const columnNodeRest = $xeTable.getColumnNode(cell);
|
|
@@ -120,9 +131,9 @@ export default {
|
|
|
120
131
|
}
|
|
121
132
|
}
|
|
122
133
|
const eventType = `${typePrefix}cell-menu`;
|
|
123
|
-
|
|
134
|
+
$xeTable.handleOpenMenuEvent(evnt, layout, params);
|
|
124
135
|
// 在 v4 中废弃事件 cell-context-menu、header-cell-context-menu、footer-cell-context-menu
|
|
125
|
-
if (
|
|
136
|
+
if ($xeTable.$listeners[`${typePrefix}cell-context-menu`]) {
|
|
126
137
|
warnLog('vxe.error.delEvent', [`${typePrefix}cell-context-menu`, `${typePrefix}cell-menu`]);
|
|
127
138
|
$xeTable.dispatchEvent(`${typePrefix}cell-context-menu`, params, evnt);
|
|
128
139
|
}
|
|
@@ -131,59 +142,65 @@ export default {
|
|
|
131
142
|
}
|
|
132
143
|
return;
|
|
133
144
|
}
|
|
134
|
-
else if (getEventTargetNode(evnt,
|
|
135
|
-
if (
|
|
145
|
+
else if (getEventTargetNode(evnt, $xeTable.$el, `vxe-table--${layout}-wrapper`, target => target.getAttribute('xid') === xID).flag) {
|
|
146
|
+
if (menuOpts.trigger === 'cell') {
|
|
136
147
|
evnt.preventDefault();
|
|
137
148
|
}
|
|
138
149
|
else {
|
|
139
|
-
|
|
150
|
+
$xeTable.handleOpenMenuEvent(evnt, layout, params);
|
|
140
151
|
}
|
|
141
152
|
return;
|
|
142
153
|
}
|
|
143
154
|
}
|
|
144
155
|
}
|
|
145
156
|
if (tableFilter && !getEventTargetNode(evnt, tableFilter.$el).flag) {
|
|
146
|
-
|
|
157
|
+
$xeTable.closeFilter();
|
|
147
158
|
}
|
|
148
|
-
|
|
159
|
+
$xeTable.closeMenu();
|
|
149
160
|
},
|
|
150
161
|
/**
|
|
151
162
|
* 显示快捷菜单
|
|
152
163
|
*/
|
|
153
164
|
handleOpenMenuEvent(evnt, type, params) {
|
|
154
|
-
const
|
|
155
|
-
const
|
|
156
|
-
const
|
|
165
|
+
const $xeTable = this;
|
|
166
|
+
const reactData = $xeTable;
|
|
167
|
+
const internalData = $xeTable;
|
|
168
|
+
const { ctxMenuStore } = reactData;
|
|
169
|
+
const isMenu = $xeTable.computeIsMenu;
|
|
170
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
171
|
+
const config = menuOpts[type];
|
|
172
|
+
const visibleMethod = menuOpts.visibleMethod;
|
|
157
173
|
if (config) {
|
|
158
174
|
const { options, disabled } = config;
|
|
159
175
|
if (disabled) {
|
|
160
176
|
evnt.preventDefault();
|
|
161
177
|
}
|
|
162
|
-
else if (
|
|
178
|
+
else if (isMenu && options && options.length) {
|
|
163
179
|
params.options = options;
|
|
164
|
-
|
|
180
|
+
$xeTable.preventEvent(evnt, 'event.showMenu', params, () => {
|
|
165
181
|
if (!visibleMethod || visibleMethod(params)) {
|
|
166
182
|
evnt.preventDefault();
|
|
167
|
-
|
|
183
|
+
$xeTable.updateZindex();
|
|
168
184
|
const { scrollTop, scrollLeft, visibleHeight, visibleWidth } = getDomNode();
|
|
169
185
|
let top = evnt.clientY + scrollTop;
|
|
170
186
|
let left = evnt.clientX + scrollLeft;
|
|
171
187
|
const handleVisible = () => {
|
|
188
|
+
internalData._currMenuParams = params;
|
|
172
189
|
Object.assign(ctxMenuStore, {
|
|
173
|
-
args: params,
|
|
174
190
|
visible: true,
|
|
175
191
|
list: options,
|
|
176
192
|
selected: null,
|
|
177
193
|
selectChild: null,
|
|
178
194
|
showChild: false,
|
|
179
195
|
style: {
|
|
180
|
-
zIndex:
|
|
196
|
+
zIndex: internalData.tZindex,
|
|
181
197
|
top: `${top}px`,
|
|
182
198
|
left: `${left}px`
|
|
183
199
|
}
|
|
184
200
|
});
|
|
185
|
-
|
|
186
|
-
const
|
|
201
|
+
$xeTable.$nextTick(() => {
|
|
202
|
+
const tableMenu = $xeTable.$refs.refTableMenu;
|
|
203
|
+
const ctxElem = tableMenu.$el;
|
|
187
204
|
const clientHeight = ctxElem.clientHeight;
|
|
188
205
|
const clientWidth = ctxElem.clientWidth;
|
|
189
206
|
const { boundingTop, boundingLeft } = getAbsolutePos(ctxElem);
|
|
@@ -199,11 +216,13 @@ export default {
|
|
|
199
216
|
};
|
|
200
217
|
const { keyboard, row, column } = params;
|
|
201
218
|
if (keyboard && row && column) {
|
|
202
|
-
|
|
203
|
-
const cell =
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
219
|
+
$xeTable.scrollToRow(row, column).then(() => {
|
|
220
|
+
const cell = $xeTable.getCellElement(row, column);
|
|
221
|
+
if (cell) {
|
|
222
|
+
const { boundingTop, boundingLeft } = getAbsolutePos(cell);
|
|
223
|
+
top = boundingTop + scrollTop + Math.floor(cell.offsetHeight / 2);
|
|
224
|
+
left = boundingLeft + scrollLeft + Math.floor(cell.offsetWidth / 2);
|
|
225
|
+
}
|
|
207
226
|
handleVisible();
|
|
208
227
|
});
|
|
209
228
|
}
|
|
@@ -212,16 +231,18 @@ export default {
|
|
|
212
231
|
}
|
|
213
232
|
}
|
|
214
233
|
else {
|
|
215
|
-
|
|
234
|
+
$xeTable.closeMenu();
|
|
216
235
|
}
|
|
217
236
|
});
|
|
218
237
|
}
|
|
219
238
|
}
|
|
220
|
-
|
|
239
|
+
$xeTable.closeFilter();
|
|
221
240
|
},
|
|
222
241
|
ctxMenuMouseoverEvent(evnt, item, child) {
|
|
242
|
+
const $xeTable = this;
|
|
243
|
+
const reactData = $xeTable;
|
|
223
244
|
const menuElem = evnt.currentTarget;
|
|
224
|
-
const ctxMenuStore =
|
|
245
|
+
const { ctxMenuStore } = reactData;
|
|
225
246
|
evnt.preventDefault();
|
|
226
247
|
evnt.stopPropagation();
|
|
227
248
|
ctxMenuStore.selected = item;
|
|
@@ -229,7 +250,7 @@ export default {
|
|
|
229
250
|
if (!child) {
|
|
230
251
|
ctxMenuStore.showChild = hasChildrenList(item);
|
|
231
252
|
if (ctxMenuStore.showChild) {
|
|
232
|
-
|
|
253
|
+
$xeTable.$nextTick(() => {
|
|
233
254
|
const childWrapperElem = menuElem.nextElementSibling;
|
|
234
255
|
if (childWrapperElem) {
|
|
235
256
|
const { boundingTop, boundingLeft, visibleHeight, visibleWidth } = getAbsolutePos(menuElem);
|
|
@@ -259,7 +280,9 @@ export default {
|
|
|
259
280
|
}
|
|
260
281
|
},
|
|
261
282
|
ctxMenuMouseoutEvent(evnt, item) {
|
|
262
|
-
const
|
|
283
|
+
const $xeTable = this;
|
|
284
|
+
const reactData = $xeTable;
|
|
285
|
+
const { ctxMenuStore } = reactData;
|
|
263
286
|
if (!item.children) {
|
|
264
287
|
ctxMenuStore.selected = null;
|
|
265
288
|
}
|
|
@@ -272,22 +295,23 @@ export default {
|
|
|
272
295
|
const $xeTable = this;
|
|
273
296
|
const $xeGrid = $xeTable.$xeGrid;
|
|
274
297
|
const $xeGantt = $xeTable.$xeGantt;
|
|
298
|
+
const internalData = $xeTable;
|
|
275
299
|
// 如果一级菜单有配置 code 则允许点击,否则不能点击
|
|
276
300
|
if (!menu.disabled && (menu.code || !menu.children || !menu.children.length)) {
|
|
277
301
|
const gMenuOpts = menus.get(menu.code);
|
|
278
|
-
const params = Object.assign({ menu, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, $event: evnt }
|
|
302
|
+
const params = Object.assign({}, internalData._currMenuParams, { menu, $table: $xeTable, $grid: $xeGrid, $gantt: $xeGantt, $event: evnt });
|
|
279
303
|
if (gMenuOpts && gMenuOpts.menuMethod) {
|
|
280
304
|
gMenuOpts.menuMethod(params, evnt);
|
|
281
305
|
}
|
|
282
306
|
// 在 v4 中废弃事件 context-menu-click
|
|
283
|
-
if (
|
|
307
|
+
if ($xeTable.$listeners['context-menu-click']) {
|
|
284
308
|
warnLog('vxe.error.delEvent', ['context-menu-click', 'menu-click']);
|
|
285
309
|
$xeTable.dispatchEvent('context-menu-click', params, evnt);
|
|
286
310
|
}
|
|
287
311
|
else {
|
|
288
312
|
$xeTable.dispatchEvent('menu-click', params, evnt);
|
|
289
313
|
}
|
|
290
|
-
|
|
314
|
+
$xeTable.closeMenu();
|
|
291
315
|
}
|
|
292
316
|
}
|
|
293
317
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { VxeUI } from '../../../ui';
|
|
2
2
|
import { getFuncText } from '../../../ui/src/utils';
|
|
3
|
-
const { getIcon } = VxeUI;
|
|
3
|
+
const { getIcon, renderEmptyElement } = VxeUI;
|
|
4
4
|
export default {
|
|
5
5
|
name: 'VxeTableMenuPanel',
|
|
6
6
|
props: {
|
|
@@ -18,15 +18,17 @@ export default {
|
|
|
18
18
|
},
|
|
19
19
|
render(h) {
|
|
20
20
|
const $xeTable = this.$parent;
|
|
21
|
-
const
|
|
21
|
+
const tableReactData = $xeTable;
|
|
22
|
+
const { ctxMenuStore } = tableReactData;
|
|
23
|
+
const menuOpts = $xeTable.computeMenuOpts;
|
|
22
24
|
return h('div', {
|
|
23
|
-
class: ['vxe-table--context-menu-wrapper',
|
|
25
|
+
class: ['vxe-table--context-menu-wrapper', menuOpts.className, {
|
|
24
26
|
'is--visible': ctxMenuStore.visible
|
|
25
27
|
}],
|
|
26
28
|
style: ctxMenuStore.style
|
|
27
29
|
}, ctxMenuStore.list.map((options, gIndex) => {
|
|
28
30
|
return options.every((item) => item.visible === false)
|
|
29
|
-
?
|
|
31
|
+
? renderEmptyElement($xeTable)
|
|
30
32
|
: h('ul', {
|
|
31
33
|
class: 'vxe-context-menu--option-wrapper',
|
|
32
34
|
key: gIndex
|
|
@@ -64,7 +66,7 @@ export default {
|
|
|
64
66
|
h('i', {
|
|
65
67
|
class: prefixOpts.icon || item.prefixIcon
|
|
66
68
|
}),
|
|
67
|
-
prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) :
|
|
69
|
+
prefixOpts.content ? h('span', {}, `${prefixOpts.content}`) : renderEmptyElement($xeTable)
|
|
68
70
|
]),
|
|
69
71
|
h('span', {
|
|
70
72
|
class: 'vxe-context-menu--link-content',
|
|
@@ -78,7 +80,7 @@ export default {
|
|
|
78
80
|
h('i', {
|
|
79
81
|
class: (suffixOpts.icon || item.suffixIcon) || (hasChildMenus ? getIcon().TABLE_MENU_OPTIONS : '')
|
|
80
82
|
}),
|
|
81
|
-
suffixOpts.content ? h('span', `${suffixOpts.content}`) :
|
|
83
|
+
suffixOpts.content ? h('span', `${suffixOpts.content}`) : renderEmptyElement($xeTable)
|
|
82
84
|
])
|
|
83
85
|
]),
|
|
84
86
|
hasChildMenus
|
|
@@ -119,7 +121,7 @@ export default {
|
|
|
119
121
|
h('i', {
|
|
120
122
|
class: childPrefixOpts.icon || child.prefixIcon
|
|
121
123
|
}),
|
|
122
|
-
childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) :
|
|
124
|
+
childPrefixOpts.content ? h('span', `${childPrefixOpts.content}`) : renderEmptyElement($xeTable)
|
|
123
125
|
]),
|
|
124
126
|
h('span', {
|
|
125
127
|
class: 'vxe-context-menu--link-content',
|
|
@@ -133,7 +135,7 @@ export default {
|
|
|
133
135
|
h('i', {
|
|
134
136
|
class: childSuffixOpts.icon
|
|
135
137
|
}),
|
|
136
|
-
childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) :
|
|
138
|
+
childSuffixOpts.content ? h('span', `${childSuffixOpts.content}`) : renderEmptyElement($xeTable)
|
|
137
139
|
])
|
|
138
140
|
])
|
|
139
141
|
]);
|
package/es/table/render/index.js
CHANGED
|
@@ -294,7 +294,7 @@ function nativeEditRender(h, renderOpts, params) {
|
|
|
294
294
|
const { name } = renderOpts;
|
|
295
295
|
const cellValue = isImmediateCell(renderOpts, params) ? getCellValue(row, column) : column.model.value;
|
|
296
296
|
return [
|
|
297
|
-
h(name
|
|
297
|
+
h(`${name}`, {
|
|
298
298
|
class: `vxe-default-${name}`,
|
|
299
299
|
attrs: getNativeAttrs(renderOpts),
|
|
300
300
|
domProps: {
|
|
@@ -374,7 +374,8 @@ function oldButtonEditRender(h, renderOpts, params) {
|
|
|
374
374
|
* @deprecated
|
|
375
375
|
*/
|
|
376
376
|
function oldButtonsEditRender(h, renderOpts, params) {
|
|
377
|
-
|
|
377
|
+
const { children } = renderOpts;
|
|
378
|
+
return children ? children.map((childRenderOpts) => oldButtonEditRender(h, childRenderOpts, params)[0]) : [];
|
|
378
379
|
}
|
|
379
380
|
function renderNativeOptgroups(h, renderOpts, params, renderOptionsMethods) {
|
|
380
381
|
const { optionGroups, optionGroupProps = {} } = renderOpts;
|
|
@@ -424,7 +425,7 @@ function nativeFilterRender(h, renderOpts, params) {
|
|
|
424
425
|
const { name } = renderOpts;
|
|
425
426
|
const attrs = getNativeAttrs(renderOpts);
|
|
426
427
|
return column.filters.map((option, oIndex) => {
|
|
427
|
-
return h(name
|
|
428
|
+
return h(`${name}`, {
|
|
428
429
|
key: oIndex,
|
|
429
430
|
class: `vxe-default-${name}`,
|
|
430
431
|
attrs,
|
package/es/table/src/body.js
CHANGED
|
@@ -148,15 +148,14 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
148
148
|
// hover 进入事件
|
|
149
149
|
if (showTitle || showTooltip || showAllTip || tooltipConfig) {
|
|
150
150
|
tdOns.mouseenter = (evnt) => {
|
|
151
|
-
if (isVMScrollProcess($xeTable)) {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
$xeTable.triggerBodyTooltipEvent(evnt, cellParams);
|
|
151
|
+
if (!isVMScrollProcess($xeTable)) {
|
|
152
|
+
if (showTitle) {
|
|
153
|
+
updateCellTitle(evnt.currentTarget, column);
|
|
154
|
+
}
|
|
155
|
+
else if (showTooltip || showAllTip) {
|
|
156
|
+
// 如果配置了显示 tooltip
|
|
157
|
+
$xeTable.triggerBodyTooltipEvent(evnt, cellParams);
|
|
158
|
+
}
|
|
160
159
|
}
|
|
161
160
|
$xeTable.dispatchEvent('cell-mouseenter', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
|
|
162
161
|
};
|
|
@@ -164,11 +163,10 @@ function renderTdColumn(h, $xeTable, seq, rowid, fixedType, isOptimizeMode, rowL
|
|
|
164
163
|
// hover 退出事件
|
|
165
164
|
if (showTooltip || showAllTip || tooltipConfig) {
|
|
166
165
|
tdOns.mouseleave = (evnt) => {
|
|
167
|
-
if (isVMScrollProcess($xeTable)) {
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
$xeTable.handleTargetLeaveEvent(evnt);
|
|
166
|
+
if (!isVMScrollProcess($xeTable)) {
|
|
167
|
+
if (showTooltip || showAllTip) {
|
|
168
|
+
$xeTable.handleTargetLeaveEvent(evnt);
|
|
169
|
+
}
|
|
172
170
|
}
|
|
173
171
|
$xeTable.dispatchEvent('cell-mouseleave', Object.assign({ cell: evnt.currentTarget }, cellParams), evnt);
|
|
174
172
|
};
|
package/es/table/src/methods.js
CHANGED
|
@@ -8647,11 +8647,20 @@ const Methods = {
|
|
|
8647
8647
|
const rowDragOpts = $xeTable.computeRowDragOpts;
|
|
8648
8648
|
const { isCrossTableDrag } = rowDragOpts;
|
|
8649
8649
|
if (isCrossTableDrag && crossTableDragRowObj && !tableData.length) {
|
|
8650
|
-
const { $oldTable } = crossTableDragRowObj;
|
|
8651
|
-
if ($oldTable
|
|
8652
|
-
|
|
8653
|
-
|
|
8654
|
-
|
|
8650
|
+
const { $oldTable, $newTable } = crossTableDragRowObj;
|
|
8651
|
+
if ($oldTable) {
|
|
8652
|
+
const oldTableReactData = $oldTable;
|
|
8653
|
+
if ($oldTable.xID !== $xeTable.xID) {
|
|
8654
|
+
if ($newTable && $newTable.xID !== $xeTable.xID) {
|
|
8655
|
+
$newTable.hideCrossTableRowDropClearStatus();
|
|
8656
|
+
}
|
|
8657
|
+
evnt.preventDefault();
|
|
8658
|
+
$oldTable.hideCrossTableRowDropClearStatus();
|
|
8659
|
+
crossTableDragRowObj.$newTable = $xeTable;
|
|
8660
|
+
internalData.prevDragRow = null;
|
|
8661
|
+
reactData.dragTipText = oldTableReactData.dragTipText;
|
|
8662
|
+
showDropTip($xeTable, evnt, evnt.currentTarget, null, true, '');
|
|
8663
|
+
}
|
|
8655
8664
|
}
|
|
8656
8665
|
}
|
|
8657
8666
|
},
|
|
@@ -8885,6 +8894,9 @@ const Methods = {
|
|
|
8885
8894
|
crossTableDragRowObj.$newTable = null;
|
|
8886
8895
|
}
|
|
8887
8896
|
else if (!treeConfig || isCrossDrag) {
|
|
8897
|
+
if ($newTable && $newTable.xID !== $xeTable.xID) {
|
|
8898
|
+
$newTable.hideCrossTableRowDropClearStatus();
|
|
8899
|
+
}
|
|
8888
8900
|
$oldTable.hideCrossTableRowDropClearStatus();
|
|
8889
8901
|
oldTableReactData.isCrossDragRow = true;
|
|
8890
8902
|
reactData.dragTipText = oldTableReactData.dragTipText;
|
package/es/table/src/table.js
CHANGED
|
@@ -1889,9 +1889,11 @@ export default {
|
|
|
1889
1889
|
const scrollbarXToTop = $xeTable.computeScrollbarXToTop;
|
|
1890
1890
|
const scrollbarYToLeft = $xeTable.computeScrollbarYToLeft;
|
|
1891
1891
|
const { isCrossTableDrag } = rowDragOpts;
|
|
1892
|
-
const
|
|
1892
|
+
const tbOns = {
|
|
1893
|
+
keydown: this.keydownEvent
|
|
1894
|
+
};
|
|
1893
1895
|
if (isCrossTableDrag && !tableData.length) {
|
|
1894
|
-
|
|
1896
|
+
tbOns.dragover = $xeTable.handleCrossTableRowDragoverEmptyEvent;
|
|
1895
1897
|
}
|
|
1896
1898
|
return h('div', {
|
|
1897
1899
|
ref: 'refElem',
|
|
@@ -1929,9 +1931,7 @@ export default {
|
|
|
1929
1931
|
attrs: {
|
|
1930
1932
|
spellcheck: false
|
|
1931
1933
|
},
|
|
1932
|
-
on:
|
|
1933
|
-
keydown: this.keydownEvent
|
|
1934
|
-
}
|
|
1934
|
+
on: tbOns
|
|
1935
1935
|
}, [
|
|
1936
1936
|
/**
|
|
1937
1937
|
* 隐藏列
|
|
@@ -1959,8 +1959,7 @@ export default {
|
|
|
1959
1959
|
]),
|
|
1960
1960
|
h('div', {
|
|
1961
1961
|
key: 'tw',
|
|
1962
|
-
class: 'vxe-table--render-wrapper'
|
|
1963
|
-
on: rwOns
|
|
1962
|
+
class: 'vxe-table--render-wrapper'
|
|
1964
1963
|
}, scrollbarXToTop
|
|
1965
1964
|
? [
|
|
1966
1965
|
renderScrollX(h, $xeTable),
|
package/es/table/style.css
CHANGED
|
@@ -2394,10 +2394,6 @@
|
|
|
2394
2394
|
.vxe-header--column .vxe-cell-title-suffix-icon {
|
|
2395
2395
|
padding: 0.2em;
|
|
2396
2396
|
}
|
|
2397
|
-
.vxe-header--column .vxe-cell-title-prefix-icon,
|
|
2398
|
-
.vxe-header--column .vxe-cell-title-suffix-icon {
|
|
2399
|
-
cursor: help;
|
|
2400
|
-
}
|
|
2401
2397
|
.vxe-header--column .vxe-cell-title-prefix-icon.theme--primary,
|
|
2402
2398
|
.vxe-header--column .vxe-cell-title-suffix-icon.theme--primary {
|
|
2403
2399
|
color: var(--vxe-ui-font-primary-color);
|