vxe-table 4.10.6-beta.3 → 4.10.6-beta.5
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/style.css +1 -1
- package/es/table/src/body.js +2 -1
- package/es/table/src/footer.js +2 -1
- package/es/table/src/header.js +18 -10
- package/es/table/src/table.js +57 -37
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/lib/index.umd.js +109 -75
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/src/body.js +2 -1
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/footer.js +2 -1
- package/lib/table/src/footer.min.js +1 -1
- package/lib/table/src/header.js +18 -10
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +85 -61
- package/lib/table/src/table.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/table/src/body.ts +2 -1
- package/packages/table/src/footer.ts +2 -1
- package/packages/table/src/header.ts +18 -10
- package/packages/table/src/table.ts +55 -35
- /package/es/{iconfont.1736748534420.ttf → iconfont.1736761484754.ttf} +0 -0
- /package/es/{iconfont.1736748534420.woff → iconfont.1736761484754.woff} +0 -0
- /package/es/{iconfont.1736748534420.woff2 → iconfont.1736761484754.woff2} +0 -0
- /package/lib/{iconfont.1736748534420.ttf → iconfont.1736761484754.ttf} +0 -0
- /package/lib/{iconfont.1736748534420.woff → iconfont.1736761484754.woff} +0 -0
- /package/lib/{iconfont.1736748534420.woff2 → iconfont.1736761484754.woff2} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";function mergeFooterMethod(l,t,o){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<r&&a&&i){if(r===t&&n===o)return{rowspan:a,colspan:i};if(r<=t&&t<r+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(v){let R=(0,_vue.inject)("$xeTable",{}),{xID:x,props:m,reactData:_,internalData:N}=R,{computeTooltipOpts:e,computeColumnOpts:X,computeColumnDragOpts:g}=R.getComputeMaps(),h=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(g,h,w,y,b)=>{let C=v.fixedType,{footerCellClassName:T,footerCellStyle:F,footerAlign:I,footerSpanMethod:O,align:S,columnKey:M,showFooterOverflow:D}=m,{scrollXLoad:E,scrollYLoad:$,overflowX:k,currentColumn:U,mergeFooterList:j}=_,A=N.scrollXStore,q=e.value,L=X.value;return g.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:n,footerClassName:a,editRender:i,cellRender:u}=l,i=i||u,u=i?renderer.get(i.name):null;let d=q.showAll;i=l.children&&l.children.length,i=C?l.fixed!==C&&!i:l.fixed&&k,o=_xeUtils.default.eqNull(o)?D:o,r=r||(u?u.tableFooterCellAlign:"")||I||n||(u?u.tableCellAlign:"")||S;let s="ellipsis"===o,c="title"===o,p=!0===o||"tooltip"===o,f=c||p||s;var n={colid:l.id},u={},o=R.getColumnIndex(l),v=R.getVTColumnIndex(l),x=v;let m={$table:R,$grid:R.xegrid,row:w,rowIndex:b,_rowIndex:b,$rowIndex:y,column:l,columnIndex:o,$columnIndex:e,_columnIndex:v,itemIndex:x,items:w,fixed:C,type:renderType,data:h};if(E&&!f&&(s=f=!0),(c||p||d)&&(u.onMouseenter=e=>{c?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||d)&&R.triggerFooterTooltipEvent(e,m)}),(p||d)&&(u.onMouseleave=e=>{(p||d)&&R.handleTargetLeaveEvent(e)}),u.onClick=e=>{R.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)},u.onDblclick=e=>{R.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)},j.length){o=mergeFooterMethod(j,b,v);if(o){var{rowspan:x,colspan:o}=o;if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}}else if(O){var{rowspan:x=1,colspan:o=1}=O(m)||{};if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}x=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let _=!1;return E&&!l.fixed&&(v<A.visibleStartIndex||v>A.visibleEndIndex)&&(_=!0),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="footer";function mergeFooterMethod(l,t,o){for(let e=0;e<l.length;e++){var{row:r,col:n,rowspan:a,colspan:i}=l[e];if(-1<n&&-1<r&&a&&i){if(r===t&&n===o)return{rowspan:a,colspan:i};if(r<=t&&t<r+a&&n<=o&&o<n+i)return{rowspan:0,colspan:0}}}}var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableFooter",props:{footerTableData:{type:Array,default:()=>[]},tableColumn:{type:Array,default:()=>[]},fixedColumn:{type:Array,default:()=>[]},fixedType:{type:String,default:null}},setup(v){let R=(0,_vue.inject)("$xeTable",{}),{xID:x,props:m,reactData:_,internalData:N}=R,{computeTooltipOpts:e,computeColumnOpts:X,computeColumnDragOpts:g}=R.getComputeMaps(),h=(0,_vue.ref)(),w=(0,_vue.ref)(),y=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),T=(0,_vue.ref)(),F=(g,h,w,y,b)=>{let C=v.fixedType,{footerCellClassName:T,footerCellStyle:F,footerAlign:I,footerSpanMethod:O,align:S,columnKey:M,showFooterOverflow:D}=m,{scrollXLoad:E,scrollYLoad:$,overflowX:k,currentColumn:U,mergeFooterList:j}=_,A=N.scrollXStore,q=e.value,L=X.value;return g.map((l,e)=>{var{type:t,showFooterOverflow:o,footerAlign:r,align:n,footerClassName:a,editRender:i,cellRender:u}=l,i=i||u,u=i?renderer.get(i.name):null;let d=q.showAll;i=l.children&&l.children.length,i=C?l.fixed!==C&&!i:l.fixed&&k,o=_xeUtils.default.eqNull(o)?D:o,r=r||(u?u.tableFooterCellAlign:"")||I||n||(u?u.tableCellAlign:"")||S;let s="ellipsis"===o,c="title"===o,p=!0===o||"tooltip"===o,f=c||p||s;var n={colid:l.id},u={},o=R.getColumnIndex(l),v=R.getVTColumnIndex(l),x=v;let m={$table:R,$grid:R.xegrid,row:w,rowIndex:b,_rowIndex:b,$rowIndex:y,column:l,columnIndex:o,$columnIndex:e,_columnIndex:v,itemIndex:x,items:w,fixed:C,type:renderType,data:h};if(E&&!f&&(s=f=!0),(c||p||d)&&(u.onMouseenter=e=>{c?(0,_dom.updateCellTitle)(e.currentTarget,l):(p||d)&&R.triggerFooterTooltipEvent(e,m)}),(p||d)&&(u.onMouseleave=e=>{(p||d)&&R.handleTargetLeaveEvent(e)}),u.onClick=e=>{R.dispatchEvent("footer-cell-click",Object.assign({cell:e.currentTarget},m),e)},u.onDblclick=e=>{R.dispatchEvent("footer-cell-dblclick",Object.assign({cell:e.currentTarget},m),e)},j.length){o=mergeFooterMethod(j,b,v);if(o){var{rowspan:x,colspan:o}=o;if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}}else if(O){var{rowspan:x=1,colspan:o=1}=O(m)||{};if(!x||!o)return null;1<x&&(n.rowspan=x),1<o&&(n.colspan=o)}x=e===g.length-1,o=!l.resizeWidth&&("auto"===l.minWidth||"auto"===l.width);let _=!1;return E&&!l.fixed&&(v<A.visibleStartIndex||v>A.visibleEndIndex)&&(_=!0),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign(Object.assign({class:["vxe-footer--column",l.id,{["col--"+r]:r,["col--"+t]:t,"col--last":x,"fixed--width":!o,"fixed--hidden":i,"col--ellipsis":f,"col--current":U===l},(0,_dom.getPropClass)(a,m),(0,_dom.getPropClass)(T,m)]},n),{style:F?_xeUtils.default.isFunction(F)?F(m):F:null}),u),{key:M||E||$||L.useKey||L.drag?l.id:e}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":c,"c--tooltip":p,"c--ellipsis":s}]},_?[]:l.renderFooter(m))])})};return(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=v.fixedType,l=N.elemStore,e=`${e||"main"}-footer-`;l[e+"wrapper"]=h,l[e+"scroll"]=w,l[e+"table"]=y,l[e+"colgroup"]=b,l[e+"list"]=C,l[e+"xSpace"]=T})}),(0,_vue.onUnmounted)(()=>{var e=v.fixedType,l=N.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}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=v;var{spanMethod:o,footerSpanMethod:r,showFooterOverflow:n}=m,{visibleColumn:a,fullColumnIdData:i}=N,{isGroup:u,scrollXLoad:d,scrollYLoad:s,dragCol:c}=_;let p=t,f=!(d||s||n)||o||r?!1:!0;return l&&(p=a,f)&&(p=e||[]),l||u||d&&c&&2<p.length&&(s=i[c.id])&&(n=s._index,o=p[0],r=p[p.length-1],a=i[o.id],u=i[r.id],a)&&u&&(d=a._index,s=u._index,n<d?p=[c].concat(p):s<n&&(p=p.concat([c]))),(0,_vue.h)("div",{ref:h,class:["vxe-table--footer-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:x},[(0,_vue.h)("div",{ref:w,class:"vxe-table--footer-inner-wrapper",onScroll(e){R.triggerFooterScrollEvent(e,l)}},[l?renderEmptyElement(R):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:y,class:"vxe-table--footer",xid:x,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:b},p.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),(0,_vue.h)("tfoot",{ref:C},(r=>{let{fixedType:n,footerTableData:a}=v,{footerRowClassName:i,footerRowStyle:u}=m,d=_.isDragColMove,s=X.value,c=g.value;return a.map((e,l)=>{let t=l;var o={$table:R,row:e,_rowIndex:t,$rowIndex:l,fixed:n,type:renderType};return s.drag&&c.animation?(0,_vue.h)(_vue.TransitionGroup,{key:l,name:"vxe-header--col-list"+(d?"":"-disabled"),tag:"tr",class:["vxe-footer--row",i?_xeUtils.default.isFunction(i)?i(o):i:""],style:u?_xeUtils.default.isFunction(u)?u(o):u:null},{default:()=>F(r,a,e,l,t)}):(0,_vue.h)("tr",{key:l,class:["vxe-footer--row",i?_xeUtils.default.isFunction(i)?i(o):i:""],style:u?_xeUtils.default.isFunction(u)?u(o):u:null},F(r,a,e,l,t))})})(p))])])])}}});
|
package/lib/table/src/header.js
CHANGED
|
@@ -84,6 +84,12 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
84
84
|
} = evnt;
|
|
85
85
|
const wrapperElem = refElem.value;
|
|
86
86
|
const dragBtnElem = evnt.target;
|
|
87
|
+
let resizeColumn = column;
|
|
88
|
+
if (column.children && column.children.length) {
|
|
89
|
+
_xeUtils.default.eachTree(column.children, childColumn => {
|
|
90
|
+
resizeColumn = childColumn;
|
|
91
|
+
});
|
|
92
|
+
}
|
|
87
93
|
const cell = dragBtnElem.parentNode;
|
|
88
94
|
const cellParams = Object.assign(params, {
|
|
89
95
|
cell
|
|
@@ -121,7 +127,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
121
127
|
}
|
|
122
128
|
}
|
|
123
129
|
// 处理拖动事件
|
|
124
|
-
const updateEvent =
|
|
130
|
+
const updateEvent = evnt => {
|
|
125
131
|
evnt.stopPropagation();
|
|
126
132
|
evnt.preventDefault();
|
|
127
133
|
const offsetX = evnt.clientX - dragClientX;
|
|
@@ -139,7 +145,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
139
145
|
// left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
|
|
140
146
|
}
|
|
141
147
|
dragLeft = Math.max(left, dragMinLeft);
|
|
142
|
-
const resizeBarLeft = dragLeft - scrollLeft;
|
|
148
|
+
const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
|
|
143
149
|
resizeBarElem.style.left = `${resizeBarLeft}px`;
|
|
144
150
|
if (resizableOpts.showDragTip && resizeTipElem) {
|
|
145
151
|
const tableWidth = tableEl.clientWidth;
|
|
@@ -149,13 +155,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
149
155
|
const resizeTipHeight = resizeTipElem.clientHeight;
|
|
150
156
|
let resizeTipLeft = -resizeTipWidth;
|
|
151
157
|
if (resizeBarLeft < resizeTipWidth + resizeBarWidth) {
|
|
152
|
-
resizeTipLeft =
|
|
158
|
+
resizeTipLeft = 0;
|
|
153
159
|
} else if (resizeBarLeft > tableWidth) {
|
|
154
160
|
resizeTipLeft += tableWidth - resizeBarLeft;
|
|
155
161
|
}
|
|
156
162
|
resizeTipElem.style.left = `${resizeTipLeft}px`;
|
|
157
163
|
resizeTipElem.style.top = `${Math.min(tableEl.clientHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
|
|
158
|
-
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [
|
|
164
|
+
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
|
|
159
165
|
}
|
|
160
166
|
};
|
|
161
167
|
tableReactData._isResize = true;
|
|
@@ -165,11 +171,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
165
171
|
document.onmouseup = function (evnt) {
|
|
166
172
|
document.onmousemove = domMousemove;
|
|
167
173
|
document.onmouseup = domMouseup;
|
|
168
|
-
const resizeWidth =
|
|
169
|
-
|
|
174
|
+
const resizeWidth = resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
|
|
175
|
+
resizeColumn.resizeWidth = resizeWidth;
|
|
170
176
|
if (resizableOpts.dragMode === 'fixed') {
|
|
171
177
|
visibleColumn.forEach(item => {
|
|
172
|
-
if (item.id !==
|
|
178
|
+
if (item.id !== resizeColumn.id) {
|
|
173
179
|
if (!item.resizeWidth) {
|
|
174
180
|
item.resizeWidth = item.renderWidth;
|
|
175
181
|
}
|
|
@@ -301,6 +307,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
301
307
|
thOns.onMouseup = $xeTable.handleHeaderCellDragMouseupEvent;
|
|
302
308
|
}
|
|
303
309
|
}
|
|
310
|
+
const isLastColumn = $columnIndex === cols.length - 1;
|
|
311
|
+
const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
|
|
304
312
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
305
313
|
let isPreLoadStatus = false;
|
|
306
314
|
if (scrollXLoad && !isGroup && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
|
|
@@ -310,7 +318,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
310
318
|
class: ['vxe-header--column', colid, {
|
|
311
319
|
[`col--${headAlign}`]: headAlign,
|
|
312
320
|
[`col--${type}`]: type,
|
|
313
|
-
'col--last':
|
|
321
|
+
'col--last': isLastColumn,
|
|
314
322
|
'col--fixed': column.fixed,
|
|
315
323
|
'col--group': isColGroup,
|
|
316
324
|
'col--ellipsis': hasEllipsis,
|
|
@@ -336,13 +344,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
336
344
|
/**
|
|
337
345
|
* 列宽拖动
|
|
338
346
|
*/
|
|
339
|
-
!fixedHiddenColumn &&
|
|
347
|
+
!fixedHiddenColumn && showResizable ? (0, _vue.h)('div', {
|
|
340
348
|
class: ['vxe-resizable', {
|
|
341
349
|
'is--line': !border || border === 'none'
|
|
342
350
|
}],
|
|
343
351
|
onMousedown: evnt => resizeMousedownEvent(evnt, params),
|
|
344
352
|
onDblclick: evnt => $xeTable.handleResizeDblclickEvent(evnt, params)
|
|
345
|
-
}) :
|
|
353
|
+
}) : renderEmptyElement($xeTable)]);
|
|
346
354
|
});
|
|
347
355
|
};
|
|
348
356
|
const renderHeads = (isGroup, isOptimizeMode, headerGroups) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";var _default=exports.default=(0,_vue.defineComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(V){let Y=(0,_vue.inject)("$xeTable",{}),{xID:h,props:m,reactData:K,internalData:J}=Y,{refElem:r,refLeftContainer:d,refRightContainer:s,refCellResizeBar:u,refCellResizeTip:c}=Y.getRefMaps(),{computeColumnOpts:g,computeColumnDragOpts:x,computeResizableOpts:v}=Y.getComputeMaps(),_=(0,_vue.ref)([]),S=(0,_vue.ref)(),b=(0,_vue.ref)(),C=(0,_vue.ref)(),y=(0,_vue.ref)(),w=(0,_vue.ref)(),D=(0,_vue.ref)(),M=(0,_vue.ref)(),t=()=>{var e=K.isGroup;_.value=e?(0,_util.convertHeaderColumnToRows)(V.tableGroupColumn):[]},Q=(e,a)=>{var l=a.column;let f=V.fixedType,{elemStore:t,visibleColumn:i}=J,h=v.value,m=r.value,g=d.value,x=s.value,_=u.value,b=c.value,C=e.clientX,y=S.value;var n=e.target;let w=l,D=(l.children&&l.children.length&&_xeUtils.default.eachTree(l.children,e=>{w=e}),n.parentNode);l=Object.assign(a,{cell:D});let M=0,E=(0,_util.getRefElem)(t["main-body-scroll"]);if(E){var o=(0,_dom.getOffsetPos)(n,y),n=n.clientWidth,T=Math.floor(n/2);let d=(0,_util.getColReMinWidth)(l)-T,s=o.left-D.clientWidth+n+d,u=o.left+T,t=document.onmousemove,r=document.onmouseup,c="left"===f,v="right"===f,p=0;if(c||v){var z=c?"nextElementSibling":"previousElementSibling";let e=D[z];for(;e&&!(0,_dom.hasClass)(e,"fixed--hidden");)(0,_dom.hasClass)(e,"col--group")||(p+=e.offsetWidth),e=e[z];v&&x&&(u=x.offsetLeft+p)}l=l=>{l.stopPropagation(),l.preventDefault();var t=l.clientX-C;let e=u+t;t=f?0:E.scrollLeft,c?e=Math.min(e,(x?x.offsetLeft:E.clientWidth)-p-d):v?(s=(g?g.clientWidth:0)+p+d,e=Math.min(e,u+D.clientWidth-d)):s=Math.max(E.scrollLeft,s),M=Math.max(e,s),t=Math.max(1,M-t);if(_.style.left=t+"px",h.showDragTip&&b){var r=m.clientWidth,a=y.getBoundingClientRect(),i=_.clientWidth,n=b.clientWidth,o=b.clientHeight;let e=-n;t<n+i?e=0:r<t&&(e+=r-t),b.style.left=e+"px",b.style.top=Math.min(m.clientHeight-o,Math.max(0,l.clientY-a.y-o/2))+"px",b.textContent=getI18n("vxe.table.resizeColTip",[w.renderWidth+(v?u-M:M-u)])}};K._isResize=!0,(0,_dom.addClass)(m,"drag--resize"),_.style.display="block",document.onmousemove=l,document.onmouseup=function(e){document.onmousemove=t,document.onmouseup=r;let l=w.renderWidth+(v?u-M:M-u);w.resizeWidth=l,"fixed"===h.dragMode&&i.forEach(e=>{e.id===w.id||e.resizeWidth||(e.resizeWidth=e.renderWidth)}),_.style.display="none",K._isResize=!1,J._lastResizeTime=Date.now(),Y.analyColumnWidth(),Y.recalculate(!0).then(()=>{Y.saveCustomStore("update:visible"),Y.updateCellAreas(),Y.dispatchEvent("resizable-change",Object.assign(Object.assign({},a),{resizeWidth:l}),e),setTimeout(()=>Y.recalculate(!0),300)}),(0,_dom.removeClass)(m,"drag--resize")},l(e),Y.closeMenu&&Y.closeMenu()}},E=(D,M,E,T)=>{let z=V.fixedType,{resizable:S,border:W,columnKey:R,headerCellClassName:H,headerCellStyle:I,showHeaderOverflow:O,headerAlign:k,align:U,mouseConfig:$}=m,{currentColumn:A,scrollXLoad:F,scrollYLoad:L,overflowX:j}=K,q=J.scrollXStore,X=g.value,G=x.value,{disabledMethod:N,isCrossDrag:P,isPeerDrag:B}=G;return E.map((e,l)=>{var{type:t,showHeaderOverflow:r,headerAlign:a,align:i,filters:n,headerClassName:o,editRender:d,cellRender:s}=e,u=e.id,d=d||s,s=d?renderer.get(d.name):null,d=e.children&&e.children.length,c=z?e.fixed!==z&&!d:!!e.fixed&&j,r=_xeUtils.default.eqNull(r)?O:r,a=a||(s?s.tableHeaderCellAlign:"")||k||i||(s?s.tableCellAlign:"")||U;let v="ellipsis"===r;i="title"===r,s=!0===r||"tooltip"===r;let p=i||s||v,f=!1,h=null;n&&(h=n[0],f=n.some(e=>e.checked));var r=Y.getColumnIndex(e),m=Y.getVTColumnIndex(e);let g={$table:Y,$grid:Y.xegrid,$rowIndex:T,column:e,columnIndex:r,$columnIndex:l,_columnIndex:m,firstFilterOption:h,fixed:z,type:renderType,isHidden:c,hasFilter:f};var r={colid:u,colspan:1<e.colSpan?e.colSpan:null,rowspan:1<e.rowSpan?e.rowSpan:null},x={onClick:e=>Y.triggerHeaderCellClickEvent(e,g),onDblclick:e=>Y.triggerHeaderCellDblclickEvent(e,g)},_=(F&&!p&&(v=p=!0),X.drag&&"cell"===G.trigger);let b=!1;_&&(b=!(!N||!N(g))),($||_)&&(x.onMousedown=e=>Y.triggerHeaderCellMousedownEvent(e,g)),X.drag&&(x.onDragstart=Y.handleHeaderCellDragDragstartEvent,x.onDragend=Y.handleHeaderCellDragDragendEvent,x.onDragover=Y.handleHeaderCellDragDragoverEvent,_)&&(x.onMouseup=Y.handleHeaderCellDragMouseupEvent);var _=l===E.length-1,C=_xeUtils.default.isBoolean(e.resizable)?e.resizable:X.resizable||S,y=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let w=!1;return F&&!D&&!e.fixed&&(m<q.visibleStartIndex||m>q.visibleEndIndex)&&(w=!0),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-header--column",u,{["col--"+a]:a,["col--"+t]:t,"col--last":_,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":p,"fixed--width":!y,"fixed--hidden":c,"is--sortable":e.sortable,"col--filter":!!n,"is--filter-active":f,"is--drag-active":!e.fixed&&!b&&(P||B||!e.parentId),"is--drag-disabled":b,"col--current":A===e},o?_xeUtils.default.isFunction(o)?o(g):o:"",H?_xeUtils.default.isFunction(H)?H(g):H:""],style:I?_xeUtils.default.isFunction(I)?I(g):I:null},r),x),{key:R||F||L||X.useKey||X.drag||d?u:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":i,"c--tooltip":s,"c--ellipsis":v}]},w||M&&c?[]:e.renderHeader(g)),!c&&C?(0,_vue.h)("div",{class:["vxe-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Q(e,g),onDblclick:e=>Y.handleResizeDblclickEvent(e,g)}):renderEmptyElement(Y)])})};return(0,_vue.watch)(()=>V.tableColumn,t),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=V.fixedType,l=Y.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=S,l[e+"scroll"]=b,l[e+"table"]=C,l[e+"colgroup"]=y,l[e+"list"]=w,l[e+"xSpace"]=D,l[e+"repair"]=M,t()})}),(0,_vue.onUnmounted)(()=>{var e=V.fixedType,l=Y.internalData,l=l.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}),()=>{let{fixedType:l,fixedColumn:e,tableColumn:t}=V;var{showHeaderOverflow:r,spanMethod:a,footerSpanMethod:i}=m,{isGroup:n,scrollXLoad:o,scrollYLoad:d,dragCol:s}=K,{visibleColumn:u,fullColumnIdData:c}=J;let v=_.value,p=t,f=!1;return n?p=u:(!(o||d||r)||a||i||(f=!0),l&&(p=u,f)&&(p=e||[]),v=[p]),l||n||o&&s&&2<p.length&&(d=c[s.id])&&(r=d._index,a=p[0],i=p[p.length-1],u=c[a.id],o=c[i.id],u)&&o&&(d=u._index,a=o._index,r<d?(p=[s].concat(p),v=[[s].concat(v[0])].concat(v.slice(1))):a<r&&(p=p.concat([s]),v=[v[0].concat([s])].concat(v.slice(1)))),(0,_vue.h)("div",{ref:S,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:h},[(0,_vue.h)("div",{ref:b,class:"vxe-table--header-inner-wrapper",onScroll(e){Y.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(Y):(0,_vue.h)("div",{ref:D,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:C,class:"vxe-table--header",xid:h,cellspacing:0,cellpadding:0,border:0},[(0,_vue.h)("colgroup",{ref:y},p.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l}))),(0,_vue.h)("thead",{ref:w},((r,a,e)=>{let i=V.fixedType,{headerRowClassName:n,headerRowStyle:o}=m,d=K.isDragColMove,s=g.value,u=x.value;return e.map((e,l)=>{var t={$table:Y,$rowIndex:l,fixed:i,type:renderType};return s.drag&&u.animation?(0,_vue.h)(_vue.TransitionGroup,{key:l,name:"vxe-header--col-list"+(d?"":"-disabled"),tag:"tr",class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(t):n:""],style:o?_xeUtils.default.isFunction(o)?o(t):o:null},{default:()=>E(r,a,e,l)}):(0,_vue.h)("tr",{key:l,class:["vxe-header--row",n?_xeUtils.default.isFunction(n)?n(t):n:""],style:o?_xeUtils.default.isFunction(o)?o(t):o:null},E(r,a,e,l))})})(n,f,v))])]),(0,_vue.h)("div",{ref:M,class:"vxe-table--header-border-line"})])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -1266,7 +1266,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1266
1266
|
}
|
|
1267
1267
|
fullColumnFieldData[field] = rest;
|
|
1268
1268
|
} else {
|
|
1269
|
-
if (storage || columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
|
|
1269
|
+
if (storage && !type || columnOpts.drag && (isCrossDrag || isSelfToChildDrag)) {
|
|
1270
1270
|
(0, _log.errLog)('vxe.error.reqProp', [`${column.getTitle() || type || ''} -> column.field`]);
|
|
1271
1271
|
}
|
|
1272
1272
|
}
|
|
@@ -1634,6 +1634,41 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1634
1634
|
return cellValue;
|
|
1635
1635
|
};
|
|
1636
1636
|
};
|
|
1637
|
+
const updateAfterListIndex = () => {
|
|
1638
|
+
const {
|
|
1639
|
+
afterFullData,
|
|
1640
|
+
fullDataRowIdData,
|
|
1641
|
+
fullAllDataRowIdData
|
|
1642
|
+
} = internalData;
|
|
1643
|
+
const fullMaps = {};
|
|
1644
|
+
afterFullData.forEach((row, index) => {
|
|
1645
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1646
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
1647
|
+
const seq = index + 1;
|
|
1648
|
+
if (rowRest) {
|
|
1649
|
+
rowRest.seq = seq;
|
|
1650
|
+
rowRest._index = index;
|
|
1651
|
+
} else {
|
|
1652
|
+
const rest = {
|
|
1653
|
+
row,
|
|
1654
|
+
rowid,
|
|
1655
|
+
seq,
|
|
1656
|
+
index: -1,
|
|
1657
|
+
$index: -1,
|
|
1658
|
+
_index: index,
|
|
1659
|
+
items: [],
|
|
1660
|
+
parent: null,
|
|
1661
|
+
level: 0,
|
|
1662
|
+
height: 0,
|
|
1663
|
+
oTop: 0
|
|
1664
|
+
};
|
|
1665
|
+
fullAllDataRowIdData[rowid] = rest;
|
|
1666
|
+
fullDataRowIdData[rowid] = rest;
|
|
1667
|
+
}
|
|
1668
|
+
fullMaps[rowid] = row;
|
|
1669
|
+
});
|
|
1670
|
+
internalData.afterFullRowMaps = fullMaps;
|
|
1671
|
+
};
|
|
1637
1672
|
/**
|
|
1638
1673
|
* 预编译
|
|
1639
1674
|
* 对渲染中的数据提前解析序号及索引。牺牲提前编译耗时换取渲染中额外损耗,使运行时更加流畅
|
|
@@ -1643,72 +1678,55 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
1643
1678
|
treeConfig
|
|
1644
1679
|
} = props;
|
|
1645
1680
|
const {
|
|
1646
|
-
afterFullData,
|
|
1647
1681
|
fullDataRowIdData,
|
|
1648
1682
|
fullAllDataRowIdData,
|
|
1649
1683
|
afterTreeFullData
|
|
1650
1684
|
} = internalData;
|
|
1651
1685
|
const treeOpts = computeTreeOpts.value;
|
|
1686
|
+
const {
|
|
1687
|
+
transform
|
|
1688
|
+
} = treeOpts;
|
|
1652
1689
|
const childrenField = treeOpts.children || treeOpts.childrenField;
|
|
1653
1690
|
const fullMaps = {};
|
|
1654
1691
|
if (treeConfig) {
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
rowRest
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1667
|
-
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1692
|
+
if (transform) {
|
|
1693
|
+
updateAfterListIndex();
|
|
1694
|
+
} else {
|
|
1695
|
+
_xeUtils.default.eachTree(afterTreeFullData, (row, index, items, path) => {
|
|
1696
|
+
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1697
|
+
const rowRest = fullAllDataRowIdData[rowid];
|
|
1698
|
+
const seq = path.map((num, i) => i % 2 === 0 ? Number(num) + 1 : '.').join('');
|
|
1699
|
+
if (rowRest) {
|
|
1700
|
+
rowRest.seq = seq;
|
|
1701
|
+
if (!transform) {
|
|
1702
|
+
rowRest._index = index;
|
|
1703
|
+
}
|
|
1704
|
+
} else {
|
|
1705
|
+
const rest = {
|
|
1706
|
+
row,
|
|
1707
|
+
rowid,
|
|
1708
|
+
seq,
|
|
1709
|
+
index: -1,
|
|
1710
|
+
$index: -1,
|
|
1711
|
+
_index: -1,
|
|
1712
|
+
items: [],
|
|
1713
|
+
parent: null,
|
|
1714
|
+
level: 0,
|
|
1715
|
+
height: 0,
|
|
1716
|
+
oTop: 0
|
|
1717
|
+
};
|
|
1718
|
+
fullAllDataRowIdData[rowid] = rest;
|
|
1719
|
+
fullDataRowIdData[rowid] = rest;
|
|
1720
|
+
}
|
|
1721
|
+
fullMaps[rowid] = row;
|
|
1722
|
+
}, {
|
|
1723
|
+
children: transform ? treeOpts.mapChildrenField : childrenField
|
|
1724
|
+
});
|
|
1725
|
+
internalData.afterFullRowMaps = fullMaps;
|
|
1726
|
+
}
|
|
1683
1727
|
} else {
|
|
1684
|
-
|
|
1685
|
-
const rowid = (0, _util.getRowid)($xeTable, row);
|
|
1686
|
-
const rowRest = fullAllDataRowIdData[rowid];
|
|
1687
|
-
const seq = index + 1;
|
|
1688
|
-
if (rowRest) {
|
|
1689
|
-
rowRest.seq = seq;
|
|
1690
|
-
rowRest._index = index;
|
|
1691
|
-
} else {
|
|
1692
|
-
const rest = {
|
|
1693
|
-
row,
|
|
1694
|
-
rowid,
|
|
1695
|
-
seq,
|
|
1696
|
-
index: -1,
|
|
1697
|
-
$index: -1,
|
|
1698
|
-
_index: index,
|
|
1699
|
-
items: [],
|
|
1700
|
-
parent: null,
|
|
1701
|
-
level: 0,
|
|
1702
|
-
height: 0,
|
|
1703
|
-
oTop: 0
|
|
1704
|
-
};
|
|
1705
|
-
fullAllDataRowIdData[rowid] = rest;
|
|
1706
|
-
fullDataRowIdData[rowid] = rest;
|
|
1707
|
-
}
|
|
1708
|
-
fullMaps[rowid] = row;
|
|
1709
|
-
});
|
|
1728
|
+
updateAfterListIndex();
|
|
1710
1729
|
}
|
|
1711
|
-
internalData.afterFullRowMaps = fullMaps;
|
|
1712
1730
|
};
|
|
1713
1731
|
/**
|
|
1714
1732
|
* 如果为虚拟树,将树结构拍平
|
|
@@ -7531,7 +7549,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7531
7549
|
const {
|
|
7532
7550
|
column
|
|
7533
7551
|
} = params;
|
|
7534
|
-
|
|
7552
|
+
let resizeColumn = column;
|
|
7553
|
+
if (column.children && column.children.length) {
|
|
7554
|
+
_xeUtils.default.eachTree(column.children, childColumn => {
|
|
7555
|
+
resizeColumn = childColumn;
|
|
7556
|
+
});
|
|
7557
|
+
}
|
|
7558
|
+
const colid = resizeColumn.id;
|
|
7535
7559
|
const colRest = fullColumnIdData[colid];
|
|
7536
7560
|
const dragBtnElem = evnt.target;
|
|
7537
7561
|
const cell = dragBtnElem.parentNode;
|
|
@@ -7539,11 +7563,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7539
7563
|
cell
|
|
7540
7564
|
});
|
|
7541
7565
|
const colMinWidth = (0, _util.getColReMinWidth)(cellParams);
|
|
7542
|
-
let resizeWidth = calcColumnAutoWidth(
|
|
7566
|
+
let resizeWidth = calcColumnAutoWidth(resizeColumn, el);
|
|
7543
7567
|
if (colRest) {
|
|
7544
7568
|
resizeWidth = Math.max(resizeWidth, colRest.width);
|
|
7545
7569
|
}
|
|
7546
|
-
|
|
7570
|
+
resizeColumn.resizeWidth = Math.max(colMinWidth, resizeWidth);
|
|
7547
7571
|
reactData._isResize = false;
|
|
7548
7572
|
internalData._lastResizeTime = Date.now();
|
|
7549
7573
|
$xeTable.analyColumnWidth();
|
|
@@ -7808,7 +7832,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7808
7832
|
}
|
|
7809
7833
|
vLen++;
|
|
7810
7834
|
});
|
|
7811
|
-
const isSelected =
|
|
7835
|
+
const isSelected = vLen > 0 ? sLen >= vLen : sLen >= rootList.length;
|
|
7812
7836
|
const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
|
|
7813
7837
|
reactData.isAllSelected = isSelected;
|
|
7814
7838
|
reactData.isIndeterminate = halfSelect;
|