vxe-gantt
Version:
A vue based gantt component
1 lines • 3.73 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:!0}),exports.default=void 0;var _vue=require("vue"),_comp=require("../../ui/src/comp"),_util=require("./util"),_ganttChart=_interopRequireDefault(require("./gantt-chart"));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var _default=exports.default=(0,_comp.defineVxeComponent)({name:"VxeGanttViewBody",setup(){let g=(0,_vue.inject)("$xeGantt",{}),r=(0,_vue.inject)("$xeGanttView",{}),{reactData:o,internalData:a}=r,n=(0,_vue.ref)(),i=(0,_vue.ref)(),u=(0,_vue.ref)(),s=(0,_vue.ref)(),d=(0,_vue.ref)(),H=(a,l,e,r,o,n,t,i)=>{var u=a.reactData.resizeHeightFlag,{fullAllDataRowIdData:s,visibleColumn:d}=a.internalData,{computeCellOpts:v,computeRowOpts:c,computeDefaultRowHeight:p,computeResizableOpts:w}=a.getComputeMaps(),v=v.value,c=c.value,p=p.value,w=w.value.isAllRowDrag,s=s[e]||{},u=0<(u?s.resizeHeight:0),s=(0,_util.getCellRestHeight)(s,v,c,p),v=[];if(w&&c.resizable){let t={$table:a,$grid:null,$gantt:g,seq:-1,rowid:e,row:l,rowIndex:r,$rowIndex:o,_rowIndex:n,column:d[0],columnIndex:0,$columnIndex:0,_columnIndex:0,fixed:"",type:"",isHidden:!1,isEdit:!1,level:-1,visibleData:[],data:[],items:[]};v.push((0,_vue.h)("div",{class:"vxe-gantt-view-cell--row-resizable",onMousedown:e=>a.handleRowResizeMousedownEvent(e,t),onDblclick:e=>a.handleRowResizeDblclickEvent(e,t)}))}return(0,_vue.h)("td",{key:i,class:["vxe-gantt-view--body-column",{"col--rs-height":u}],style:{height:s+"px"},onClick(e){g.handleTaskCellClickEvent(e,{row:l,column:t})},onDblclick(e){g.handleTaskCellDblclickEvent(e,{row:l,column:t})}},v)},O=(d,e)=>{let{treeConfig:v,stripe:c,highlightHoverRow:p,editConfig:w}=d.props,{treeExpandedFlag:g,selectRadioRow:h,pendingRowFlag:_,isRowGroupStatus:x}=d.reactData,{fullAllDataRowIdData:m,treeExpandedMaps:b,pendingRowMaps:D}=d.internalData;var{computeRadioOpts:t,computeCheckboxOpts:a,computeTreeOpts:l,computeRowOpts:r}=d.getComputeMaps();let f=t.value,R=a.value,y=r.value;t=l.value;let C=t.transform,k=t.children||t.childrenField,{tableColumn:E,scrollYLoad:M}=o,I=[];return e.forEach((a,l)=>{let r=d.getRowid(a);var e=m[r]||{},t={};let o=l,n=-1,i=(e&&(o=e.index,n=e._index),!1),u=(w&&(i=d.isInsertByRow(a)),(y.isHover||p)&&(t.onMouseenter=e=>{d.triggerHoverEvent(e,{row:a,rowIndex:o})},t.onMouseleave=()=>{d.clearHoverRow()}),!y.drag||x||v&&!C||(t.onDragstart=d.handleRowDragDragstartEvent,t.onDragend=d.handleRowDragDragendEvent,t.onDragover=d.handleRowDragDragoverEvent),I.push((0,_vue.h)("tr",Object.assign({key:v?r:l,class:["vxe-gantt-view--body-row",{"row--stripe":c&&(n+1)%2==0,"is--new":i,"row--radio":f.highlight&&d.eqRow(h,a),"row--checked":R.highlight&&d.isCheckedByCheckboxRow(a),"row--pending":!!_&&!!D[r]}],rowid:r},t),E.map((e,t)=>H(d,a,r,o,l,n,e,t)))),!1),s=[];!v||M||C||(s=a[k],u=!!g&&s&&0<s.length&&!!b[r]),u&&I.push(...O(d,s))}),I};return(0,_vue.onMounted)(()=>{var e=a.elemStore,t="main-body-";e[t+"wrapper"]=n,e[t+"scroll"]=i,e[t+"table"]=u,e[t+"xSpace"]=s,e[t+"ySpace"]=d}),(0,_vue.onUnmounted)(()=>{var e=a.elemStore,t="main-body-";e[t+"wrapper"]=null,e[t+"scroll"]=null,e[t+"table"]=null,e[t+"xSpace"]=null,e[t+"ySpace"]=null}),()=>{var e=r.internalData.xeTable;let{tableData:t,tableColumn:a,viewCellWidth:l}=o;return(0,_vue.h)("div",{ref:n,class:"vxe-gantt-view--body-wrapper"},[(0,_vue.h)("div",{ref:i,class:"vxe-gantt-view--body-inner-wrapper",onScroll:r.triggerBodyScrollEvent},[(0,_vue.h)("div",{ref:s,class:"vxe-body--x-space"}),(0,_vue.h)("div",{ref:d,class:"vxe-body--y-space"}),(0,_vue.h)("table",{ref:u,class:"vxe-gantt-view--body-table"},[(0,_vue.h)("colgroup",{},a.map((e,t)=>(0,_vue.h)("col",{key:t,style:{width:l+"px"}}))),(0,_vue.h)("tbody",{},e?O(e,t):[])]),(0,_vue.h)(_ganttChart.default)])])}}});