vxe-table 4.16.8 → 4.16.10
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/README.en.md +4 -2
- package/README.ja-JP.md +4 -3
- package/README.md +4 -3
- package/README.zh-TW.md +4 -3
- package/es/grid/src/grid.js +1 -1
- package/es/style.css +1 -1
- package/es/table/module/menu/hook.js +3 -3
- package/es/table/src/body.js +2 -1
- package/es/table/src/header.js +2 -1
- package/es/table/src/table.js +20 -7
- package/es/ui/index.js +1 -4
- package/es/ui/src/log.js +1 -1
- package/lib/grid/src/grid.js +1 -1
- package/lib/grid/src/grid.min.js +1 -1
- package/lib/index.umd.js +17 -18
- package/lib/index.umd.min.js +1 -1
- package/lib/style.css +1 -1
- package/lib/table/module/menu/hook.js +3 -3
- package/lib/table/module/menu/hook.min.js +1 -1
- package/lib/table/src/body.js +2 -1
- package/lib/table/src/body.min.js +1 -1
- package/lib/table/src/header.js +2 -1
- package/lib/table/src/header.min.js +1 -1
- package/lib/table/src/table.js +7 -7
- package/lib/table/src/table.min.js +1 -1
- package/lib/ui/index.js +1 -4
- 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 +2 -2
- package/packages/grid/src/grid.ts +1 -1
- package/packages/table/module/menu/hook.ts +3 -3
- package/packages/table/src/body.ts +2 -1
- package/packages/table/src/header.ts +2 -1
- package/packages/table/src/table.ts +20 -7
- package/packages/ui/index.ts +0 -3
- /package/es/{iconfont.1757293933468.ttf → iconfont.1757464778789.ttf} +0 -0
- /package/es/{iconfont.1757293933468.woff → iconfont.1757464778789.woff} +0 -0
- /package/es/{iconfont.1757293933468.woff2 → iconfont.1757464778789.woff2} +0 -0
- /package/lib/{iconfont.1757293933468.ttf → iconfont.1757464778789.ttf} +0 -0
- /package/lib/{iconfont.1757293933468.woff → iconfont.1757464778789.woff} +0 -0
- /package/lib/{iconfont.1757293933468.woff2 → iconfont.1757464778789.woff2} +0 -0
|
@@ -28,7 +28,7 @@ hooks.add('tableMenuModule', {
|
|
|
28
28
|
} = $xeTable.getRefMaps();
|
|
29
29
|
const {
|
|
30
30
|
computeMouseOpts,
|
|
31
|
-
|
|
31
|
+
computeIsContentMenu,
|
|
32
32
|
computeMenuOpts
|
|
33
33
|
} = $xeTable.getComputeMaps();
|
|
34
34
|
let menuMethods = {};
|
|
@@ -40,7 +40,7 @@ hooks.add('tableMenuModule', {
|
|
|
40
40
|
const {
|
|
41
41
|
ctxMenuStore
|
|
42
42
|
} = reactData;
|
|
43
|
-
const
|
|
43
|
+
const isContentMenu = computeIsContentMenu.value;
|
|
44
44
|
const menuOpts = computeMenuOpts.value;
|
|
45
45
|
const config = menuOpts[type];
|
|
46
46
|
const visibleMethod = menuOpts.visibleMethod;
|
|
@@ -51,7 +51,7 @@ hooks.add('tableMenuModule', {
|
|
|
51
51
|
} = config;
|
|
52
52
|
if (disabled) {
|
|
53
53
|
evnt.preventDefault();
|
|
54
|
-
} else if (
|
|
54
|
+
} else if (isContentMenu && options && options.length) {
|
|
55
55
|
params.options = options;
|
|
56
56
|
$xeTable.preventEvent(evnt, 'event.showMenu', params, () => {
|
|
57
57
|
if (!visibleMethod || visibleMethod(params)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,hooks,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableMenuMethodKeys=["closeMenu"];hooks.add("tableMenuModule",{setupTable(p){let{xID:M,props:x,reactData:E,internalData:_}=p,{refElem:C,refTableFilter:T,refTableMenu:y}=p.getRefMaps(),{computeMouseOpts:w,
|
|
1
|
+
var _vue=require("vue"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../../ui"),_dom=require("../../../ui/src/dom"),_utils=require("../../../ui/src/utils");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{menus,hooks,globalEvents,GLOBAL_EVENT_KEYS}=_ui.VxeUI,tableMenuMethodKeys=["closeMenu"];hooks.add("tableMenuModule",{setupTable(p){let{xID:M,props:x,reactData:E,internalData:_}=p,{refElem:C,refTableFilter:T,refTableMenu:y}=p.getRefMaps(),{computeMouseOpts:w,computeIsContentMenu:t,computeMenuOpts:L}=p.getComputeMaps(),N;var e;let O=(l,n,v)=>{let g=E.ctxMenuStore;var o=t.value,e=L.value,n=e[n];let i=e.visibleMethod;if(n){let{options:t,disabled:e}=n;e?l.preventDefault():o&&t&&t.length&&(v.options=t,p.preventEvent(l,"event.showMenu",v,()=>{if(!i||i(v)){l.preventDefault(),p.updateZindex();let{scrollTop:o,scrollLeft:i,visibleHeight:u,visibleWidth:s}=(0,_dom.getDomNode)(),r=l.clientY+o,a=l.clientX+i,n=()=>{_._currMenuParams=v,Object.assign(g,{visible:!0,list:t,selected:null,selectChild:null,showChild:!1,style:{zIndex:_.tZindex,top:r+"px",left:a+"px"}}),(0,_vue.nextTick)(()=>{var e=y.value.getRefMaps().refElem.value,t=e.clientHeight,l=e.clientWidth,{boundingTop:e,boundingLeft:n}=(0,_dom.getAbsolutePos)(e),e=e+t-u,n=n+l-s;-10<e&&(g.style.top=Math.max(o+2,r-t-2)+"px"),-10<n&&(g.style.left=Math.max(i+2,a-l-2)+"px")})},{keyboard:e,row:d,column:c}=v;e&&d&&c?p.scrollToRow(d,c).then(()=>{var e,t,l=p.getCellElement(d,c);l&&({boundingTop:e,boundingLeft:t}=(0,_dom.getAbsolutePos)(l),r=e+o+Math.floor(l.offsetHeight/2),a=t+i+Math.floor(l.offsetWidth/2)),n()}):n()}else N.closeMenu()}))}p.closeFilter()};return N={closeMenu(){return Object.assign(E.ctxMenuStore,{visible:!1,selected:null,selectChild:null,showChild:!1}),(0,_vue.nextTick)()}},e={moveCtxMenu(e,t,l,n,o,i){let u;var s=_xeUtils.default.findIndexOf(i,e=>t[l]===e);if(n)o&&(0,_utils.hasChildrenList)(t.selected)?t.showChild=!0:(t.showChild=!1,t.selectChild=null);else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_UP)){for(let e=s-1;0<=e;e--)if(!1!==i[e].visible){u=i[e];break}t[l]=u||i[i.length-1]}else if(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ARROW_DOWN)){for(let e=s+1;e<i.length;e++)if(!1!==i[e].visible){u=i[e];break}t[l]=u||i[0]}else t[l]&&(globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.ENTER)||globalEvents.hasKey(e,GLOBAL_EVENT_KEYS.SPACEBAR))&&p.ctxMenuLinkEvent(e,t[l])},handleOpenMenuEvent:O,handleGlobalContextmenuEvent(t){var l=p.xeGrid,n=p.xeGantt,{mouseConfig:e,menuConfig:o}=x,{editStore:i,ctxMenuStore:u}=E,s=_.visibleColumn,r=T.value,a=y.value,d=w.value,c=L.value,v=C.value,i=i.selected,g=["header","body","footer"];if((0,_utils.isEnableConf)(o)){if(u.visible&&a&&(0,_dom.getEventTargetNode)(t,a.getRefMaps().refElem.value).flag)return void t.preventDefault();if(_._keyCtx){o="body",u={type:o,$table:p,$grid:l,$gantt:n,keyboard:!0,columns:s.slice(0),$event:t};if(e&&d.area){a=p.getActiveCellArea();if(a&&a.row&&a.column)return u.row=a.row,u.column=a.column,void O(t,o,u)}else if(e&&d.selected&&i.row&&i.column)return u.row=i.row,u.column=i.column,void O(t,o,u)}for(let e=0;e<g.length;e++){var f=g[e],h=(0,_dom.getEventTargetNode)(t,v,`vxe-${f}--column`,e=>e.parentNode.parentNode.parentNode.getAttribute("xid")===M),b={type:f,$table:p,$grid:l,$gantt:n,columns:s.slice(0),$event:t};if(h.flag){var h=h.targetElem,m=p.getColumnNode(h),m=m?m.item:null;let e=f+"-";m&&Object.assign(b,{column:m,columnIndex:p.getColumnIndex(m),cell:h}),"body"===f&&(h=(m=p.getRowNode(h.parentNode))?m.item:null,e="",h)&&(b.row=h,b.rowIndex=p.getRowIndex(h));m=e+"cell-menu";return O(t,f,b),void p.dispatchEvent(m,b,t)}if((0,_dom.getEventTargetNode)(t,v,`vxe-table--${f}-wrapper`,e=>e.getAttribute("xid")===M).flag)return void("cell"===c.trigger?t.preventDefault():O(t,f,b))}}r&&!(0,_dom.getEventTargetNode)(t,r.getRefMaps().refElem.value).flag&&p.closeFilter(),N.closeMenu()},ctxMenuMouseoverEvent(e,t,l){let a=e.currentTarget;var n=E.ctxMenuStore;e.preventDefault(),e.stopPropagation(),n.selected=t,(n.selectChild=l)||(n.showChild=(0,_utils.hasChildrenList)(t),n.showChild&&(0,_vue.nextTick)(()=>{var o=a.nextElementSibling;if(o){var{boundingTop:i,boundingLeft:u,visibleHeight:s,visibleWidth:r}=(0,_dom.getAbsolutePos)(a),i=i+a.offsetHeight;let e="",t="",l=(u+a.offsetWidth+o.offsetWidth>r-10&&(e="auto",t=a.offsetWidth+"px"),""),n="";i+o.offsetHeight>s-10&&(l="auto",n="0"),o.style.left=e,o.style.right=t,o.style.top=l,o.style.bottom=n}}))},ctxMenuMouseoutEvent(e,t){var l=E.ctxMenuStore;t.children||(l.selected=null),l.selectChild=null},ctxMenuLinkEvent(e,t){var l,n=p.xeGrid,o=p.xeGantt;t.disabled||!t.code&&t.children&&t.children.length||(l=menus.get(t.code),t=Object.assign({},_._currMenuParams,{menu:t,$table:p,$grid:n,$gantt:o,$event:e}),(n=l?l.tableMenuMethod||l.menuMethod:null)&&n(t,e),p.dispatchEvent("menu-click",t,e),N.closeMenu())}},Object.assign(Object.assign({},N),e)},setupGrid(e){return e.extendTableMethods(tableMenuMethodKeys)},setupGantt(e){return e.extendTableMethods(tableMenuMethodKeys)}});
|
package/lib/table/src/body.js
CHANGED
|
@@ -954,7 +954,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
954
954
|
}, renderRows(fixedType, isOptimizeMode, renderDataList, renderColumnList))]), (0, _vue.h)('div', {
|
|
955
955
|
class: 'vxe-table--checkbox-range'
|
|
956
956
|
}), mouseConfig && mouseOpts.area ? (0, _vue.h)('div', {
|
|
957
|
-
class: 'vxe-table--cell-area'
|
|
957
|
+
class: 'vxe-table--cell-area',
|
|
958
|
+
xid: xID
|
|
958
959
|
}, [(0, _vue.h)('span', {
|
|
959
960
|
class: 'vxe-table--cell-main-area'
|
|
960
961
|
}, mouseOpts.extension ? [(0, _vue.h)('span', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(S){let Je=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Qe,context:T,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:k,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:c,computeCheckboxOpts:nl,computeCellOpts:sl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl}=Je.getComputeMaps(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),L=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(e,l,t)=>{var a=l.column,r=el.afterFullData,o=Qe.treeConfig,i=c.value,{slots:a,treeNode:n}=a,s=el.fullAllDataRowIdData;if(a&&a.line)return Je.callSlot(a.line,l);a=s[e];let d=0,u=null;return a&&(d=a.level,u=a.items[a.treeIndex-1]),o&&n&&(i.showLine||i.line)?[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${(0,_util.getRowid)(Je,r[0])===e?1:(0,_util.calcTreeLine)(l,u)}px`,bottom:`-${Math.floor(t/2)}px`,left:d*i.indent+(d?2-(0,_util.getOffsetSize)(Je):0)+16+"px"}})])]:[]},oe=(A,e,l,H,F,t,j,L,a,r,N,U,B)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:ne,isAllOverflow:se,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=sl.value,_=dl.value,f=nl.value,me=ll.value,b=il.value,we=vl.value,_e=gl.value,fe=xl.value,{isAllColumnDrag:we,isAllRowDrag:be}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:E,isCrossDrag:Ce,isPeerDrag:Ee}=C,Re=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:R,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:Ae}=r,He=w.verticalAlign,ne=ne.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,je=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=b.showAll;var Ue=m.index,b=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(R)?s:R,s="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;R=se||T||k||s,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Re.resizable||n,n=!!x,x=0<h;let Be;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?He:I,u=de[e+":"+O],He=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:A,rowid:e,row:t,rowIndex:j,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:b,fixed:l,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:B},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!E||!E($))),(T||k||Ne||p)&&(h.onMouseenter=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||f.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+b];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(Be=Je.isUpdateByRow(t,r.field));A=!R&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);j=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!fe.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(b<xe.visibleStartIndex-xe.preloadSize||b>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(B=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,B)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));E={};if(R&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}E.width=r.renderWidth+l-Oe+"px"}re||g||R||n||x?E.height=Pe+"px":E.minHeight=Pe+"px";p=[];M&&se?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:E})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:E,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),He&&u&&(f=u.rule,oe=Ae?Ae.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!b&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||be)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":R,"col--cs-height":n,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":A,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Xe,"is--drag-cell":z&&(Ce||Ee||!F),"is--drag-disabled":Ge,"col--dirty":Be,"col--active":J&&m&&ne.row===t&&(ne.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(je,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Re.useKey||y.useKey||Re.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),H&&M?[]:p)},re=(h,m,w,_)=>{let f=Je.xeGrid,b=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:E,rowClassName:R,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:A,pendingRowFlag:H,rowExpandHeightFlag:F,isRowGroupStatus:j}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:B,rowExpandedMaps:G}=el,W=nl.value,Q=e.value,V=c.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||j;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let n=r,s=0,d=-1,u=-1;var c=j&&a.isAggregate,p={},v=((X.isHover||E)&&(p.onMouseenter=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||j||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(A,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!B[o],"row--group":c},(0,_dom.getPropClass)(R,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||j||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=s*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:f,$gantt:b,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=$,l[e+"scroll"]=z,l[e+"table"]=q,l[e+"colgroup"]=A,l[e+"list"]=H,l[e+"xSpace"]=F,l[e+"ySpace"]=j,l[e+"emptyBlock"]=L})}),(0,_vue.onUnmounted)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;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+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{var e=T.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=S;var{spanMethod:i,footerSpanMethod:n,mouseConfig:s}=Qe,{isGroup:d,tableData:u,isColLoading:c,overflowX:p,scrollXLoad:v,scrollYLoad:g,isAllOverflow:x,expandColumn:h,dragRow:m,dragCol:w}=Ze,{visibleColumn:_,fullAllDataRowIdData:f,fullColumnIdData:b}=el,y=k.value,C=tl.value,E=ae.value;let R=u,D=o,I=!1;!(v||g||x)||h&&"fixed"!==E.mode||i||n||(I=!0),c||!r&&p||(D=_),r&&I&&(D=a||[]),g&&m&&2<R.length&&(u=f[(0,_util.getRowid)(Je,m)])&&(x=u._index,h=R[0],E=R[R.length-1],i=f[(0,_util.getRowid)(Je,h)],n=f[(0,_util.getRowid)(Je,E)],i)&&n&&(c=i._index,p=n._index,x<c?R=[m].concat(R):p<x&&(R=R.concat([m]))),r||d||v&&w&&2<D.length&&(_=b[w.id])&&(g=_._index,u=D[0],h=D[D.length-1],f=b[u.id],E=b[h.id],f)&&E&&(i=f._index,n=E._index,g<i?D=[w].concat(D):n<g&&(D=D.concat([w])));let O;c=e?e.empty:null,p={$table:Je,$grid:l,$gantt:t},O=c?Je.callSlot(c,p):(m=(x=y.name?renderer.get(y.name):null)?x.renderTableEmpty||x.renderTableEmptyView||x.renderEmpty:null)?(0,_vn.getSlotVNs)(m(y,p)):Qe.emptyText||getI18n("vxe.table.emptyText"),d={onScroll(e){Je.triggerBodyScrollEvent(e,r)}};return(0,_vue.h)("div",{ref:$,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},d),[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:j,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:q,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0,xvm:I?"1":null},[(0,_vue.h)("colgroup",{ref:A},D.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:H},re(r,I,R,D))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&C.area?(0,_vue.h)("div",{class:"vxe-table--cell-area"},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},C.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:L},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},O)])])])}}});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util"),_dom=require("../../ui/src/dom"),_utils=require("../../ui/src/utils"),_vn=require("../../ui/src/vn");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{getI18n,renderer,renderEmptyElement}=_ui.VxeUI,renderType="body";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableBody",props:{tableData:Array,tableColumn:Array,fixedColumn:Array,fixedType:{type:String,default:""}},setup(S){let Je=(0,_vue.inject)("$xeTable",{}),{xID:M,props:Qe,context:T,reactData:Ze,internalData:el}=Je,{computeEditOpts:ll,computeMouseOpts:tl,computeCellOffsetWidth:al,computeAreaOpts:rl,computeDefaultRowHeight:ol,computeEmptyOpts:k,computeTooltipOpts:il,computeRadioOpts:e,computeExpandOpts:ae,computeTreeOpts:c,computeCheckboxOpts:nl,computeCellOpts:sl,computeValidOpts:dl,computeRowOpts:ul,computeColumnOpts:cl,computeRowDragOpts:pl,computeResizableOpts:vl,computeVirtualXOpts:gl,computeVirtualYOpts:xl}=Je.getComputeMaps(),$=(0,_vue.ref)(),z=(0,_vue.ref)(),q=(0,_vue.ref)(),A=(0,_vue.ref)(),H=(0,_vue.ref)(),F=(0,_vue.ref)(),j=(0,_vue.ref)(),L=(0,_vue.ref)(),hl=()=>{var e=Qe.delayHover,{lastScrollTime:l,isDragResize:t}=Ze;return!!(t||l&&Date.now()<l+e)},ml=(e,l,t)=>{var a=l.column,r=el.afterFullData,o=Qe.treeConfig,i=c.value,{slots:a,treeNode:n}=a,s=el.fullAllDataRowIdData;if(a&&a.line)return Je.callSlot(a.line,l);a=s[e];let d=0,u=null;return a&&(d=a.level,u=a.items[a.treeIndex-1]),o&&n&&(i.showLine||i.line)?[(0,_vue.h)("div",{key:"tl",class:"vxe-tree--line-wrapper"},[(0,_vue.h)("div",{class:"vxe-tree--line",style:{height:`${(0,_util.getRowid)(Je,r[0])===e?1:(0,_util.calcTreeLine)(l,u)}px`,bottom:`-${Math.floor(t/2)}px`,left:d*i.indent+(d?2-(0,_util.getOffsetSize)(Je):0)+16+"px"}})])]:[]},oe=(A,e,l,H,F,t,j,L,a,r,N,U,B)=>{var o=Je.xeGrid,i=Je.xeGantt,{columnKey:G,resizable:n,showOverflow:s,border:W,height:d,treeConfig:V,cellClassName:P,cellStyle:X,align:u,spanMethod:Y,mouseConfig:K,editConfig:J,editRules:c,tooltipConfig:p,padding:v}=Qe,{tableData:Q,tableColumn:Z,dragRow:ee,overflowX:le,overflowY:te,currentColumn:ae,scrollXLoad:g,scrollYLoad:re,mergeBodyFlag:oe,calcCellHeightFlag:x,resizeHeightFlag:h,resizeWidthFlag:ie,editStore:ne,isAllOverflow:se,validErrorMaps:de}=Ze,{fullAllDataRowIdData:ue,fullColumnIdData:m,mergeBodyCellMaps:ce,visibleColumn:pe,afterFullData:ve,mergeBodyList:ge,scrollXStore:xe,scrollYStore:he}=el,w=sl.value,_=dl.value,f=nl.value,me=ll.value,b=il.value,we=vl.value,_e=gl.value,fe=xl.value,{isAllColumnDrag:we,isAllRowDrag:be}=we,y=ul.value,C=pl.value,ye=ol.value,x=x?w.height||y.height:0,{disabledMethod:E,isCrossDrag:Ce,isPeerDrag:Ee}=C,Re=cl.value,De=tl.value,Ie=rl.value,Oe=al.value,Ie=Ie.selectCellToRow,{type:Se,cellRender:Me,editRender:Te,align:ke,showOverflow:R,className:$e,treeNode:ze,rowResize:qe,padding:D,verticalAlign:I,slots:Ae}=r,He=w.verticalAlign,ne=ne.actived,Fe=ue[e]||{},O=r.id,m=m[O]||{},S=Te||Me,S=S?renderer.get(S.name):null,je=S?S.tableCellClassName||S.cellClassName:null,Le=S?S.tableCellStyle||S.cellStyle:"";let Ne=b.showAll;var Ue=m.index,b=m._index,m=(0,_utils.isEnableConf)(Te),h=h?Fe.resizeHeight:0;let M=le&&(l?r.fixed!==l:!!r.fixed);v=_xeUtils.default.eqNull(D)?null===v?w.padding:v:D,D=_xeUtils.default.eqNull(R)?s:R,s="ellipsis"===D;let T="title"===D,k=!0===D||"tooltip"===D;R=se||T||k||s,D=_xeUtils.default.isBoolean(r.resizable)?r.resizable:Re.resizable||n,n=!!x,x=0<h;let Be;h={},ke=ke||(S?S.tableCellAlign:"")||u,S=_xeUtils.default.eqNull(I)?He:I,u=de[e+":"+O],He=c&&_.showMessage&&("default"===_.message?d||1<Q.length:"inline"===_.message),I={colid:O};let $={$table:Je,$grid:o,$gantt:i,isEdit:!1,seq:A,rowid:e,row:t,rowIndex:j,$rowIndex:L,_rowIndex:a,column:r,columnIndex:Ue,$columnIndex:N,_columnIndex:b,fixed:l,type:renderType,isHidden:!!M,level:F,visibleData:ve,data:Q,items:B},z=!1,Ge=!1,q=((z=y.drag?"row"===C.trigger||r.dragSort&&"cell"===C.trigger:z)&&(Ge=!(!E||!E($))),(T||k||Ne||p)&&(h.onMouseenter=e=>{hl()||(T?(0,_dom.updateCellTitle)(e.currentTarget,r):(k||Ne)&&Je.triggerBodyTooltipEvent(e,$)),Je.dispatchEvent("cell-mouseenter",Object.assign({cell:e.currentTarget},$),e)}),(k||Ne||p)&&(h.onMouseleave=e=>{hl()||(k||Ne)&&Je.handleTargetLeaveEvent(e),Je.dispatchEvent("cell-mouseleave",Object.assign({cell:e.currentTarget},$),e)}),(z||f.range||K)&&(h.onMousedown=e=>{Je.triggerCellMousedownEvent(e,$)}),z&&(h.onMouseup=Je.triggerCellMouseupEvent),h.onClick=e=>{Je.triggerCellClickEvent(e,$)},!(h.onDblclick=e=>{Je.triggerCellDblclickEvent(e,$)})),We=1,Ve=1;if(oe&&ge.length){de=ce[a+":"+b];if(de){var{rowspan:c,colspan:d}=de;if(!c||!d)return renderEmptyElement(Je);1<c&&(q=!0,Ve=c,I.rowspan=c),1<d&&(q=!0,We=d,I.colspan=d)}}else if(Y){var{rowspan:o=1,colspan:i=1}=Y($)||{};if(!o||!i)return renderEmptyElement(Je);1<o&&(q=!0,Ve=o,I.rowspan=o),1<i&&(q=!0,We=i,I.colspan=i)}!(M=M&&q&&(1<I.colspan||1<I.rowspan)?!1:M)&&J&&(Te||Me)&&(me.showStatus||me.showUpdateStatus)&&(Be=Je.isUpdateByRow(t,r.field));A=!R&&(re||g);let Pe=(0,_util.getCellRestHeight)(Fe,w,y,ye);j=N===U.length-1,L=!r.resizeWidth&&("auto"===r.minWidth||"auto"===r.width);let Xe=!1;q||ee&&(0,_util.getRowid)(Je,ee)===e||(te&&re&&16<Q.length&&!V&&!fe.immediate&&(a<he.visibleStartIndex-he.preloadSize||a>he.visibleEndIndex+he.preloadSize)||le&&g&&10<Z.length&&!_e.immediate&&!r.fixed&&(b<xe.visibleStartIndex-xe.preloadSize||b>xe.visibleEndIndex+xe.preloadSize))&&(Xe=!0),1<Ve&&(B=ve[a+Ve-1])&&(C=ue[(0,_util.getRowid)(Je,B)])&&(Pe+=C.oTop+(0,_util.getCellRestHeight)(C,w,y,ye)-Fe.oTop-(0,_util.getCellRestHeight)(Fe,w,y,ye));E={};if(R&&ie){let l=0;if(1<We)for(let e=1;e<We;e++){var Ye=pe[Ue+e];Ye&&(l+=Ye.renderWidth)}E.width=r.renderWidth+l-Oe+"px"}re||g||R||n||x?E.height=Pe+"px":E.minHeight=Pe+"px";p=[];M&&se?p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:E})):(V&&p.push(...ml(e,$,Pe)),p.push((0,_vue.h)("div",{key:"tc",class:["vxe-cell",{"c--title":T,"c--tooltip":k,"c--ellipsis":s}],style:E,title:T?Je.getCellLabel(t,r):null},Xe?[]:[(0,_vue.h)("div",{colid:O,rowid:e,class:"vxe-cell--wrapper vxe-body-cell--wrapper"},r.renderCell($))])),He&&u&&(f=u.rule,oe=Ae?Ae.valid:null,ge=Object.assign(Object.assign(Object.assign({},$),u),{rule:u}),p.push((0,_vue.h)("div",{key:"tcv",class:["vxe-cell--valid-error-tip",(0,_dom.getPropClass)(_.className,ge)],style:f&&f.maxWidth?{width:f.maxWidth+"px"}:null},[(0,_vue.h)("div",{class:"vxe-cell--valid-error-wrapper vxe-cell--valid-error-theme-"+(_.theme||"normal")},[oe?Je.callSlot(oe,ge):[(0,_vue.h)("span",{class:"vxe-cell--valid-error-msg"},u.content)]])]))));let Ke=!1;return K&&De.area&&!b&&Ie&&(Ke=!0),!M&&D&&we&&p.push((0,_vue.h)("div",{key:"tcc",class:["vxe-cell--col-resizable",{"is--line":!W||"none"===W}],onMousedown:e=>Je.handleColResizeMousedownEvent(e,l,$),onDblclick:e=>Je.handleColResizeDblclickEvent(e,$)})),(qe||be)&&y.resizable&&p.push((0,_vue.h)("div",{key:"tcr",class:"vxe-cell--row-resizable",onMousedown:e=>Je.handleRowResizeMousedownEvent(e,$),onDblclick:e=>Je.handleRowResizeDblclickEvent(e,$)})),(0,_vue.h)("td",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-body--column",O,S?"col--vertical-"+S:"",ke?"col--"+ke:"",Se?"col--"+Se:"",{"col--last":j,"col--tree-node":ze,"col--edit":m,"col--ellipsis":R,"col--cs-height":n,"col--rs-height":x,"col--to-row":Ke,"col--auto-height":A,"fixed--width":!L,"fixed--hidden":M,"is--padding":v,"is--progress":M&&se||Xe,"is--drag-cell":z&&(Ce||Ee||!F),"is--drag-disabled":Ge,"col--dirty":Be,"col--active":J&&m&&ne.row===t&&(ne.column===r||"row"===me.mode),"col--valid-error":!!u,"col--current":ae===r},(0,_dom.getPropClass)(je,$),(0,_dom.getPropClass)($e,$),(0,_dom.getPropClass)(P,$)],key:G||g||re||Re.useKey||y.useKey||Re.drag?O:N},I),{style:Object.assign({},_xeUtils.default.isFunction(Le)?Le($):Le,_xeUtils.default.isFunction(X)?X($):X)}),h),H&&M?[]:p)},re=(h,m,w,_)=>{let f=Je.xeGrid,b=Je.xeGantt,{stripe:y,rowKey:C,highlightHoverRow:E,rowClassName:R,rowStyle:D,editConfig:I,treeConfig:O}=Qe,{hasFixedColumn:S,treeExpandedFlag:M,scrollXLoad:T,scrollYLoad:k,isAllOverflow:$,rowExpandedFlag:z,expandColumn:q,selectRadioRow:A,pendingRowFlag:H,rowExpandHeightFlag:F,isRowGroupStatus:j}=Ze,{fullAllDataRowIdData:L,fullColumnIdData:N,treeExpandedMaps:U,pendingRowMaps:B,rowExpandedMaps:G}=el,W=nl.value,Q=e.value,V=c.value,P=ll.value,X=ul.value,Z=cl.value,{transform:Y,seqMode:K}=V,ee=V.children||V.childrenField,J=[],le=(0,_util.createHandleGetRowId)(Je).handleGetRowId,te=O||j;return w.forEach((a,r)=>{let o=le(a);var i=L[o]||{};let n=r,s=0,d=-1,u=-1;var c=j&&a.isAggregate,p={},v=((X.isHover||E)&&(p.onMouseenter=e=>{hl()||Je.triggerHoverEvent(e,{row:a,rowIndex:n})},p.onMouseleave=()=>{hl()||Je.clearHoverRow()}),i&&(n=i.index,u=i._index,s=i.level,d=i.seq,c||O&&Y&&"increasing"===K?d=i._index+1:O&&"fixed"===K&&(d=i._tIndex+1)),{$table:Je,seq:d,rowid:o,fixed:h,type:renderType,level:s,row:a,rowIndex:n,$rowIndex:r,_rowIndex:u}),g=q&&!!z&&!!G[o];let e=!1,l=[],t=!1;I&&(t=Je.isInsertByRow(a)),!O||k||Y||(l=a[ee],e=!!M&&l&&0<l.length&&!!U[o]),!X.drag||j||O&&!Y||(p.onDragstart=Je.handleRowDragDragstartEvent,p.onDragend=Je.handleRowDragDragendEvent,p.onDragover=Je.handleRowDragDragoverEvent);var c=["vxe-body--row",te?"row--level-"+s:"",{"row--stripe":y&&(u+1)%2==0,"is--new":t,"is--expand-row":g,"is--expand-tree":e,"row--new":t&&(P.showStatus||P.showInsertStatus),"row--radio":Q.highlight&&Je.eqRow(A,a),"row--checked":W.highlight&&Je.isCheckedByCheckboxRow(a),"row--pending":!!H&&!!B[o],"row--group":c},(0,_dom.getPropClass)(R,v)],x=_.map((e,l)=>oe(d,o,h,m,s,a,n,r,u,e,l,_,w));if(J.push((0,_vue.h)("tr",Object.assign({class:c,rowid:o,style:D?_xeUtils.default.isFunction(D)?D(v):D:null,key:C||T||k||X.useKey||X.drag||Z.drag||j||O?o:r},p),x)),g){var{height:c,padding:v,mode:p}=ae.value;if("fixed"===p)J.push((0,_vue.h)("tr",{class:"vxe-body--row-expanded-place",key:"expand_"+o,rowid:o},[(0,_vue.h)("td",{class:"vxe-body--row-expanded-place-column",colspan:_.length,style:{height:`${F?i.expandHeight||c:0}px`}})]));else{x={},g=(c&&(x.height=c+"px"),O&&(x.paddingLeft=s*V.indent+30+"px"),q||{}).showOverflow,p=q.id,i=N[p]||{},p=_xeUtils.default.eqNull(g)?$:g;let e=-1,l=-1,t=-1;i&&(e=i.index,l=i.$index,t=i._index);g={$table:Je,$grid:f,$gantt:b,seq:d,column:q,columnIndex:e,$columnIndex:l,_columnIndex:t,fixed:h,type:renderType,level:s,row:a,rowid:o,rowIndex:n,$rowIndex:r,_rowIndex:u,isHidden:!1,isEdit:!1,visibleData:[],data:[],items:[]};J.push((0,_vue.h)("tr",{class:["vxe-body--expanded-row",{"is--padding":v}],key:"expand_"+o},[(0,_vue.h)("td",{class:["vxe-body--expanded-column",{"fixed--hidden":h&&!S,"col--ellipsis":p}],colspan:_.length},[(0,_vue.h)("div",{class:["vxe-body--expanded-cell",{"is--ellipsis":c}],style:x},[q.renderData(g)])])]))}}e&&J.push(...re(h,m,l,_))}),J};(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;l[e+"wrapper"]=$,l[e+"scroll"]=z,l[e+"table"]=q,l[e+"colgroup"]=A,l[e+"list"]=H,l[e+"xSpace"]=F,l[e+"ySpace"]=j,l[e+"emptyBlock"]=L})}),(0,_vue.onUnmounted)(()=>{var e=S.fixedType,l=el.elemStore,e=`${e||"main"}-body-`;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+"ySpace"]=null,l[e+"emptyBlock"]=null});return()=>{var e=T.slots,l=Je.xeGrid,t=Je.xeGantt;let{fixedColumn:a,fixedType:r,tableColumn:o}=S;var{spanMethod:i,footerSpanMethod:n,mouseConfig:s}=Qe,{isGroup:d,tableData:u,isColLoading:c,overflowX:p,scrollXLoad:v,scrollYLoad:g,isAllOverflow:x,expandColumn:h,dragRow:m,dragCol:w}=Ze,{visibleColumn:_,fullAllDataRowIdData:f,fullColumnIdData:b}=el,y=k.value,C=tl.value,E=ae.value;let R=u,D=o,I=!1;!(v||g||x)||h&&"fixed"!==E.mode||i||n||(I=!0),c||!r&&p||(D=_),r&&I&&(D=a||[]),g&&m&&2<R.length&&(u=f[(0,_util.getRowid)(Je,m)])&&(x=u._index,h=R[0],E=R[R.length-1],i=f[(0,_util.getRowid)(Je,h)],n=f[(0,_util.getRowid)(Je,E)],i)&&n&&(c=i._index,p=n._index,x<c?R=[m].concat(R):p<x&&(R=R.concat([m]))),r||d||v&&w&&2<D.length&&(_=b[w.id])&&(g=_._index,u=D[0],h=D[D.length-1],f=b[u.id],E=b[h.id],f)&&E&&(i=f._index,n=E._index,g<i?D=[w].concat(D):n<g&&(D=D.concat([w])));let O;c=e?e.empty:null,p={$table:Je,$grid:l,$gantt:t},O=c?Je.callSlot(c,p):(m=(x=y.name?renderer.get(y.name):null)?x.renderTableEmpty||x.renderTableEmptyView||x.renderEmpty:null)?(0,_vn.getSlotVNs)(m(y,p)):Qe.emptyText||getI18n("vxe.table.emptyText"),d={onScroll(e){Je.triggerBodyScrollEvent(e,r)}};return(0,_vue.h)("div",{ref:$,class:["vxe-table--body-wrapper",r?`fixed-${r}--wrapper`:"body--wrapper"],xid:M},[(0,_vue.h)("div",Object.assign({ref:z,class:"vxe-table--body-inner-wrapper"},d),[r?renderEmptyElement(Je):(0,_vue.h)("div",{ref:F,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:j,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:q,class:"vxe-table--body",xid:M,cellspacing:0,cellpadding:0,border:0,xvm:I?"1":null},[(0,_vue.h)("colgroup",{ref:A},D.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("tbody",{ref:H},re(r,I,R,D))]),(0,_vue.h)("div",{class:"vxe-table--checkbox-range"}),s&&C.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:M},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"},C.extension?[(0,_vue.h)("span",{class:"vxe-table--cell-main-area-btn",onMousedown(e){Je.triggerCellAreaExtendMousedownEvent&&Je.triggerCellAreaExtendMousedownEvent(e,{$table:Je,fixed:r,type:renderType})}})]:[]),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-row-status-area"})]):renderEmptyElement(Je),r?renderEmptyElement(Je):(0,_vue.h)("div",{class:"vxe-table--empty-block",ref:L},[(0,_vue.h)("div",{class:"vxe-table--empty-content"},O)])])])}}});
|
package/lib/table/src/header.js
CHANGED
|
@@ -448,7 +448,8 @@ var _default = exports.default = (0, _comp.defineVxeComponent)({
|
|
|
448
448
|
(0, _vue.h)('thead', {
|
|
449
449
|
ref: refHeaderTHead
|
|
450
450
|
}, renderHeads(isGroup, isOptimizeMode, renderHeaderList))]), mouseConfig && mouseOpts.area ? (0, _vue.h)('div', {
|
|
451
|
-
class: 'vxe-table--cell-area'
|
|
451
|
+
class: 'vxe-table--cell-area',
|
|
452
|
+
xid: xID
|
|
452
453
|
}, [(0, _vue.h)('span', {
|
|
453
454
|
class: 'vxe-table--cell-main-area'
|
|
454
455
|
}), (0, _vue.h)('span', {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let pe=(0,_vue.inject)("$xeTable",{}),{xID:C,props:_,reactData:b,internalData:w}=pe,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=pe.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=_.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=b.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1<n.length&&(i=(0,_util.convertHeaderToGridRows)(n),n=i),D.value=n,pe.dispatchEvent("columns-change",{visibleColgroups:i,collectColumn:l,visibleColumn:a},null)},I=(O,T,e,I,k)=>{let F=pe.xeGrid,R=pe.xeGantt,U=f.fixedType,{resizable:$,columnKey:z,showCustomHeader:L,headerCellClassName:q,headerCellStyle:A,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=_,{currentColumn:V,dragCol:W,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,ae=o.value,re=a.value,te=r.value,ne=t.value;var l=i.value;let ie=n.value,oe=(0,_util.getCalcHeight)(ie.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=I===e.length-1;return k.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(U?e.fixed!==U:!!e.fixed),v=(_xeUtils.default.isBoolean(ie.padding)?ie:ne).padding,r=_xeUtils.default.eqNull(r)?G:r,t=t||(u?u.tableHeaderCellAlign:"")||X||n||(u?u.tableCellAlign:"")||j,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,h=u||r||n;let g=!1,
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_xeUtils=_interopRequireDefault(require("xe-utils")),_ui=require("../../ui"),_util=require("./util");function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let{renderer,renderEmptyElement}=_ui.VxeUI,renderType="header";function getColumnFirstChild(e){var l=e.children;return l&&l.length?getColumnFirstChild(l[0]):e}function getColumnLastChild(e){var l=e.children;return l&&l.length?getColumnLastChild(l[l.length-1]):e}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeTableHeader",props:{tableData:Array,tableColumn:Array,tableGroupColumn:Array,fixedColumn:Array,fixedType:{type:String,default:null}},setup(f){let pe=(0,_vue.inject)("$xeTable",{}),{xID:C,props:_,reactData:b,internalData:w}=pe,{computeColumnOpts:a,computeColumnDragOpts:r,computeCellOpts:t,computeMouseOpts:y,computeHeaderCellOpts:n,computeDefaultRowHeight:i,computeVirtualXOpts:o}=pe.getComputeMaps(),D=(0,_vue.ref)([]),H=(0,_vue.ref)(),E=(0,_vue.ref)(),S=(0,_vue.ref)(),M=(0,_vue.ref)(),O=(0,_vue.ref)(),T=(0,_vue.ref)(),d=(0,_vue.ref)(),u=()=>{var e=_.showCustomHeader,{collectColumn:l,visibleColumn:a}=w,r=f.tableGroupColumn,t=b.isGroup;let n=t?(0,_util.convertHeaderColumnToRows)(r):[],i=[];e&&1<n.length&&(i=(0,_util.convertHeaderToGridRows)(n),n=i),D.value=n,pe.dispatchEvent("columns-change",{visibleColgroups:i,collectColumn:l,visibleColumn:a},null)},I=(O,T,e,I,k)=>{let F=pe.xeGrid,R=pe.xeGantt,U=f.fixedType,{resizable:$,columnKey:z,showCustomHeader:L,headerCellClassName:q,headerCellStyle:A,showHeaderOverflow:G,headerAlign:X,align:j,mouseConfig:N}=_,{currentColumn:V,dragCol:W,scrollXLoad:B,scrollYLoad:K,overflowX:P,mergeHeadFlag:Y,tableColumn:J}=b,{fullColumnIdData:Q,scrollXStore:Z,mergeHeaderList:ee,mergeHeaderCellMaps:le}=w,ae=o.value,re=a.value,te=r.value,ne=t.value;var l=i.value;let ie=n.value,oe=(0,_util.getCalcHeight)(ie.height)||l,{disabledMethod:de,isCrossDrag:se,isPeerDrag:ce}=te,ue=I===e.length-1;return k.map((e,l)=>{var{type:a,showHeaderOverflow:r,headerAlign:t,align:n,filters:i,headerClassName:o,editRender:d,cellRender:u}=e,s=e.id,c=Q[s]||{},d=d||u,u=d?renderer.get(d.name):null,d=e.children&&e.children.length,p=P&&!d&&(U?e.fixed!==U:!!e.fixed),v=(_xeUtils.default.isBoolean(ie.padding)?ie:ne).padding,r=_xeUtils.default.eqNull(r)?G:r,t=t||(u?u.tableHeaderCellAlign:"")||X||n||(u?u.tableCellAlign:"")||j,n="ellipsis"===r,u="title"===r,r=!0===r||"tooltip"===r,h=u||r||n;let g=!1,x=null;i&&(x=i[0],g=i.some(e=>e.checked));var m=c.index,c=c._index;let f={$table:pe,$grid:F,$gantt:R,$rowIndex:I,column:e,columnIndex:m,$columnIndex:l,_columnIndex:c,firstFilterOption:x,fixed:U,type:renderType,isHidden:p,hasFilter:g};m={colid:s};let C=!1;if(L||(m.colspan=1<e.colSpan?e.colSpan:null,m.rowspan=1<e.rowSpan?e.rowSpan:null),Y&&ee.length&&(L||ue)){var _=le[I+":"+(L?l:c)];if(_){var{rowspan:_,colspan:b}=_;if(!_||!b)return null;1<_&&(C=!0,m.rowspan=_),1<b&&(C=!0,m.colspan=b)}}_={onClick:e=>pe.triggerHeaderCellClickEvent(e,f),onDblclick:e=>pe.triggerHeaderCellDblclickEvent(e,f)},b=re.drag&&"cell"===te.trigger;let w=!1;b&&(w=!(!de||!de(f))),(N||b)&&(_.onMousedown=e=>pe.triggerHeaderCellMousedownEvent(e,f)),re.drag&&(_.onDragstart=pe.handleHeaderCellDragDragstartEvent,_.onDragend=pe.handleHeaderCellDragDragendEvent,_.onDragover=pe.handleHeaderCellDragDragoverEvent,b)&&(_.onMouseup=pe.handleHeaderCellDragMouseupEvent);var b=l===k.length-1,y=_xeUtils.default.isBoolean(e.resizable)?e.resizable:re.resizable||$,D=!e.resizeWidth&&("auto"===e.minWidth||"auto"===e.width);let H=!1;!T||!P||O||C||W&&W.id===s||B&&10<J.length&&!e.fixed&&!ae.immediate&&(c<Z.visibleStartIndex-Z.preloadSize||c>Z.visibleEndIndex+Z.preloadSize)&&(H=!0);var E,S,M,c={};return h?c.height=oe+"px":c.minHeight=oe+"px",d&&!ue&&(S=getColumnFirstChild(e),E=getColumnLastChild(e),S)&&E&&S.id!==E.id&&(S=Q[S.id],M=Q[E.id],S)&&M&&(c.width=M.oLeft-S.oLeft+E.renderWidth+"px"),(0,_vue.h)("th",Object.assign(Object.assign(Object.assign({class:["vxe-table--column vxe-header--column",s,p?"fixed--hidden":"fixed--visible",{["col--"+t]:t,["col--"+a]:a,"col--last":b,"col--fixed":e.fixed,"col--group":d,"col--ellipsis":h,"fixed--width":!D,"is--padding":v,"is--sortable":e.sortable,"col--filter":!!i,"is--filter-active":g,"is--drag-active":re.drag&&!e.fixed&&!w&&(se||ce||!e.parentId),"is--drag-disabled":re.drag&&w,"col--current":V===e},o?_xeUtils.default.isFunction(o)?o(f):o:"",q?_xeUtils.default.isFunction(q)?q(f):q:""],style:A?_xeUtils.default.isFunction(A)?A(f):A:null},m),_),{key:L?""+s+l:z||B||K||re.useKey||re.drag||d?s:l}),[(0,_vue.h)("div",{class:["vxe-cell",{"c--title":u,"c--tooltip":r,"c--ellipsis":n}],style:c},H||T&&p?[]:[(0,_vue.h)("div",{colid:s,class:"vxe-cell--wrapper vxe-header-cell--wrapper"},e.renderHeader(f))]),p||!y||L&&!ue?renderEmptyElement(pe):(0,_vue.h)("div",{class:"vxe-cell--col-resizable",onMousedown:e=>pe.handleColResizeMousedownEvent(e,U,f),onDblclick:e=>pe.handleColResizeDblclickEvent(e,f)})])})};return(0,_vue.watch)(()=>f.tableColumn,u),(0,_vue.onMounted)(()=>{(0,_vue.nextTick)(()=>{var e=f.fixedType,l=pe.internalData,l=l.elemStore,e=`${e||"main"}-header-`;l[e+"wrapper"]=H,l[e+"scroll"]=E,l[e+"table"]=S,l[e+"colgroup"]=M,l[e+"list"]=O,l[e+"xSpace"]=T,l[e+"repair"]=d,u()})}),(0,_vue.onUnmounted)(()=>{var e=f.fixedType,l=pe.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:a}=f;var{mouseConfig:r,showHeaderOverflow:t,spanMethod:n,footerSpanMethod:i}=_,{isGroup:o,isColLoading:d,overflowX:u,scrollXLoad:s,dragCol:c}=b,{visibleColumn:p,fullColumnIdData:v}=w,h=y.value;let g=D.value||[],x=a,m=!1;return o?x=p:(s&&t&&(n||i||(m=!0)),m&&(d||!l&&u)||(x=p),l&&m&&(x=e||[]),g=[x]),l||o||s&&c&&2<x.length&&(t=v[c.id])&&(n=t._index,i=x[0],d=x[x.length-1],u=v[i.id],p=v[d.id],u)&&p&&(s=u._index,t=p._index,n<s?(x=[c].concat(x),g=[[c].concat(g[0])].concat(g.slice(1))):t<n&&(x=x.concat([c]),g=[g[0].concat([c])].concat(g.slice(1)))),(0,_vue.h)("div",{ref:H,class:["vxe-table--header-wrapper",l?`fixed-${l}--wrapper`:"body--wrapper"],xid:C},[(0,_vue.h)("div",{ref:E,class:"vxe-table--header-inner-wrapper",onScroll(e){pe.triggerHeaderScrollEvent(e,l)}},[l?renderEmptyElement(pe):(0,_vue.h)("div",{ref:T,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:S,class:"vxe-table--header",xid:C,cellspacing:0,cellpadding:0,border:0,xvm:m?"1":null},[(0,_vue.h)("colgroup",{ref:M},x.map((e,l)=>(0,_vue.h)("col",{name:e.id,key:l,style:{width:e.renderWidth+"px"}}))),(0,_vue.h)("thead",{ref:O},((r,t,n)=>{let i=f.fixedType,{headerRowClassName:o,headerRowStyle:d}=_;return n.map((e,l)=>{var a={$table:pe,$rowIndex:l,fixed:i,type:renderType};return(0,_vue.h)("tr",{key:l,class:["vxe-header--row",o?_xeUtils.default.isFunction(o)?o(a):o:""],style:d?_xeUtils.default.isFunction(d)?d(a):d:null},I(r,t,n,l,e))})})(o,m,g))]),r&&h.area?(0,_vue.h)("div",{class:"vxe-table--cell-area",xid:C},[(0,_vue.h)("span",{class:"vxe-table--cell-main-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-clip-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-extend-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-multi-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-active-area"}),(0,_vue.h)("span",{class:"vxe-table--cell-col-status-area"})]):renderEmptyElement(pe)])])}}});
|
package/lib/table/src/table.js
CHANGED
|
@@ -46,10 +46,10 @@ exportStore:{inited:false,name:'',modeList:[],typeList:[],columns:[],isPrint:fal
|
|
|
46
46
|
return Object.assign({},globalScrollX,scrollX);}if(globalVirtualXConfig){return Object.assign({},globalVirtualXConfig,virtualXConfig);}// 已废弃,保留兼容
|
|
47
47
|
return Object.assign({},globalScrollX,scrollX);});const computeVirtualYOpts=(0,_vue.computed)(()=>{const{virtualYConfig,scrollY}=props;const globalVirtualYConfig=getConfig().table.virtualYConfig;const globalScrollY=getConfig().table.scrollY;if(virtualYConfig){return Object.assign({},globalVirtualYConfig,virtualYConfig);}if(scrollY){// 已废弃,保留兼容
|
|
48
48
|
return Object.assign({},globalScrollY,scrollY);}if(globalVirtualYConfig){return Object.assign({},globalVirtualYConfig,virtualYConfig);}// 已废弃,保留兼容
|
|
49
|
-
return Object.assign({},globalScrollY,scrollY);});const computeScrollbarOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.scrollbarConfig,props.scrollbarConfig);});const computeScrollbarXToTop=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return!!(scrollbarOpts.x&&scrollbarOpts.x.position==='top');});const computeScrollbarYToLeft=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return!!(scrollbarOpts.y&&scrollbarOpts.y.position==='left');});const computeScrollYThreshold=(0,_vue.computed)(()=>{const virtualYOpts=computeVirtualYOpts.value;const{threshold}=virtualYOpts;if(threshold){return _xeUtils.default.toNumber(threshold);}return 0;});const computeRowHeightMaps=(0,_vue.computed)(()=>{return reactData.rowHeightStore;});const computeDefaultRowHeight=(0,_vue.computed)(()=>{const vSize=computeSize.value;const rowHeightMaps=computeRowHeightMaps.value;return rowHeightMaps[vSize||'default']||18;});const computeColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnConfig,props.columnConfig);});const computeCurrentColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentColumnConfig,props.currentColumnConfig);});const computeCellOpts=(0,_vue.computed)(()=>{const cellOpts=Object.assign({},getConfig().table.cellConfig,props.cellConfig);if(cellOpts.height){cellOpts.height=_xeUtils.default.toNumber(cellOpts.height);}return cellOpts;});const computeHeaderCellOpts=(0,_vue.computed)(()=>{const headerCellOpts=Object.assign({},getConfig().table.headerCellConfig,props.headerCellConfig);const defaultRowHeight=computeDefaultRowHeight.value;const cellOpts=computeCellOpts.value;let headCellHeight=_xeUtils.default.toNumber((0,_util.getCalcHeight)(headerCellOpts.height||cellOpts.height));if($xeGantt){const{computeTaskScaleConfs}=$xeGantt.getComputeMaps();const taskScaleConfs=computeTaskScaleConfs.value;if(taskScaleConfs&&taskScaleConfs.length>2){const ganttMinHeadCellHeight=defaultRowHeight/2*taskScaleConfs.length;headCellHeight=Math.max(ganttMinHeadCellHeight,headCellHeight);}}headerCellOpts.height=headCellHeight;return headerCellOpts;});const computeFooterCellOpts=(0,_vue.computed)(()=>{const footerCellOpts=Object.assign({},getConfig().table.footerCellConfig,props.footerCellConfig);const cellOpts=computeCellOpts.value;footerCellOpts.height=_xeUtils.default.toNumber((0,_util.getCalcHeight)(footerCellOpts.height||cellOpts.height));return footerCellOpts;});const computeRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowConfig,props.rowConfig);});const computeAggregateOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateConfig||getConfig().table.rowGroupConfig,props.aggregateConfig||props.rowGroupConfig);});const computeRowGroupOpts=(0,_vue.computed)(()=>{return computeAggregateOpts.value;});const computeCurrentRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentRowConfig,props.currentRowConfig);});const computeRowDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowDragConfig,props.rowDragConfig);});const computeColumnDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnDragConfig,props.columnDragConfig);});const computeResizeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizeConfig,props.resizeConfig);});const computeResizableOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizableConfig,props.resizableConfig);});const computeSeqOpts=(0,_vue.computed)(()=>{return Object.assign({startIndex:0},getConfig().table.seqConfig,props.seqConfig);});const computeRadioOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.radioConfig,props.radioConfig);});const computeCheckboxOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.checkboxConfig,props.checkboxConfig);});const computeTooltipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().tooltip,getConfig().table.tooltipConfig,props.tooltipConfig);});const computeTableTipConfig=(0,_vue.computed)(()=>{const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts,tooltipStore.currOpts);});const computeValidTipConfig=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts);});const computeEditOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editConfig,props.editConfig);});const computeSortOpts=(0,_vue.computed)(()=>{return Object.assign({orders:['asc','desc',null]},getConfig().table.sortConfig,props.sortConfig);});const computeFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.filterConfig,props.filterConfig);});const computeMouseOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.mouseConfig,props.mouseConfig);});const computeAreaOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.areaConfig,props.areaConfig);});const computeKeyboardOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.keyboardConfig,props.keyboardConfig);});const computeClipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.clipConfig,props.clipConfig);});const computeFNROpts=(0,_vue.computed)(()=>{const fnrOpts=computeFnrOpts.value;return fnrOpts;});const computeFnrOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.fnrConfig,props.fnrConfig);});const computeMenuOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.menuConfig,props.menuConfig);});const computeLeftFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{leftList}=columnStore;let leftWidth=0;for(let i=0;i<leftList.length;i++){const column=leftList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeRightFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{rightList}=columnStore;let leftWidth=0;for(let i=0;i<rightList.length;i++){const column=rightList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeHeaderMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerOpts=menuOpts.header;return headerOpts&&headerOpts.options?headerOpts.options:[];});const computeBodyMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const bodyOpts=menuOpts.body;return bodyOpts&&bodyOpts.options?bodyOpts.options:[];});const computeFooterMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const footerOpts=menuOpts.footer;return footerOpts&&footerOpts.options?footerOpts.options:[];});const computeIsMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerMenu=computeHeaderMenu.value;const bodyMenu=computeBodyMenu.value;const footerMenu=computeFooterMenu.value;return!!(props.menuConfig&&(0,_utils.isEnableConf)(menuOpts)&&(headerMenu.length||bodyMenu.length||footerMenu.length));});const computeMenuList=(0,_vue.computed)(()=>{const{ctxMenuStore}=reactData;const rest=[];ctxMenuStore.list.forEach(list=>{list.forEach(item=>{rest.push(item);});});return rest;});const computeExportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.exportConfig,props.exportConfig);});const computeImportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.importConfig,props.importConfig);});const computePrintOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.printConfig,props.printConfig);});const computeExpandOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.expandConfig,props.expandConfig);});const computeTreeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.treeConfig,props.treeConfig);});const computeEmptyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.emptyRender,props.emptyRender);});const computeLoadingOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.loadingConfig,props.loadingConfig);});const computeCellOffsetWidth=(0,_vue.computed)(()=>{return props.border?Math.max(2,Math.ceil(reactData.scrollbarWidth/reactData.tableColumn.length)):1;});const computeCustomOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.customConfig,props.customConfig);});const computeTableRowExpandedList=(0,_vue.computed)(()=>{const{tableData,rowExpandedFlag,expandColumn,rowGroupExpandedFlag,treeExpandedFlag}=reactData;const{visibleDataRowIdData,rowExpandedMaps}=internalData;const expandList=[];if(tableData.length&&expandColumn&&rowExpandedFlag&&rowGroupExpandedFlag&&treeExpandedFlag){_xeUtils.default.each(rowExpandedMaps,(row,rowid)=>{if(visibleDataRowIdData[rowid]){expandList.push(row);}});}return expandList;});const computeAutoWidthColumnList=(0,_vue.computed)(()=>{const{visibleColumn}=internalData;const{tableColumn}=reactData;return tableColumn.length||visibleColumn.length?visibleColumn.filter(column=>column.width==='auto'||column.minWidth==='auto'):[];});const computeFixedColumnSize=(0,_vue.computed)(()=>{const{tableColumn}=reactData;const{collectColumn}=internalData;let fixedSize=0;// 只判断第一层
|
|
49
|
+
return Object.assign({},globalScrollY,scrollY);});const computeScrollbarOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.scrollbarConfig,props.scrollbarConfig);});const computeScrollbarXToTop=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return!!(scrollbarOpts.x&&scrollbarOpts.x.position==='top');});const computeScrollbarYToLeft=(0,_vue.computed)(()=>{const scrollbarOpts=computeScrollbarOpts.value;return!!(scrollbarOpts.y&&scrollbarOpts.y.position==='left');});const computeScrollYThreshold=(0,_vue.computed)(()=>{const virtualYOpts=computeVirtualYOpts.value;const{threshold}=virtualYOpts;if(threshold){return _xeUtils.default.toNumber(threshold);}return 0;});const computeRowHeightMaps=(0,_vue.computed)(()=>{return reactData.rowHeightStore;});const computeDefaultRowHeight=(0,_vue.computed)(()=>{const vSize=computeSize.value;const rowHeightMaps=computeRowHeightMaps.value;return rowHeightMaps[vSize||'default']||18;});const computeColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnConfig,props.columnConfig);});const computeCurrentColumnOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentColumnConfig,props.currentColumnConfig);});const computeCellOpts=(0,_vue.computed)(()=>{const cellOpts=Object.assign({},getConfig().table.cellConfig,props.cellConfig);if(cellOpts.height){cellOpts.height=_xeUtils.default.toNumber(cellOpts.height);}return cellOpts;});const computeHeaderCellOpts=(0,_vue.computed)(()=>{const headerCellOpts=Object.assign({},getConfig().table.headerCellConfig,props.headerCellConfig);const defaultRowHeight=computeDefaultRowHeight.value;const cellOpts=computeCellOpts.value;let headCellHeight=_xeUtils.default.toNumber((0,_util.getCalcHeight)(headerCellOpts.height||cellOpts.height));if($xeGantt){const{computeTaskScaleConfs}=$xeGantt.getComputeMaps();const taskScaleConfs=computeTaskScaleConfs.value;if(taskScaleConfs&&taskScaleConfs.length>2){const ganttMinHeadCellHeight=defaultRowHeight/2*taskScaleConfs.length;headCellHeight=Math.max(ganttMinHeadCellHeight,headCellHeight);}}headerCellOpts.height=headCellHeight;return headerCellOpts;});const computeFooterCellOpts=(0,_vue.computed)(()=>{const footerCellOpts=Object.assign({},getConfig().table.footerCellConfig,props.footerCellConfig);const cellOpts=computeCellOpts.value;footerCellOpts.height=_xeUtils.default.toNumber((0,_util.getCalcHeight)(footerCellOpts.height||cellOpts.height));return footerCellOpts;});const computeRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowConfig,props.rowConfig);});const computeAggregateOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.aggregateConfig||getConfig().table.rowGroupConfig,props.aggregateConfig||props.rowGroupConfig);});const computeRowGroupOpts=(0,_vue.computed)(()=>{return computeAggregateOpts.value;});const computeCurrentRowOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.currentRowConfig,props.currentRowConfig);});const computeRowDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.rowDragConfig,props.rowDragConfig);});const computeColumnDragOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.columnDragConfig,props.columnDragConfig);});const computeResizeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizeConfig,props.resizeConfig);});const computeResizableOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.resizableConfig,props.resizableConfig);});const computeSeqOpts=(0,_vue.computed)(()=>{return Object.assign({startIndex:0},getConfig().table.seqConfig,props.seqConfig);});const computeRadioOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.radioConfig,props.radioConfig);});const computeCheckboxOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.checkboxConfig,props.checkboxConfig);});const computeTooltipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().tooltip,getConfig().table.tooltipConfig,props.tooltipConfig);});const computeTableTipConfig=(0,_vue.computed)(()=>{const{tooltipStore}=reactData;const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts,tooltipStore.currOpts);});const computeValidTipConfig=(0,_vue.computed)(()=>{const tooltipOpts=computeTooltipOpts.value;return Object.assign({},tooltipOpts);});const computeEditOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.editConfig,props.editConfig);});const computeSortOpts=(0,_vue.computed)(()=>{return Object.assign({orders:['asc','desc',null]},getConfig().table.sortConfig,props.sortConfig);});const computeFilterOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.filterConfig,props.filterConfig);});const computeMouseOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.mouseConfig,props.mouseConfig);});const computeAreaOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.areaConfig,props.areaConfig);});const computeKeyboardOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.keyboardConfig,props.keyboardConfig);});const computeClipOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.clipConfig,props.clipConfig);});const computeFNROpts=(0,_vue.computed)(()=>{const fnrOpts=computeFnrOpts.value;return fnrOpts;});const computeFnrOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.fnrConfig,props.fnrConfig);});const computeMenuOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.menuConfig,props.menuConfig);});const computeLeftFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{leftList}=columnStore;let leftWidth=0;for(let i=0;i<leftList.length;i++){const column=leftList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeRightFixedWidth=(0,_vue.computed)(()=>{const{columnStore}=reactData;const{rightList}=columnStore;let leftWidth=0;for(let i=0;i<rightList.length;i++){const column=rightList[i];leftWidth+=column.renderWidth;}return leftWidth;});const computeHeaderMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerOpts=menuOpts.header;return headerOpts&&headerOpts.options?headerOpts.options:[];});const computeBodyMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const bodyOpts=menuOpts.body;return bodyOpts&&bodyOpts.options?bodyOpts.options:[];});const computeFooterMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const footerOpts=menuOpts.footer;return footerOpts&&footerOpts.options?footerOpts.options:[];});const computeIsMenu=(0,_vue.computed)(()=>{const isContentMenu=computeIsContentMenu.value;return isContentMenu;});const computeIsContentMenu=(0,_vue.computed)(()=>{const menuOpts=computeMenuOpts.value;const headerMenu=computeHeaderMenu.value;const bodyMenu=computeBodyMenu.value;const footerMenu=computeFooterMenu.value;return!!(props.menuConfig&&(0,_utils.isEnableConf)(menuOpts)&&(headerMenu.length||bodyMenu.length||footerMenu.length));});const computeMenuList=(0,_vue.computed)(()=>{const{ctxMenuStore}=reactData;const rest=[];ctxMenuStore.list.forEach(list=>{list.forEach(item=>{rest.push(item);});});return rest;});const computeExportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.exportConfig,props.exportConfig);});const computeImportOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.importConfig,props.importConfig);});const computePrintOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.printConfig,props.printConfig);});const computeExpandOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.expandConfig,props.expandConfig);});const computeTreeOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.treeConfig,props.treeConfig);});const computeEmptyOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.emptyRender,props.emptyRender);});const computeLoadingOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.loadingConfig,props.loadingConfig);});const computeCellOffsetWidth=(0,_vue.computed)(()=>{return props.border?Math.max(2,Math.ceil(reactData.scrollbarWidth/reactData.tableColumn.length)):1;});const computeCustomOpts=(0,_vue.computed)(()=>{return Object.assign({},getConfig().table.customConfig,props.customConfig);});const computeTableRowExpandedList=(0,_vue.computed)(()=>{const{tableData,rowExpandedFlag,expandColumn,rowGroupExpandedFlag,treeExpandedFlag}=reactData;const{visibleDataRowIdData,rowExpandedMaps}=internalData;const expandList=[];if(tableData.length&&expandColumn&&rowExpandedFlag&&rowGroupExpandedFlag&&treeExpandedFlag){_xeUtils.default.each(rowExpandedMaps,(row,rowid)=>{if(visibleDataRowIdData[rowid]){expandList.push(row);}});}return expandList;});const computeAutoWidthColumnList=(0,_vue.computed)(()=>{const{visibleColumn}=internalData;const{tableColumn}=reactData;return tableColumn.length||visibleColumn.length?visibleColumn.filter(column=>column.width==='auto'||column.minWidth==='auto'):[];});const computeFixedColumnSize=(0,_vue.computed)(()=>{const{tableColumn}=reactData;const{collectColumn}=internalData;let fixedSize=0;// 只判断第一层
|
|
50
50
|
if(tableColumn.length&&collectColumn.length){collectColumn.forEach(column=>{if(column.renderFixed){fixedSize++;}});}return fixedSize;});const computeIsMaxFixedColumn=(0,_vue.computed)(()=>{const fixedColumnSize=computeFixedColumnSize.value;const columnOpts=computeColumnOpts.value;const{maxFixedSize}=columnOpts;if(maxFixedSize){return fixedColumnSize>=maxFixedSize;}return false;});const computeTableBorder=(0,_vue.computed)(()=>{const{border}=props;if(border===true){return'full';}if(border){return border;}return'default';});const computeIsAllCheckboxDisabled=(0,_vue.computed)(()=>{const{treeConfig}=props;const{tableData}=reactData;const{tableFullData}=internalData;const checkboxOpts=computeCheckboxOpts.value;const{strict,checkMethod}=checkboxOpts;if(strict){if(tableData.length||tableFullData.length){if(checkMethod){if(treeConfig){// 暂时不支持树形结构
|
|
51
51
|
}// 如果所有行都被禁用
|
|
52
|
-
return tableFullData.every(row=>!checkMethod({$table:$xeTable,row}));}return false;}return true;}return false;});const computeVirtualScrollBars=(0,_vue.computed)(()=>{const{overflowX,scrollXLoad,overflowY,scrollYLoad}=reactData;return{x:overflowX&&scrollXLoad,y:overflowY&&scrollYLoad};});const computeRowGroupFields=(0,_vue.computed)(()=>{const rowGroupOpts=computeRowGroupOpts.value;return rowGroupOpts.groupFields;});const computeRowGroupColumns=(0,_vue.computed)(()=>{const{rowGroupList}=reactData;const{fullColumnFieldData}=internalData;const rgColumns=[];rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){rgColumns.push(colRest.column);}});return rgColumns;});const refMaps={refElem,refTooltip,refValidTooltip,refTableFilter,refTableCustom,refTableMenu,refTableHeader,refTableBody,refTableFooter,refTableLeftHeader,refTableLeftBody,refTableLeftFooter,refTableRightHeader,refTableRightBody,refTableRightFooter,refLeftContainer,refRightContainer,refColResizeBar,refRowResizeBar,refScrollXVirtualElem,refScrollYVirtualElem,refScrollXHandleElem,refScrollYHandleElem,refScrollXSpaceElem,refScrollYSpaceElem};const computeMaps={computeSize,computeTableId,computeValidOpts,computeRowField,computeVirtualXOpts,computeVirtualYOpts,computeScrollbarOpts,computeScrollbarXToTop,computeScrollbarYToLeft,computeColumnOpts,computeCurrentColumnOpts,computeScrollXThreshold,computeScrollYThreshold,computeRowHeightMaps,computeDefaultRowHeight,computeCellOpts,computeHeaderCellOpts,computeFooterCellOpts,computeRowOpts,computeAggregateOpts,computeRowGroupOpts,computeCurrentRowOpts,computeRowDragOpts,computeColumnDragOpts,computeResizeOpts,computeResizableOpts,computeSeqOpts,computeRadioOpts,computeCheckboxOpts,computeTooltipOpts,computeEditOpts,computeSortOpts,computeFilterOpts,computeMouseOpts,computeAreaOpts,computeKeyboardOpts,computeClipOpts,computeFnrOpts,computeHeaderMenu,computeBodyMenu,computeFooterMenu,computeIsMenu,computeMenuList,computeMenuOpts,computeExportOpts,computeImportOpts,computePrintOpts,computeExpandOpts,computeTreeOpts,computeEmptyOpts,computeLoadingOpts,computeCellOffsetWidth,computeCustomOpts,computeLeftFixedWidth,computeRightFixedWidth,computeFixedColumnSize,computeIsMaxFixedColumn,computeIsAllCheckboxDisabled,computeVirtualScrollBars,computeRowGroupFields,computeRowGroupColumns,computeFNROpts,computeSXOpts,computeSYOpts};const $xeTable={xID,props:props,context,reactData,internalData,getRefMaps:()=>refMaps,getComputeMaps:()=>computeMaps,xeGrid:$xeGrid,xeGantt:$xeGantt,// 已废弃
|
|
52
|
+
return tableFullData.every(row=>!checkMethod({$table:$xeTable,row}));}return false;}return true;}return false;});const computeVirtualScrollBars=(0,_vue.computed)(()=>{const{overflowX,scrollXLoad,overflowY,scrollYLoad}=reactData;return{x:overflowX&&scrollXLoad,y:overflowY&&scrollYLoad};});const computeRowGroupFields=(0,_vue.computed)(()=>{const rowGroupOpts=computeRowGroupOpts.value;return rowGroupOpts.groupFields;});const computeRowGroupColumns=(0,_vue.computed)(()=>{const{rowGroupList}=reactData;const{fullColumnFieldData}=internalData;const rgColumns=[];rowGroupList.forEach(aggConf=>{const colRest=fullColumnFieldData[aggConf.field];if(colRest){rgColumns.push(colRest.column);}});return rgColumns;});const refMaps={refElem,refTooltip,refValidTooltip,refTableFilter,refTableCustom,refTableMenu,refTableHeader,refTableBody,refTableFooter,refTableLeftHeader,refTableLeftBody,refTableLeftFooter,refTableRightHeader,refTableRightBody,refTableRightFooter,refLeftContainer,refRightContainer,refColResizeBar,refRowResizeBar,refScrollXVirtualElem,refScrollYVirtualElem,refScrollXHandleElem,refScrollYHandleElem,refScrollXSpaceElem,refScrollYSpaceElem};const computeMaps={computeSize,computeTableId,computeValidOpts,computeRowField,computeVirtualXOpts,computeVirtualYOpts,computeScrollbarOpts,computeScrollbarXToTop,computeScrollbarYToLeft,computeColumnOpts,computeCurrentColumnOpts,computeScrollXThreshold,computeScrollYThreshold,computeRowHeightMaps,computeDefaultRowHeight,computeCellOpts,computeHeaderCellOpts,computeFooterCellOpts,computeRowOpts,computeAggregateOpts,computeRowGroupOpts,computeCurrentRowOpts,computeRowDragOpts,computeColumnDragOpts,computeResizeOpts,computeResizableOpts,computeSeqOpts,computeRadioOpts,computeCheckboxOpts,computeTooltipOpts,computeEditOpts,computeSortOpts,computeFilterOpts,computeMouseOpts,computeAreaOpts,computeKeyboardOpts,computeClipOpts,computeFnrOpts,computeHeaderMenu,computeBodyMenu,computeFooterMenu,computeIsMenu,computeIsContentMenu,computeMenuList,computeMenuOpts,computeExportOpts,computeImportOpts,computePrintOpts,computeExpandOpts,computeTreeOpts,computeEmptyOpts,computeLoadingOpts,computeCellOffsetWidth,computeCustomOpts,computeLeftFixedWidth,computeRightFixedWidth,computeFixedColumnSize,computeIsMaxFixedColumn,computeIsAllCheckboxDisabled,computeVirtualScrollBars,computeRowGroupFields,computeRowGroupColumns,computeFNROpts,computeSXOpts,computeSYOpts};const $xeTable={xID,props:props,context,reactData,internalData,getRefMaps:()=>refMaps,getComputeMaps:()=>computeMaps,xeGrid:$xeGrid,xeGantt:$xeGantt,// 已废弃
|
|
53
53
|
xegrid:$xeGrid};const eqCellValue=(row1,row2,field)=>{const val1=_xeUtils.default.get(row1,field);const val2=_xeUtils.default.get(row2,field);if((0,_utils.eqEmptyValue)(val1)&&(0,_utils.eqEmptyValue)(val2)){return true;}if(_xeUtils.default.isString(val1)||_xeUtils.default.isNumber(val1)){return''+val1===''+val2;}return _xeUtils.default.isEqual(val1,val2);};const handleKeyField=()=>{const keyField=computeRowField.value;internalData.currKeyField=keyField;internalData.isCurrDeepKey=(0,_util.hasDeepKey)(keyField);};const hangleStorageDefaultValue=(value,isAll)=>{return _xeUtils.default.isBoolean(value)?value:isAll;};const getNextSortOrder=column=>{const sortOpts=computeSortOpts.value;const{orders=[]}=sortOpts;const currOrder=column.order||null;const oIndex=orders.indexOf(currOrder)+1;return orders[oIndex<orders.length?oIndex:0];};const getCustomStorageMap=id=>{const version=getConfig().version;const rest=_xeUtils.default.toStringJSON(localStorage.getItem(customStorageKey)||'');const maps=rest&&rest._v===version?rest:{_v:version};return(id?maps[id]:maps)||{};};const setCustomStorageMap=(id,data)=>{const version=getConfig().version;const maps=getCustomStorageMap();maps[id]=data||undefined;maps._v=version;localStorage.setItem(customStorageKey,_xeUtils.default.toJSONString(maps));};const getRecoverRowMaps=keyMaps=>{const{fullAllDataRowIdData}=internalData;const restKeys={};_xeUtils.default.each(keyMaps,(row,rowid)=>{if(fullAllDataRowIdData[rowid]){restKeys[rowid]=row;}});return restKeys;};const handleReserveRow=reserveRowMap=>{const{fullDataRowIdData}=internalData;const reserveList=[];_xeUtils.default.each(reserveRowMap,(item,rowid)=>{if(fullDataRowIdData[rowid]&&$xeTable.findRowIndexOf(reserveList,fullDataRowIdData[rowid].row)===-1){reserveList.push(fullDataRowIdData[rowid].row);}});return reserveList;};const handleVirtualXVisible=()=>{const{isScrollXBig,scrollXWidth}=reactData;const{elemStore,visibleColumn,fullColumnIdData}=internalData;const leftFixedWidth=computeLeftFixedWidth.value;const rightFixedWidth=computeRightFixedWidth.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientWidth=bodyScrollElem.clientWidth;let scrollLeft=bodyScrollElem.scrollLeft;if(isScrollXBig){scrollLeft=Math.ceil((scrollXWidth-clientWidth)*Math.min(1,scrollLeft/(maxXWidth-clientWidth)));}const startLeft=scrollLeft+leftFixedWidth;const endLeft=scrollLeft+clientWidth-rightFixedWidth;let leftIndex=0;let rightIndex=visibleColumn.length;while(leftIndex<rightIndex){const cIndex=Math.floor((leftIndex+rightIndex)/2);const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};if(colRest.oLeft<=startLeft){leftIndex=cIndex+1;}else{rightIndex=cIndex;}}let visibleSize=0;const toVisibleIndex=leftIndex===visibleColumn.length?leftIndex:Math.max(0,leftIndex<visibleColumn.length?leftIndex-2:0);for(let cIndex=toVisibleIndex,cLen=visibleColumn.length;cIndex<cLen;cIndex++){const column=visibleColumn[cIndex];const colid=column.id;const colRest=fullColumnIdData[colid]||{};visibleSize++;if(colRest.oLeft>endLeft||visibleSize>=60){break;}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(1,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calcVarRowHeightConfig=(sizeKey,sizeEl)=>{const{rowHeightStore}=reactData;if(sizeEl&&sizeEl.clientHeight){rowHeightStore[sizeKey]=sizeEl.clientHeight;}};const computeRowHeight=()=>{const{isAllOverflow}=reactData;const tableHeader=refTableHeader.value;const tableBody=refTableBody.value;const tableBodyElem=tableBody?tableBody.$el:null;const defaultRowHeight=computeDefaultRowHeight.value;let rowHeight=0;if(isAllOverflow){if(tableBodyElem){const tableHeaderElem=tableHeader?tableHeader.$el:null;let firstTrElem;firstTrElem=tableBodyElem.querySelector('tr');if(!firstTrElem&&tableHeaderElem){firstTrElem=tableHeaderElem.querySelector('tr');}if(firstTrElem){rowHeight=firstTrElem.clientHeight;}}if(!rowHeight){rowHeight=defaultRowHeight;}}else{rowHeight=defaultRowHeight;}// 最低支持 18px 行高
|
|
54
54
|
return Math.max(18,rowHeight);};const handleVirtualYVisible=()=>{const{isAllOverflow,expandColumn,isScrollYBig,scrollYHeight}=reactData;const{elemStore,isResizeCellHeight,afterFullData,fullAllDataRowIdData}=internalData;const rowOpts=computeRowOpts.value;const cellOpts=computeCellOpts.value;const defaultRowHeight=computeDefaultRowHeight.value;const bodyScrollElem=(0,_util.getRefElem)(elemStore['main-body-scroll']);if(bodyScrollElem){const clientHeight=bodyScrollElem.clientHeight;let scrollTop=bodyScrollElem.scrollTop;if(isScrollYBig){scrollTop=Math.ceil((scrollYHeight-clientHeight)*Math.min(1,scrollTop/(maxYHeight-clientHeight)));}const startTop=scrollTop;const endTop=scrollTop+clientHeight;let toVisibleIndex=-1;let visibleSize=0;const isCustomCellHeight=isResizeCellHeight||cellOpts.height||rowOpts.height;if(!isCustomCellHeight&&!expandColumn&&isAllOverflow){toVisibleIndex=Math.floor(startTop/defaultRowHeight)-1;visibleSize=Math.ceil(clientHeight/defaultRowHeight)+1;}else{const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);let leftIndex=0;let rightIndex=afterFullData.length;while(leftIndex<rightIndex){const rIndex=Math.floor((leftIndex+rightIndex)/2);const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};if(rowRest.oTop<=startTop){leftIndex=rIndex+1;}else{rightIndex=rIndex;}}toVisibleIndex=leftIndex===afterFullData.length?leftIndex:Math.max(0,leftIndex<afterFullData.length?leftIndex-2:0);for(let rIndex=toVisibleIndex,rLen=afterFullData.length;rIndex<rLen;rIndex++){const row=afterFullData[rIndex];const rowid=handleGetRowId(row);const rowRest=fullAllDataRowIdData[rowid]||{};visibleSize++;if(rowRest.oTop>endTop||visibleSize>=100){break;}}}return{toVisibleIndex:Math.max(0,toVisibleIndex),visibleSize:Math.max(6,visibleSize)};}return{toVisibleIndex:0,visibleSize:6};};const calculateMergerOffsetIndex=(list,offsetItem,type)=>{for(let mcIndex=0,len=list.length;mcIndex<len;mcIndex++){const mergeItem=list[mcIndex];const{startIndex,endIndex}=offsetItem;const mergeStartIndex=mergeItem[type];const mergeSpanNumber=mergeItem[type+'span'];const mergeEndIndex=mergeStartIndex+mergeSpanNumber;if(mergeStartIndex<startIndex&&startIndex<mergeEndIndex){offsetItem.startIndex=mergeStartIndex;}if(mergeStartIndex<endIndex&&endIndex<mergeEndIndex){offsetItem.endIndex=mergeEndIndex;}if(offsetItem.startIndex!==startIndex||offsetItem.endIndex!==endIndex){mcIndex=-1;}}};function buildMergeData(mergeConfigs){const mergeMaps={};if(mergeConfigs&&mergeConfigs.length){for(let mIndex=0;mIndex<mergeConfigs.length;mIndex++){const{row:_rowIndex,col:_columnIndex,rowspan:mergeRowspan,colspan:mergeColspan}=mergeConfigs[mIndex];for(let i=0;i<mergeRowspan;i++){for(let j=0;j<mergeColspan;j++){mergeMaps[`${_rowIndex+i}:${_columnIndex+j}`]=!i&&!j?{rowspan:mergeRowspan,colspan:mergeColspan}:{rowspan:0,colspan:0};}}}}return mergeMaps;}const handleUpdateMergeBodyCells=merges=>{internalData.mergeBodyList=[];internalData.mergeBodyMaps={};internalData.mergeBodyCellMaps={};$xeTable.setMergeCells(merges);};const handleBodyMerge=merges=>{const{fullAllDataRowIdData,fullColumnIdData,visibleColumn,afterFullData,mergeBodyList,mergeBodyMaps}=internalData;if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=afterFullData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeBodyList.push(mergeItem);}}}});}};const removeBodyMerges=merges=>{const{mergeBodyList,fullColumnIdData,fullAllDataRowIdData,mergeBodyMaps}=internalData;const rest=[];if(merges){const{handleGetRowId}=(0,_util.createHandleGetRowId)($xeTable);if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;let mergeRowIndex=-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeRow)){mergeRowIndex=margeRow;}else{const rowid=margeRow?handleGetRowId(margeRow):null;const rowRest=rowid?fullAllDataRowIdData[rowid]:null;if(rowRest){mergeRowIndex=rowRest._index;}}if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeBodyList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeBodyList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(rItems[0]);if(mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeBodyMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeHeaderCells=merges=>{internalData.mergeHeaderList=[];internalData.mergeHeaderMaps={};internalData.mergeHeaderCellMaps={};$xeTable.setMergeHeaderCells(merges);};const handleHeaderMerge=merges=>{const{footerTableData}=reactData;const{mergeHeaderList,mergeHeaderMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeHeaderList.push(mergeItem);}}}});}};const removeHeaderMerges=merges=>{const{mergeHeaderList,fullColumnIdData,mergeHeaderMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeHeaderList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeHeaderList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeHeaderMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleUpdateMergeFooterCells=merges=>{internalData.mergeFooterList=[];internalData.mergeFooterMaps={};internalData.mergeFooterCellMaps={};$xeTable.setMergeFooterCells(merges);};const handleFooterMerge=merges=>{const{footerTableData}=reactData;const{mergeFooterList,mergeFooterMaps,fullColumnIdData}=internalData;if(merges){const{visibleColumn}=internalData;if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{let{row:margeRow,col:margeCol,rowspan,colspan}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}if(mergeRowIndex>-1&&mergeColumnIndex>-1&&(rowspan||colspan)){rowspan=_xeUtils.default.toNumber(rowspan)||1;colspan=_xeUtils.default.toNumber(colspan)||1;if(rowspan>1||colspan>1){const row=footerTableData[mergeRowIndex];const column=visibleColumn[mergeColumnIndex];let mergeItem=mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];if(mergeItem){mergeItem.rowspan=rowspan;mergeItem.colspan=colspan;mergeItem._rowspan=rowspan;mergeItem._colspan=colspan;}else{mergeItem={row:mergeRowIndex,col:mergeColumnIndex,rowspan,colspan,_row:row,_col:column,_rowspan:rowspan,_colspan:colspan};mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]=mergeItem;mergeFooterList.push(mergeItem);}}}});}};const removeFooterMerges=merges=>{const{mergeFooterList,fullColumnIdData,mergeFooterMaps}=internalData;const rest=[];if(merges){if(!_xeUtils.default.isArray(merges)){merges=[merges];}merges.forEach(item=>{const{row:margeRow,col:margeCol}=item;const mergeRowIndex=_xeUtils.default.isNumber(margeRow)?margeRow:-1;let mergeColumnIndex=-1;if(_xeUtils.default.isNumber(margeCol)){mergeColumnIndex=margeCol;}else{const colid=margeCol?margeCol.id:null;const colRest=colid?fullColumnIdData[colid]:null;if(colRest){mergeColumnIndex=colRest._index;}}const mcIndex=_xeUtils.default.findIndexOf(mergeFooterList,item=>item.row===mergeRowIndex&&item.col===mergeColumnIndex);if(mcIndex>-1){const rItems=mergeFooterList.splice(mcIndex,1);const item=rItems[0];if(item){rest.push(item);if(mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`]){delete mergeFooterMaps[`${mergeRowIndex}:${mergeColumnIndex}`];}}}});}return rest;};const handleSortEvent=(evnt,sortConfs,isUpdate)=>{const{tableFullColumn}=internalData;const sortOpts=computeSortOpts.value;const{multiple,remote,orders}=sortOpts;if(!_xeUtils.default.isArray(sortConfs)){sortConfs=[sortConfs];}if(sortConfs&&sortConfs.length){const orderActiveMaps={};if(!multiple){sortConfs=[sortConfs[0]];tableFullColumn.forEach(column=>{if(column.order){orderActiveMaps[column.id]=column;}});}const sortColMpps={};let firstColumn=null;sortConfs.forEach((confs,index)=>{let{field,order}=confs;let column=field;if(_xeUtils.default.isString(field)){column=$xeTable.getColumnByField(field);}if(!firstColumn){firstColumn=column;}if(column&&column.sortable){if(orders&&orders.indexOf(order)===-1){order=getNextSortOrder(column);}if(column.order!==order){column.order=order;}column.sortTime=Date.now()+index;sortColMpps[column.id]=column;}});if(!multiple){_xeUtils.default.each(orderActiveMaps,(oaCol,oaId)=>{if(!sortColMpps[oaId]){oaCol.order=null;}});}if(isUpdate){if(!remote){$xeTable.handleTableData(true);}}if(evnt){$xeTable.handleColumnSortEvent(evnt,firstColumn);}return(0,_vue.nextTick)().then(()=>{updateRowOffsetTop();$xeTable.updateCellAreas();return updateStyle();});}return(0,_vue.nextTick)();};const clearAllSort=()=>{const{tableFullColumn}=internalData;tableFullColumn.forEach(column=>{column.order=null;});};const calcTableHeight=key=>{const{editConfig}=props;const{parentHeight}=reactData;let val=props[key];if(key==='minHeight'){const defMinHeight=getConfig().table.minHeight;if(_xeUtils.default.eqNull(val)){if((0,_utils.eqEmptyValue)(defMinHeight)){// 编辑模式默认最小高度
|
|
55
55
|
if((0,_utils.isEnableConf)(editConfig)){val=144;}}else{val=defMinHeight;}}}let num=0;if(val){if(val==='100%'||val==='auto'){num=parentHeight;}else{const excludeHeight=$xeTable.getExcludeHeight();if((0,_dom.isScale)(val)){num=Math.floor((_xeUtils.default.toInteger(val)||1)/100*parentHeight);}else{num=_xeUtils.default.toNumber(val);}num=Math.max(40,num-excludeHeight);}}return num;};const handleCustomRestore=storeData=>{const{aggregateConfig,rowGroupConfig}=props;const{collectColumn}=internalData;const customOpts=computeCustomOpts.value;const{storage,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=isAllCustom?{}:Object.assign({},storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);let{resizableData,sortData,visibleData,fixedData,aggGroupData,aggFuncData}=storeData;// 处理还原
|
|
@@ -61,7 +61,7 @@ if(isCustomSort&&sortData){allCols.forEach(column=>{const colKey=column.getKey()
|
|
|
61
61
|
*/const restoreCustomStorage=()=>{const{customConfig}=props;const tableId=computeTableId.value;const customOpts=computeCustomOpts.value;const{storage,restoreStore,storeOptions}=customOpts;const isAllCustom=storage===true;const storageOpts=isAllCustom?{}:Object.assign({},storage||{},storeOptions);const isCustomResizable=hangleStorageDefaultValue(storageOpts.resizable,isAllCustom);const isCustomVisible=hangleStorageDefaultValue(storageOpts.visible,isAllCustom);const isCustomFixed=hangleStorageDefaultValue(storageOpts.fixed,isAllCustom);const isCustomSort=hangleStorageDefaultValue(storageOpts.sort,isAllCustom);const isCustomAggGroup=hangleStorageDefaultValue(storageOpts.aggGroup,isAllCustom);const isCustomAggFunc=hangleStorageDefaultValue(storageOpts.aggFunc,isAllCustom);if(storage&&(customConfig?(0,_utils.isEnableConf)(customOpts):customOpts.enabled)&&(isCustomResizable||isCustomVisible||isCustomFixed||isCustomSort||isCustomAggGroup||isCustomAggFunc)){if(!tableId){(0,_log.errLog)('vxe.error.reqProp',['id']);return;}const storeData=getCustomStorageMap(tableId);if(restoreStore){return Promise.resolve(restoreStore({$table:$xeTable,id:tableId,type:'restore',storeData})).then(storeData=>{if(!storeData){return;}return handleCustomRestore(storeData);}).catch(e=>e);}else{return handleCustomRestore(storeData);}}};/**
|
|
62
62
|
* 更新数据列的 Map
|
|
63
63
|
* 牺牲数据组装的耗时,用来换取使用过程中的流畅
|
|
64
|
-
*/const cacheColumnMap=()=>{const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=computeMouseOpts.value;const expandOpts=computeExpandOpts.value;const columnOpts=computeColumnOpts.value;const columnDragOpts=computeColumnDragOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=computeCustomOpts.value;const{storage}=customOpts;const rowOpts=computeRowOpts.value;const isGroup=collectColumn.some(_utils.hasChildrenList);let isAllOverflow=!!
|
|
64
|
+
*/const cacheColumnMap=()=>{const{treeConfig,showOverflow}=props;const{tableFullColumn,collectColumn}=internalData;const fullColIdData=internalData.fullColumnIdData={};const fullColFieldData=internalData.fullColumnFieldData={};const mouseOpts=computeMouseOpts.value;const expandOpts=computeExpandOpts.value;const columnOpts=computeColumnOpts.value;const columnDragOpts=computeColumnDragOpts.value;const virtualYOpts=computeVirtualYOpts.value;const{isCrossDrag,isSelfToChildDrag}=columnDragOpts;const customOpts=computeCustomOpts.value;const treeOpts=computeTreeOpts.value;const{storage}=customOpts;const rowOpts=computeRowOpts.value;const isGroup=collectColumn.some(_utils.hasChildrenList);let isAllOverflow=!!showOverflow;let rowGroupColumn;let expandColumn;let treeNodeColumn;let checkboxColumn;let radioColumn;let htmlColumn;let hasFixed;const handleFunc=(column,index,items,path,parentColumn)=>{const{id:colid,field,fixed,type,treeNode,rowGroupNode}=column;const rest={$index:-1,_index:-1,column,colid,index,items,parent:parentColumn||null,width:0,oLeft:0};if(field){if(fullColFieldData[field]){(0,_log.errLog)('vxe.error.colRepet',['field',field]);}fullColFieldData[field]=rest;}else{if(storage&&!type){(0,_log.errLog)('vxe.error.reqSupportProp',['storage',`${column.getTitle()||type||''} -> field=?`]);}if(columnOpts.drag&&(isCrossDrag||isSelfToChildDrag)){(0,_log.errLog)('vxe.error.reqSupportProp',['column-drag-config.isCrossDrag | column-drag-config.isSelfToChildDrag',`${column.getTitle()||type||''} -> field=?`]);}}if(!hasFixed&&fixed){hasFixed=fixed;}if(!htmlColumn&&type==='html'){htmlColumn=column;}if(treeNode){if(treeNodeColumn){(0,_log.warnLog)('vxe.error.colRepet',['tree-node',treeNode]);}if(!treeNodeColumn){treeNodeColumn=column;}}if(rowGroupNode){if(treeNodeColumn){(0,_log.warnLog)('vxe.error.colRepet',['row-group-node',rowGroupNode]);}if(!rowGroupColumn){rowGroupColumn=column;}}if(type==='expand'){if(expandColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!expandColumn){expandColumn=column;}}if(type==='checkbox'){if(checkboxColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!checkboxColumn){checkboxColumn=column;}}else if(type==='radio'){if(radioColumn){(0,_log.warnLog)('vxe.error.colRepet',['type',type]);}if(!radioColumn){radioColumn=column;}}if(isAllOverflow&&column.showOverflow===false){isAllOverflow=false;}if(fullColIdData[colid]){(0,_log.errLog)('vxe.error.colRepet',['colId',colid]);}fullColIdData[colid]=rest;};if(isGroup){_xeUtils.default.eachTree(collectColumn,(column,index,items,path,parentColumn,nodes)=>{column.level=nodes.length;handleFunc(column,index,items,path,parentColumn);});}else{tableFullColumn.forEach(handleFunc);}if(expandColumn&&expandOpts.mode!=='fixed'&&virtualYOpts.enabled){(0,_log.warnLog)('vxe.error.notConflictProp',['column.type="expand','virtual-y-config.enabled=false']);}if(expandColumn&&expandOpts.mode!=='fixed'&&mouseOpts.area){(0,_log.errLog)('vxe.error.errConflicts',['mouse-config.area','column.type=expand']);}if(expandColumn&&expandOpts.mode!=='inside'&&treeConfig&&!treeOpts.transform){(0,_log.errLog)('vxe.error.notConflictProp',['tree-config.transform=false','expand-config.mode=fixed']);}if(htmlColumn){if(!columnOpts.useKey){(0,_log.errLog)('vxe.error.notSupportProp',['column.type=html','column-config.useKey=false','column-config.useKey=true']);}if(!rowOpts.useKey){(0,_log.errLog)('vxe.error.notSupportProp',['column.type=html','row-config.useKey=false','row-config.useKey=true']);}}reactData.isGroup=isGroup;reactData.rowGroupColumn=rowGroupColumn;reactData.treeNodeColumn=treeNodeColumn;reactData.expandColumn=expandColumn;reactData.checkboxColumn=checkboxColumn;reactData.radioColumn=radioColumn;reactData.isAllOverflow=isAllOverflow;};const updateHeight=()=>{internalData.customHeight=calcTableHeight('height');internalData.customMinHeight=calcTableHeight('minHeight');internalData.customMaxHeight=calcTableHeight('maxHeight');// 如果启用虚拟滚动,默认高度
|
|
65
65
|
if(reactData.scrollYLoad&&!(internalData.customHeight||internalData.customMinHeight)){internalData.customHeight=300;}};const calcColumnAutoWidth=(column,wrapperEl)=>{const columnOpts=computeColumnOpts.value;const{autoOptions}=columnOpts;const{isCalcHeader,isCalcBody,isCalcFooter}=autoOptions||{};const querySelections=[];if(isCalcHeader){querySelections.push(`.vxe-header-cell--wrapper[colid="${column.id}"]`);}if(isCalcBody){querySelections.push(`.vxe-body-cell--wrapper[colid="${column.id}"]`);}if(isCalcFooter){querySelections.push(`.vxe-footer-cell--wrapper[colid="${column.id}"]`);}const cellElemList=querySelections.length?wrapperEl.querySelectorAll(querySelections.join(',')):[];let leftRightPadding=0;const firstCellEl=cellElemList[0];if(firstCellEl&&firstCellEl.parentElement){const cellStyle=getComputedStyle(firstCellEl.parentElement);leftRightPadding=Math.ceil(_xeUtils.default.toNumber(cellStyle.paddingLeft)+_xeUtils.default.toNumber(cellStyle.paddingRight));}let colWidth=column.renderAutoWidth-leftRightPadding;for(let i=0;i<cellElemList.length;i++){const celEl=cellElemList[i];colWidth=Math.max(colWidth,celEl?Math.ceil(celEl.scrollWidth)+4:0);}return colWidth+leftRightPadding;};const calcCellWidth=()=>{const autoWidthColumnList=computeAutoWidthColumnList.value;const{fullColumnIdData}=internalData;const el=refElem.value;if(el){el.setAttribute('data-calc-col','Y');autoWidthColumnList.forEach(column=>{const colid=column.id;const colRest=fullColumnIdData[colid];const colWidth=calcColumnAutoWidth(column,el);if(colRest){colRest.width=Math.max(colWidth,colRest.width);}column.renderAutoWidth=colWidth;});$xeTable.analyColumnWidth();el.removeAttribute('data-calc-col');}};/**
|
|
66
66
|
* 列宽算法,计算单元格列宽,动态分配可用剩余空间
|
|
67
67
|
* 支持 px、%、固定 混合分配
|
|
@@ -619,7 +619,7 @@ if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如
|
|
|
619
619
|
if(mouseOpts.selected){(0,_vue.nextTick)(()=>$xeTable.handleSelected(params,evnt));}}}}dispatchEvent('keydown',{},evnt);dispatchEvent('keydown-end',{},evnt);});}};/**
|
|
620
620
|
* 全局键盘事件
|
|
621
621
|
*/const handleGlobalKeydownEvent=evnt=>{// 该行为只对当前激活的表格有效
|
|
622
|
-
if(internalData.isActivated){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData}=internalData;const
|
|
622
|
+
if(internalData.isActivated){$xeTable.preventEvent(evnt,'event.keydown',null,()=>{const{mouseConfig,keyboardConfig,treeConfig,editConfig,highlightCurrentRow,highlightCurrentColumn}=props;const{ctxMenuStore,editStore,currentRow}=reactData;const{afterFullData}=internalData;const isContentMenu=computeIsContentMenu.value;const bodyMenu=computeBodyMenu.value;const keyboardOpts=computeKeyboardOpts.value;const mouseOpts=computeMouseOpts.value;const editOpts=computeEditOpts.value;const treeOpts=computeTreeOpts.value;const menuList=computeMenuList.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const{selected,actived}=editStore;const childrenField=treeOpts.children||treeOpts.childrenField;const keyCode=evnt.keyCode;const isEsc=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ESCAPE);const hasBackspaceKey=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.BACKSPACE);const isTab=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.TAB);const isEnter=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ENTER);const isSpacebar=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.SPACEBAR);const isLeftArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_LEFT);const isUpArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_UP);const isRightArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_RIGHT);const isDwArrow=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.ARROW_DOWN);const hasDeleteKey=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.DELETE);const isF2=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.F2);const isContextMenu=globalEvents.hasKey(evnt,GLOBAL_EVENT_KEYS.CONTEXT_MENU);const isControlKey=(0,_dom.hasControlKey)(evnt);const hasShiftKey=evnt.shiftKey;const isAltKey=evnt.altKey;const operArrow=isLeftArrow||isUpArrow||isRightArrow||isDwArrow;const operCtxMenu=isContentMenu&&ctxMenuStore.visible&&(isEnter||isSpacebar||operArrow);const isEditStatus=(0,_utils.isEnableConf)(editConfig)&&actived.column&&actived.row;const beforeEditMethod=editOpts.beforeEditMethod||editOpts.activeMethod;if(operCtxMenu){// 如果配置了右键菜单; 支持方向键操作、回车
|
|
623
623
|
evnt.preventDefault();if(ctxMenuStore.showChild&&(0,_utils.hasChildrenList)(ctxMenuStore.selected)){$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selectChild',isLeftArrow,false,ctxMenuStore.selected.children);}else{$xeTable.moveCtxMenu(evnt,ctxMenuStore,'selected',isRightArrow,true,menuList);}}else if(keyboardConfig&&mouseConfig&&mouseOpts.area&&$xeTable.handleKeyboardCellAreaEvent){$xeTable.handleKeyboardCellAreaEvent(evnt);}else if(isEsc){// 如果按下了 Esc 键,关闭快捷菜单、筛选
|
|
624
624
|
if($xeTable.closeMenu){$xeTable.closeMenu();}$xeTable.closeFilter();if(keyboardConfig&&keyboardOpts.isEsc){// 如果是激活编辑状态,则取消编辑
|
|
625
625
|
if(actived.row){const params=actived.args;$xeTable.handleClearEdit(evnt);// 如果配置了选中功能,则为选中状态
|
|
@@ -661,7 +661,7 @@ if(_xeUtils.default.isFunction(slotFunc)){return(0,_vn.getSlotVNs)(slotFunc(para
|
|
|
661
661
|
* 获取父容器元素
|
|
662
662
|
*/getParentElem(){const el=refElem.value;if($xeGGWrapper){const gridEl=$xeGGWrapper.getRefMaps().refElem.value;return gridEl?gridEl.parentNode:null;}return el?el.parentNode:null;},/**
|
|
663
663
|
* 获取父容器的高度
|
|
664
|
-
*/getParentHeight(){const{height}=props;const el=refElem.value;if(el){const parentElem=el.parentNode;const parentPaddingSize=height==='100%'||height==='auto'?(0,_dom.getPaddingTopBottomSize)(parentElem):0;let parentWrapperHeight=0;if(parentElem){if($
|
|
664
|
+
*/getParentHeight(){const{height}=props;const el=refElem.value;if(el){const parentElem=el.parentNode;const parentPaddingSize=height==='100%'||height==='auto'?(0,_dom.getPaddingTopBottomSize)(parentElem):0;let parentWrapperHeight=0;if(parentElem){if($xeGantt&&(0,_dom.hasClass)(parentElem,'vxe-gantt--table-wrapper')){parentWrapperHeight=$xeGantt.getParentHeight();}else if($xeGrid&&(0,_dom.hasClass)(parentElem,'vxe-grid--table-wrapper')){parentWrapperHeight=$xeGrid.getParentHeight();}else{parentWrapperHeight=parentElem.clientHeight;}}return Math.floor(parentWrapperHeight-parentPaddingSize);}return 0;},/**
|
|
665
665
|
* 获取需要排除的高度
|
|
666
666
|
* 但渲染表格高度时,需要排除工具栏或分页等相关组件的高度
|
|
667
667
|
* 如果存在表尾合计滚动条,则需要排除滚动条高度
|
|
@@ -839,7 +839,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
839
839
|
* 表体
|
|
840
840
|
*/(0,_vue.h)(_body.default,{ref:refTableBody,tableData,tableColumn}),/**
|
|
841
841
|
* 表尾
|
|
842
|
-
*/showFooter?(0,_vue.h)(_footer.default,{ref:refTableFooter,footerTableData,tableColumn}):renderEmptyElement($xeTable)]),(0,_vue.h)('div',{class:'vxe-table--fixed-wrapper'},[leftList&&leftList.length&&overflowX?renderFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const renderBody=()=>{const scrollbarYToLeft=computeScrollbarYToLeft.value;return(0,_vue.h)('div',{class:'vxe-table--layout-wrapper'},scrollbarYToLeft?[renderScrollY(),renderViewport()]:[renderViewport(),renderScrollY()]);};const renderVN=()=>{const{loading,stripe,showHeader,height,treeConfig,mouseConfig,showFooter,highlightCell,highlightHoverRow,highlightHoverColumn,editConfig,editRules}=props;const{isGroup,overflowX,overflowY,scrollXLoad,scrollYLoad,tableData,initStore,isRowGroupStatus,columnStore,filterStore,customStore,tooltipStore}=reactData;const{teleportToWrapperElem}=internalData;const{leftList,rightList}=columnStore;const loadingSlot=slots.loading;const tipSlots={header:slots.headerTooltip||slots['header-tooltip'],body:slots.tooltip,footer:slots.footerTooltip||slots['footer-tooltip']};const currTooltipSlot=tooltipStore.visible&&tooltipStore.type?tipSlots[tooltipStore.type]:null;const rowDragOpts=computeRowDragOpts.value;const tableTipConfig=computeTableTipConfig.value;const validTipConfig=computeValidTipConfig.value;const validOpts=computeValidOpts.value;const checkboxOpts=computeCheckboxOpts.value;const treeOpts=computeTreeOpts.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const vSize=computeSize.value;const tableBorder=computeTableBorder.value;const mouseOpts=computeMouseOpts.value;const areaOpts=computeAreaOpts.value;const loadingOpts=computeLoadingOpts.value;const
|
|
842
|
+
*/showFooter?(0,_vue.h)(_footer.default,{ref:refTableFooter,footerTableData,tableColumn}):renderEmptyElement($xeTable)]),(0,_vue.h)('div',{class:'vxe-table--fixed-wrapper'},[leftList&&leftList.length&&overflowX?renderFixed('left'):renderEmptyElement($xeTable),rightList&&rightList.length&&overflowX?renderFixed('right'):renderEmptyElement($xeTable)]),renderRowExpandedVNs()]);};const renderBody=()=>{const scrollbarYToLeft=computeScrollbarYToLeft.value;return(0,_vue.h)('div',{class:'vxe-table--layout-wrapper'},scrollbarYToLeft?[renderScrollY(),renderViewport()]:[renderViewport(),renderScrollY()]);};const renderVN=()=>{const{loading,stripe,showHeader,height,treeConfig,mouseConfig,showFooter,highlightCell,highlightHoverRow,highlightHoverColumn,editConfig,editRules}=props;const{isGroup,overflowX,overflowY,scrollXLoad,scrollYLoad,tableData,initStore,isRowGroupStatus,columnStore,filterStore,customStore,tooltipStore}=reactData;const{teleportToWrapperElem}=internalData;const{leftList,rightList}=columnStore;const loadingSlot=slots.loading;const tipSlots={header:slots.headerTooltip||slots['header-tooltip'],body:slots.tooltip,footer:slots.footerTooltip||slots['footer-tooltip']};const currTooltipSlot=tooltipStore.visible&&tooltipStore.type?tipSlots[tooltipStore.type]:null;const rowDragOpts=computeRowDragOpts.value;const tableTipConfig=computeTableTipConfig.value;const validTipConfig=computeValidTipConfig.value;const validOpts=computeValidOpts.value;const checkboxOpts=computeCheckboxOpts.value;const treeOpts=computeTreeOpts.value;const rowOpts=computeRowOpts.value;const columnOpts=computeColumnOpts.value;const vSize=computeSize.value;const tableBorder=computeTableBorder.value;const mouseOpts=computeMouseOpts.value;const areaOpts=computeAreaOpts.value;const loadingOpts=computeLoadingOpts.value;const isContentMenu=computeIsContentMenu.value;const currLoading=reactData.isColLoading||reactData.isRowLoading||loading;const resizableOpts=computeResizableOpts.value;const isArea=mouseConfig&&mouseOpts.area;const columnDragOpts=computeColumnDragOpts.value;const scrollbarXToTop=computeScrollbarXToTop.value;const scrollbarYToLeft=computeScrollbarYToLeft.value;const{isCrossTableDrag}=rowDragOpts;const tbOns={onKeydown:keydownEvent};if(isCrossTableDrag&&!tableData.length){tbOns.onDragover=$xeTable.handleCrossTableRowDragoverEmptyEvent;}return(0,_vue.h)('div',Object.assign({ref:refElem,class:['vxe-table','vxe-table--render-default',`tid_${xID}`,`border--${tableBorder}`,`sx-pos--${scrollbarXToTop?'top':'bottom'}`,`sy-pos--${scrollbarYToLeft?'left':'right'}`,{[`size--${vSize}`]:vSize,[`valid-msg--${validOpts.msgMode}`]:!!editRules,'vxe-editable':!!editConfig,'old-cell-valid':editRules&&getConfig().cellVaildMode==='obsolete','cell--highlight':highlightCell,'cell--selected':mouseConfig&&mouseOpts.selected,'cell--area':isArea,'header-cell--area':isArea&&areaOpts.selectCellByHeader,'body-cell--area':isArea&&areaOpts.selectCellByBody,'row--highlight':rowOpts.isHover||highlightHoverRow,'column--highlight':columnOpts.isHover||highlightHoverColumn,'checkbox--range':checkboxOpts.range,'col--drag-cell':columnOpts.drag&&columnDragOpts.trigger==='cell','is--header':showHeader,'is--footer':showFooter,'is--group':isGroup,'is-row-group':isRowGroupStatus,'is--tree-line':treeConfig&&(treeOpts.showLine||treeOpts.line),'is--fixed-left':leftList.length,'is--fixed-right':rightList.length,'is--animat':!!props.animat,'is--round':props.round,'is--stripe':!treeConfig&&stripe,'is--loading':currLoading,'is--empty':!currLoading&&!tableData.length,'is--scroll-y':overflowY,'is--scroll-x':overflowX,'is--virtual-x':scrollXLoad,'is--virtual-y':scrollYLoad}],spellcheck:false},tbOns),[/**
|
|
843
843
|
* 隐藏列
|
|
844
844
|
*/(0,_vue.h)('div',{class:'vxe-table-slots'},slots.default?slots.default({}):[]),(0,_vue.h)('div',{ref:refVarElem,class:'vxe-table-vars'},[(0,_vue.h)('div',{class:'vxe-table-var-default'}),(0,_vue.h)('div',{class:'vxe-table-var-medium'}),(0,_vue.h)('div',{class:'vxe-table-var-small'}),(0,_vue.h)('div',{class:'vxe-table-var-mini'})]),(0,_vue.h)('div',{key:'tw',class:'vxe-table--render-wrapper'},scrollbarXToTop?[renderScrollX(),renderBody()]:[renderBody(),renderScrollX()]),/**
|
|
845
845
|
* 空数据
|
|
@@ -863,7 +863,7 @@ if(bodyScrollElem&&bodyTableElem&&bodyScrollElem.scrollTop+clientHeight>=maxYHei
|
|
|
863
863
|
* 导出
|
|
864
864
|
*/initStore.export&&(props.exportConfig||props.printConfig)?(0,_vue.h)(_exportPanel.default,{key:'et',defaultOptions:reactData.exportParams,storeData:reactData.exportStore}):renderEmptyElement($xeTable),/**
|
|
865
865
|
* 快捷菜单
|
|
866
|
-
*/
|
|
866
|
+
*/isContentMenu?(0,_vue.h)(_panel3.default,{key:'tm',ref:refTableMenu}):renderEmptyElement($xeTable),/**
|
|
867
867
|
* 提示相关
|
|
868
868
|
*/VxeUITooltipComponent?(0,_vue.h)('div',{},[/**
|
|
869
869
|
* 通用提示
|