tav-ui
Version:
49 lines (44 loc) • 1.66 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var useEventListener = require('../../../../hooks/event/useEventListener2.js');
var TableFooter = require('../components/TableFooter2.js');
function useTableFooter(propsRef, scrollRef, tableElRef, getDataSourceRef) {
const getIsEmptyData = vue.computed(() => {
return (vue.unref(getDataSourceRef) || []).length === 0;
});
const getFooterProps = vue.computed(() => {
const { summaryFunc, showSummary, summaryData } = vue.unref(propsRef);
return showSummary && !vue.unref(getIsEmptyData) ? () => vue.h(TableFooter["default"], { summaryFunc, summaryData, scroll: vue.unref(scrollRef) }) : void 0;
});
vue.watchEffect(() => {
handleSummary();
});
function handleSummary() {
const { showSummary } = vue.unref(propsRef);
if (!showSummary || vue.unref(getIsEmptyData))
return;
vue.nextTick(() => {
const tableEl = vue.unref(tableElRef);
if (!tableEl)
return;
const bodyDomList = tableEl.$el.querySelectorAll(".ant-table-body");
const bodyDom = bodyDomList[0];
useEventListener.useEventListener({
el: bodyDom,
name: "scroll",
listener: () => {
const footerBodyDom = tableEl.$el.querySelector(".ant-table-footer .ant-table-body");
if (!footerBodyDom || !bodyDom)
return;
footerBodyDom.scrollLeft = bodyDom.scrollLeft;
},
wait: 0,
options: true
});
});
}
return { getFooterProps };
}
exports.useTableFooter = useTableFooter;
//# sourceMappingURL=useTableFooter2.js.map