vxe-table 4.10.6-beta.2 → 4.10.6-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/index.css +1 -1
- package/es/index.min.css +1 -1
- package/es/style.css +1 -1
- package/es/style.min.css +1 -1
- package/es/table/src/body.js +2 -1
- package/es/table/src/footer.js +2 -1
- package/es/table/src/header.js +29 -19
- package/es/table/src/table.js +11 -5
- package/es/table/style.css +7 -4
- package/es/table/style.min.css +1 -1
- package/es/ui/index.js +1 -1
- package/es/ui/src/log.js +1 -1
- package/es/vxe-table/style.css +7 -4
- package/es/vxe-table/style.min.css +1 -1
- package/lib/index.css +1 -1
- package/lib/index.min.css +1 -1
- package/lib/index.umd.js +44 -26
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/style.min.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 +27 -17
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +11 -5
- package/lib/table/src/table.min.js +1 -1
- package/lib/table/style/style.css +7 -4
- package/lib/table/style/style.min.css +1 -1
- package/lib/ui/index.js +1 -1
- package/lib/ui/index.min.js +1 -1
- package/lib/ui/src/log.js +1 -1
- package/lib/ui/src/log.min.js +1 -1
- package/lib/vxe-table/style/style.css +7 -4
- package/lib/vxe-table/style/style.min.css +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 +29 -19
- package/packages/table/src/table.ts +11 -5
- package/styles/components/table.scss +7 -5
- /package/es/{iconfont.1736736829304.ttf → iconfont.1736759340059.ttf} +0 -0
- /package/es/{iconfont.1736736829304.woff → iconfont.1736759340059.woff} +0 -0
- /package/es/{iconfont.1736736829304.woff2 → iconfont.1736759340059.woff2} +0 -0
- /package/lib/{iconfont.1736736829304.ttf → iconfont.1736759340059.ttf} +0 -0
- /package/lib/{iconfont.1736736829304.woff → iconfont.1736759340059.woff} +0 -0
- /package/lib/{iconfont.1736736829304.woff2 → iconfont.1736759340059.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
|
@@ -38,7 +38,6 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
38
38
|
} = $xeTable;
|
|
39
39
|
const {
|
|
40
40
|
refElem: tableRefElem,
|
|
41
|
-
refTableBody,
|
|
42
41
|
refLeftContainer,
|
|
43
42
|
refRightContainer,
|
|
44
43
|
refCellResizeBar,
|
|
@@ -71,10 +70,10 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
71
70
|
fixedType
|
|
72
71
|
} = props;
|
|
73
72
|
const {
|
|
73
|
+
elemStore,
|
|
74
74
|
visibleColumn
|
|
75
75
|
} = tableInternalData;
|
|
76
76
|
const resizableOpts = computeResizableOpts.value;
|
|
77
|
-
const tableBody = refTableBody.value;
|
|
78
77
|
const tableEl = tableRefElem.value;
|
|
79
78
|
const leftContainerElem = refLeftContainer.value;
|
|
80
79
|
const rightContainerElem = refRightContainer.value;
|
|
@@ -85,12 +84,21 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
85
84
|
} = evnt;
|
|
86
85
|
const wrapperElem = refElem.value;
|
|
87
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
|
+
}
|
|
88
93
|
const cell = dragBtnElem.parentNode;
|
|
89
94
|
const cellParams = Object.assign(params, {
|
|
90
95
|
cell
|
|
91
96
|
});
|
|
92
97
|
let dragLeft = 0;
|
|
93
|
-
const
|
|
98
|
+
const bodyScrollElem = (0, _util.getRefElem)(elemStore['main-body-scroll']);
|
|
99
|
+
if (!bodyScrollElem) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
94
102
|
const pos = (0, _dom.getOffsetPos)(dragBtnElem, wrapperElem);
|
|
95
103
|
const dragBtnWidth = dragBtnElem.clientWidth;
|
|
96
104
|
const dragBtnOffsetWidth = Math.floor(dragBtnWidth / 2);
|
|
@@ -119,25 +127,25 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
119
127
|
}
|
|
120
128
|
}
|
|
121
129
|
// 处理拖动事件
|
|
122
|
-
const updateEvent =
|
|
130
|
+
const updateEvent = evnt => {
|
|
123
131
|
evnt.stopPropagation();
|
|
124
132
|
evnt.preventDefault();
|
|
125
133
|
const offsetX = evnt.clientX - dragClientX;
|
|
126
134
|
let left = dragPosLeft + offsetX;
|
|
127
|
-
const scrollLeft = fixedType ? 0 :
|
|
135
|
+
const scrollLeft = fixedType ? 0 : bodyScrollElem.scrollLeft;
|
|
128
136
|
if (isLeftFixed) {
|
|
129
137
|
// 左固定列(不允许超过右侧固定列、不允许超过右边距)
|
|
130
|
-
left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft :
|
|
138
|
+
left = Math.min(left, (rightContainerElem ? rightContainerElem.offsetLeft : bodyScrollElem.clientWidth) - fixedOffsetWidth - minInterval);
|
|
131
139
|
} else if (isRightFixed) {
|
|
132
140
|
// 右侧固定列(不允许超过左侧固定列、不允许超过左边距)
|
|
133
141
|
dragMinLeft = (leftContainerElem ? leftContainerElem.clientWidth : 0) + fixedOffsetWidth + minInterval;
|
|
134
142
|
left = Math.min(left, dragPosLeft + cell.clientWidth - minInterval);
|
|
135
143
|
} else {
|
|
136
|
-
dragMinLeft = Math.max(
|
|
137
|
-
// left = Math.min(left,
|
|
144
|
+
dragMinLeft = Math.max(bodyScrollElem.scrollLeft, dragMinLeft);
|
|
145
|
+
// left = Math.min(left, bodyScrollElem.clientWidth + bodyScrollElem.scrollLeft - 40)
|
|
138
146
|
}
|
|
139
147
|
dragLeft = Math.max(left, dragMinLeft);
|
|
140
|
-
const resizeBarLeft = dragLeft - scrollLeft;
|
|
148
|
+
const resizeBarLeft = Math.max(1, dragLeft - scrollLeft);
|
|
141
149
|
resizeBarElem.style.left = `${resizeBarLeft}px`;
|
|
142
150
|
if (resizableOpts.showDragTip && resizeTipElem) {
|
|
143
151
|
const tableWidth = tableEl.clientWidth;
|
|
@@ -147,13 +155,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
147
155
|
const resizeTipHeight = resizeTipElem.clientHeight;
|
|
148
156
|
let resizeTipLeft = -resizeTipWidth;
|
|
149
157
|
if (resizeBarLeft < resizeTipWidth + resizeBarWidth) {
|
|
150
|
-
resizeTipLeft =
|
|
158
|
+
resizeTipLeft = 0;
|
|
151
159
|
} else if (resizeBarLeft > tableWidth) {
|
|
152
160
|
resizeTipLeft += tableWidth - resizeBarLeft;
|
|
153
161
|
}
|
|
154
162
|
resizeTipElem.style.left = `${resizeTipLeft}px`;
|
|
155
163
|
resizeTipElem.style.top = `${Math.min(tableEl.clientHeight - resizeTipHeight, Math.max(0, evnt.clientY - wrapperRect.y - resizeTipHeight / 2))}px`;
|
|
156
|
-
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [
|
|
164
|
+
resizeTipElem.textContent = getI18n('vxe.table.resizeColTip', [resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft)]);
|
|
157
165
|
}
|
|
158
166
|
};
|
|
159
167
|
tableReactData._isResize = true;
|
|
@@ -163,11 +171,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
163
171
|
document.onmouseup = function (evnt) {
|
|
164
172
|
document.onmousemove = domMousemove;
|
|
165
173
|
document.onmouseup = domMouseup;
|
|
166
|
-
const resizeWidth =
|
|
167
|
-
|
|
174
|
+
const resizeWidth = resizeColumn.renderWidth + (isRightFixed ? dragPosLeft - dragLeft : dragLeft - dragPosLeft);
|
|
175
|
+
resizeColumn.resizeWidth = resizeWidth;
|
|
168
176
|
if (resizableOpts.dragMode === 'fixed') {
|
|
169
177
|
visibleColumn.forEach(item => {
|
|
170
|
-
if (item.id !==
|
|
178
|
+
if (item.id !== resizeColumn.id) {
|
|
171
179
|
if (!item.resizeWidth) {
|
|
172
180
|
item.resizeWidth = item.renderWidth;
|
|
173
181
|
}
|
|
@@ -299,6 +307,8 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
299
307
|
thOns.onMouseup = $xeTable.handleHeaderCellDragMouseupEvent;
|
|
300
308
|
}
|
|
301
309
|
}
|
|
310
|
+
const isLastColumn = $columnIndex === cols.length - 1;
|
|
311
|
+
const showResizable = _xeUtils.default.isBoolean(column.resizable) ? column.resizable : columnOpts.resizable || allResizable;
|
|
302
312
|
const isAutoCellWidth = !column.resizeWidth && (column.minWidth === 'auto' || column.width === 'auto');
|
|
303
313
|
let isPreLoadStatus = false;
|
|
304
314
|
if (scrollXLoad && !isGroup && !column.fixed && (_columnIndex < scrollXStore.visibleStartIndex || _columnIndex > scrollXStore.visibleEndIndex)) {
|
|
@@ -308,7 +318,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
308
318
|
class: ['vxe-header--column', colid, {
|
|
309
319
|
[`col--${headAlign}`]: headAlign,
|
|
310
320
|
[`col--${type}`]: type,
|
|
311
|
-
'col--last':
|
|
321
|
+
'col--last': isLastColumn,
|
|
312
322
|
'col--fixed': column.fixed,
|
|
313
323
|
'col--group': isColGroup,
|
|
314
324
|
'col--ellipsis': hasEllipsis,
|
|
@@ -334,13 +344,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
334
344
|
/**
|
|
335
345
|
* 列宽拖动
|
|
336
346
|
*/
|
|
337
|
-
!fixedHiddenColumn &&
|
|
347
|
+
!fixedHiddenColumn && showResizable ? (0, _vue.h)('div', {
|
|
338
348
|
class: ['vxe-resizable', {
|
|
339
349
|
'is--line': !border || border === 'none'
|
|
340
350
|
}],
|
|
341
351
|
onMousedown: evnt => resizeMousedownEvent(evnt, params),
|
|
342
352
|
onDblclick: evnt => $xeTable.handleResizeDblclickEvent(evnt, params)
|
|
343
|
-
}) :
|
|
353
|
+
}) : renderEmptyElement($xeTable)]);
|
|
344
354
|
});
|
|
345
355
|
};
|
|
346
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
|
}
|
|
@@ -7531,7 +7531,13 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7531
7531
|
const {
|
|
7532
7532
|
column
|
|
7533
7533
|
} = params;
|
|
7534
|
-
|
|
7534
|
+
let resizeColumn = column;
|
|
7535
|
+
if (column.children && column.children.length) {
|
|
7536
|
+
_xeUtils.default.eachTree(column.children, childColumn => {
|
|
7537
|
+
resizeColumn = childColumn;
|
|
7538
|
+
});
|
|
7539
|
+
}
|
|
7540
|
+
const colid = resizeColumn.id;
|
|
7535
7541
|
const colRest = fullColumnIdData[colid];
|
|
7536
7542
|
const dragBtnElem = evnt.target;
|
|
7537
7543
|
const cell = dragBtnElem.parentNode;
|
|
@@ -7539,11 +7545,11 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7539
7545
|
cell
|
|
7540
7546
|
});
|
|
7541
7547
|
const colMinWidth = (0, _util.getColReMinWidth)(cellParams);
|
|
7542
|
-
let resizeWidth = calcColumnAutoWidth(
|
|
7548
|
+
let resizeWidth = calcColumnAutoWidth(resizeColumn, el);
|
|
7543
7549
|
if (colRest) {
|
|
7544
7550
|
resizeWidth = Math.max(resizeWidth, colRest.width);
|
|
7545
7551
|
}
|
|
7546
|
-
|
|
7552
|
+
resizeColumn.resizeWidth = Math.max(colMinWidth, resizeWidth);
|
|
7547
7553
|
reactData._isResize = false;
|
|
7548
7554
|
internalData._lastResizeTime = Date.now();
|
|
7549
7555
|
$xeTable.analyColumnWidth();
|
|
@@ -7808,7 +7814,7 @@ var _default = exports.default = (0, _vue.defineComponent)({
|
|
|
7808
7814
|
}
|
|
7809
7815
|
vLen++;
|
|
7810
7816
|
});
|
|
7811
|
-
const isSelected =
|
|
7817
|
+
const isSelected = vLen > 0 ? sLen >= vLen : sLen >= rootList.length;
|
|
7812
7818
|
const halfSelect = !isSelected && (sLen >= 1 || hLen >= 1);
|
|
7813
7819
|
reactData.isAllSelected = isSelected;
|
|
7814
7820
|
reactData.isIndeterminate = halfSelect;
|