vxe-gantt
Version:
A vue based gantt component
42 lines (41 loc) • 1.51 kB
JavaScript
import { h, inject, ref, onMounted, onUnmounted } from 'vue';
import { defineVxeComponent } from '../../ui/src/comp';
const sourceType = 'gantt';
const viewType = 'footer';
export default defineVxeComponent({
name: 'VxeGanttViewFooter',
setup() {
const $xeGantt = inject('$xeGantt', {});
const $xeGanttView = inject('$xeGanttView', {});
const { internalData } = $xeGanttView;
const refElem = ref();
const refHeaderScroll = ref();
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;
}
});