vxe-table 3.11.4 → 3.11.6-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/index.css +1 -0
- package/es/index.min.css +1 -0
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/module/filter/mixin.js +23 -2
- package/es/table/module/filter/panel.js +3 -6
- package/es/table/src/body.js +55 -30
- package/es/table/src/footer.js +30 -22
- package/es/table/src/methods.js +253 -109
- package/es/table/src/table.js +11 -3
- package/es/table/style.css +48 -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 +48 -3
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -0
- package/lib/index.min.css +1 -0
- package/lib/index.umd.js +436 -196
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.css +1 -1
- package/lib/table/module/filter/mixin.js +25 -2
- package/lib/table/module/filter/mixin.min.js +1 -1
- package/lib/table/module/filter/panel.js +3 -7
- package/lib/table/module/filter/panel.min.js +1 -1
- package/lib/table/src/body.js +65 -32
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +32 -23
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/methods.js +293 -127
- package/lib/table/src/methods.min.js +1 -1
- package/lib/table/src/table.js +16 -2
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +48 -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 +48 -3
- package/lib/vxe-table/style/style.min.css +1 -1
- package/package.json +2 -2
- package/packages/table/module/filter/mixin.ts +26 -2
- package/packages/table/module/filter/panel.ts +3 -6
- package/packages/table/src/body.ts +66 -27
- package/packages/table/src/footer.ts +33 -21
- package/packages/table/src/methods.ts +266 -112
- package/packages/table/src/table.ts +11 -3
- package/packages/ui/index.ts +1 -1
- package/packages/ui/src/dom.ts +2 -2
- package/styles/components/table.scss +38 -3
- /package/es/{iconfont.1732091003142.ttf → iconfont.1732505453169.ttf} +0 -0
- /package/es/{iconfont.1732091003142.woff → iconfont.1732505453169.woff} +0 -0
- /package/es/{iconfont.1732091003142.woff2 → iconfont.1732505453169.woff2} +0 -0
- /package/lib/{iconfont.1732091003142.ttf → iconfont.1732505453169.ttf} +0 -0
- /package/lib/{iconfont.1732091003142.woff → iconfont.1732505453169.woff} +0 -0
- /package/lib/{iconfont.1732091003142.woff2 → iconfont.1732505453169.woff2} +0 -0
package/lib/table/src/body.js
CHANGED
|
@@ -13,7 +13,8 @@ var _vn = require("../../ui/src/vn");
|
|
|
13
13
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
14
14
|
const {
|
|
15
15
|
getI18n,
|
|
16
|
-
renderer
|
|
16
|
+
renderer,
|
|
17
|
+
renderEmptyElement
|
|
17
18
|
} = _ui.VxeUI;
|
|
18
19
|
const renderType = 'body';
|
|
19
20
|
// 滚动、拖动过程中不需要触发
|
|
@@ -75,6 +76,7 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
75
76
|
columnKey,
|
|
76
77
|
overflowX,
|
|
77
78
|
sYOpts,
|
|
79
|
+
scrollXLoad,
|
|
78
80
|
scrollYLoad,
|
|
79
81
|
highlightCurrentRow,
|
|
80
82
|
showOverflow: allColumnOverflow,
|
|
@@ -99,8 +101,13 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
99
101
|
tooltipConfig,
|
|
100
102
|
rowOpts,
|
|
101
103
|
columnOpts,
|
|
104
|
+
mouseOpts,
|
|
105
|
+
areaOpts,
|
|
102
106
|
validErrorMaps
|
|
103
107
|
} = $xetable;
|
|
108
|
+
const {
|
|
109
|
+
selectCellToRow
|
|
110
|
+
} = areaOpts;
|
|
104
111
|
const cellOpts = $xetable.computeCellOpts;
|
|
105
112
|
const {
|
|
106
113
|
type,
|
|
@@ -299,7 +306,9 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
299
306
|
if (showValidTip && errorValidItem) {
|
|
300
307
|
const errRule = errorValidItem.rule;
|
|
301
308
|
const validSlot = slots ? slots.valid : null;
|
|
302
|
-
const validParams = Object.assign(Object.assign({}, params), errorValidItem)
|
|
309
|
+
const validParams = Object.assign(Object.assign(Object.assign({}, params), errorValidItem), {
|
|
310
|
+
rule: errorValidItem
|
|
311
|
+
});
|
|
303
312
|
tdVNs.push(h('div', {
|
|
304
313
|
class: ['vxe-cell--valid-error-tip', (0, _utils.getClass)(validOpts.className, errorValidItem)],
|
|
305
314
|
style: errRule && errRule.maxWidth ? {
|
|
@@ -315,11 +324,18 @@ function renderColumn(h, _vm, $xetable, seq, rowid, fixedType, rowLevel, row, ro
|
|
|
315
324
|
let cellHeight = '';
|
|
316
325
|
if (hasEllipsis && (scrollYRHeight || rowHeight)) {
|
|
317
326
|
cellHeight = `${scrollYRHeight || rowHeight}px`;
|
|
318
|
-
} else if (scrollYLoad) {
|
|
327
|
+
} else if (scrollXLoad || scrollYLoad) {
|
|
319
328
|
if (!hasEllipsis) {
|
|
320
329
|
cellHeight = `${rest.height || 24}px`;
|
|
321
330
|
}
|
|
322
331
|
}
|
|
332
|
+
if (mouseConfig && mouseOpts.area && selectCellToRow) {
|
|
333
|
+
if (!$columnIndex && selectCellToRow === true || selectCellToRow === column.field) {
|
|
334
|
+
tdVNs.push(h('div', {
|
|
335
|
+
class: 'vxe-cell--area-status'
|
|
336
|
+
}));
|
|
337
|
+
}
|
|
338
|
+
}
|
|
323
339
|
return h('td', {
|
|
324
340
|
class: ['vxe-body--column', column.id, {
|
|
325
341
|
[`col--${cellAlign}`]: cellAlign,
|
|
@@ -587,6 +603,7 @@ var _default = exports.default = {
|
|
|
587
603
|
elemStore[`${prefix}emptyBlock`] = null;
|
|
588
604
|
},
|
|
589
605
|
render(h) {
|
|
606
|
+
const $xeTable = this.$parent;
|
|
590
607
|
const {
|
|
591
608
|
_e,
|
|
592
609
|
$parent: $xetable,
|
|
@@ -652,16 +669,19 @@ var _default = exports.default = {
|
|
|
652
669
|
emptyContent = $xetable.emptyText || getI18n('vxe.table.emptyText');
|
|
653
670
|
}
|
|
654
671
|
}
|
|
672
|
+
const ons = {
|
|
673
|
+
scroll: this.scrollEvent
|
|
674
|
+
};
|
|
675
|
+
if (sYOpts.mode === 'wheel') {
|
|
676
|
+
ons.wheel = this.wheelEvent;
|
|
677
|
+
}
|
|
655
678
|
return h('div', {
|
|
679
|
+
ref: 'refElem',
|
|
656
680
|
class: ['vxe-table--body-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
|
|
657
681
|
attrs: {
|
|
658
682
|
xid: tId
|
|
659
683
|
},
|
|
660
|
-
on:
|
|
661
|
-
scroll: this.scrollEvent
|
|
662
|
-
}, scrollYLoad && sYOpts.mode === 'wheel' ? {
|
|
663
|
-
wheel: this.wheelEvent
|
|
664
|
-
} : null)
|
|
684
|
+
on: ons
|
|
665
685
|
}, [fixedType ? _e() : h('div', {
|
|
666
686
|
class: 'vxe-body--x-space',
|
|
667
687
|
ref: 'xSpace'
|
|
@@ -726,12 +746,12 @@ var _default = exports.default = {
|
|
|
726
746
|
class: 'vxe-table--cell-multi-area'
|
|
727
747
|
}), h('span', {
|
|
728
748
|
class: 'vxe-table--cell-active-area'
|
|
729
|
-
})]) :
|
|
749
|
+
})]) : renderEmptyElement($xeTable), !fixedType ? h('div', {
|
|
730
750
|
class: 'vxe-table--empty-block',
|
|
731
751
|
ref: 'emptyBlock'
|
|
732
752
|
}, [h('div', {
|
|
733
753
|
class: 'vxe-table--empty-content'
|
|
734
|
-
}, emptyContent)]) :
|
|
754
|
+
}, emptyContent)]) : renderEmptyElement($xeTable)]);
|
|
735
755
|
},
|
|
736
756
|
methods: {
|
|
737
757
|
/**
|
|
@@ -740,37 +760,52 @@ var _default = exports.default = {
|
|
|
740
760
|
* 如果存在列固定右侧,同步更新滚动状态
|
|
741
761
|
*/
|
|
742
762
|
scrollEvent(evnt) {
|
|
763
|
+
const $xeTable = this.$parent;
|
|
764
|
+
const tableInternalData = $xeTable;
|
|
743
765
|
const {
|
|
744
|
-
$el: scrollBodyElem,
|
|
745
|
-
$parent: $xeTable,
|
|
746
766
|
fixedType
|
|
747
767
|
} = this;
|
|
748
768
|
const {
|
|
749
|
-
$refs,
|
|
750
769
|
lastScrollTop,
|
|
751
|
-
lastScrollLeft
|
|
752
|
-
|
|
770
|
+
lastScrollLeft,
|
|
771
|
+
inVirtualScroll,
|
|
772
|
+
inBodyScroll,
|
|
773
|
+
bodyScrollType,
|
|
774
|
+
inFooterScroll
|
|
775
|
+
} = tableInternalData;
|
|
776
|
+
if (inVirtualScroll) {
|
|
777
|
+
return;
|
|
778
|
+
}
|
|
779
|
+
if (inFooterScroll) {
|
|
780
|
+
return;
|
|
781
|
+
}
|
|
782
|
+
if (inBodyScroll) {
|
|
783
|
+
if (bodyScrollType !== fixedType) {
|
|
784
|
+
return;
|
|
785
|
+
}
|
|
786
|
+
}
|
|
753
787
|
const {
|
|
754
788
|
tableHeader,
|
|
755
789
|
tableBody,
|
|
756
790
|
leftBody,
|
|
757
791
|
rightBody,
|
|
758
792
|
tableFooter
|
|
759
|
-
} = $refs;
|
|
793
|
+
} = $xeTable.$refs;
|
|
794
|
+
const scrollBodyElem = this.$el;
|
|
760
795
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
761
796
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
762
797
|
const bodyElem = tableBody.$el;
|
|
763
798
|
const leftElem = leftBody ? leftBody.$el : null;
|
|
764
799
|
const rightElem = rightBody ? rightBody.$el : null;
|
|
800
|
+
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
801
|
+
const yHandleEl = $xeTable.$refs.refScrollYHandleElem;
|
|
765
802
|
const scrollTop = scrollBodyElem.scrollTop;
|
|
766
803
|
const scrollLeft = bodyElem.scrollLeft;
|
|
767
804
|
const isRollX = scrollLeft !== lastScrollLeft;
|
|
768
805
|
const isRollY = scrollTop !== lastScrollTop;
|
|
769
|
-
|
|
770
|
-
|
|
771
|
-
if (
|
|
772
|
-
yHandleEl.scrollTop = scrollTop;
|
|
773
|
-
} else if (isRollY) {
|
|
806
|
+
tableInternalData.inBodyScroll = true;
|
|
807
|
+
tableInternalData.bodyScrollType = fixedType;
|
|
808
|
+
if (isRollY) {
|
|
774
809
|
if (leftElem && fixedType === 'left') {
|
|
775
810
|
(0, _dom.setScrollTop)(bodyElem, scrollTop);
|
|
776
811
|
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
@@ -781,21 +816,19 @@ var _default = exports.default = {
|
|
|
781
816
|
(0, _dom.setScrollTop)(leftElem, scrollTop);
|
|
782
817
|
(0, _dom.setScrollTop)(rightElem, scrollTop);
|
|
783
818
|
}
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
fixed: fixedType
|
|
787
|
-
});
|
|
819
|
+
(0, _dom.setScrollTop)(yHandleEl, scrollTop);
|
|
820
|
+
$xeTable.triggerScrollYEvent(evnt);
|
|
788
821
|
}
|
|
789
|
-
if (
|
|
790
|
-
xHandleEl
|
|
791
|
-
} else if (isRollX) {
|
|
822
|
+
if (isRollX) {
|
|
823
|
+
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
792
824
|
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
793
825
|
(0, _dom.setScrollLeft)(footerElem, scrollLeft);
|
|
794
|
-
$xeTable.
|
|
795
|
-
type: renderType,
|
|
796
|
-
fixed: fixedType
|
|
797
|
-
});
|
|
826
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
798
827
|
}
|
|
828
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
829
|
+
type: renderType,
|
|
830
|
+
fixed: fixedType
|
|
831
|
+
});
|
|
799
832
|
},
|
|
800
833
|
handleWheel(evnt, isTopWheel, deltaTop, isRollX, isRollY) {
|
|
801
834
|
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:a,treeOpts:i,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(a[0],o),n&&c&&(i.showLine||i.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*i.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,H,l,t,r,o,s,a,i,n,B,d,c,U,q){var{$listeners:p,fullAllDataRowIdData:N,afterFullData:u,tableData:V,height:h,columnKey:A,overflowX:g,sYOpts:v,scrollYLoad:F,highlightCurrentRow:W,showOverflow:P,isAllOverflow:j,align:z,currentColumn:K,cellClassName:X,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:_,tooltipConfig:le,rowOpts:te,columnOpts:re,validErrorMaps:C}=l,oe=l.computeCellOpts,{type:se,cellRender:ae,editRender:$,align:ie,showOverflow:O,className:ne,treeNode:de,slots:ce}=d,oe=oe.verticalAlign,_=_.actived,v=v.rHeight,R=te.height,E=$||ae,E=E?renderer.get(E.name):null,pe=E?E.tableCellClassName||E.cellClassName:"",ue=E?E.tableCellStyle||E.cellStyle:"";let I=y.showAll||y.enabled;var y=l.getColumnIndex(d),he=l.getVTColumnIndex(d),ge=(0,_utils.isEnableConf)($);let D=o?d.fixed!==o:d.fixed&&g;g=_xeUtils.default.isUndefined(O)||_xeUtils.default.isNull(O)?P:O,O="ellipsis"===g;let L="title"===g,k=!0===g||"tooltip"===g;g=L||k||O;let ve;var M={},N=N[r],ie=ie||(E?E.tableCellAlign:"")||z,E=C[r+":"+d.id],z=T&&S.showMessage&&("default"===S.message?h||1<V.length:"inline"===S.message),C={colid:d.id};let we=p["cell-mouseenter"],xe=p["cell-mouseleave"];T=$&&f&&"dblclick"===b.trigger;let Y={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:a,rowIndex:i,$rowIndex:n,_rowIndex:B,column:d,columnIndex:y,$columnIndex:c,_columnIndex:he,fixed:o,type:renderType,isHidden:D,level:s,visibleData:u,data:V,items:q};if((L||k||I||we||le)&&(M.mouseenter=e=>{isVMScrollProcess(l)||(L?(0,_dom.updateCellTitle)(e.currentTarget,d):(k||I)&&l.triggerBodyTooltipEvent(e,Y),we&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},Y),e))}),(k||I||xe||le)&&(M.mouseleave=e=>{isVMScrollProcess(l)||((k||I)&&l.handleTargetLeaveEvent(e),xe&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},Y),e))}),(m.range||ee)&&(M.mousedown=e=>{l.triggerCellMousedownEvent(e,Y)}),(te.isCurrent||W||p["cell-click"]||$&&f||"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)&&(M.click=e=>{l.triggerCellClickEvent(e,Y)}),(T||p["cell-dblclick"])&&(M.dblclick=e=>{l.triggerCellDblclickEvent(e,Y)}),x.length){h=(0,_util.mergeBodyMethod)(x,B,he);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:i=1,colspan:n=1}=G(Y)||{};if(!i||!n)return null;1<i&&(C.rowspan=i),1<n&&(C.colspan=n)}!(D=D&&x&&(1<C.colspan||1<C.rowspan)?!1:D)&&f&&($||ae)&&(b.showStatus||b.showUpdateStatus)&&(ve=l.isUpdateByRow(a,d.field));y=[];D&&P&&j?y.push(e("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":k,"c--ellipsis":O}],style:{maxHeight:g&&(v||R)?`${v||R}px`:""}})):(y.push(...renderLine(e,H,l,Y),e("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":k,"c--ellipsis":O}],style:{maxHeight:g&&(v||R)?`${v||R}px`:""},attrs:{title:L?l.getCellLabel(a,d):null}},d.renderCell(e,Y))),z&&E&&(o=E.rule,s=ce?ce.valid:null,u=Object.assign(Object.assign({},Y),E),y.push(e("div",{class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(S.className,E)],style:o&&o.maxWidth?{width:o.maxWidth+"px"}:null},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(S.theme||"normal")},[s?l.callSlot(s,u,e):[e("span",{class:"vxe-cell--valid-error-msg"},E.content)]])]))));let me="";return g&&(v||R)?me=`${v||R}px`:F&&!g&&(me=`${N.height||24}px`),e("td",{class:["vxe-body--column",d.id,{["col--"+ie]:ie,["col--vertical-"+oe]:oe,["col--"+se]:se,"col--last":c===U.length-1,"col--tree-node":de,"col--edit":ge,"col--ellipsis":g,"fixed--hidden":D,"col--dirty":ve,"col--active":f&&ge&&_.row===a&&(_.column===d||"row"===b.mode),"col--valid-error":!!E,"col--current":K===d},(0,_utils.getClass)(pe,Y),(0,_utils.getClass)(ne,Y),(0,_utils.getClass)(X,Y)],key:A||re.useKey||te.useKey?d.id:c,attrs:C,style:Object.assign({height:me},_xeUtils.default.isFunction(ue)?ue(Y):ue,_xeUtils.default.isFunction(w)?w(Y):w),on:M},y)}function renderRows(w,x,m,y,f,b){let{stripe:T,rowKey:S,highlightHoverRow:_,rowClassName:C,rowStyle:$,editConfig:O,showOverflow:R,treeConfig:E,treeOpts:I,expandOpts:D,editOpts:L,treeExpandedMaps:k,scrollYLoad:M,rowExpandedMaps:Y,radioOpts:H,checkboxOpts:B,expandColumn:U,hasFixedColumn:q,fullAllDataRowIdData:N,rowOpts:V,pendingRowList:A,pendingRowMaps:F,columnOpts:W,isDragColMove:P}=m,j=I.children||I.childrenField,z=[];return f.forEach((t,r)=>{var e={};let o,s=m.getVTRowIndex(t),a=(o=m.getRowIndex(t),(V.isHover||_)&&(e.mouseenter=e=>{isVMScrollProcess(m)||m.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(m)||m.clearHoverRow()}),V.drag&&(e.dragstart=e=>{m.handleRowDragDragstartEvent(e)},e.dragover=e=>{m.handleRowDragDragoverEvent(e)},e.dragend=e=>{m.handleRowDragDragendEvent(e)}),(0,_util.getRowid)(m,t));var l=N[a];let i=l?l.level:0,n=l?l.seq:-1;var l={$table:m,seq:n,rowid:a,fixed:y,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r},d=U&&!!Y[a];let c=!1,p=[],u=!1;O&&(u=m.isInsertByRow(t)),!E||M||I.transform||(p=t[j],c=p&&p.length&&!!k[a]);var h,g=["vxe-body--row",E?"row--level-"+i:"",{"row--stripe":T&&(m.getVTRowIndex(t)+1)%2==0,"is--new":u,"is--expand-row":d,"is--expand-tree":c,"row--new":u&&(L.showStatus||L.showInsertStatus),"row--radio":H.highlight&&m.selectRadioRow===t,"row--checked":B.highlight&&m.isCheckedByCheckboxRow(t),"row--pending":A.length&&!!F[a]},C?_xeUtils.default.isFunction(C)?C(l):C:""],v=b.map((e,l)=>renderColumn(w,x,m,n,a,y,i,t,o,r,s,e,l,b,f));z.push(W.drag?w("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(P?"":"-disabled")},class:g,attrs:{rowid:a},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:S||V.useKey||V.drag||E?a:r,nativeOn:e},v):w("tr",{class:g,attrs:{rowid:a},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:S||V.useKey||V.drag||E?a:r,on:e},v)),d&&({height:g,padding:l}=D,v={},d=(g&&(v.height=g+"px"),E&&(v.paddingLeft=i*I.indent+30+"px"),U).showOverflow,d=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?R:d,h={$table:m,seq:n,column:U,fixed:y,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r},z.push(w("tr",{class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+a,style:$?_xeUtils.default.isFunction($)?$(h):$:null,on:e},[w("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":y&&!q,"col--ellipsis":d},attrs:{colspan:b.length}},[w("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":g},style:v},[U.renderData(w,h)])])]))),c&&z.push(...renderRows(w,x,m,y,p,b))}),z}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:a,tableData:i,tableColumn:n,visibleColumn:d,expandColumn:c,showOverflow:p,keyboardConfig:u,keyboardOpts:h,mergeList:g,spanMethod:v,scrollXLoad:w,scrollYLoad:x,isAllOverflow:m,emptyOpts:y,mouseConfig:f,mouseOpts:b,sYOpts:T,rowOpts:S,isDragRowMove:_}=l;o&&(n=c||!(w||x||p&&m)||g.length||v||u&&h.isMerge?d:r);let C;var $;return C=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:a},on:Object.assign({scroll:this.scrollEvent},x&&"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:a,cellspacing:0,cellpadding:0,border:0},ref:"table"},[t("colgroup",{ref:"colgroup"},n.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),S.drag?t("transition-group",{props:{tag:"tbody",name:"vxe-body--row-list"+(_?"":"-disabled")}},renderRows(t,this,l,o,i,n)):t("tbody",{ref:"tbody"},renderRows(t,this,l,o,i,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"},C)])])},methods:{scrollEvent(e){var{$el:l,$parent:t,fixedType:r}=this,{$refs:o,lastScrollTop:s,lastScrollLeft:a}=t,{tableHeader:i,tableBody:n,leftBody:d,rightBody:c,tableFooter:p}=o,i=i?i.$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,a=u!==a,s=l!==s,h=o.refScrollXHandleElem,o=o.refScrollYHandleElem;o?o.scrollTop=l:s&&(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,a,l,u,{type:renderType,fixed:r})),h?h.scrollLeft=u:a&&((0,_dom.setScrollLeft)(i,u),(0,_dom.setScrollLeft)(p,u),t.handleScrollEvent(e,s,a,l,u,{type:renderType,fixed:r}))},handleWheel(i,n,e,d,c){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:a}=l;let u=l.$el,h=s?s.$el:null,g=a?a.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],a=t["main-body-xSpace"];let v=(r&&s?s:u).clientHeight,w=(o&&a?a: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,a;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:a,clientHeight:o,scrollHeight:s}=u,a=a+r*(n?-1:1),u.scrollTop=a,h&&(h.scrollTop=a),g&&(g.scrollTop=a),(n?a<s-o:0<=a)&&(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:d,isY:c},i))});x()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:a,scrollYLoad:i,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||a)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,d),i)&&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,renderEmptyElement}=_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:a,treeOpts:i,treeConfig:n,fullAllDataRowIdData:d}=t,{slots:s,treeNode:c}=s,d=d[(0,_util.getRowid)(t,o)];let p=0,u=0,g=[];return d&&(p=d.level,u=d._index,g=d.items),s&&s.line?t.callSlot(s.line,r,e):(d=t.eqRow(a[0],o),n&&c&&(i.showLine||i.line)?[e("div",{class:"vxe-tree--line-wrapper"},[e("div",{class:"vxe-tree--line",style:{height:`${d?1:(0,_util.calcTreeLine)(r,g,u)}px`,left:p*i.indent+(p?2-(0,_util.getOffsetSize)(t):0)+16+"px"}})])]:[])}function renderColumn(e,H,l,t,r,o,s,a,i,n,B,d,c,U,q){var{$listeners:p,fullAllDataRowIdData:V,afterFullData:u,tableData:F,height:g,columnKey:N,overflowX:h,sYOpts:v,scrollXLoad:A,scrollYLoad:W,highlightCurrentRow:P,showOverflow:X,isAllOverflow:j,align:z,currentColumn:K,cellClassName:G,cellStyle:m,mergeList:w,spanMethod:J,radioOpts:Q,checkboxOpts:x,expandOpts:Z,treeOpts:ee,tooltipOpts:y,mouseConfig:le,editConfig:f,editOpts:b,editRules:S,validOpts:T,editStore:te,tooltipConfig:re,rowOpts:oe,columnOpts:se,mouseOpts:ae,areaOpts:_,validErrorMaps:C}=l,_=_.selectCellToRow,ie=l.computeCellOpts,{type:ne,cellRender:de,editRender:$,align:ce,showOverflow:O,className:pe,treeNode:ue,slots:ge}=d,ie=ie.verticalAlign,te=te.actived,v=v.rHeight,E=oe.height,R=$||de,R=R?renderer.get(R.name):null,he=R?R.tableCellClassName||R.cellClassName:"",ve=R?R.tableCellStyle||R.cellStyle:"";let I=y.showAll||y.enabled;var y=l.getColumnIndex(d),me=l.getVTColumnIndex(d),we=(0,_utils.isEnableConf)($);let D=o?d.fixed!==o:d.fixed&&h;h=_xeUtils.default.isUndefined(O)||_xeUtils.default.isNull(O)?X:O,O="ellipsis"===h;let L="title"===h,k=!0===h||"tooltip"===h;h=L||k||O;let xe;var Y={},V=V[r],ce=ce||(R?R.tableCellAlign:"")||z,R=C[r+":"+d.id],z=S&&T.showMessage&&("default"===T.message?g||1<F.length:"inline"===T.message),C={colid:d.id};let ye=p["cell-mouseenter"],fe=p["cell-mouseleave"];S=$&&f&&"dblclick"===b.trigger;let M={$table:l,$grid:l.$xegrid,isEdit:!1,seq:t,rowid:r,row:a,rowIndex:i,$rowIndex:n,_rowIndex:B,column:d,columnIndex:y,$columnIndex:c,_columnIndex:me,fixed:o,type:renderType,isHidden:D,level:s,visibleData:u,data:F,items:q};if((L||k||I||ye||re)&&(Y.mouseenter=e=>{isVMScrollProcess(l)||(L?(0,_dom.updateCellTitle)(e.currentTarget,d):(k||I)&&l.triggerBodyTooltipEvent(e,M),ye&&l.emitEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},M),e))}),(k||I||fe||re)&&(Y.mouseleave=e=>{isVMScrollProcess(l)||((k||I)&&l.handleTargetLeaveEvent(e),fe&&l.emitEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},M),e))}),(x.range||le)&&(Y.mousedown=e=>{l.triggerCellMousedownEvent(e,M)}),(oe.isCurrent||P||p["cell-click"]||$&&f||"row"===Z.trigger||"cell"===Z.trigger||"row"===Q.trigger||"radio"===d.type&&"cell"===Q.trigger||"row"===x.trigger||"checkbox"===d.type&&"cell"===x.trigger||"row"===ee.trigger||d.treeNode&&"cell"===ee.trigger)&&(Y.click=e=>{l.triggerCellClickEvent(e,M)}),(S||p["cell-dblclick"])&&(Y.dblclick=e=>{l.triggerCellDblclickEvent(e,M)}),w.length){g=(0,_util.mergeBodyMethod)(w,B,me);if(g){var{rowspan:t,colspan:r}=g;if(!t||!r)return null;1<t&&(C.rowspan=t),1<r&&(C.colspan=r)}}else if(J){var{rowspan:i=1,colspan:n=1}=J(M)||{};if(!i||!n)return null;1<i&&(C.rowspan=i),1<n&&(C.colspan=n)}!(D=D&&w&&(1<C.colspan||1<C.rowspan)?!1:D)&&f&&($||de)&&(b.showStatus||b.showUpdateStatus)&&(xe=l.isUpdateByRow(a,d.field));y=[];D&&X&&j?y.push(e("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":k,"c--ellipsis":O}],style:{maxHeight:h&&(v||E)?`${v||E}px`:""}})):(y.push(...renderLine(e,H,l,M),e("div",{class:["vxe-cell",{"c--title":L,"c--tooltip":k,"c--ellipsis":O}],style:{maxHeight:h&&(v||E)?`${v||E}px`:""},attrs:{title:L?l.getCellLabel(a,d):null}},d.renderCell(e,M))),z&&R&&(o=R.rule,s=ge?ge.valid:null,u=Object.assign(Object.assign(Object.assign({},M),R),{rule:R}),y.push(e("div",{class:["vxe-cell--valid-error-tip",(0,_utils.getClass)(T.className,R)],style:o&&o.maxWidth?{width:o.maxWidth+"px"}:null},[e("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(T.theme||"normal")},[s?l.callSlot(s,u,e):[e("span",{class:"vxe-cell--valid-error-msg"},R.content)]])]))));let be="";return h&&(v||E)?be=`${v||E}px`:!A&&!W||h||(be=`${V.height||24}px`),le&&ae.area&&_&&((c||!0!==_)&&_!==d.field||y.push(e("div",{class:"vxe-cell--area-status"}))),e("td",{class:["vxe-body--column",d.id,{["col--"+ce]:ce,["col--vertical-"+ie]:ie,["col--"+ne]:ne,"col--last":c===U.length-1,"col--tree-node":ue,"col--edit":we,"col--ellipsis":h,"fixed--hidden":D,"col--dirty":xe,"col--active":f&&we&&te.row===a&&(te.column===d||"row"===b.mode),"col--valid-error":!!R,"col--current":K===d},(0,_utils.getClass)(he,M),(0,_utils.getClass)(pe,M),(0,_utils.getClass)(G,M)],key:N||se.useKey||oe.useKey?d.id:c,attrs:C,style:Object.assign({height:be},_xeUtils.default.isFunction(ve)?ve(M):ve,_xeUtils.default.isFunction(m)?m(M):m),on:Y},y)}function renderRows(m,w,x,y,f,b){let{stripe:S,rowKey:T,highlightHoverRow:_,rowClassName:C,rowStyle:$,editConfig:O,showOverflow:E,treeConfig:R,treeOpts:I,expandOpts:D,editOpts:L,treeExpandedMaps:k,scrollYLoad:Y,rowExpandedMaps:M,radioOpts:H,checkboxOpts:B,expandColumn:U,hasFixedColumn:q,fullAllDataRowIdData:V,rowOpts:F,pendingRowList:N,pendingRowMaps:A,columnOpts:W,isDragColMove:P}=x,X=I.children||I.childrenField,j=[];return f.forEach((t,r)=>{var e={};let o,s=x.getVTRowIndex(t),a=(o=x.getRowIndex(t),(F.isHover||_)&&(e.mouseenter=e=>{isVMScrollProcess(x)||x.triggerHoverEvent(e,{row:t,rowIndex:o})},e.mouseleave=()=>{isVMScrollProcess(x)||x.clearHoverRow()}),F.drag&&(e.dragstart=e=>{x.handleRowDragDragstartEvent(e)},e.dragover=e=>{x.handleRowDragDragoverEvent(e)},e.dragend=e=>{x.handleRowDragDragendEvent(e)}),(0,_util.getRowid)(x,t));var l=V[a];let i=l?l.level:0,n=l?l.seq:-1;var l={$table:x,seq:n,rowid:a,fixed:y,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r},d=U&&!!M[a];let c=!1,p=[],u=!1;O&&(u=x.isInsertByRow(t)),!R||Y||I.transform||(p=t[X],c=p&&p.length&&!!k[a]);var g,h=["vxe-body--row",R?"row--level-"+i:"",{"row--stripe":S&&(x.getVTRowIndex(t)+1)%2==0,"is--new":u,"is--expand-row":d,"is--expand-tree":c,"row--new":u&&(L.showStatus||L.showInsertStatus),"row--radio":H.highlight&&x.selectRadioRow===t,"row--checked":B.highlight&&x.isCheckedByCheckboxRow(t),"row--pending":N.length&&!!A[a]},C?_xeUtils.default.isFunction(C)?C(l):C:""],v=b.map((e,l)=>renderColumn(m,w,x,n,a,y,i,t,o,r,s,e,l,b,f));j.push(W.drag?m("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(P?"":"-disabled")},class:h,attrs:{rowid:a},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:T||F.useKey||F.drag||R?a:r,nativeOn:e},v):m("tr",{class:h,attrs:{rowid:a},style:$?_xeUtils.default.isFunction($)?$(l):$:null,key:T||F.useKey||F.drag||R?a:r,on:e},v)),d&&({height:h,padding:l}=D,v={},d=(h&&(v.height=h+"px"),R&&(v.paddingLeft=i*I.indent+30+"px"),U).showOverflow,d=_xeUtils.default.isUndefined(d)||_xeUtils.default.isNull(d)?E:d,g={$table:x,seq:n,column:U,fixed:y,type:renderType,level:i,row:t,rowIndex:o,$rowIndex:r},j.push(m("tr",{class:["vxe-body--expanded-row",{"is--padding":l}],key:"expand_"+a,style:$?_xeUtils.default.isFunction($)?$(g):$:null,on:e},[m("td",{class:{"vxe-body--expanded-column":1,"fixed--hidden":y&&!q,"col--ellipsis":d},attrs:{colspan:b.length}},[m("div",{class:{"vxe-body--expanded-cell":1,"is--ellipsis":h},style:v},[U.renderData(m,g)])])]))),c&&j.push(...renderRows(m,w,x,y,p,b))}),j}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){var e=this.$parent;let{_e:l,$parent:r,fixedColumn:o,fixedType:s}=this,{$scopedSlots:a,tId:i,tableData:n,tableColumn:d,visibleColumn:c,expandColumn:p,showOverflow:u,keyboardConfig:g,keyboardOpts:h,mergeList:v,spanMethod:m,scrollXLoad:w,scrollYLoad:x,isAllOverflow:y,emptyOpts:f,mouseConfig:b,mouseOpts:S,sYOpts:T,rowOpts:_,isDragRowMove:C}=r;s&&(d=p||!(w||x||u&&y)||v.length||m||g&&h.isMerge?c:o);let $;$=a.empty?a.empty.call(this,{$table:r},t):(O=(O=f.name?renderer.get(f.name):null)?O.renderTableEmpty||O.renderTableEmptyView||O.renderEmpty:null)?(0,_vn.getSlotVNs)(O.call(this,t,f,{$table:r})):r.emptyText||getI18n("vxe.table.emptyText");var O={scroll:this.scrollEvent};return"wheel"===T.mode&&(O.wheel=this.wheelEvent),t("div",{ref:"refElem",class:["vxe-table--body-wrapper",s?`fixed-${s}--wrapper`:"body--wrapper"],attrs:{xid:i},on:O},[s?l():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"},d.map((e,l)=>t("col",{attrs:{name:e.id},key:l}))),_.drag?t("transition-group",{props:{tag:"tbody",name:"vxe-body--row-list"+(C?"":"-disabled")}},renderRows(t,this,r,s,n,d)):t("tbody",{ref:"tbody"},renderRows(t,this,r,s,n,d))]),t("div",{class:"vxe-table--checkbox-range"}),b&&S.area?t("div",{class:"vxe-table--cell-area"},[t("span",{class:"vxe-table--cell-main-area"},S.extension?[t("span",{class:"vxe-table--cell-main-area-btn",on:{mousedown(e){r.triggerCellExtendMousedownEvent(e,{$table:r,fixed:s,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"})]):renderEmptyElement(e),s?renderEmptyElement(e):t("div",{class:"vxe-table--empty-block",ref:"emptyBlock"},[t("div",{class:"vxe-table--empty-content"},$)])])},methods:{scrollEvent(e){var l,t,r,o,s,a=this.$parent,i=a,n=this.fixedType,{lastScrollTop:d,lastScrollLeft:c,inVirtualScroll:p,inBodyScroll:u,bodyScrollType:g,inFooterScroll:h}=i;p||h||u&&g!==n||({tableHeader:p,tableBody:h,leftBody:u,rightBody:g,tableFooter:l}=a.$refs,o=this.$el,p=p?p.$el:null,l=l?l.$el:null,h=h.$el,u=u?u.$el:null,g=g?g.$el:null,t=a.$refs.refScrollXHandleElem,r=a.$refs.refScrollYHandleElem,o=o.scrollTop,c=(s=h.scrollLeft)!==c,d=o!==d,i.inBodyScroll=!0,i.bodyScrollType=n,d&&(u&&"left"===n?((0,_dom.setScrollTop)(h,o),(0,_dom.setScrollTop)(g,o)):g&&"right"===n?((0,_dom.setScrollTop)(h,o),(0,_dom.setScrollTop)(u,o)):((0,_dom.setScrollTop)(u,o),(0,_dom.setScrollTop)(g,o)),(0,_dom.setScrollTop)(r,o),a.triggerScrollYEvent(e)),c&&((0,_dom.setScrollLeft)(t,s),(0,_dom.setScrollLeft)(p,s),(0,_dom.setScrollLeft)(l,s),a.triggerScrollXEvent(e)),a.handleScrollEvent(e,d,c,o,s,{type:renderType,fixed:n}))},handleWheel(i,n,e,d,c){let p=this.$parent;var{$refs:l,elemStore:t,scrollYLoad:r,scrollXLoad:o}=p,{tableBody:l,leftBody:s,rightBody:a}=l;let u=l.$el,g=s?s.$el:null,h=a?a.$el:null;l=this.isPrevWheelTop===n?Math.max(0,this.wheelYSize-this.wheelYTotal):0,s=t["main-body-ySpace"],a=t["main-body-xSpace"];let v=(r&&s?s:u).clientHeight,m=(o&&a?a: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,a;l<t&&(t<(l+=r=Math.max(5,Math.floor(1.5*r)))&&(r-=l-t),{scrollTop:a,clientHeight:o,scrollHeight:s}=u,a=a+r*(n?-1:1),u.scrollTop=a,g&&(g.scrollTop=a),h&&(h.scrollTop=a),(n?a<s-o:0<=a)&&(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:v,bodyWidth:m,isX:d,isY:c},i))});w()},wheelEvent(e){var{deltaY:l,deltaX:t}=e,{$el:r,$parent:o}=this,{$refs:s,highlightHoverRow:a,scrollYLoad:i,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||a)&&o.clearHoverRow(),this.handleWheel(e,p,l,t,d),i)&&o.triggerScrollYEvent(e))}}};
|
package/lib/table/src/footer.js
CHANGED
|
@@ -307,14 +307,16 @@ var _default = exports.default = {
|
|
|
307
307
|
tableColumn = visibleColumn;
|
|
308
308
|
}
|
|
309
309
|
}
|
|
310
|
+
const ons = {};
|
|
311
|
+
if (!fixedType) {
|
|
312
|
+
ons.scroll = this.scrollEvent;
|
|
313
|
+
}
|
|
310
314
|
return h('div', {
|
|
311
315
|
class: ['vxe-table--footer-wrapper', fixedType ? `fixed-${fixedType}--wrapper` : 'body--wrapper'],
|
|
312
316
|
attrs: {
|
|
313
317
|
xid: tId
|
|
314
318
|
},
|
|
315
|
-
on:
|
|
316
|
-
scroll: this.scrollEvent
|
|
317
|
-
}
|
|
319
|
+
on: ons
|
|
318
320
|
}, [fixedType ? _e() : h('div', {
|
|
319
321
|
class: 'vxe-body--x-space',
|
|
320
322
|
ref: 'xSpace'
|
|
@@ -359,36 +361,43 @@ var _default = exports.default = {
|
|
|
359
361
|
* 如果存在列固定右侧,同步更新滚动状态
|
|
360
362
|
*/
|
|
361
363
|
scrollEvent(evnt) {
|
|
364
|
+
const $xeTable = this.$parent;
|
|
365
|
+
const tableInternalData = $xeTable;
|
|
366
|
+
const {
|
|
367
|
+
inVirtualScroll,
|
|
368
|
+
inBodyScroll
|
|
369
|
+
} = tableInternalData;
|
|
370
|
+
if (inVirtualScroll) {
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
if (inBodyScroll) {
|
|
374
|
+
return;
|
|
375
|
+
}
|
|
362
376
|
const {
|
|
363
|
-
$parent: $xeTable,
|
|
364
377
|
fixedType
|
|
365
378
|
} = this;
|
|
366
|
-
const {
|
|
367
|
-
$refs
|
|
368
|
-
} = $xeTable;
|
|
369
379
|
const {
|
|
370
380
|
tableHeader,
|
|
371
381
|
tableBody,
|
|
372
382
|
tableFooter
|
|
373
|
-
} = $refs;
|
|
383
|
+
} = $xeTable.$refs;
|
|
374
384
|
const headerElem = tableHeader ? tableHeader.$el : null;
|
|
375
385
|
const footerElem = tableFooter ? tableFooter.$el : null;
|
|
376
386
|
const bodyElem = tableBody.$el;
|
|
377
|
-
const
|
|
378
|
-
const
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
}
|
|
387
|
+
const xHandleEl = $xeTable.$refs.refScrollXHandleElem;
|
|
388
|
+
const scrollLeft = footerElem.scrollLeft;
|
|
389
|
+
const isRollX = true;
|
|
390
|
+
const isRollY = false;
|
|
391
|
+
const scrollTop = bodyElem.scrollTop;
|
|
392
|
+
tableInternalData.inFooterScroll = true;
|
|
393
|
+
(0, _dom.setScrollLeft)(xHandleEl, scrollLeft);
|
|
394
|
+
(0, _dom.setScrollLeft)(headerElem, scrollLeft);
|
|
395
|
+
(0, _dom.setScrollLeft)(bodyElem, scrollLeft);
|
|
396
|
+
$xeTable.triggerScrollXEvent(evnt);
|
|
397
|
+
$xeTable.handleScrollEvent(evnt, isRollY, isRollX, scrollTop, scrollLeft, {
|
|
398
|
+
type: renderType,
|
|
399
|
+
fixed: fixedType
|
|
400
|
+
});
|
|
392
401
|
}
|
|
393
402
|
}
|
|
394
403
|
};
|
|
@@ -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 renderType="footer",renderer=_ui.VxeUI.renderer;function mergeFooterMethod(l,t
|
|
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,r,t){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===r&&n===t)return{rowspan:a,colspan:i};if(o<=r&&r<o+a&&n<=t&&t<n+i)return{rowspan:0,colspan:0}}}}function renderRows(v,e,b,w,y,_,h){let{$parent:$,fixedType:T}=e,{$listeners:C,footerCellClassName:S,footerCellStyle:F,footerAlign:I,mergeFooterList:U,footerSpanMethod:k,align:E,scrollXLoad:L,columnKey:O,columnOpts:R,showFooterOverflow:A,currentColumn:M,overflowX:q,scrollbarWidth:l,tooltipOpts:D}=$;return b.map((l,e)=>{var{type:r,showFooterOverflow:t,footerAlign:o,align:n,footerClassName:a,editRender:i,cellRender:s}=l,i=i||s,s=i?renderer.get(i.name):null;let d=D.showAll||D.enabled;i=l.children&&l.children.length,i=T?l.fixed!==T&&!i:l.fixed&&q,t=_xeUtils.default.isUndefined(t)||_xeUtils.default.isNull(t)?A:t,o=o||(s?s.tableFooterCellAlign:"")||I||n||(s?s.tableCellAlign:"")||E;let c="ellipsis"===t,u="title"===t,f=!0===t||"tooltip"===t,p=u||f||c;var n={colid:l.id},s={},t=$.getColumnIndex(l),x=$.getVTColumnIndex(l),m=x;let g={$table:$,$grid:$.xegrid,row:y,_rowIndex:h,$rowIndex:_,column:l,columnIndex:t,$columnIndex:e,_columnIndex:x,itemIndex:m,items:y,fixed:T,type:renderType,data:w};if(L&&!p&&(c=p=!0),(u||f||d)&&(s.mouseenter=e=>{u?(0,_dom.updateCellTitle)(e.currentTarget,l):(f||d)&&$.triggerFooterTooltipEvent(e,g)}),(f||d)&&(s.mouseleave=e=>{(f||d)&&$.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)}),U.length){t=mergeFooterMethod(U,h,x);if(t){var{rowspan:m,colspan:x}=t;if(!m||!x)return null;1<m&&(n.rowspan=m),1<x&&(n.colspan=x)}}else if(k){var{rowspan:t=1,colspan:m=1}=k(g)||{};if(!t||!m)return null;1<t&&(n.rowspan=t),1<m&&(n.colspan=m)}return v("td",{class:["vxe-footer--column",l.id,{["col--"+o]:o,["col--"+r]:r,"col--last":e===b.length-1,"fixed--hidden":i,"col--ellipsis":p,"col--current":M===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:O||R.useKey||R.drag?l.id:e},[v("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":f,"c--ellipsis":c}]},l.renderFooter(v,g))])}).concat(l?[v("td",{key:"gr"+_,class:"vxe-footer--gutter col--gutter"})]:[])}function renderHeads(o,n,a){let{$parent:i,fixedType:s,tableColumn:d}=n,{footerRowClassName:c,footerRowStyle:u,isDragColMove:f}=i,p=i.columnOpts;return a.map((e,l)=>{var r=l,t={$table:i,row:e,_rowIndex:r,$rowIndex:l,fixed:s,type:renderType};return p.drag?o("transition-group",{props:{tag:"tr",name:"vxe-header--col-list"+(f?"":"-disabled"),class:["vxe-footer--row",c?_xeUtils.default.isFunction(c)?c(t):c:""],style:u?_xeUtils.default.isFunction(u)?u(t):u:null}},renderRows(o,n,d,a,e,l,r)):o("tr",{class:["vxe-footer--row",c?_xeUtils.default.isFunction(c)?c(t):c:""],style:u?_xeUtils.default.isFunction(u)?u(t):u:null},renderRows(o,n,d,a,e,l,r))})}var _default=exports.default={name:"VxeTableFooter",props:{footerTableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:String,size:String},mounted(){var{$parent:e,$el:l,$refs:r,fixedType:t}=this,e=e.elemStore,t=`${t||"main"}-footer-`;e[t+"wrapper"]=l,e[t+"table"]=r.table,e[t+"colgroup"]=r.colgroup,e[t+"list"]=r.tfoot,e[t+"xSpace"]=r.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(r){let{_e:e,$parent:l,fixedType:t,fixedColumn:o,tableColumn:n,footerTableData:a}=this;var{tId:i,mergeFooterList:s,footerSpanMethod:d,scrollXLoad:c,showFooterOverflow:u,scrollbarWidth:f,visibleColumn:p,expandColumn:x}=l,x=(t&&(n=x||!c&&!u||s.length&&d?p:o),{});return t||(x.scroll=this.scrollEvent),r("div",{class:["vxe-table--footer-wrapper",t?`fixed-${t}--wrapper`:"body--wrapper"],attrs:{xid:i},on:x},[t?e():r("div",{class:"vxe-body--x-space",ref:"xSpace"}),r("table",{class:"vxe-table--footer",attrs:{xid:i,cellspacing:0,cellpadding:0,border:0},ref:"table"},[r("colgroup",{ref:"colgroup"},n.map((e,l)=>r("col",{attrs:{name:e.id},key:l})).concat(f?[r("col",{attrs:{name:"col_gutter"}})]:[])),r("tfoot",{ref:"tfoot"},renderHeads(r,this,a))])])},methods:{scrollEvent(e){var l,r,t,o,n=this.$parent,a=n,{inVirtualScroll:i,inBodyScroll:s}=a;i||s||(i=this.fixedType,{tableHeader:s,tableBody:l,tableFooter:t}=n.$refs,s=s?s.$el:null,t=t?t.$el:null,l=l.$el,r=n.$refs.refScrollXHandleElem,t=t.scrollLeft,o=l.scrollTop,a.inFooterScroll=!0,(0,_dom.setScrollLeft)(r,t),(0,_dom.setScrollLeft)(s,t),(0,_dom.setScrollLeft)(l,t),n.triggerScrollXEvent(e),n.handleScrollEvent(e,!1,!0,o,t,{type:renderType,fixed:i}))}}};
|