vxe-table 3.9.21 → 3.10.0-beta.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/ja-JP.js +5 -5
- package/es/locale/lang/ko-KR.js +5 -5
- package/es/locale/lang/uk-UA.js +5 -5
- package/es/locale/lang/vi-VN.js +5 -5
- package/es/locale/lang/zh-CHT.js +5 -5
- package/es/locale/lang/zh-CN.js +5 -5
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/edit/mixin.js +3 -3
- package/es/table/src/body.js +50 -115
- package/es/table/src/footer.js +24 -21
- package/es/table/src/methods.js +392 -123
- package/es/table/src/table.js +68 -10
- package/es/table/src/util.js +58 -33
- package/es/table/style.css +46 -3
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +2 -2
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +46 -3
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.umd.js +672 -361
- package/lib/index.umd.min.js +1 -1
- package/lib/locale/lang/ja-JP.js +5 -5
- package/lib/locale/lang/ja-JP.min.js +1 -1
- package/lib/locale/lang/ja-JP.umd.js +5 -5
- package/lib/locale/lang/ko-KR.js +5 -5
- package/lib/locale/lang/ko-KR.min.js +1 -1
- package/lib/locale/lang/ko-KR.umd.js +5 -5
- package/lib/locale/lang/uk-UA.js +5 -5
- package/lib/locale/lang/uk-UA.min.js +1 -1
- package/lib/locale/lang/uk-UA.umd.js +5 -5
- package/lib/locale/lang/vi-VN.js +5 -5
- package/lib/locale/lang/vi-VN.min.js +1 -1
- package/lib/locale/lang/zh-CHT.js +5 -5
- package/lib/locale/lang/zh-CHT.min.js +1 -1
- package/lib/locale/lang/zh-CHT.umd.js +5 -5
- package/lib/locale/lang/zh-CN.js +5 -5
- package/lib/locale/lang/zh-CN.min.js +1 -1
- package/lib/locale/lang/zh-CN.umd.js +5 -5
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/edit/mixin.js +6 -3
- package/lib/table/module/edit/mixin.min.js +1 -1
- package/lib/table/src/body.js +49 -118
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +24 -33
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/methods.js +449 -148
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +61 -13
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/src/util.js +72 -38
- package/lib/table/src/util.min.js +1 -1
- package/lib/table/style/style.css +46 -3
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +2 -2
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +46 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/locale/lang/ja-JP.ts +5 -5
- package/packages/locale/lang/ko-KR.ts +5 -5
- package/packages/locale/lang/uk-UA.ts +5 -5
- package/packages/locale/lang/vi-VN.ts +5 -5
- package/packages/locale/lang/zh-CHT.ts +5 -5
- package/packages/locale/lang/zh-CN.ts +5 -5
- package/packages/table/module/edit/mixin.ts +3 -3
- package/packages/table/src/body.ts +50 -118
- package/packages/table/src/footer.ts +24 -22
- package/packages/table/src/methods.ts +418 -127
- package/packages/table/src/props.ts +8 -8
- package/packages/table/src/table.ts +70 -10
- package/packages/table/src/util.ts +61 -36
- package/packages/ui/index.ts +1 -1
- package/styles/components/table-module/filter.scss +1 -1
- package/styles/components/table.scss +45 -6
- package/styles/modules.scss +0 -2
- package/styles/theme/base.scss +1 -1
- package/styles/theme/dark.scss +7 -4
- package/styles/variable.scss +5 -1
- /package/es/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
- /package/es/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
- /package/es/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
- /package/lib/{iconfont.1729992873866.ttf → iconfont.1730347297462.ttf} +0 -0
- /package/lib/{iconfont.1729992873866.woff → iconfont.1730347297462.woff} +0 -0
- /package/lib/{iconfont.1729992873866.woff2 → iconfont.1730347297462.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -68,13 +68,13 @@ function renderLine(h, _vm, $xetable, params) {
|
|
|
68
68
|
function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, rowIndex, $rowIndex, _rowIndex, column, $columnIndex, columns, items) {
|
|
69
69
|
const {
|
|
70
70
|
$listeners: tableListeners,
|
|
71
|
+
fullAllDataRowIdData,
|
|
71
72
|
afterFullData,
|
|
72
73
|
tableData,
|
|
73
74
|
height,
|
|
74
75
|
columnKey,
|
|
75
76
|
overflowX,
|
|
76
77
|
sYOpts,
|
|
77
|
-
scrollXLoad,
|
|
78
78
|
scrollYLoad,
|
|
79
79
|
highlightCurrentRow,
|
|
80
80
|
showOverflow: allColumnOverflow,
|
|
@@ -130,12 +130,13 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
130
130
|
const isEdit = (0, _utils.isEnableConf)(editRender);
|
|
131
131
|
let fixedHiddenColumn = fixedType ? column.fixed !== fixedType : column.fixed && overflowX;
|
|
132
132
|
const cellOverflow = _xeUtils.default.isUndefined(showOverflow) || _xeUtils.default.isNull(showOverflow) ? allColumnOverflow : showOverflow;
|
|
133
|
-
|
|
133
|
+
const showEllipsis = cellOverflow === 'ellipsis';
|
|
134
134
|
const showTitle = cellOverflow === 'title';
|
|
135
135
|
const showTooltip = cellOverflow === true || cellOverflow === 'tooltip';
|
|
136
|
-
|
|
136
|
+
const hasEllipsis = showTitle || showTooltip || showEllipsis;
|
|
137
137
|
let isDirty;
|
|
138
138
|
const tdOns = {};
|
|
139
|
+
const rest = fullAllDataRowIdData[rowid];
|
|
139
140
|
const cellAlign = align || (compConf ? compConf.tableCellAlign : '') || allAlign;
|
|
140
141
|
const errorValidItem = validErrorMaps[`${rowid}:${column.id}`];
|
|
141
142
|
const showValidTip = editRules && validOpts.showMessage && (validOpts.message === 'default' ? height || tableData.length > 1 : validOpts.message === 'inline');
|
|
@@ -167,10 +168,6 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
167
168
|
data: tableData,
|
|
168
169
|
items
|
|
169
170
|
};
|
|
170
|
-
// 虚拟滚动不支持动态高度
|
|
171
|
-
if ((scrollXLoad || scrollYLoad) && !hasEllipsis) {
|
|
172
|
-
showEllipsis = hasEllipsis = true;
|
|
173
|
-
}
|
|
174
171
|
// hover 进入事件
|
|
175
172
|
if (showTitle || showTooltip || showAllTip || bindMouseenter || tooltipConfig) {
|
|
176
173
|
tdOns.mouseenter = evnt => {
|
|
@@ -327,7 +324,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
327
324
|
key: columnKey || columnOpts.useKey ? column.id : $columnIndex,
|
|
328
325
|
attrs,
|
|
329
326
|
style: Object.assign({
|
|
330
|
-
height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : ''
|
|
327
|
+
height: hasEllipsis && (scrollYRHeight || rowHeight) ? `${scrollYRHeight || rowHeight}px` : scrollYLoad ? `${rest.height || scrollYRHeight || rowHeight}px` : ''
|
|
331
328
|
}, _xeUtils.default.isFunction(compCellStyle) ? compCellStyle(params) : compCellStyle, _xeUtils.default.isFunction(cellStyle) ? cellStyle(params) : cellStyle),
|
|
332
329
|
on: tdOns
|
|
333
330
|
}, tdVNs);
|
|
@@ -491,45 +488,6 @@ function renderRows(h, _vm, $xetable, fixedType, tableData, tableColumn) {
|
|
|
491
488
|
});
|
|
492
489
|
return rows;
|
|
493
490
|
}
|
|
494
|
-
/**
|
|
495
|
-
* 同步滚动条
|
|
496
|
-
*/
|
|
497
|
-
let scrollProcessTimeout;
|
|
498
|
-
function syncBodyScroll(_vm, fixedType, scrollTop, elem1, elem2) {
|
|
499
|
-
if (elem1 || elem2) {
|
|
500
|
-
if (elem1) {
|
|
501
|
-
(0, _util.removeScrollListener)(elem1);
|
|
502
|
-
elem1.scrollTop = scrollTop;
|
|
503
|
-
}
|
|
504
|
-
if (elem2) {
|
|
505
|
-
(0, _util.removeScrollListener)(elem2);
|
|
506
|
-
elem2.scrollTop = scrollTop;
|
|
507
|
-
}
|
|
508
|
-
clearTimeout(scrollProcessTimeout);
|
|
509
|
-
scrollProcessTimeout = setTimeout(() => {
|
|
510
|
-
// const { tableBody, leftBody, rightBody } = _vm.$refs
|
|
511
|
-
// const bodyElem = tableBody.$el
|
|
512
|
-
// const leftElem = leftBody ? leftBody.$el : null
|
|
513
|
-
// const rightElem = rightBody ? rightBody.$el : null
|
|
514
|
-
(0, _util.restoreScrollListener)(elem1);
|
|
515
|
-
(0, _util.restoreScrollListener)(elem2);
|
|
516
|
-
// 检查滚动条是的同步
|
|
517
|
-
// let targetTop = bodyElem.scrollTop
|
|
518
|
-
// if (fixedType === 'left') {
|
|
519
|
-
// if (leftElem) {
|
|
520
|
-
// targetTop = leftElem.scrollTop
|
|
521
|
-
// }
|
|
522
|
-
// } else if (fixedType === 'right') {
|
|
523
|
-
// if (rightElem) {
|
|
524
|
-
// targetTop = rightElem.scrollTop
|
|
525
|
-
// }
|
|
526
|
-
// }
|
|
527
|
-
// setScrollTop(bodyElem, targetTop)
|
|
528
|
-
// setScrollTop(leftElem, targetTop)
|
|
529
|
-
// setScrollTop(rightElem, targetTop)
|
|
530
|
-
}, 300);
|
|
531
|
-
}
|
|
532
|
-
}
|
|
533
491
|
var _default = exports.default = {
|
|
534
492
|
name: 'VxeTableBody',
|
|
535
493
|
props: {
|
|
@@ -565,17 +523,9 @@ var _default = exports.default = {
|
|
|
565
523
|
elemStore[`${prefix}xSpace`] = $refs.xSpace;
|
|
566
524
|
elemStore[`${prefix}ySpace`] = $refs.ySpace;
|
|
567
525
|
elemStore[`${prefix}emptyBlock`] = $refs.emptyBlock;
|
|
568
|
-
if (this.$el) {
|
|
569
|
-
this.$el.onscroll = this.scrollEvent;
|
|
570
|
-
this.$el._onscroll = this.scrollEvent;
|
|
571
|
-
}
|
|
572
526
|
},
|
|
573
527
|
beforeDestroy() {
|
|
574
528
|
clearTimeout(this.wheelTime);
|
|
575
|
-
if (this.$el) {
|
|
576
|
-
this.$el._onscroll = null;
|
|
577
|
-
this.$el.onscroll = null;
|
|
578
|
-
}
|
|
579
529
|
},
|
|
580
530
|
destroyed() {
|
|
581
531
|
const {
|
|
@@ -663,9 +613,11 @@ var _default = exports.default = {
|
|
|
663
613
|
attrs: {
|
|
664
614
|
xid: tId
|
|
665
615
|
},
|
|
666
|
-
on:
|
|
616
|
+
on: Object.assign({
|
|
617
|
+
scroll: this.scrollEvent
|
|
618
|
+
}, scrollYLoad && sYOpts.mode === 'wheel' ? {
|
|
667
619
|
wheel: this.wheelEvent
|
|
668
|
-
} :
|
|
620
|
+
} : null)
|
|
669
621
|
}, [fixedType ? _e() : h('div', {
|
|
670
622
|
class: 'vxe-body--x-space',
|
|
671
623
|
ref: 'xSpace'
|
|
@@ -741,89 +693,68 @@ var _default = exports.default = {
|
|
|
741
693
|
scrollEvent(evnt) {
|
|
742
694
|
const {
|
|
743
695
|
$el: scrollBodyElem,
|
|
744
|
-
$parent: $
|
|
696
|
+
$parent: $xeTable,
|
|
745
697
|
fixedType
|
|
746
698
|
} = this;
|
|
747
699
|
const {
|
|
748
700
|
$refs,
|
|
749
|
-
elemStore,
|
|
750
|
-
highlightHoverRow,
|
|
751
|
-
scrollXLoad,
|
|
752
|
-
scrollYLoad,
|
|
753
701
|
lastScrollTop,
|
|
754
|
-
lastScrollLeft
|
|
755
|
-
|
|
756
|
-
} = $xetable;
|
|
702
|
+
lastScrollLeft
|
|
703
|
+
} = $xeTable;
|
|
757
704
|
const {
|
|
758
705
|
tableHeader,
|
|
759
706
|
tableBody,
|
|
760
707
|
leftBody,
|
|
761
708
|
rightBody,
|
|
762
|
-
tableFooter
|
|
763
|
-
validTip
|
|
709
|
+
tableFooter
|
|
764
710
|
} = $refs;
|
|
765
711
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
766
712
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
767
713
|
const bodyElem = tableBody.$el;
|
|
768
714
|
const leftElem = leftBody ? leftBody.$el : null;
|
|
769
715
|
const rightElem = rightBody ? rightBody.$el : null;
|
|
770
|
-
const
|
|
771
|
-
const bodyXElem = elemStore['main-body-xSpace'];
|
|
772
|
-
const bodyHeight = scrollYLoad && bodyYElem ? bodyYElem.clientHeight : bodyElem.clientHeight;
|
|
773
|
-
const bodyWidth = scrollXLoad && bodyXElem ? bodyXElem.clientWidth : bodyElem.clientWidth;
|
|
774
|
-
let scrollTop = scrollBodyElem.scrollTop;
|
|
716
|
+
const scrollTop = scrollBodyElem.scrollTop;
|
|
775
717
|
const scrollLeft = bodyElem.scrollLeft;
|
|
776
718
|
const isRollX = scrollLeft !== lastScrollLeft;
|
|
777
719
|
const isRollY = scrollTop !== lastScrollTop;
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
}
|
|
795
|
-
if (footerElem) {
|
|
796
|
-
footerElem.scrollLeft = bodyElem.scrollLeft;
|
|
797
|
-
}
|
|
798
|
-
}
|
|
799
|
-
if (leftElem || rightElem) {
|
|
800
|
-
$xetable.checkScrolling();
|
|
801
|
-
if (isRollY) {
|
|
802
|
-
syncBodyScroll($xetable, fixedType, scrollTop, leftElem, rightElem);
|
|
803
|
-
}
|
|
720
|
+
const xHandleEl = $refs.refScrollXHandleElem;
|
|
721
|
+
const yHandleEl = $refs.refScrollYHandleElem;
|
|
722
|
+
if (yHandleEl) {
|
|
723
|
+
yHandleEl.scrollTop = scrollTop;
|
|
724
|
+
} else if (isRollY) {
|
|
725
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
726
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
727
|
+
if (leftElem && fixedType === 'left') {
|
|
728
|
+
(0, _dom.setScrollTop)(bodyElem, scrollTop);
|
|
729
|
+
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
730
|
+
} else if (rightElem && fixedType === 'right') {
|
|
731
|
+
(0, _dom.setScrollTop)(bodyElem, scrollTop);
|
|
732
|
+
(0, _dom.setScrollTop)(leftElem, scrollTop);
|
|
733
|
+
} else {
|
|
734
|
+
(0, _dom.setScrollTop)(leftElem, scrollTop);
|
|
735
|
+
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
804
736
|
}
|
|
737
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
738
|
+
type: renderType,
|
|
739
|
+
fixed: fixedType,
|
|
740
|
+
scrollTop,
|
|
741
|
+
scrollLeft
|
|
742
|
+
});
|
|
805
743
|
}
|
|
806
|
-
if (
|
|
807
|
-
|
|
808
|
-
}
|
|
809
|
-
|
|
810
|
-
$
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
744
|
+
if (xHandleEl) {
|
|
745
|
+
xHandleEl.scrollLeft = scrollLeft;
|
|
746
|
+
} else if (isRollX) {
|
|
747
|
+
$xeTable.lastScrollTop = scrollTop;
|
|
748
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
749
|
+
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
750
|
+
(0, _dom.setScrollLeft)(footerElem, scrollLeft);
|
|
751
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
752
|
+
type: renderType,
|
|
753
|
+
fixed: fixedType,
|
|
754
|
+
scrollTop,
|
|
755
|
+
scrollLeft
|
|
756
|
+
});
|
|
814
757
|
}
|
|
815
|
-
$xetable.emitEvent('scroll', {
|
|
816
|
-
type: renderType,
|
|
817
|
-
fixed: fixedType,
|
|
818
|
-
scrollTop,
|
|
819
|
-
scrollLeft,
|
|
820
|
-
scrollHeight: bodyElem.scrollHeight,
|
|
821
|
-
scrollWidth: bodyElem.scrollWidth,
|
|
822
|
-
bodyHeight,
|
|
823
|
-
bodyWidth,
|
|
824
|
-
isX: isRollX,
|
|
825
|
-
isY: isRollY
|
|
826
|
-
}, evnt);
|
|
827
758
|
},
|
|
828
759
|
handleWheel(evnt, isTopWheel, deltaTop, isRollX, isRollY) {
|
|
829
760
|
const {
|
|
@@ -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"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,renderType="body";function isVMScrollProcess(e){return e._isResize||e.lastScrollTime&&Date.now()<e.lastScrollTime+e.delayHover}function renderLine(e,l,t,r){var{row:o,column:s}=r,{afterFullData:i,treeOpts:a,treeConfig:n,fullAllDataRowIdData:c}=t,{slots:s,treeNode:d}=s,c=c[(0,_util.getRowid)(t,o)];let p=0,u=0,h=[];return c&&(p=c.level,u=c._index,h=c.items),s&&s.line?t.callSlot(s.line,r,e):(c=t.eqRow(i[0],o),n&&d&&(a.showLine||a.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${c?1:(0,_util.calcTreeLine)(r,h,u)}px`,left:p*a.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,B,l,t,r,o,s,i,a,n,D,c,d,U,W){var{$listeners:p,afterFullData:q,tableData:N,height:u,columnKey:P,overflowX:h,sYOpts:g,scrollXLoad:V,scrollYLoad:F,highlightCurrentRow:A,showOverflow:X,isAllOverflow:z,align:v,currentColumn:j,cellClassName:K,cellStyle:w,mergeList:x,spanMethod:G,radioOpts:J,checkboxOpts:m,expandOpts:Q,treeOpts:Z,tooltipOpts:y,mouseConfig:ee,editConfig:f,editOpts:b,editRules:T,validOpts:S,editStore:le,tooltipConfig:te,rowOpts:re,columnOpts:oe,validErrorMaps:se}=l,{type:ie,cellRender:ae,editRender:$,align:_,showOverflow:C,className:ne,treeNode:ce,slots:de}=c,le=le.actived,g=g.rHeight,L=re.height,O=$||ae,O=O?renderer.get(O.name):null,pe=O?O.tableCellClassName||O.cellClassName:"",ue=O?O.tableCellStyle||O.cellStyle:"";let R=y.showAll||y.enabled;var y=l.getColumnIndex(c),he=l.getVTColumnIndex(c),ge=(0,_utils.isEnableConf)($);let E=o?c.fixed!==o:c.fixed&&h;h=_xeUtils.default.isUndefined(C)||_xeUtils.default.isNull(C)?X:C;let H="ellipsis"===h,I="title"===h,k=!0===h||"tooltip"===h,Y=I||k||H,ve;C={},h=_||(O?O.tableCellAlign:"")||v,_=se[r+":"+c.id],O=T&&S.showMessage&&("default"===S.message?u||1<N.length:"inline"===S.message),v={colid:c.id};let we=p["cell-mouseenter"],xe=p["cell-mouseleave"];se=$&&f&&"dblclick"===b.trigger;let M={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:i,rowIndex:a,$rowIndex:n,_rowIndex:D,column:c,columnIndex:y,$columnIndex:d,_columnIndex:he,fixed:o,type:renderType,isHidden:E,level:s,visibleData:q,data:N,items:W};if(!V&&!F||Y||(H=Y=!0),(I||k||R||we||te)&&(C.mouseenter=e=>{isVMScrollProcess(l)||(I?(0,_dom.updateCellTitle)(e.currentTarget,c):(k||R)&&l.triggerBodyTooltipEvent(e,M),we&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(k||R||xe||te)&&(C.mouseleave=e=>{isVMScrollProcess(l)||((k||R)&&l.handleTargetLeaveEvent(e),xe&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(m.range||ee)&&(C.mousedown=e=>{l.triggerCellMousedownEvent(e,M)}),(re.isCurrent||A||p["cell-click"]||$&&f||"row"===Q.trigger||"cell"===Q.trigger||"row"===J.trigger||"radio"===c.type&&"cell"===J.trigger||"row"===m.trigger||"checkbox"===c.type&&"cell"===m.trigger||"row"===Z.trigger||c.treeNode&&"cell"===Z.trigger)&&(C.click=e=>{l.triggerCellClickEvent(e,M)}),(se||p["cell-dblclick"])&&(C.dblclick=e=>{l.triggerCellDblclickEvent(e,M)}),x.length){T=(0,_util.mergeBodyMethod)(x,D,he);if(T){var{rowspan:u,colspan:t}=T;if(!u||!t)return null;1<u&&(v.rowspan=u),1<t&&(v.colspan=t)}}else if(G){var{rowspan:r=1,colspan:a=1}=G(M)||{};if(!r||!a)return null;1<r&&(v.rowspan=r),1<a&&(v.colspan=a)}!(E=E&&x&&(1<v.colspan||1<v.rowspan)?!1:E)&&f&&($||ae)&&(b.showStatus||b.showUpdateStatus)&&(ve=l.isUpdateByRow(i,c.field));n=[];return E&&X&&z?n.push(e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":k,"c--ellipsis":H}],style:{maxHeight:Y&&(g||L)?`${g||L}px`:""}})):(n.push(...renderLine(e,B,l,M),e("div",{class:["vxe-cell",{"c--title":I,"c--tooltip":k,"c--ellipsis":H}],style:{maxHeight:Y&&(g||L)?`${g||L}px`:""},attrs:{title:I?l.getCellLabel(i,c):null}},c.renderCell(e,M))),O&&_&&(y=_.rule,o=de?de.valid:null,s=Object.assign(Object.assign({},M),_),n.push(e("div",{class:["vxe-cell--valid-error-hint",(0,_utils.getClass)(S.className,_)],style:y&&y.maxWidth?{width:y.maxWidth+"px"}:null},o?l.callSlot(o,s,e):[e("span",{class:"vxe-cell--valid-error-msg"},_.content)])))),e("td",{class:["vxe-body--column",c.id,{["col--"+h]:h,["col--"+ie]:ie,"col--last":d===U.length-1,"col--tree-node":ce,"col--edit":ge,"col--ellipsis":Y,"col--height":!!re.height,"fixed--hidden":E,"col--dirty":ve,"col--active":f&&ge&&le.row===i&&(le.column===c||"row"===b.mode),"col--valid-error":!!_,"col--current":j===c},(0,_utils.getClass)(pe,M),(0,_utils.getClass)(ne,M),(0,_utils.getClass)(K,M)],key:P||oe.useKey?c.id:d,attrs:v,style:Object.assign({height:Y&&(g||L)?`${g||L}px`:""},_xeUtils.default.isFunction(ue)?ue(M):ue,_xeUtils.default.isFunction(w)?w(M):w),on:C},n)}function renderRows(w,x,m,y,f,b){let{stripe:T,rowKey:S,highlightHoverRow:$,rowClassName:_,rowStyle:C,editConfig:L,showOverflow:O,treeConfig:R,treeOpts:E,expandOpts:H,editOpts:I,treeExpandedMaps:k,scrollYLoad:Y,rowExpandedMaps:M,radioOpts:B,checkboxOpts:D,expandColumn:U,hasFixedColumn:W,fullAllDataRowIdData:q,rowOpts:N,pendingRowList:P,pendingRowMaps:V}=m,F=E.children||E.childrenField,A=[];return f.forEach((t,r)=>{var e={};let o,s=m.getVTRowIndex(t),i=(o=m.getRowIndex(t),(N.isHover||$)&&(e.mouseenter=e=>{isVMScrollProcess(m)||m.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(m)||m.clearHoverRow()}),(0,_util.getRowid)(m,t));var l=q[i];let a=l?l.level:0,n=l?l.seq:-1;var c,d,p,l={$table:m,seq:n,rowid:i,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},u=U&&!!M[i];let h=!1,g=[],v=!1;L&&(v=m.isInsertByRow(t)),!R||Y||E.transform||(g=t[F],h=g&&g.length&&!!k[i]),A.push(w("tr",{class:["vxe-body--row",R?"row--level-"+a:"",{"row--stripe":T&&(m.getVTRowIndex(t)+1)%2==0,"is--new":v,"is--expand-row":u,"is--expand-tree":h,"row--new":v&&(I.showStatus||I.showInsertStatus),"row--radio":B.highlight&&m.selectRadioRow===t,"row--checked":D.highlight&&m.isCheckedByCheckboxRow(t),"row--pending":P.length&&!!V[i]},_?_xeUtils.default.isFunction(_)?_(l):_:""],attrs:{rowid:i},style:C?_xeUtils.default.isFunction(C)?C(l):C:null,key:S||N.useKey||R?i:r,on:e},b.map((e,l)=>renderColumn(w,x,m,n,i,y,a,t,o,r,s,e,l,b,f)))),u&&({height:l,padding:u}=H,c={},d=(l&&(c.height=l+"px"),R&&(c.paddingLeft=a*E.indent+30+"px"),U).showOverflow,d=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?O:d,p={$table:m,seq:n,column:U,fixed:y,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},A.push(w("tr",{class:["vxe-body--expanded-row",{"is--padding":u}],key:"expand_"+i,style:C?_xeUtils.default.isFunction(C)?C(p):C:null,on:e},[w("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":y&&!W,"col--ellipsis":d},attrs:{colspan:b.length}},[w("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:c},[U.renderData(w,p)])])]))),h&&A.push(...renderRows(w,x,m,y,g,b))}),A}let scrollProcessTimeout;function syncBodyScroll(e,l,t,r,o){(r||o)&&(r&&((0,_util.removeScrollListener)(r),r.scrollTop=t),o&&((0,_util.removeScrollListener)(o),o.scrollTop=t),clearTimeout(scrollProcessTimeout),scrollProcessTimeout=setTimeout(()=>{(0,_util.restoreScrollListener)(r),(0,_util.restoreScrollListener)(o)},300))}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{wheelTime:null,wheelYSize:0,wheelYInterval:0,wheelYTotal:0}},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-body-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tbody,e[r+"xSpace"]=t.xSpace,e[r+"ySpace"]=t.ySpace,e[r+"emptyBlock"]=t.emptyBlock,this.$el&&(this.$el.onscroll=this.scrollEvent,this.$el._onscroll=this.scrollEvent)},beforeDestroy(){clearTimeout(this.wheelTime),this.$el&&(this.$el._onscroll=null,this.$el.onscroll=null)},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-body-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"ySpace"]=null,e[l+"emptyBlock"]=null},render(t){let{_e:e,$parent:l,fixedColumn:r,fixedType:o}=this,{$scopedSlots:s,tId:i,tableData:a,tableColumn:n,visibleColumn:c,expandColumn:d,showOverflow:p,keyboardConfig:u,keyboardOpts:h,mergeList:g,spanMethod:v,scrollXLoad:w,scrollYLoad:x,isAllOverflow:m,emptyOpts:y,mouseConfig:f,mouseOpts:b,sYOpts:T}=l;o&&(n=d||!(w||x||p&&m)||g.length||v||u&&h.isMerge?c:r);let S;var $;return S=s.empty?s.empty.call(this,{$table:l},t):($=($=y.name?renderer.get(y.name):null)?$.renderTableEmpty||$.renderTableEmptyView||$.renderEmpty:null)?(0,_vn.getSlotVNs)($.call(this,t,y,{$table:l})):l.emptyText||getI18n("vxe.table.emptyText"),t("div",{class:["vxe-table--body-wrapper",o?`fixed-${o}--wrapper`:"body--wrapper"],attrs:{xid:i},on:x&&"wheel"===T.mode?{wheel:this.wheelEvent}:{}},[o?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("div",{class:"vxe-body--y-space",ref:"ySpace"}),t("table",{class:"vxe-table--body",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},n.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),t("tbody",{ref:"tbody"},renderRows(t,this,l,o,a,n))]),t("div",{class:"vxe-table--checkbox-range"}),f&&b.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},b.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellExtendMousedownEvent(e,{$table:l,fixed:o,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):null,o?null:t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])},methods:{scrollEvent(e){var{$el:l,$parent:t,fixedType:r}=this,{$refs:o,elemStore:s,highlightHoverRow:i,scrollXLoad:a,scrollYLoad:n,lastScrollTop:c,lastScrollLeft:d,rowOpts:p}=t,{tableHeader:o,tableBody:u,leftBody:h,rightBody:g,tableFooter:v,validTip:w}=o,o=o?o.$el:null,v=v?v.$el:null,u=u.$el,h=h?h.$el:null,g=g?g.$el:null,x=s["main-body-ySpace"],s=s["main-body-xSpace"],x=(n&&x?x:u).clientHeight,s=(a&&s?s:u).clientWidth;let m=l.scrollTop;l=u.scrollLeft,d=l!==d,c=m!==c;t.lastScrollTop=m,t.lastScrollLeft=l,t.lastScrollTime=Date.now(),(p.isHover||i)&&t.clearHoverRow(),h&&"left"===r?syncBodyScroll(t,r,m=h.scrollTop,u,g):g&&"right"===r?syncBodyScroll(t,r,m=g.scrollTop,u,h):(d&&(o&&(o.scrollLeft=u.scrollLeft),v)&&(v.scrollLeft=u.scrollLeft),(h||g)&&(t.checkScrolling(),c)&&syncBodyScroll(t,r,m,h,g)),a&&d&&t.triggerScrollXEvent(e),n&&c&&t.triggerScrollYEvent(e),d&&w&&w.visible&&w.updatePlacement(),t.emitEvent("scroll",{type:renderType,fixed:r,scrollTop:m,scrollLeft:l,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:x,bodyWidth:s,isX:d,isY:c},e)},handleWheel(a,n,e,c,d){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:i}=l;let u=l.$el,h=s?s.$el:null,g=i?i.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],i=t["main-body-xSpace"];let v=(r&&s?s:u).clientHeight,w=(o&&i?i:u).clientWidth,x=(this.isPrevWheelTop=n,this.wheelYSize=Math.abs(n?e-l:e+l),this.wheelYInterval=0,this.wheelYTotal=0,clearTimeout(this.wheelTime),()=>{let{fixedType:e,wheelYTotal:l,wheelYSize:t,wheelYInterval:r}=this;var o,s,i;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:i,clientHeight:o,scrollHeight:s}=u,i=i+r*(n?-1:1),u.scrollTop=i,h&&(h.scrollTop=i),g&&(g.scrollTop=i),(n?i<s-o:0<=i)&&(this.wheelTime=setTimeout(x,10)),this.wheelYTotal=l,this.wheelYInterval=r,p.emitEvent("scroll",{type:renderType,fixed:e,scrollTop:u.scrollTop,scrollLeft:u.scrollLeft,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:v,bodyWidth:w,isX:c,isY:d},a))});x()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:i,scrollYLoad:a,lastScrollTop:n,lastScrollLeft:c,rowOpts:d}=o,s=s.tableBody,s=s.$el,p=l<0;(p?r.scrollTop<=0:r.scrollTop>=r.scrollHeight-r.clientHeight)||(r=r.scrollTop+l,t=(s=s.scrollLeft+t)!==c,(c=r!==n)&&(e.preventDefault(),o.lastScrollTop=r,o.lastScrollLeft=s,o.lastScrollTime=Date.now(),(d.isHover||i)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,c),a)&&o.triggerScrollYEvent(e))}}};
|
|
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"),_dom=require("../../ui/src/dom"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer}=_ui.VxeUI,renderType="body";function isVMScrollProcess(e){return e._isResize||e.lastScrollTime&&Date.now()<e.lastScrollTime+e.delayHover}function renderLine(e,l,t,r){var{row:o,column:s}=r,{afterFullData:i,treeOpts:a,treeConfig:n,fullAllDataRowIdData:d}=t,{slots:s,treeNode:c}=s,d=d[(0,_util.getRowid)(t,o)];let p=0,u=0,h=[];return d&&(p=d.level,u=d._index,h=d.items),s&&s.line?t.callSlot(s.line,r,e):(d=t.eqRow(i[0],o),n&&c&&(a.showLine||a.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${d?1:(0,_util.calcTreeLine)(r,h,u)}px`,left:p*a.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,D,l,t,r,o,s,i,a,n,B,d,c,U,q){var{$listeners:p,fullAllDataRowIdData:N,afterFullData:u,tableData:V,height:h,columnKey:A,overflowX:g,sYOpts:x,scrollYLoad:F,highlightCurrentRow:W,showOverflow:P,isAllOverflow:j,align:z,currentColumn:X,cellClassName:K,cellStyle:v,mergeList:w,spanMethod:G,radioOpts:J,checkboxOpts:m,expandOpts:Q,treeOpts:Z,tooltipOpts:f,mouseConfig:ee,editConfig:y,editOpts:b,editRules:T,validOpts:S,editStore:_,tooltipConfig:le,rowOpts:te,columnOpts:re,validErrorMaps:C}=l,{type:oe,cellRender:se,editRender:$,align:ie,showOverflow:O,className:ae,treeNode:ne,slots:de}=d,_=_.actived,x=x.rHeight,L=te.height,R=$||se,R=R?renderer.get(R.name):null,ce=R?R.tableCellClassName||R.cellClassName:"",pe=R?R.tableCellStyle||R.cellStyle:"";let E=f.showAll||f.enabled;var f=l.getColumnIndex(d),ue=l.getVTColumnIndex(d),he=(0,_utils.isEnableConf)($);let I=o?d.fixed!==o:d.fixed&&g;g=_xeUtils.default.isUndefined(O)||_xeUtils.default.isNull(O)?P:O,O="ellipsis"===g;let k="title"===g,Y=!0===g||"tooltip"===g;g=k||Y||O;let ge;var H={},N=N[r],ie=ie||(R?R.tableCellAlign:"")||z,R=C[r+":"+d.id],z=T&&S.showMessage&&("default"===S.message?h||1<V.length:"inline"===S.message),C={colid:d.id};let xe=p["cell-mouseenter"],ve=p["cell-mouseleave"];T=$&&y&&"dblclick"===b.trigger;let M={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:i,rowIndex:a,$rowIndex:n,_rowIndex:B,column:d,columnIndex:f,$columnIndex:c,_columnIndex:ue,fixed:o,type:renderType,isHidden:I,level:s,visibleData:u,data:V,items:q};if((k||Y||E||xe||le)&&(H.mouseenter=e=>{isVMScrollProcess(l)||(k?(0,_dom.updateCellTitle)(e.currentTarget,d):(Y||E)&&l.triggerBodyTooltipEvent(e,M),xe&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(Y||E||ve||le)&&(H.mouseleave=e=>{isVMScrollProcess(l)||((Y||E)&&l.handleTargetLeaveEvent(e),ve&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(m.range||ee)&&(H.mousedown=e=>{l.triggerCellMousedownEvent(e,M)}),(te.isCurrent||W||p["cell-click"]||$&&y||"row"===Q.trigger||"cell"===Q.trigger||"row"===J.trigger||"radio"===d.type&&"cell"===J.trigger||"row"===m.trigger||"checkbox"===d.type&&"cell"===m.trigger||"row"===Z.trigger||d.treeNode&&"cell"===Z.trigger)&&(H.click=e=>{l.triggerCellClickEvent(e,M)}),(T||p["cell-dblclick"])&&(H.dblclick=e=>{l.triggerCellDblclickEvent(e,M)}),w.length){h=(0,_util.mergeBodyMethod)(w,B,ue);if(h){var{rowspan:t,colspan:r}=h;if(!t||!r)return null;1<t&&(C.rowspan=t),1<r&&(C.colspan=r)}}else if(G){var{rowspan:a=1,colspan:n=1}=G(M)||{};if(!a||!n)return null;1<a&&(C.rowspan=a),1<n&&(C.colspan=n)}!(I=I&&w&&(1<C.colspan||1<C.rowspan)?!1:I)&&y&&($||se)&&(b.showStatus||b.showUpdateStatus)&&(ge=l.isUpdateByRow(i,d.field));f=[];return I&&P&&j?f.push(e("div",{class:["vxe-cell",{"c--title":k,"c--tooltip":Y,"c--ellipsis":O}],style:{maxHeight:g&&(x||L)?`${x||L}px`:""}})):(f.push(...renderLine(e,D,l,M),e("div",{class:["vxe-cell",{"c--title":k,"c--tooltip":Y,"c--ellipsis":O}],style:{maxHeight:g&&(x||L)?`${x||L}px`:""},attrs:{title:k?l.getCellLabel(i,d):null}},d.renderCell(e,M))),z&&R&&(o=R.rule,s=de?de.valid:null,u=Object.assign(Object.assign({},M),R),f.push(e("div",{class:["vxe-cell--valid-error-hint",(0,_utils.getClass)(S.className,R)],style:o&&o.maxWidth?{width:o.maxWidth+"px"}:null},s?l.callSlot(s,u,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)])))),e("td",{class:["vxe-body--column",d.id,{["col--"+ie]:ie,["col--"+oe]:oe,"col--last":c===U.length-1,"col--tree-node":ne,"col--edit":he,"col--ellipsis":g,"col--height":!!te.height,"fixed--hidden":I,"col--dirty":ge,"col--active":y&&he&&_.row===i&&(_.column===d||"row"===b.mode),"col--valid-error":!!R,"col--current":X===d},(0,_utils.getClass)(ce,M),(0,_utils.getClass)(ae,M),(0,_utils.getClass)(K,M)],key:A||re.useKey?d.id:c,attrs:C,style:Object.assign({height:g&&(x||L)?`${x||L}px`:F?`${N.height||x||L}px`:""},_xeUtils.default.isFunction(pe)?pe(M):pe,_xeUtils.default.isFunction(v)?v(M):v),on:H},f)}function renderRows(v,w,m,f,y,b){let{stripe:T,rowKey:S,highlightHoverRow:_,rowClassName:C,rowStyle:$,editConfig:O,showOverflow:L,treeConfig:R,treeOpts:E,expandOpts:I,editOpts:k,treeExpandedMaps:Y,scrollYLoad:H,rowExpandedMaps:M,radioOpts:D,checkboxOpts:B,expandColumn:U,hasFixedColumn:q,fullAllDataRowIdData:N,rowOpts:V,pendingRowList:A,pendingRowMaps:F}=m,W=E.children||E.childrenField,P=[];return y.forEach((t,r)=>{var e={};let o,s=m.getVTRowIndex(t),i=(o=m.getRowIndex(t),(V.isHover||_)&&(e.mouseenter=e=>{isVMScrollProcess(m)||m.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(m)||m.clearHoverRow()}),(0,_util.getRowid)(m,t));var l=N[i];let a=l?l.level:0,n=l?l.seq:-1;var d,c,p,l={$table:m,seq:n,rowid:i,fixed:f,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},u=U&&!!M[i];let h=!1,g=[],x=!1;O&&(x=m.isInsertByRow(t)),!R||H||E.transform||(g=t[W],h=g&&g.length&&!!Y[i]),P.push(v("tr",{class:["vxe-body--row",R?"row--level-"+a:"",{"row--stripe":T&&(m.getVTRowIndex(t)+1)%2==0,"is--new":x,"is--expand-row":u,"is--expand-tree":h,"row--new":x&&(k.showStatus||k.showInsertStatus),"row--radio":D.highlight&&m.selectRadioRow===t,"row--checked":B.highlight&&m.isCheckedByCheckboxRow(t),"row--pending":A.length&&!!F[i]},C?_xeUtils.default.isFunction(C)?C(l):C:""],attrs:{rowid:i},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:S||V.useKey||R?i:r,on:e},b.map((e,l)=>renderColumn(v,w,m,n,i,f,a,t,o,r,s,e,l,b,y)))),u&&({height:l,padding:u}=I,d={},c=(l&&(d.height=l+"px"),R&&(d.paddingLeft=a*E.indent+30+"px"),U).showOverflow,c=_xeUtils.default.isUndefined(c)||_xeUtils.default.isNull(c)?L:c,p={$table:m,seq:n,column:U,fixed:f,type:renderType,level:a,row:t,rowIndex:o,$rowIndex:r},P.push(v("tr",{class:["vxe-body--expanded-row",{"is--padding":u}],key:"expand_"+i,style:$?_xeUtils.default.isFunction($)?$(p):$:null,on:e},[v("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":f&&!q,"col--ellipsis":c},attrs:{colspan:b.length}},[v("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":l},style:d},[U.renderData(v,p)])])]))),h&&P.push(...renderRows(v,w,m,f,g,b))}),P}var _default=exports.default={name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,size:String,fixedType:String},data(){return{wheelTime:null,wheelYSize:0,wheelYInterval:0,wheelYTotal:0}},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-body-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tbody,e[r+"xSpace"]=t.xSpace,e[r+"ySpace"]=t.ySpace,e[r+"emptyBlock"]=t.emptyBlock},beforeDestroy(){clearTimeout(this.wheelTime)},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-body-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null,e[l+"ySpace"]=null,e[l+"emptyBlock"]=null},render(t){let{_e:e,$parent:l,fixedColumn:r,fixedType:o}=this,{$scopedSlots:s,tId:i,tableData:a,tableColumn:n,visibleColumn:d,expandColumn:c,showOverflow:p,keyboardConfig:u,keyboardOpts:h,mergeList:g,spanMethod:x,scrollXLoad:v,scrollYLoad:w,isAllOverflow:m,emptyOpts:f,mouseConfig:y,mouseOpts:b,sYOpts:T}=l;o&&(n=c||!(v||w||p&&m)||g.length||x||u&&h.isMerge?d:r);let S;var _;return S=s.empty?s.empty.call(this,{$table:l},t):(_=(_=f.name?renderer.get(f.name):null)?_.renderTableEmpty||_.renderTableEmptyView||_.renderEmpty:null)?(0,_vn.getSlotVNs)(_.call(this,t,f,{$table:l})):l.emptyText||getI18n("vxe.table.emptyText"),t("div",{class:["vxe-table--body-wrapper",o?`fixed-${o}--wrapper`:"body--wrapper"],attrs:{xid:i},on:Object.assign({scroll:this.scrollEvent},w&&"wheel"===T.mode?{wheel:this.wheelEvent}:null)},[o?e():t("div",{class:"vxe-body--x-space",ref:"xSpace"}),t("div",{class:"vxe-body--y-space",ref:"ySpace"}),t("table",{class:"vxe-table--body",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},n.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),t("tbody",{ref:"tbody"},renderRows(t,this,l,o,a,n))]),t("div",{class:"vxe-table--checkbox-range"}),y&&b.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},b.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){l.triggerCellExtendMousedownEvent(e,{$table:l,fixed:o,type:renderType})}}})]:null),t("span",{class:"vxe-table--cell-copy-area"}),t("span",{class:"vxe-table--cell-extend-area"}),t("span",{class:"vxe-table--cell-multi-area"}),t("span",{class:"vxe-table--cell-active-area"})]):null,o?null:t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},S)])])},methods:{scrollEvent(e){var{$el:l,$parent:t,fixedType:r}=this,{$refs:o,lastScrollTop:s,lastScrollLeft:i}=t,{tableHeader:a,tableBody:n,leftBody:d,rightBody:c,tableFooter:p}=o,a=a?a.$el:null,p=p?p.$el:null,n=n.$el,d=d?d.$el:null,c=c?c.$el:null,l=l.scrollTop,u=n.scrollLeft,i=u!==i,s=l!==s,h=o.refScrollXHandleElem,o=o.refScrollYHandleElem;o?o.scrollTop=l:s&&(t.lastScrollTop=l,t.lastScrollLeft=u,d&&"left"===r?((0,_dom.setScrollTop)(n,l),(0,_dom.setScrollTop)(c,l)):c&&"right"===r?((0,_dom.setScrollTop)(n,l),(0,_dom.setScrollTop)(d,l)):((0,_dom.setScrollTop)(d,l),(0,_dom.setScrollTop)(c,l)),t.handleScrollEvent(e,s,i,{type:renderType,fixed:r,scrollTop:l,scrollLeft:u})),h?h.scrollLeft=u:i&&(t.lastScrollTop=l,t.lastScrollLeft=u,(0,_dom.setScrollLeft)(a,u),(0,_dom.setScrollLeft)(p,u),t.handleScrollEvent(e,s,i,{type:renderType,fixed:r,scrollTop:l,scrollLeft:u}))},handleWheel(a,n,e,d,c){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:i}=l;let u=l.$el,h=s?s.$el:null,g=i?i.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],i=t["main-body-xSpace"];let x=(r&&s?s:u).clientHeight,v=(o&&i?i:u).clientWidth,w=(this.isPrevWheelTop=n,this.wheelYSize=Math.abs(n?e-l:e+l),this.wheelYInterval=0,this.wheelYTotal=0,clearTimeout(this.wheelTime),()=>{let{fixedType:e,wheelYTotal:l,wheelYSize:t,wheelYInterval:r}=this;var o,s,i;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:i,clientHeight:o,scrollHeight:s}=u,i=i+r*(n?-1:1),u.scrollTop=i,h&&(h.scrollTop=i),g&&(g.scrollTop=i),(n?i<s-o:0<=i)&&(this.wheelTime=setTimeout(w,10)),this.wheelYTotal=l,this.wheelYInterval=r,p.emitEvent("scroll",{type:renderType,fixed:e,scrollTop:u.scrollTop,scrollLeft:u.scrollLeft,scrollHeight:u.scrollHeight,scrollWidth:u.scrollWidth,bodyHeight:x,bodyWidth:v,isX:d,isY:c},a))});w()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:i,scrollYLoad:a,lastScrollTop:n,lastScrollLeft:d,rowOpts:c}=o,s=s.tableBody,s=s.$el,p=l<0;(p?r.scrollTop<=0:r.scrollTop>=r.scrollHeight-r.clientHeight)||(r=r.scrollTop+l,t=(s=s.scrollLeft+t)!==d,(d=r!==n)&&(e.preventDefault(),o.lastScrollTop=r,o.lastScrollLeft=s,o.lastScrollTime=Date.now(),(c.isHover||i)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,d),a)&&o.triggerScrollYEvent(e))}}};
|
package/lib/table/src/footer.js
CHANGED
|
@@ -9,7 +9,7 @@ var _ui = require("../../ui");
|
|
|
9
9
|
var _utils = require("../../ui/src/utils");
|
|
10
10
|
var _dom = require("../../ui/src/dom");
|
|
11
11
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
12
|
-
const
|
|
12
|
+
const renderType = 'footer';
|
|
13
13
|
const {
|
|
14
14
|
renderer
|
|
15
15
|
} = _ui.VxeUI;
|
|
@@ -173,7 +173,7 @@ var _default = exports.default = {
|
|
|
173
173
|
_rowIndex,
|
|
174
174
|
$rowIndex,
|
|
175
175
|
fixed: fixedType,
|
|
176
|
-
type:
|
|
176
|
+
type: renderType
|
|
177
177
|
};
|
|
178
178
|
return h('tr', {
|
|
179
179
|
class: ['vxe-footer--row', footerRowClassName ? _xeUtils.default.isFunction(footerRowClassName) ? footerRowClassName(rowParams) : footerRowClassName : ''],
|
|
@@ -219,7 +219,7 @@ var _default = exports.default = {
|
|
|
219
219
|
itemIndex,
|
|
220
220
|
items: list,
|
|
221
221
|
fixed: fixedType,
|
|
222
|
-
type:
|
|
222
|
+
type: renderType,
|
|
223
223
|
data: footerTableData
|
|
224
224
|
};
|
|
225
225
|
// 虚拟滚动不支持动态高度
|
|
@@ -323,48 +323,39 @@ var _default = exports.default = {
|
|
|
323
323
|
*/
|
|
324
324
|
scrollEvent(evnt) {
|
|
325
325
|
const {
|
|
326
|
-
$parent: $
|
|
326
|
+
$parent: $xeTable,
|
|
327
327
|
fixedType
|
|
328
328
|
} = this;
|
|
329
329
|
const {
|
|
330
|
-
$refs
|
|
331
|
-
|
|
332
|
-
triggerScrollXEvent,
|
|
333
|
-
lastScrollLeft
|
|
334
|
-
} = $xetable;
|
|
330
|
+
$refs
|
|
331
|
+
} = $xeTable;
|
|
335
332
|
const {
|
|
336
333
|
tableHeader,
|
|
337
334
|
tableBody,
|
|
338
|
-
tableFooter
|
|
339
|
-
validTip
|
|
335
|
+
tableFooter
|
|
340
336
|
} = $refs;
|
|
341
337
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
342
338
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
343
339
|
const bodyElem = tableBody.$el;
|
|
344
340
|
const scrollLeft = footerElem ? footerElem.scrollLeft : 0;
|
|
345
|
-
const
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
341
|
+
const xHandleEl = $refs.refScrollXHandleElem;
|
|
342
|
+
if (xHandleEl) {
|
|
343
|
+
xHandleEl.scrollLeft = scrollLeft;
|
|
344
|
+
} else {
|
|
345
|
+
const isRollX = true;
|
|
346
|
+
const isRollY = false;
|
|
347
|
+
const scrollTop = bodyElem.scrollTop;
|
|
348
|
+
$xeTable.lastScrollLeft = scrollLeft;
|
|
349
|
+
$xeTable.lastScrollTime = Date.now();
|
|
350
|
+
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
351
|
+
(0, _dom.setScrollLeft)(bodyElem, scrollLeft);
|
|
352
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, {
|
|
353
|
+
type: renderType,
|
|
354
|
+
fixed: fixedType,
|
|
355
|
+
scrollTop,
|
|
356
|
+
scrollLeft
|
|
357
|
+
});
|
|
359
358
|
}
|
|
360
|
-
$xetable.emitEvent('scroll', {
|
|
361
|
-
type: cellType,
|
|
362
|
-
fixed: fixedType,
|
|
363
|
-
scrollTop: bodyElem.scrollTop,
|
|
364
|
-
scrollLeft,
|
|
365
|
-
isX,
|
|
366
|
-
isY: false
|
|
367
|
-
}, evnt);
|
|
368
359
|
}
|
|
369
360
|
}
|
|
370
361
|
};
|
|
@@ -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");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let
|
|
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");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let renderType="footer",renderer=_ui.VxeUI.renderer;function mergeFooterMethod(l,t,r){for(let e=0;e<l.length;e++){var{row:o,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<o&&a&&i){if(o===t&&n===r)return{rowspan:a,colspan:i};if(o<=t&&t<o+a&&n<=r&&r<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted(){var{$parent:e,$el:l,$refs:t,fixedType:r}=this,e=e.elemStore,r=`${r||"main"}-footer-`;e[r+"wrapper"]=l,e[r+"table"]=t.table,e[r+"colgroup"]=t.colgroup,e[r+"list"]=t.tfoot,e[r+"xSpace"]=t.xSpace},destroyed(){var{$parent:e,fixedType:l}=this,e=e.elemStore,l=`${l||"main"}-footer-`;e[l+"wrapper"]=null,e[l+"table"]=null,e[l+"colgroup"]=null,e[l+"list"]=null,e[l+"xSpace"]=null},render(y){let{_e:e,$parent:_,fixedType:h,fixedColumn:l,tableColumn:T,footerTableData:$}=this,{$listeners:C,tId:t,footerRowClassName:r,footerCellClassName:S,footerRowStyle:o,footerCellStyle:F,footerAlign:I,mergeFooterList:L,footerSpanMethod:k,align:A,scrollXLoad:E,columnKey:U,columnOpts:O,showFooterOverflow:q,currentColumn:R,overflowX:D,scrollbarWidth:n,tooltipOpts:M,visibleColumn:a,expandColumn:i}=_;return h&&(T=i||!E&&!q||L.length&&k?a:l),y("div",{class:["vxe-table--footer-wrapper",h?`fixed-${h}--wrapper`:"body--wrapper"],attrs:{xid:t},on:{scroll:this.scrollEvent}},[h?e():y("div",{class:"vxe-body--x-space",ref:"xSpace"}),y("table",{class:"vxe-table--footer",attrs:{xid:t,cellspacing:0,cellpadding:0,border:0},ref:"table"},[y("colgroup",{ref:"colgroup"},T.map((e,l)=>y("col",{attrs:{name:e.id},key:l})).concat(n?[y("col",{attrs:{name:"col_gutter"}})]:[])),y("tfoot",{ref:"tfoot"},$.map((v,b)=>{let w=b;var e={$table:_,row:v,_rowIndex:b,$rowIndex:w,fixed:h,type:renderType};return y("tr",{class:["vxe-footer--row",r?_xeUtils.default.isFunction(r)?r(e):r:""],style:o?_xeUtils.default.isFunction(o)?o(e):o:null},T.map((l,e)=>{var{type:t,showFooterOverflow:r,footerAlign:o,align:n,footerClassName:a,editRender:i,cellRender:s}=l,i=i||s,s=i?renderer.get(i.name):null;let c=M.showAll||M.enabled;i=l.children&&l.children.length,i=h?l.fixed!==h&&!i:l.fixed&&D,r=_xeUtils.default.isUndefined(r)||_xeUtils.default.isNull(r)?q:r,o=o||(s?s.tableFooterCellAlign:"")||I||n||(s?s.tableCellAlign:"")||A;let d="ellipsis"===r,u="title"===r,f=!0===r||"tooltip"===r,p=u||f||d;var n={colid:l.id},s={},r=_.getColumnIndex(l),x=_.getVTColumnIndex(l),m=x;let g={$table:_,$grid:_.xegrid,row:v,_rowIndex:b,$rowIndex:w,column:l,columnIndex:r,$columnIndex:e,_columnIndex:x,itemIndex:m,items:v,fixed:h,type:renderType,data:$};if(E&&!p&&(d=p=!0),(u||f||c)&&(s.mouseenter=e=>{u?(0,_dom.updateCellTitle)(e.currentTarget,l):(f||c)&&_.triggerFooterTooltipEvent(e,g)}),(f||c)&&(s.mouseleave=e=>{(f||c)&&_.handleTargetLeaveEvent(e)}),C["footer-cell-click"]&&(s.click=e=>{_.emitEvent("footer-cell-click",Object.assign({cell:e.currentTarget},g),e)}),C["footer-cell-dblclick"]&&(s.dblclick=e=>{_.emitEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},g),e)}),L.length){r=mergeFooterMethod(L,b,x);if(r){var{rowspan:m,colspan:x}=r;if(!m||!x)return null;1<m&&(n.rowspan=m),1<x&&(n.colspan=x)}}else if(k){var{rowspan:r=1,colspan:m=1}=k(g)||{};if(!r||!m)return null;1<r&&(n.rowspan=r),1<m&&(n.colspan=m)}return y("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+t]:t,"col--last":e===T.length-1,"fixed--hidden":i,"col--ellipsis":p,"col--current":R===l},(0,_utils.getClass)(a,g),(0,_utils.getClass)(S,g)],attrs:n,style:F?_xeUtils.default.isFunction(F)?F(g):F:null,on:s,key:U||O.useKey?l.id:e},[y("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":f,"c--ellipsis":d}]},l.renderFooter(y,g))])}).concat(n?[y("td",{class:"vxe-footer--gutter col--gutter"})]:[]))}))])])},methods:{scrollEvent(e){var{$parent:l,fixedType:t}=this,r=l.$refs,{tableHeader:o,tableBody:n,tableFooter:a}=r,o=o?o.$el:null,a=a?a.$el:null,n=n.$el,a=a?a.scrollLeft:0,r=r.refScrollXHandleElem;r?r.scrollLeft=a:(r=n.scrollTop,l.lastScrollLeft=a,l.lastScrollTime=Date.now(),(0,_dom.setScrollLeft)(o,a),(0,_dom.setScrollLeft)(n,a),l.handleScrollEvent(e,!1,!0,{type:renderType,fixed:t,scrollTop:r,scrollLeft:a}))}}};
|