UNPKG

vxe-gantt

Version:
52 lines (42 loc) 1.65 kB
import { h, inject, ref, Ref, onMounted, onUnmounted } from 'vue' import { defineVxeComponent } from '../../ui/src/comp' import type { VxeGanttConstructor, VxeGanttPrivateMethods, VxeGanttViewConstructor, VxeGanttViewPrivateMethods } from '../../../types' const sourceType = 'gantt' const viewType = 'footer' export default defineVxeComponent({ name: 'VxeGanttViewFooter', setup () { const $xeGantt = inject('$xeGantt', {} as (VxeGanttConstructor & VxeGanttPrivateMethods)) const $xeGanttView = inject('$xeGanttView', {} as VxeGanttViewConstructor & VxeGanttViewPrivateMethods) const { internalData } = $xeGanttView const refElem = ref() as Ref<HTMLDivElement> const refHeaderScroll = ref() as Ref<HTMLDivElement> const renderVN = () => { return h('div', { ref: refElem, class: 'vxe-gantt-view--footer-wrapper', onContextmenu (evnt) { $xeGantt.handleTaskFooterContextmenuEvent(evnt, { source: sourceType, type: viewType, $rowIndex: -1 }) } }, [ h('div', { ref: refHeaderScroll, class: 'vxe-gantt-view--footer-inner-wrapper' }) ]) } onMounted(() => { const { elemStore } = internalData const prefix = 'main-footer-' elemStore[`${prefix}wrapper`] = refElem elemStore[`${prefix}scroll`] = refHeaderScroll }) onUnmounted(() => { const { elemStore } = internalData const prefix = 'main-footer-' elemStore[`${prefix}wrapper`] = null elemStore[`${prefix}scroll`] = null }) return renderVN } })