vxe-table 3.18.0-beta.7 → 3.18.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/es/locale/lang/ar-EG.js +30 -0
- package/es/locale/lang/de-DE.js +30 -0
- package/es/locale/lang/en-US.js +42 -12
- package/es/locale/lang/es-ES.js +30 -0
- package/es/locale/lang/fr-FR.js +30 -0
- package/es/locale/lang/hu-HU.js +30 -0
- package/es/locale/lang/hy-AM.js +30 -0
- package/es/locale/lang/id-ID.js +30 -0
- package/es/locale/lang/it-IT.js +30 -0
- package/es/locale/lang/ja-JP.js +30 -0
- package/es/locale/lang/ko-KR.js +30 -0
- package/es/locale/lang/ms-MY.js +30 -0
- package/es/locale/lang/nb-NO.js +30 -0
- package/es/locale/lang/pt-BR.js +30 -0
- package/es/locale/lang/ru-RU.js +30 -0
- package/es/locale/lang/th-TH.js +30 -0
- package/es/locale/lang/ug-CN.js +30 -0
- package/es/locale/lang/uk-UA.js +30 -0
- package/es/locale/lang/uz-UZ.js +30 -0
- package/es/locale/lang/vi-VN.js +30 -0
- package/es/locale/lang/zh-CHT.js +30 -0
- package/es/locale/lang/zh-CN.js +32 -0
- package/es/style.css +1 -1
- package/es/table/module/keyboard/mixin.js +175 -172
- package/es/table/src/footer.js +2 -2
- package/es/table/src/header.js +2 -2
- package/es/table/src/table.js +22 -3
- package/es/table/src/util.js +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +244 -192
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ar-EG.js +30 -0
- package/lib/locale/lang/ar-EG.min.js +1 -1
- package/lib/locale/lang/ar-EG.umd.js +30 -0
- package/lib/locale/lang/de-DE.js +30 -0
- package/lib/locale/lang/de-DE.min.js +1 -1
- package/lib/locale/lang/de-DE.umd.js +30 -0
- package/lib/locale/lang/en-US.js +42 -12
- package/lib/locale/lang/en-US.min.js +1 -1
- package/lib/locale/lang/en-US.umd.js +42 -12
- package/lib/locale/lang/es-ES.js +30 -0
- package/lib/locale/lang/es-ES.min.js +1 -1
- package/lib/locale/lang/es-ES.umd.js +30 -0
- package/lib/locale/lang/fr-FR.js +30 -0
- package/lib/locale/lang/fr-FR.min.js +1 -1
- package/lib/locale/lang/fr-FR.umd.js +30 -0
- package/lib/locale/lang/hu-HU.js +30 -0
- package/lib/locale/lang/hu-HU.min.js +1 -1
- package/lib/locale/lang/hu-HU.umd.js +30 -0
- package/lib/locale/lang/hy-AM.js +30 -0
- package/lib/locale/lang/hy-AM.min.js +1 -1
- package/lib/locale/lang/hy-AM.umd.js +30 -0
- package/lib/locale/lang/id-ID.js +30 -0
- package/lib/locale/lang/id-ID.min.js +1 -1
- package/lib/locale/lang/id-ID.umd.js +30 -0
- package/lib/locale/lang/it-IT.js +30 -0
- package/lib/locale/lang/it-IT.min.js +1 -1
- package/lib/locale/lang/it-IT.umd.js +30 -0
- package/lib/locale/lang/ja-JP.js +30 -0
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +30 -0
- package/lib/locale/lang/ko-KR.js +30 -0
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +30 -0
- package/lib/locale/lang/ms-MY.js +30 -0
- package/lib/locale/lang/ms-MY.min.js +1 -1
- package/lib/locale/lang/ms-MY.umd.js +30 -0
- package/lib/locale/lang/nb-NO.js +30 -0
- package/lib/locale/lang/nb-NO.min.js +1 -1
- package/lib/locale/lang/nb-NO.umd.js +30 -0
- package/lib/locale/lang/pt-BR.js +30 -0
- package/lib/locale/lang/pt-BR.min.js +1 -1
- package/lib/locale/lang/pt-BR.umd.js +30 -0
- package/lib/locale/lang/ru-RU.js +30 -0
- package/lib/locale/lang/ru-RU.min.js +1 -1
- package/lib/locale/lang/ru-RU.umd.js +30 -0
- package/lib/locale/lang/th-TH.js +30 -0
- package/lib/locale/lang/th-TH.min.js +1 -1
- package/lib/locale/lang/th-TH.umd.js +30 -0
- package/lib/locale/lang/ug-CN.js +30 -0
- package/lib/locale/lang/ug-CN.min.js +1 -1
- package/lib/locale/lang/ug-CN.umd.js +30 -0
- package/lib/locale/lang/uk-UA.js +30 -0
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +30 -0
- package/lib/locale/lang/uz-UZ.js +30 -0
- package/lib/locale/lang/uz-UZ.min.js +1 -1
- package/lib/locale/lang/uz-UZ.umd.js +30 -0
- package/lib/locale/lang/vi-VN.js +30 -0
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/vi-VN.umd.js +30 -0
- package/lib/locale/lang/zh-CHT.js +30 -0
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +30 -0
- package/lib/locale/lang/zh-CN.js +32 -0
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +32 -0
- package/lib/style.css +1 -1
- package/lib/table/module/keyboard/mixin.js +184 -185
- package/lib/table/module/keyboard/mixin.min.js +1 -1
- package/lib/table/src/footer.js +1 -1
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +1 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +23 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +2 -2
- package/lib/table/src/util.min.js +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/package.json +1 -1
- package/packages/locale/lang/ar-EG.ts +30 -0
- package/packages/locale/lang/de-DE.ts +30 -0
- package/packages/locale/lang/en-US.ts +42 -12
- package/packages/locale/lang/es-ES.ts +30 -0
- package/packages/locale/lang/fr-FR.ts +30 -0
- package/packages/locale/lang/hu-HU.ts +30 -0
- package/packages/locale/lang/hy-AM.ts +30 -0
- package/packages/locale/lang/id-ID.ts +30 -0
- package/packages/locale/lang/it-IT.ts +30 -0
- package/packages/locale/lang/ja-JP.ts +30 -0
- package/packages/locale/lang/ko-KR.ts +30 -0
- package/packages/locale/lang/ms-MY.ts +30 -0
- package/packages/locale/lang/nb-NO.ts +30 -0
- package/packages/locale/lang/pt-BR.ts +30 -0
- package/packages/locale/lang/ru-RU.ts +30 -0
- package/packages/locale/lang/th-TH.ts +30 -0
- package/packages/locale/lang/ug-CN.ts +30 -0
- package/packages/locale/lang/uk-UA.ts +30 -0
- package/packages/locale/lang/uz-UZ.ts +30 -0
- package/packages/locale/lang/vi-VN.ts +30 -0
- package/packages/locale/lang/zh-CHT.ts +30 -0
- package/packages/locale/lang/zh-CN.ts +32 -0
- package/packages/table/module/keyboard/mixin.ts +169 -165
- package/packages/table/src/footer.ts +2 -2
- package/packages/table/src/header.ts +2 -2
- package/packages/table/src/table.ts +23 -3
- package/packages/table/src/util.ts +1 -1
- /package/es/{iconfont.1755650997091.ttf → iconfont.1756083626568.ttf} +0 -0
- /package/es/{iconfont.1755650997091.woff → iconfont.1756083626568.woff} +0 -0
- /package/es/{iconfont.1755650997091.woff2 → iconfont.1756083626568.woff2} +0 -0
- /package/lib/{iconfont.1755650997091.ttf → iconfont.1756083626568.ttf} +0 -0
- /package/lib/{iconfont.1755650997091.woff → iconfont.1756083626568.woff} +0 -0
- /package/lib/{iconfont.1755650997091.woff2 → iconfont.1756083626568.woff2} +0 -0
|
@@ -145,6 +145,182 @@ function handleMoveSelected($xeTable, evnt, args, isLeftArrow, isUpArrow, isRigh
|
|
|
145
145
|
});
|
|
146
146
|
return params;
|
|
147
147
|
}
|
|
148
|
+
function handleCheckboxRangeEvent($xeTable, evnt, params) {
|
|
149
|
+
const internalData = $xeTable;
|
|
150
|
+
const {
|
|
151
|
+
elemStore
|
|
152
|
+
} = internalData;
|
|
153
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
154
|
+
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
155
|
+
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
156
|
+
const {
|
|
157
|
+
column,
|
|
158
|
+
cell
|
|
159
|
+
} = params;
|
|
160
|
+
if (column.type === 'checkbox') {
|
|
161
|
+
let bodyWrapperElem = bodyScrollElem;
|
|
162
|
+
if (leftScrollElem && column.fixed === 'left') {
|
|
163
|
+
bodyWrapperElem = leftScrollElem;
|
|
164
|
+
} else if (rightScrollElem && column.fixed === 'right') {
|
|
165
|
+
bodyWrapperElem = rightScrollElem;
|
|
166
|
+
}
|
|
167
|
+
if (!bodyWrapperElem) {
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
const el = $xeTable.$refs.refElem;
|
|
171
|
+
const disX = evnt.clientX;
|
|
172
|
+
const disY = evnt.clientY;
|
|
173
|
+
const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
|
|
174
|
+
const trElem = cell.parentNode;
|
|
175
|
+
const selectRecords = $xeTable.getCheckboxRecords();
|
|
176
|
+
let lastRangeRows = [];
|
|
177
|
+
const marginSize = 1;
|
|
178
|
+
const offsetRest = getTargetOffset(evnt.target, bodyWrapperElem);
|
|
179
|
+
const startTop = offsetRest.offsetTop + evnt.offsetY;
|
|
180
|
+
const startLeft = offsetRest.offsetLeft + evnt.offsetX;
|
|
181
|
+
const startScrollTop = bodyWrapperElem.scrollTop;
|
|
182
|
+
const rowHeight = trElem.offsetHeight;
|
|
183
|
+
const trRect = trElem.getBoundingClientRect();
|
|
184
|
+
const offsetClientTop = disY - trRect.y;
|
|
185
|
+
let mouseScrollTimeout = null;
|
|
186
|
+
let isMouseScrollDown = false;
|
|
187
|
+
let mouseScrollSpaceSize = 1;
|
|
188
|
+
const triggerEvent = (type, evnt) => {
|
|
189
|
+
$xeTable.dispatchEvent(`checkbox-range-${type}`, {
|
|
190
|
+
records: () => $xeTable.getCheckboxRecords(),
|
|
191
|
+
reserves: () => $xeTable.getCheckboxReserveRecords()
|
|
192
|
+
}, evnt);
|
|
193
|
+
};
|
|
194
|
+
const handleChecked = evnt => {
|
|
195
|
+
const {
|
|
196
|
+
clientX,
|
|
197
|
+
clientY
|
|
198
|
+
} = evnt;
|
|
199
|
+
const offsetLeft = clientX - disX;
|
|
200
|
+
const offsetTop = clientY - disY + (bodyWrapperElem.scrollTop - startScrollTop);
|
|
201
|
+
let rangeHeight = Math.abs(offsetTop);
|
|
202
|
+
let rangeWidth = Math.abs(offsetLeft);
|
|
203
|
+
let rangeTop = startTop;
|
|
204
|
+
let rangeLeft = startLeft;
|
|
205
|
+
if (offsetTop < marginSize) {
|
|
206
|
+
// 向上
|
|
207
|
+
rangeTop += offsetTop;
|
|
208
|
+
if (rangeTop < marginSize) {
|
|
209
|
+
rangeTop = marginSize;
|
|
210
|
+
rangeHeight = startTop;
|
|
211
|
+
}
|
|
212
|
+
} else {
|
|
213
|
+
// 向下
|
|
214
|
+
rangeHeight = Math.min(rangeHeight, bodyWrapperElem.scrollHeight - startTop - marginSize);
|
|
215
|
+
}
|
|
216
|
+
if (offsetLeft < marginSize) {
|
|
217
|
+
// 向左
|
|
218
|
+
rangeLeft += offsetLeft;
|
|
219
|
+
if (rangeWidth > startLeft) {
|
|
220
|
+
rangeLeft = marginSize;
|
|
221
|
+
rangeWidth = startLeft;
|
|
222
|
+
}
|
|
223
|
+
} else {
|
|
224
|
+
// 向右
|
|
225
|
+
rangeWidth = Math.min(rangeWidth, bodyWrapperElem.clientWidth - startLeft - marginSize);
|
|
226
|
+
}
|
|
227
|
+
checkboxRangeElem.style.height = `${rangeHeight}px`;
|
|
228
|
+
checkboxRangeElem.style.width = `${rangeWidth}px`;
|
|
229
|
+
checkboxRangeElem.style.left = `${rangeLeft}px`;
|
|
230
|
+
checkboxRangeElem.style.top = `${rangeTop}px`;
|
|
231
|
+
checkboxRangeElem.style.display = 'block';
|
|
232
|
+
const rangeRows = getCheckboxRangeRows($xeTable, evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight);
|
|
233
|
+
// 至少滑动 10px 才能有效匹配
|
|
234
|
+
if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
|
|
235
|
+
const isControlKey = (0, _dom.hasControlKey)(evnt);
|
|
236
|
+
lastRangeRows = rangeRows;
|
|
237
|
+
if (isControlKey) {
|
|
238
|
+
rangeRows.forEach(row => {
|
|
239
|
+
$xeTable.handleBatchSelectRows([row], selectRecords.indexOf(row) === -1);
|
|
240
|
+
});
|
|
241
|
+
} else {
|
|
242
|
+
$xeTable.setAllCheckboxRow(false);
|
|
243
|
+
$xeTable.handleCheckedCheckboxRow(rangeRows, true, false);
|
|
244
|
+
}
|
|
245
|
+
triggerEvent('change', evnt);
|
|
246
|
+
}
|
|
247
|
+
};
|
|
248
|
+
// 停止鼠标滚动
|
|
249
|
+
const stopMouseScroll = () => {
|
|
250
|
+
clearTimeout(mouseScrollTimeout);
|
|
251
|
+
mouseScrollTimeout = null;
|
|
252
|
+
};
|
|
253
|
+
// 开始鼠标滚动
|
|
254
|
+
const startMouseScroll = evnt => {
|
|
255
|
+
stopMouseScroll();
|
|
256
|
+
mouseScrollTimeout = setTimeout(() => {
|
|
257
|
+
if (mouseScrollTimeout) {
|
|
258
|
+
const {
|
|
259
|
+
scrollLeft,
|
|
260
|
+
scrollTop,
|
|
261
|
+
clientHeight,
|
|
262
|
+
scrollHeight
|
|
263
|
+
} = bodyWrapperElem;
|
|
264
|
+
const topSize = Math.ceil(mouseScrollSpaceSize * 50 / rowHeight);
|
|
265
|
+
if (isMouseScrollDown) {
|
|
266
|
+
if (scrollTop + clientHeight < scrollHeight) {
|
|
267
|
+
$xeTable.scrollTo(scrollLeft, scrollTop + topSize);
|
|
268
|
+
startMouseScroll(evnt);
|
|
269
|
+
handleChecked(evnt);
|
|
270
|
+
} else {
|
|
271
|
+
stopMouseScroll();
|
|
272
|
+
}
|
|
273
|
+
} else {
|
|
274
|
+
if (scrollTop) {
|
|
275
|
+
$xeTable.scrollTo(scrollLeft, scrollTop - topSize);
|
|
276
|
+
startMouseScroll(evnt);
|
|
277
|
+
handleChecked(evnt);
|
|
278
|
+
} else {
|
|
279
|
+
stopMouseScroll();
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
}, 50);
|
|
284
|
+
};
|
|
285
|
+
(0, _dom.addClass)(el, 'drag--range');
|
|
286
|
+
document.onmousemove = evnt => {
|
|
287
|
+
evnt.preventDefault();
|
|
288
|
+
evnt.stopPropagation();
|
|
289
|
+
const {
|
|
290
|
+
clientY
|
|
291
|
+
} = evnt;
|
|
292
|
+
const {
|
|
293
|
+
boundingTop
|
|
294
|
+
} = (0, _dom.getAbsolutePos)(bodyWrapperElem);
|
|
295
|
+
// 如果超过可视区,触发滚动
|
|
296
|
+
if (clientY < boundingTop) {
|
|
297
|
+
isMouseScrollDown = false;
|
|
298
|
+
mouseScrollSpaceSize = boundingTop - clientY;
|
|
299
|
+
if (!mouseScrollTimeout) {
|
|
300
|
+
startMouseScroll(evnt);
|
|
301
|
+
}
|
|
302
|
+
} else if (clientY > boundingTop + bodyWrapperElem.clientHeight) {
|
|
303
|
+
isMouseScrollDown = true;
|
|
304
|
+
mouseScrollSpaceSize = clientY - boundingTop - bodyWrapperElem.clientHeight;
|
|
305
|
+
if (!mouseScrollTimeout) {
|
|
306
|
+
startMouseScroll(evnt);
|
|
307
|
+
}
|
|
308
|
+
} else if (mouseScrollTimeout) {
|
|
309
|
+
stopMouseScroll();
|
|
310
|
+
}
|
|
311
|
+
handleChecked(evnt);
|
|
312
|
+
};
|
|
313
|
+
document.onmouseup = evnt => {
|
|
314
|
+
stopMouseScroll();
|
|
315
|
+
(0, _dom.removeClass)(el, 'drag--range');
|
|
316
|
+
checkboxRangeElem.removeAttribute('style');
|
|
317
|
+
document.onmousemove = null;
|
|
318
|
+
document.onmouseup = null;
|
|
319
|
+
triggerEvent('end', evnt);
|
|
320
|
+
};
|
|
321
|
+
triggerEvent('start', evnt);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
148
324
|
var _default = exports.default = {
|
|
149
325
|
methods: {
|
|
150
326
|
// 处理 Tab 键移动
|
|
@@ -375,204 +551,27 @@ var _default = exports.default = {
|
|
|
375
551
|
},
|
|
376
552
|
handleCellMousedownEvent(evnt, params) {
|
|
377
553
|
const $xeTable = this;
|
|
554
|
+
const props = $xeTable;
|
|
378
555
|
const {
|
|
379
556
|
editConfig,
|
|
380
|
-
editOpts,
|
|
381
|
-
handleSelected,
|
|
382
557
|
checkboxConfig,
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
558
|
+
mouseConfig
|
|
559
|
+
} = props;
|
|
560
|
+
const checkboxOpts = $xeTable.computeCheckboxOpts;
|
|
561
|
+
const mouseOpts = $xeTable.computeMouseOpts;
|
|
562
|
+
const editOpts = $xeTable.computeEditOpts;
|
|
387
563
|
if (mouseConfig && mouseOpts.area && $xeTable.triggerCellAreaModnEvent) {
|
|
388
564
|
return $xeTable.triggerCellAreaModnEvent(evnt, params);
|
|
389
565
|
} else {
|
|
390
566
|
if (checkboxConfig && checkboxOpts.range) {
|
|
391
|
-
|
|
567
|
+
handleCheckboxRangeEvent($xeTable, evnt, params);
|
|
392
568
|
}
|
|
393
569
|
if (mouseConfig && mouseOpts.selected) {
|
|
394
570
|
if (!editConfig || editOpts.mode === 'cell') {
|
|
395
|
-
handleSelected(params, evnt);
|
|
571
|
+
$xeTable.handleSelected(params, evnt);
|
|
396
572
|
}
|
|
397
573
|
}
|
|
398
574
|
}
|
|
399
|
-
},
|
|
400
|
-
handleCheckboxRangeEvent(evnt, params) {
|
|
401
|
-
const $xeTable = this;
|
|
402
|
-
const internalData = $xeTable;
|
|
403
|
-
const {
|
|
404
|
-
elemStore
|
|
405
|
-
} = internalData;
|
|
406
|
-
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
407
|
-
const leftScrollElem = (0, _util.getRefElem)(elemStore['left-body-scroll']);
|
|
408
|
-
const rightScrollElem = (0, _util.getRefElem)(elemStore['right-body-scroll']);
|
|
409
|
-
const {
|
|
410
|
-
column,
|
|
411
|
-
cell
|
|
412
|
-
} = params;
|
|
413
|
-
if (column.type === 'checkbox') {
|
|
414
|
-
let bodyWrapperElem = bodyScrollElem;
|
|
415
|
-
if (leftScrollElem && column.fixed === 'left') {
|
|
416
|
-
bodyWrapperElem = leftScrollElem;
|
|
417
|
-
} else if (rightScrollElem && column.fixed === 'right') {
|
|
418
|
-
bodyWrapperElem = rightScrollElem;
|
|
419
|
-
}
|
|
420
|
-
if (!bodyWrapperElem) {
|
|
421
|
-
return;
|
|
422
|
-
}
|
|
423
|
-
const el = $xeTable.$refs.refElem;
|
|
424
|
-
const disX = evnt.clientX;
|
|
425
|
-
const disY = evnt.clientY;
|
|
426
|
-
const checkboxRangeElem = bodyWrapperElem.querySelector('.vxe-table--checkbox-range');
|
|
427
|
-
const trElem = cell.parentNode;
|
|
428
|
-
const selectRecords = this.getCheckboxRecords();
|
|
429
|
-
let lastRangeRows = [];
|
|
430
|
-
const marginSize = 1;
|
|
431
|
-
const offsetRest = getTargetOffset(evnt.target, bodyWrapperElem);
|
|
432
|
-
const startTop = offsetRest.offsetTop + evnt.offsetY;
|
|
433
|
-
const startLeft = offsetRest.offsetLeft + evnt.offsetX;
|
|
434
|
-
const startScrollTop = bodyWrapperElem.scrollTop;
|
|
435
|
-
const rowHeight = trElem.offsetHeight;
|
|
436
|
-
const trRect = trElem.getBoundingClientRect();
|
|
437
|
-
const offsetClientTop = disY - trRect.y;
|
|
438
|
-
let mouseScrollTimeout = null;
|
|
439
|
-
let isMouseScrollDown = false;
|
|
440
|
-
let mouseScrollSpaceSize = 1;
|
|
441
|
-
const triggerEvent = (type, evnt) => {
|
|
442
|
-
this.emitEvent(`checkbox-range-${type}`, {
|
|
443
|
-
records: () => this.getCheckboxRecords(),
|
|
444
|
-
reserves: () => this.getCheckboxReserveRecords()
|
|
445
|
-
}, evnt);
|
|
446
|
-
};
|
|
447
|
-
const handleChecked = evnt => {
|
|
448
|
-
const {
|
|
449
|
-
clientX,
|
|
450
|
-
clientY
|
|
451
|
-
} = evnt;
|
|
452
|
-
const offsetLeft = clientX - disX;
|
|
453
|
-
const offsetTop = clientY - disY + (bodyWrapperElem.scrollTop - startScrollTop);
|
|
454
|
-
let rangeHeight = Math.abs(offsetTop);
|
|
455
|
-
let rangeWidth = Math.abs(offsetLeft);
|
|
456
|
-
let rangeTop = startTop;
|
|
457
|
-
let rangeLeft = startLeft;
|
|
458
|
-
if (offsetTop < marginSize) {
|
|
459
|
-
// 向上
|
|
460
|
-
rangeTop += offsetTop;
|
|
461
|
-
if (rangeTop < marginSize) {
|
|
462
|
-
rangeTop = marginSize;
|
|
463
|
-
rangeHeight = startTop;
|
|
464
|
-
}
|
|
465
|
-
} else {
|
|
466
|
-
// 向下
|
|
467
|
-
rangeHeight = Math.min(rangeHeight, bodyWrapperElem.scrollHeight - startTop - marginSize);
|
|
468
|
-
}
|
|
469
|
-
if (offsetLeft < marginSize) {
|
|
470
|
-
// 向左
|
|
471
|
-
rangeLeft += offsetLeft;
|
|
472
|
-
if (rangeWidth > startLeft) {
|
|
473
|
-
rangeLeft = marginSize;
|
|
474
|
-
rangeWidth = startLeft;
|
|
475
|
-
}
|
|
476
|
-
} else {
|
|
477
|
-
// 向右
|
|
478
|
-
rangeWidth = Math.min(rangeWidth, bodyWrapperElem.clientWidth - startLeft - marginSize);
|
|
479
|
-
}
|
|
480
|
-
checkboxRangeElem.style.height = `${rangeHeight}px`;
|
|
481
|
-
checkboxRangeElem.style.width = `${rangeWidth}px`;
|
|
482
|
-
checkboxRangeElem.style.left = `${rangeLeft}px`;
|
|
483
|
-
checkboxRangeElem.style.top = `${rangeTop}px`;
|
|
484
|
-
checkboxRangeElem.style.display = 'block';
|
|
485
|
-
const rangeRows = getCheckboxRangeRows(this, evnt, params, trElem, trRect, offsetClientTop, offsetTop < marginSize ? -rangeHeight : rangeHeight);
|
|
486
|
-
// 至少滑动 10px 才能有效匹配
|
|
487
|
-
if (rangeHeight > 10 && rangeRows.length !== lastRangeRows.length) {
|
|
488
|
-
const isControlKey = (0, _dom.hasControlKey)(evnt);
|
|
489
|
-
lastRangeRows = rangeRows;
|
|
490
|
-
if (isControlKey) {
|
|
491
|
-
rangeRows.forEach(row => {
|
|
492
|
-
$xeTable.handleBatchSelectRows([row], selectRecords.indexOf(row) === -1);
|
|
493
|
-
});
|
|
494
|
-
} else {
|
|
495
|
-
this.setAllCheckboxRow(false);
|
|
496
|
-
this.handleCheckedCheckboxRow(rangeRows, true, false);
|
|
497
|
-
}
|
|
498
|
-
triggerEvent('change', evnt);
|
|
499
|
-
}
|
|
500
|
-
};
|
|
501
|
-
// 停止鼠标滚动
|
|
502
|
-
const stopMouseScroll = () => {
|
|
503
|
-
clearTimeout(mouseScrollTimeout);
|
|
504
|
-
mouseScrollTimeout = null;
|
|
505
|
-
};
|
|
506
|
-
// 开始鼠标滚动
|
|
507
|
-
const startMouseScroll = evnt => {
|
|
508
|
-
stopMouseScroll();
|
|
509
|
-
mouseScrollTimeout = setTimeout(() => {
|
|
510
|
-
if (mouseScrollTimeout) {
|
|
511
|
-
const {
|
|
512
|
-
scrollLeft,
|
|
513
|
-
scrollTop,
|
|
514
|
-
clientHeight,
|
|
515
|
-
scrollHeight
|
|
516
|
-
} = bodyWrapperElem;
|
|
517
|
-
const topSize = Math.ceil(mouseScrollSpaceSize * 50 / rowHeight);
|
|
518
|
-
if (isMouseScrollDown) {
|
|
519
|
-
if (scrollTop + clientHeight < scrollHeight) {
|
|
520
|
-
this.scrollTo(scrollLeft, scrollTop + topSize);
|
|
521
|
-
startMouseScroll(evnt);
|
|
522
|
-
handleChecked(evnt);
|
|
523
|
-
} else {
|
|
524
|
-
stopMouseScroll();
|
|
525
|
-
}
|
|
526
|
-
} else {
|
|
527
|
-
if (scrollTop) {
|
|
528
|
-
this.scrollTo(scrollLeft, scrollTop - topSize);
|
|
529
|
-
startMouseScroll(evnt);
|
|
530
|
-
handleChecked(evnt);
|
|
531
|
-
} else {
|
|
532
|
-
stopMouseScroll();
|
|
533
|
-
}
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
}, 50);
|
|
537
|
-
};
|
|
538
|
-
(0, _dom.addClass)(el, 'drag--range');
|
|
539
|
-
document.onmousemove = evnt => {
|
|
540
|
-
evnt.preventDefault();
|
|
541
|
-
evnt.stopPropagation();
|
|
542
|
-
const {
|
|
543
|
-
clientY
|
|
544
|
-
} = evnt;
|
|
545
|
-
const {
|
|
546
|
-
boundingTop
|
|
547
|
-
} = (0, _dom.getAbsolutePos)(bodyWrapperElem);
|
|
548
|
-
// 如果超过可视区,触发滚动
|
|
549
|
-
if (clientY < boundingTop) {
|
|
550
|
-
isMouseScrollDown = false;
|
|
551
|
-
mouseScrollSpaceSize = boundingTop - clientY;
|
|
552
|
-
if (!mouseScrollTimeout) {
|
|
553
|
-
startMouseScroll(evnt);
|
|
554
|
-
}
|
|
555
|
-
} else if (clientY > boundingTop + bodyWrapperElem.clientHeight) {
|
|
556
|
-
isMouseScrollDown = true;
|
|
557
|
-
mouseScrollSpaceSize = clientY - boundingTop - bodyWrapperElem.clientHeight;
|
|
558
|
-
if (!mouseScrollTimeout) {
|
|
559
|
-
startMouseScroll(evnt);
|
|
560
|
-
}
|
|
561
|
-
} else if (mouseScrollTimeout) {
|
|
562
|
-
stopMouseScroll();
|
|
563
|
-
}
|
|
564
|
-
handleChecked(evnt);
|
|
565
|
-
};
|
|
566
|
-
document.onmouseup = evnt => {
|
|
567
|
-
stopMouseScroll();
|
|
568
|
-
(0, _dom.removeClass)(el, 'drag--range');
|
|
569
|
-
checkboxRangeElem.removeAttribute('style');
|
|
570
|
-
document.onmousemove = null;
|
|
571
|
-
document.onmouseup = null;
|
|
572
|
-
triggerEvent('end', evnt);
|
|
573
|
-
};
|
|
574
|
-
triggerEvent('start', evnt);
|
|
575
|
-
}
|
|
576
575
|
}
|
|
577
576
|
}
|
|
578
577
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_util=require("../../src/util"),_dom=require("../../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let browseObj=_xeUtils.default.browse();function getTargetOffset(e,t){let l=0,o=0;var r,n,u=!browseObj.firefox&&(0,_dom.hasClass)(e,"vxe-checkbox--label");for(u&&(r=getComputedStyle(e),l-=_xeUtils.default.toNumber(r.paddingTop),o-=_xeUtils.default.toNumber(r.paddingLeft));e&&e!==t;)l+=e.offsetTop,o+=e.offsetLeft,e=e.offsetParent,u&&(n=getComputedStyle(e),l-=_xeUtils.default.toNumber(n.paddingTop),o-=_xeUtils.default.toNumber(n.paddingLeft));return{offsetTop:l,offsetLeft:o}}function getCheckboxRangeRows(t,e,l,o,r,n,u){var i=t.showOverflow,{fullAllDataRowIdData:s,isResizeCellHeight:c}=t,d=t.computeRowOpts,a=t.computeCellOpts,g=t.computeDefaultRowHeight,l=l.row;let h=0,m=[],f=0;var C=0<u,p=t.scrollYLoad,w=t.afterFullData;if(f=C?n+u:r.height-n+Math.abs(u),p){r=t.getVTRowIndex(l);if(!(c||a.height||d.height)&&i)m=C?w.slice(r,r+Math.ceil(f/g)):w.slice(r-Math.floor(f/g),r+1);else if(C)for(let e=r;e<w.length;e++){var v=w[e],x=s[t.getRowid(v)]||{};if(h+=x.resizeHeight||a.height||d.height||x.height||g,m.push(v),h>f)return m}else for(let e=r;0<=e;e--){var R=w[e],b=s[t.getRowid(R)]||{};if(h+=b.resizeHeight||a.height||d.height||b.height||g,m.push(R),h>f)return m}}else for(var T=C?"next":"previous";o&&h<f;){var O=t.getRowNode(o);O&&(m.push(O.item),h+=o.offsetHeight,o=o[T+"ElementSibling"])}return m}function handleMoveSelected(e,t,l,o,r,n,u){var{afterFullData:i,visibleColumn:s}=e;let c=Object.assign({},l);var l=e.getVTRowIndex(c.row),d=e.getVTColumnIndex(c.column);return t.preventDefault(),r&&0<l?(c.rowIndex=l-1,c.row=i[c.rowIndex]):u&&l<i.length-1?(c.rowIndex=l+1,c.row=i[c.rowIndex]):o&&d?(c.columnIndex=d-1,c.column=s[c.columnIndex]):n&&d<s.length-1&&(c.columnIndex=d+1,c.column=s[c.columnIndex]),e.scrollToRow(c.row,c.column).then(()=>{c.cell=e.getCellElement(c.row,c.column),e.handleSelected(c,t)}),c}function handleCheckboxRangeEvent(S,e,_){var t=S.elemStore,l=(0,_util.getRefElem)(t["main-body-scroll"]),o=(0,_util.getRefElem)(t["left-body-scroll"]),t=(0,_util.getRefElem)(t["right-body-scroll"]),{column:r,cell:n}=_;if("checkbox"===r.type){let E=l;if(o&&"left"===r.fixed?E=o:t&&"right"===r.fixed&&(E=t),E){let t=S.$refs.refElem,i=e.clientX,s=e.clientY,c=E.querySelector(".vxe-table--checkbox-range"),d=n.parentNode,a=S.getCheckboxRecords(),g=[],h=1;l=getTargetOffset(e.target,E);let m=l.offsetTop+e.offsetY,f=l.offsetLeft+e.offsetX,C=E.scrollTop,u=d.offsetHeight,p=d.getBoundingClientRect(),w=s-p.y,v=null,x=!1,R=1,b=(e,t)=>{S.dispatchEvent("checkbox-range-"+e,{records:()=>S.getCheckboxRecords(),reserves:()=>S.getCheckboxReserveRecords()},t)},T=e=>{var{clientX:t,clientY:l}=e,t=t-i,l=l-s+(E.scrollTop-C);let o=Math.abs(l),r=Math.abs(t),n=m,u=f;l<h?(n+=l)<h&&(n=h,o=m):o=Math.min(o,E.scrollHeight-m-h),t<h?(u+=t,r>f&&(u=h,r=f)):r=Math.min(r,E.clientWidth-f-h),c.style.height=o+"px",c.style.width=r+"px",c.style.left=u+"px",c.style.top=n+"px",c.style.display="block";t=getCheckboxRangeRows(S,e,_,d,p,w,l<h?-o:o);10<o&&t.length!==g.length&&(l=(0,_dom.hasControlKey)(e),g=t,l?t.forEach(e=>{S.handleBatchSelectRows([e],-1===a.indexOf(e))}):(S.setAllCheckboxRow(!1),S.handleCheckedCheckboxRow(t,!0,!1)),b("change",e))},O=()=>{clearTimeout(v),v=null},I=n=>{O(),v=setTimeout(()=>{var e,t,l,o,r;v&&({scrollLeft:e,scrollTop:t,clientHeight:l,scrollHeight:o}=E,r=Math.ceil(50*R/u),x?t+l<o?(S.scrollTo(e,t+r),I(n),T(n)):O():t?(S.scrollTo(e,t-r),I(n),T(n)):O())},50)};(0,_dom.addClass)(t,"drag--range"),document.onmousemove=e=>{e.preventDefault(),e.stopPropagation();var t=e.clientY,l=(0,_dom.getAbsolutePos)(E).boundingTop;t<l?(x=!1,R=l-t,v||I(e)):t>l+E.clientHeight?(x=!0,R=t-l-E.clientHeight,v||I(e)):v&&O(),T(e)},document.onmouseup=e=>{O(),(0,_dom.removeClass)(t,"drag--range"),c.removeAttribute("style"),document.onmousemove=null,document.onmouseup=null,b("end",e)},b("start",e)}}}var _default=exports.default={methods:{moveTabSelected(e,t,l){let o=this;var r=o.editConfig,{afterFullData:n,visibleColumn:u}=o,i=o.computeEditOpts,s=o.computeRowOpts,c=o.computeCurrentRowOpts,d=o.computeColumnOpts,a=o.computeCurrentColumnOpts;let g,h,m,f=Object.assign({},e);var e=o.getVTRowIndex(f.row),C=o.getVTColumnIndex(f.column),t=(l.preventDefault(),t?C<=0?0<e&&(h=e-1,g=n[h],m=u.length-1):m=C-1:C>=u.length-1?e<n.length-1&&(h=e+1,g=n[h],m=0):m=C+1,u[m]);t&&(g?(f.rowIndex=h,f.row=g):f.rowIndex=e,f.columnIndex=m,f.column=t,f.cell=o.getCellElement(f.row,f.column),s.isCurrent&&c.isFollowSelected&&o.triggerCurrentRowEvent(l,f),d.isCurrent&&a.isFollowSelected&&o.triggerCurrentColumnEvent(l,f),r?"click"!==i.trigger&&"dblclick"!==i.trigger||("row"===i.mode?o.handleEdit(f,l):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,l)})):o.scrollToRow(f.row,f.column).then(()=>{o.handleSelected(f,l)}))},moveCurrentRow(e,t,l){let o=this;var r=o,n=o,u=o,r=r.treeConfig;let i=n.currentRow;var n=u.afterFullData,u=o.computeTreeOpts,u=u.children||u.childrenField;let s;if(i?r?({index:r,items:u}=_xeUtils.default.findTree(n,e=>e===i,{children:u}),e&&0<r?s=u[r-1]:t&&r<u.length-1&&(s=u[r+1])):(u=o.getVTRowIndex(i),e&&0<u?s=n[u-1]:t&&u<n.length-1&&(s=n[u+1])):s=n[0],s){l.preventDefault();let e={$table:o,row:s,rowIndex:o.getRowIndex(s),$rowIndex:o.getVMRowIndex(s)};o.scrollToRow(s).then(()=>o.triggerCurrentRowEvent(l,e))}},moveCurrentColumn(e,t,l){let o=this;var r=o.currentColumn,n=o.visibleColumn;let u=null;if(r?(r=o.getVTColumnIndex(r),e&&0<r?u=n[r-1]:t&&r<n.length-1&&(u=n[r+1])):u=n[0],u){l.preventDefault();let e={$table:o,column:u,columnIndex:o.getColumnIndex(u),$columnIndex:o.getVMColumnIndex(u)};o.scrollToColumn(u).then(()=>o.triggerCurrentColumnEvent(l,e))}},moveArrowSelected(e,t,l,o,r,n){var u=this,{highlightCurrentRow:i,highlightCurrentColumn:s}=u,c=u.computeRowOpts,d=u.computeCurrentRowOpts,a=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(c.isCurrent||i)&&(d.isFollowSelected?u.triggerCurrentRowEvent(n,e):(l||r)&&(c.isCurrent||i)&&u.moveCurrentRow(l,r,n)),(a.isCurrent||s)&&(g.isFollowSelected?u.triggerCurrentColumnEvent(n,e):(t||o)&&(a.isCurrent||s)&&u.moveCurrentColumn(t,o,n))},moveEnterSelected(e,t,l,o,r,n){var u=this,{highlightCurrentRow:i,highlightCurrentColumn:s}=u,c=u.computeRowOpts,d=u.computeCurrentRowOpts,a=u.computeColumnOpts,g=u.computeCurrentColumnOpts,e=handleMoveSelected(u,n,e,t,l,o,r);(c.isCurrent||i)&&d.isFollowSelected&&u.triggerCurrentRowEvent(n,e),(a.isCurrent||s)&&g.isFollowSelected&&u.triggerCurrentColumnEvent(n,e)},moveSelected(e,t,l,o,r,n){handleMoveSelected(this,n,e,t,l,o,r)},handleCellMousedownEvent(e,t){var l=this,{editConfig:o,checkboxConfig:r,mouseConfig:n}=l,u=l.computeCheckboxOpts,i=l.computeMouseOpts,s=l.computeEditOpts;if(n&&i.area&&l.triggerCellAreaModnEvent)return l.triggerCellAreaModnEvent(e,t);r&&u.range&&handleCheckboxRangeEvent(l,e,t),n&&i.selected&&(o&&"cell"!==s.mode||l.handleSelected(t,e))}}};
|
package/lib/table/src/footer.js
CHANGED
|
@@ -60,7 +60,7 @@ function renderRows(h, _vm, isOptimizeMode, tableColumn, footerTableData, row, $
|
|
|
60
60
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
61
61
|
const cellOpts = $xeTable.computeCellOpts;
|
|
62
62
|
const footerCellOpts = $xeTable.computeFooterCellOpts;
|
|
63
|
-
const currCellHeight = (0, _util.
|
|
63
|
+
const currCellHeight = (0, _util.getCalcHeight)(footerCellOpts.height) || defaultRowHeight;
|
|
64
64
|
return tableColumn.map((column, $columnIndex) => {
|
|
65
65
|
const {
|
|
66
66
|
type,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S,E){let I=e.$parent;var l=I,t=I,r=I;let O=I.$xeGrid,z=I.$xeGantt,R=e.fixedType,{resizable:D,border:k,footerCellClassName:A,footerCellStyle:q,footerAlign:U,footerSpanMethod:X,align:M,columnKey:L,showFooterOverflow:H}=l,{scrollXLoad:N,scrollYLoad:j,overflowX:G,currentColumn:V,mergeFootFlag:W}=t,{fullColumnIdData:B,mergeFooterList:K,mergeFooterCellMaps:P,scrollXStore:Y}=r,ee=I.computeVirtualXOpts,le=I.computeTooltipOpts,te=I.resizableOpts.isAllColumnDrag,J=I.computeColumnOpts;e=I.computeDefaultRowHeight;let re=I.computeCellOpts,Q=I.computeFooterCellOpts,Z=(0,_util.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_dom=require("../../ui/src/dom"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",{renderer,renderEmptyElement}=_ui.VxeUI;function renderRows(C,e,_,F,T,$,S,E){let I=e.$parent;var l=I,t=I,r=I;let O=I.$xeGrid,z=I.$xeGantt,R=e.fixedType,{resizable:D,border:k,footerCellClassName:A,footerCellStyle:q,footerAlign:U,footerSpanMethod:X,align:M,columnKey:L,showFooterOverflow:H}=l,{scrollXLoad:N,scrollYLoad:j,overflowX:G,currentColumn:V,mergeFootFlag:W}=t,{fullColumnIdData:B,mergeFooterList:K,mergeFooterCellMaps:P,scrollXStore:Y}=r,ee=I.computeVirtualXOpts,le=I.computeTooltipOpts,te=I.resizableOpts.isAllColumnDrag,J=I.computeColumnOpts;e=I.computeDefaultRowHeight;let re=I.computeCellOpts,Q=I.computeFooterCellOpts,Z=(0,_util.getCalcHeight)(Q.height)||e;return F.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:i,footerClassName:a,editRender:n,cellRender:s}=l,d=l.id,u=B[d]||{},n=n||s,s=n?renderer.get(n.name):null;let p=le.showAll;var n=G&&(R?l.fixed!==R:!!l.fixed),c=(_xeUtils.default.isBoolean(Q.padding)?Q:re).padding,r=_xeUtils.default.eqNull(r)?H:r,o=o||(s?s.tableFooterCellAlign:"")||U||i||(s?s.tableCellAlign:"")||M,i="ellipsis"===r;let f="title"===r,x=!0===r||"tooltip"===r;var s=f||x||i,r=_xeUtils.default.isBoolean(l.resizable)?l.resizable:J.resizable||D,m={colid:d},v={},g=u.index,u=u._index,w=u;let b={$table:I,$grid:O,$gantt:z,row:$,rowIndex:E,_rowIndex:E,$rowIndex:S,column:l,columnIndex:g,$columnIndex:e,_columnIndex:u,itemIndex:w,items:$,fixed:R,type:renderType,data:T},h=((f||x||p)&&(v.mouseenter=e=>{f?(0,_dom.updateCellTitle)(e.currentTarget,l):(x||p)&&I.triggerFooterTooltipEvent(e,b)}),(x||p)&&(v.mouseleave=e=>{(x||p)&&I.handleTargetLeaveEvent(e)}),v.click=e=>{I.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},b),e)},!(v.dblclick=e=>{I.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},b),e)}));if(W&&K.length){g=P[E+":"+u];if(g){var{rowspan:w,colspan:g}=g;if(!w||!g)return null;1<w&&(h=!0,m.rowspan=w),1<g&&(h=!0,m.colspan=g)}}else if(X){var{rowspan:w=1,colspan:g=1}=X(b)||{};if(!w||!g)return null;1<w&&(m.rowspan=w),1<g&&(m.colspan=g)}w=e===F.length-1,g=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let y=!1;_&&G&&!h&&N&&10<F.length&&!l.fixed&&!ee.immediate&&(u<Y.visibleStartIndex-Y.preloadSize||u>Y.visibleEndIndex+Y.preloadSize)&&(y=!0);u={};return s?u.height=Z+"px":u.minHeight=Z+"px",C("td",{class:["vxe-table--column vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":w,"fixed--width":!g,"fixed--hidden":n,"is--padding":c,"col--ellipsis":s,"col--current":V===l},(0,_utils.getClass)(a,b),(0,_utils.getClass)(A,b)],attrs:m,style:q?_xeUtils.default.isFunction(q)?q(b):q:void 0,on:v,key:L||N||j||J.useKey||J.drag?l.id:e},[C("div",{class:["vxe-cell",{"c--title":f,"c--tooltip":x,"c--ellipsis":i}],style:u},y?[]:[C("div",{attrs:{colid:d},class:"vxe-cell--wrapper vxe-footer-cell--wrapper"},l.renderFooter(C,b))]),!n&&r&&te?C("div",{class:["vxe-cell--col-resizable",{"is--line":!k||"none"===k}],on:{mousedown:e=>I.handleColResizeMousedownEvent(e,R,b),dblclick:e=>I.handleColResizeDblclickEvent(e,b)}}):renderEmptyElement(I)])})}function renderHeads(o,i,a,n){let s=i.$parent;var e=s;let{fixedType:d,footerTableData:u}=i,{footerRowClassName:p,footerRowStyle:c}=e;return u.map((e,l)=>{var t=l,r={$table:s,row:e,_rowIndex:t,$rowIndex:l,fixed:d,type:renderType};return o("tr",{key:l,class:["vxe-footer--row",p?_xeUtils.default.isFunction(p)?p(r):p:""],style:c?_xeUtils.default.isFunction(c)?c(r):c:void 0},renderRows(o,i,a,n,u,e,l,t))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},mounted(){var e=this,l=e.fixedType,t=e.$parent.elemStore,l=`${l||"main"}-footer-`;t[l+"wrapper"]=e.$refs.refElem,t[l+"scroll"]=e.$refs.refFooterScroll,t[l+"table"]=e.$refs.refFooterTable,t[l+"colgroup"]=e.$refs.refFooterColgroup,t[l+"list"]=e.$refs.refFooterTFoot,t[l+"xSpace"]=e.$refs.refFooterXSpace},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null},render(t){let l=this.$parent;var e=l,r=l,o=l,i=l.xID;let{fixedType:a,fixedColumn:n,tableColumn:s}=this;var{spanMethod:e,footerSpanMethod:d,showFooterOverflow:u}=e,{visibleColumn:o,fullColumnIdData:p}=o,{isGroup:r,isColLoading:c,overflowX:f,scrollXLoad:x,dragCol:m}=r;let v=s,g=!1;return x&&u&&(e||d||(g=!0)),g&&(c||!a&&f)||(v=o),a&&g&&(v=n||[]),a||r||x&&m&&2<v.length&&(u=p[m.id])&&(e=u._index,d=v[0],c=v[v.length-1],f=p[d.id],o=p[c.id],f)&&o&&(r=f._index,x=o._index,e<r?v=[m].concat(v):x<e&&(v=v.concat([m]))),t("div",{ref:"refElem",class:["vxe-table--footer-wrapper",a?`fixed-${a}--wrapper`:"body--wrapper"],attrs:{xid:i}},[t("div",{ref:"refFooterScroll",class:"vxe-table--footer-inner-wrapper",on:{scroll(e){l.triggerFooterScrollEvent(e,a)}}},[a?renderEmptyElement(l):t("div",{ref:"refFooterXSpace",class:"vxe-body--x-space"}),t("table",{ref:"refFooterTable",class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0,xvm:g?"1":null}},[t("colgroup",{ref:"refFooterColgroup"},v.map((e,l)=>t("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),t("tfoot",{ref:"refFooterTFoot"},renderHeads(t,this,g,v))])])])}};
|
package/lib/table/src/header.js
CHANGED
|
@@ -53,7 +53,7 @@ const renderRows = (h, _vm, isGroup, isOptimizeMode, cols, $rowIndex) => {
|
|
|
53
53
|
const cellOpts = $xeTable.computeCellOpts;
|
|
54
54
|
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
55
55
|
const headerCellOpts = $xeTable.computeHeaderCellOpts;
|
|
56
|
-
const currCellHeight = (0, _util.
|
|
56
|
+
const currCellHeight = (0, _util.getCalcHeight)(headerCellOpts.height) || defaultRowHeight;
|
|
57
57
|
const {
|
|
58
58
|
disabledMethod: dragDisabledMethod,
|
|
59
59
|
isCrossDrag,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,E,S,D,T)=>{let R=e.$parent,I=R.$xeGrid,O=R.$xeGantt;var l=R,r=R,a=R;let k=e.fixedType,{resizable:z,columnKey:U,headerCellClassName:M,headerCellStyle:A,showHeaderOverflow:X,headerAlign:q,align:G,mouseConfig:F}=l,{currentColumn:L,dragCol:N,scrollXLoad:B,scrollYLoad:V,overflowX:W,tableColumn:K}=r,{fullColumnIdData:P,scrollXStore:j}=a,Y=R.computeVirtualXOpts,J=R.computeColumnOpts,Q=R.computeColumnDragOpts,Z=R.computeCellOpts;e=R.computeDefaultRowHeight;let ee=R.computeHeaderCellOpts,le=(0,_util.
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_utils=require("../../ui/src/utils"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,cellType="header",renderRows=($,e,E,S,D,T)=>{let R=e.$parent,I=R.$xeGrid,O=R.$xeGantt;var l=R,r=R,a=R;let k=e.fixedType,{resizable:z,columnKey:U,headerCellClassName:M,headerCellStyle:A,showHeaderOverflow:X,headerAlign:q,align:G,mouseConfig:F}=l,{currentColumn:L,dragCol:N,scrollXLoad:B,scrollYLoad:V,overflowX:W,tableColumn:K}=r,{fullColumnIdData:P,scrollXStore:j}=a,Y=R.computeVirtualXOpts,J=R.computeColumnOpts,Q=R.computeColumnDragOpts,Z=R.computeCellOpts;e=R.computeDefaultRowHeight;let ee=R.computeHeaderCellOpts,le=(0,_util.getCalcHeight)(ee.height)||e,{disabledMethod:re,isCrossDrag:ae,isPeerDrag:te}=Q;return D.map((e,l)=>{var{type:r,showHeaderOverflow:a,headerAlign:t,align:d,filters:i,headerClassName:n,editRender:s,cellRender:o}=e,u=e.id,c=P[u]||{},s=s||o,o=s?renderer.get(s.name):null,s=e.children&&e.children.length,p=W&&!s&&(k?e.fixed!==k:!!e.fixed),f=(_xeUtils.default.isBoolean(ee.padding)?ee:Z).padding,a=_xeUtils.default.isUndefined(a)||_xeUtils.default.isNull(a)?X:a,t=t||(o?o.tableHeaderCellAlign:"")||q||d||(o?o.tableCellAlign:"")||G,d="ellipsis"===a,o="title"===a,a=!0===a||"tooltip"===a,x=o||a||d;let m=!1,h=null;i&&(h=i[0],m=i.some(e=>e.checked));var g=c.index,c=c._index;let v={$table:R,$grid:I,$gantt:O,$rowIndex:T,column:e,columnIndex:g,$columnIndex:l,_columnIndex:c,firstFilterOption:h,fixed:k,type:cellType,isHidden:p,hasFilter:m};var g={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},C={click:e=>R.triggerHeaderCellClickEvent(e,v),dblclick:e=>R.triggerHeaderCellDblclickEvent(e,v)},b=J.drag&&"cell"===Q.trigger;let w=!1;b&&(w=!(!re||!re(v))),(F||b)&&(C.mousedown=e=>R.triggerHeaderCellMousedownEvent(e,v)),J.drag&&(C.dragstart=R.handleHeaderCellDragDragstartEvent,C.dragend=R.handleHeaderCellDragDragendEvent,C.dragover=R.handleHeaderCellDragDragoverEvent,b)&&(C.mouseup=R.handleHeaderCellDragMouseupEvent);var b=l===D.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:J.resizable||z,H=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let _=!1;!S||!W||E||N&&N.id===u||B&&10<K.length&&!e.fixed&&!Y.immediate&&(c<j.visibleStartIndex-j.preloadSize||c>j.visibleEndIndex+j.preloadSize)&&(_=!0);c={};return x?c.height=le+"px":c.minHeight=le+"px",$("th",{class:["vxe-table--column vxe-header--column",u,{["col--"+t]:t,["col--"+r]:r,"col--last":b,"col--fixed":e.fixed,"col--group":s,"col--ellipsis":x,"fixed--width":!H,"fixed--hidden":p,"is--padding":f,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":m,"is--drag-active":J.drag&&!e.fixed&&!w&&(ae||te||!e.parentId),"is--drag-disabled":J.drag&&w,"col--current":L===e},(0,_utils.getClass)(n,v),(0,_utils.getClass)(M,v)],attrs:g,style:A?_xeUtils.default.isFunction(A)?A(v):A:void 0,on:C,key:U||B||V||J.useKey||J.drag||s?u:l},[$("div",{class:["vxe-cell",{"c--title":o,"c--tooltip":a,"c--ellipsis":d}],style:c},_||S&&p?[]:[$("div",{attrs:{colid:u},class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader($,v))]),!p&&y?$("div",{class:"vxe-cell--col-resizable",on:{mousedown:e=>R.handleColResizeMousedownEvent(e,k,v),dblclick:e=>R.handleColResizeDblclickEvent(e,v)}}):renderEmptyElement(R)])})};function renderHeads(a,t,d,i,e){let n=t.$parent;var l=n;let s=t.fixedType,{headerRowClassName:o,headerRowStyle:u}=l;return e.map((e,l)=>{var r={$table:n,$rowIndex:l,fixed:s,type:cellType};return a("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(r):o:""],style:u?_xeUtils.default.isFunction(u)?u(r):u:void 0},renderRows(a,t,d,i,e,l))})}var _default=exports.default={name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},data(){return{headerColumn:[]}},watch:{tableColumn(){this.uploadColumn()}},created(){this.uploadColumn()},mounted(){var e=this,l=e.fixedType,r=e.$parent.elemStore,l=`${l||"main"}-header-`;r[l+"wrapper"]=e.$refs.refElem,r[l+"scroll"]=e.$refs.refHeaderScroll,r[l+"table"]=e.$refs.refHeaderTable,r[l+"colgroup"]=e.$refs.refHeaderColgroup,r[l+"list"]=e.$refs.refHeaderTHead,r[l+"xSpace"]=e.$refs.refHeaderXSpace,r[l+"repair"]=e.$refs.refHeaderBorderRepair},destroyed(){var e=this.fixedType,l=this.$parent.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=null,l[e+"scroll"]=null,l[e+"table"]=null,l[e+"colgroup"]=null,l[e+"list"]=null,l[e+"xSpace"]=null,l[e+"repair"]=null},render(r){let l=this.$parent;var e=l,a=l,t=l,d=l.xID;let{fixedType:i,fixedColumn:n,tableColumn:s}=this;var o=this.headerColumn,{mouseConfig:e,showHeaderOverflow:u,spanMethod:c,footerSpanMethod:p}=e,{isGroup:a,isColLoading:f,overflowX:x,scrollXLoad:m,dragCol:h}=a,{visibleColumn:t,fullColumnIdData:g}=t,v=l.computeMouseOpts;let C=o,b=s,w=!1;return a?b=t:(m&&u&&(c||p||(w=!0)),w&&(f||!i&&x)||(b=t),i&&w&&(b=n||[]),C=[b]),i||a||m&&h&&2<b.length&&(o=g[h.id])&&(u=o._index,c=b[0],p=b[b.length-1],f=g[c.id],x=g[p.id],f)&&x&&(t=f._index,m=x._index,u<t?(b=[h].concat(b),C=[[h].concat(C[0])].concat(C.slice(1))):m<u&&(b=b.concat([h]),C=[C[0].concat([h])].concat(C.slice(1)))),r("div",{ref:"refElem",class:["vxe-table--header-wrapper",i?`fixed-${i}--wrapper`:"body--wrapper"],attrs:{xid:d}},[r("div",{ref:"refHeaderScroll",class:"vxe-table--header-inner-wrapper",on:{scroll(e){l.triggerHeaderScrollEvent(e,i)}}},[i?renderEmptyElement(l):r("div",{ref:"refHeaderXSpace",class:"vxe-body--x-space"}),r("table",{ref:"refHeaderTable",class:"vxe-table--header",attrs:{xid:d,cellspacing:0,cellpadding:0,border:0,xvm:w?"1":null}},[r("colgroup",{ref:"refHeaderColgroup"},b.map((e,l)=>r("col",{attrs:{name:e.id},key:l,style:{width:e.renderWidth+"px"}}))),r("thead",{ref:"refHeaderTHead"},renderHeads(r,this,a,w,C))]),e&&v.area?r("div",{class:"vxe-table--cell-area"},[r("span",{class:"vxe-table--cell-main-area"}),r("span",{class:"vxe-table--cell-clip-area"}),r("span",{class:"vxe-table--cell-extend-area"}),r("span",{class:"vxe-table--cell-multi-area"}),r("span",{class:"vxe-table--cell-active-area"}),r("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(l)])])},methods:{uploadColumn(){var e=this.$parent.isGroup;this.headerColumn=e?(0,_util.convertHeaderColumnToRows)(this.tableGroupColumn):[]}}};
|
package/lib/table/src/table.js
CHANGED
|
@@ -882,10 +882,20 @@ var _default = exports.default = {
|
|
|
882
882
|
},
|
|
883
883
|
computeHeaderCellOpts() {
|
|
884
884
|
const $xeTable = this;
|
|
885
|
+
const $xeGantt = $xeTable.$xeGantt;
|
|
885
886
|
const props = $xeTable;
|
|
886
887
|
const headerCellOpts = Object.assign({}, getConfig().table.headerCellConfig, props.headerCellConfig);
|
|
888
|
+
const defaultRowHeight = $xeTable.computeDefaultRowHeight;
|
|
887
889
|
const cellOpts = $xeTable.computeCellOpts;
|
|
888
|
-
|
|
890
|
+
let headCellHeight = _xeUtils.default.toNumber((0, _util.getCalcHeight)(headerCellOpts.height || cellOpts.height));
|
|
891
|
+
if ($xeGantt) {
|
|
892
|
+
const taskScaleConfs = $xeGantt.computeTaskScaleConfs;
|
|
893
|
+
if (taskScaleConfs && taskScaleConfs.length > 2) {
|
|
894
|
+
const ganttMinHeadCellHeight = defaultRowHeight / 2 * taskScaleConfs.length;
|
|
895
|
+
headCellHeight = Math.max(ganttMinHeadCellHeight, headCellHeight);
|
|
896
|
+
}
|
|
897
|
+
}
|
|
898
|
+
headerCellOpts.height = headCellHeight;
|
|
889
899
|
return headerCellOpts;
|
|
890
900
|
},
|
|
891
901
|
computeFooterCellOpts() {
|
|
@@ -893,7 +903,7 @@ var _default = exports.default = {
|
|
|
893
903
|
const props = $xeTable;
|
|
894
904
|
const footerCellOpts = Object.assign({}, getConfig().table.footerCellConfig, props.footerCellConfig);
|
|
895
905
|
const cellOpts = $xeTable.computeCellOpts;
|
|
896
|
-
footerCellOpts.height = _xeUtils.default.toNumber((0, _util.
|
|
906
|
+
footerCellOpts.height = _xeUtils.default.toNumber((0, _util.getCalcHeight)(footerCellOpts.height || cellOpts.height));
|
|
897
907
|
return footerCellOpts;
|
|
898
908
|
},
|
|
899
909
|
rowOpts() {
|
|
@@ -1865,6 +1875,17 @@ var _default = exports.default = {
|
|
|
1865
1875
|
this.preventEvent(null, 'activated');
|
|
1866
1876
|
},
|
|
1867
1877
|
deactivated() {
|
|
1878
|
+
const $xeTable = this;
|
|
1879
|
+
const reactData = $xeTable;
|
|
1880
|
+
const internalData = $xeTable;
|
|
1881
|
+
const {
|
|
1882
|
+
filterStore
|
|
1883
|
+
} = reactData;
|
|
1884
|
+
if (filterStore.visible) {
|
|
1885
|
+
$xeTable.clearFilter();
|
|
1886
|
+
}
|
|
1887
|
+
$xeTable.closeTooltip();
|
|
1888
|
+
internalData.isActivated = false;
|
|
1868
1889
|
this.preventEvent(null, 'deactivated');
|
|
1869
1890
|
},
|
|
1870
1891
|
beforeDestroy() {
|