@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
91 lines (77 loc) • 2.9 kB
JavaScript
import { createVNode as _createVNode } from "vue";
import _regeneratorRuntime from "@babel/runtime/regenerator";
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
/** @format */
import { __awaiter } from "tslib";
import { computed, unref, ref } from 'vue';
import { LeftOutlined, RightOutlined } from '@ant-design/icons-vue';
import { isBoolean, isFunction } from '@fe6/shared';
import { PAGE_SIZE, PAGE_SIZE_OPTIONS } from '../const';
function itemRender(_ref) {
var page = _ref.page,
type = _ref.type,
originalElement = _ref.originalElement;
if (type === 'prev') {
return page === 0 ? null : _createVNode(LeftOutlined, null, null);
} else if (type === 'next') {
return page === 1 ? null : _createVNode(RightOutlined, null, null);
}
return originalElement;
}
export function usePagination(refProps) {
var configRef = ref({});
var show = ref(true);
var getPaginationInfo = computed(function () {
var _unref = unref(refProps),
pagination = _unref.pagination,
totalRender = _unref.totalRender;
if (!unref(show) || isBoolean(pagination) && !pagination) {
return false;
}
return _extends(_extends({
current: 1,
pageSize: PAGE_SIZE,
size: 'small',
defaultPageSize: PAGE_SIZE,
showTotal: isFunction(totalRender) ? totalRender : function (total) {
return "\u5171 ".concat(total, " \u6761\u6570\u636E");
},
showSizeChanger: false,
pageSizeOptions: PAGE_SIZE_OPTIONS,
itemRender: itemRender,
showQuickJumper: false
}, isBoolean(pagination) ? {} : pagination), unref(configRef));
});
function setPagination(info) {
var paginationInfo = unref(getPaginationInfo);
configRef.value = _extends(_extends({}, !isBoolean(paginationInfo) ? paginationInfo : {}), info);
}
function getPagination() {
return unref(getPaginationInfo);
}
function getShowPagination() {
return unref(show);
}
function setShowPagination(flag) {
return __awaiter(this, void 0, void 0, /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
show.value = flag;
case 1:
case "end":
return _context.stop();
}
}
}, _callee);
}));
}
return {
getPagination: getPagination,
getPaginationInfo: getPaginationInfo,
setShowPagination: setShowPagination,
getShowPagination: getShowPagination,
setPagination: setPagination
};
}