vxe-gantt
Version:
A vue based gantt component
1 lines • 2.73 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_core=require("@vxe-ui/core"),_xeUtils=_interopRequireDefault(require("xe-utils"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}let getI18n=_core.VxeUI.getI18n,sourceType="gantt",viewType="header";var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewHeader",setup(){let S=(0,_vue.inject)("$xeGantt",{}),n=(0,_vue.inject)("$xeGanttView",{}),{computeTaskViewOpts:u,computeScaleStep:o,computeMinScale:i}=S.getComputeMaps(),{reactData:v,internalData:s}=n,d=(0,_vue.ref)(),p=(0,_vue.ref)(),c=(0,_vue.ref)(),x=(0,_vue.ref)();return(0,_vue.onMounted)(()=>{var e=s.elemStore,t="main-header-";e[t+"wrapper"]=d,e[t+"scroll"]=p,e[t+"table"]=c,e[t+"xSpace"]=x}),(0,_vue.onUnmounted)(()=>{var e=s.elemStore,t="main-header-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null}),()=>{let{headerGroups:a,viewCellWidth:l}=v,{todayDateMaps:r,visibleColumn:e}=s;var t=u.value;let w=i.value,f=o.value,b=t.showNowLine;return(0,_vue.h)("div",{ref:d,class:"vxe-gantt-view--header-wrapper"},[(0,_vue.h)("div",{ref:p,class:"vxe-gantt-view--header-inner-wrapper",onScroll:n.triggerHeaderScrollEvent},[(0,_vue.h)("div",{ref:x,class:"vxe-body--x-space"}),(0,_vue.h)("table",{ref:c,class:"vxe-gantt-view--header-table"},[(0,_vue.h)("colgroup",{},e.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:l+"px"}}))),(0,_vue.h)("thead",{},a.map(({scaleItem:d,columns:e},p)=>{let{type:c,titleFormat:x,titleMethod:m,headerCellStyle:_,slots:t}=d,g=t?t.title:null,h=p===a.length-1,y=h&&b?r[c]:null;return(0,_vue.h)("tr",{key:p},e.map((e,t)=>{var{field:a,childCount:l,dateObj:r,startDateObj:n,endDateObj:u}=e;let o=""+e.title,i=o=(h||w&&("date"===w.type||"day"===w.type)&&("date"===c||"day"===c))&&1<f?getI18n("vxe.gantt.stepFormat."+c,{start:n,end:u,eStartLabel:getI18n("vxe.gantt.dayss.w"+n.e),eEndLabel:getI18n("vxe.gantt.dayss.w"+u.e)}):"day"===c?p?getI18n("vxe.gantt.tSimpleFormat."+c,{eLabel:getI18n("vxe.gantt.dayss.w"+r.e)}):getI18n("vxe.gantt.tFullFormat."+c,{eLabel:getI18n("vxe.gantt.dayss.w"+r.e)}):p?getI18n("vxe.gantt.tSimpleFormat."+c,r):getI18n("vxe.gantt.tFullFormat."+c,r),v={source:sourceType,type:viewType,column:e,scaleObj:d,title:o,dateObj:r,startDateObj:n,endDateObj:u,$rowIndex:p},s=(g?i=S.callSlot(g,v):m?i=""+m(v):x&&(i=_xeUtils.default.toDateString(r.date,x)),{});return _&&(s=_xeUtils.default.isFunction(_)?_(v)||null:_),(0,_vue.h)("th",{key:t,class:["vxe-gantt-view--header-column",{"is--now":b&&y&&y===a}],colspan:l||null,title:g?null:o,style:s||void 0,onContextmenu(e){S.handleTaskHeaderContextmenuEvent(e,v)}},i)}))}))])])])}}});