@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
77 lines (62 loc) • 2.12 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useTableFooter = useTableFooter;
var _vue = require("vue");
var _useEventListener = require("../../../_util/hooks/use-event-listener");
var _tableFooter = _interopRequireDefault(require("../components/table-footer"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/** @format */
function useTableFooter(propsRef, scrollRef, tableElRef, getDataSourceRef) {
var getIsEmptyData = (0, _vue.computed)(function () {
return ((0, _vue.unref)(getDataSourceRef) || []).length === 0;
});
var getFooterProps = (0, _vue.computed)(function () {
var _unref = (0, _vue.unref)(propsRef),
summaryFunc = _unref.summaryFunc,
showSummary = _unref.showSummary,
summaryData = _unref.summaryData;
return showSummary && !(0, _vue.unref)(getIsEmptyData) ? function () {
return (0, _vue.h)(_tableFooter.default, {
summaryFunc: summaryFunc,
summaryData: summaryData,
scroll: (0, _vue.unref)(scrollRef)
});
} : undefined;
});
(0, _vue.watchEffect)(function () {
handleSummary();
});
function handleSummary() {
var _unref2 = (0, _vue.unref)(propsRef),
showSummary = _unref2.showSummary;
if (!showSummary || (0, _vue.unref)(getIsEmptyData)) {
return;
}
(0, _vue.nextTick)(function () {
var tableEl = (0, _vue.unref)(tableElRef);
if (!tableEl) {
return;
}
var bodyDomList = tableEl.$el.querySelectorAll('.ant-table-body');
var bodyDom = bodyDomList[0];
(0, _useEventListener.useEventListener)({
el: bodyDom,
name: 'scroll',
listener: function listener() {
var footerBodyDom = tableEl.$el.querySelector('.ant-table-footer .ant-table-body');
if (!footerBodyDom || !bodyDom) {
return;
}
footerBodyDom.scrollLeft = bodyDom.scrollLeft;
},
wait: 0,
options: true
});
});
}
return {
getFooterProps: getFooterProps
};
}