@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
102 lines (81 loc) • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.usePagination = usePagination;
var _vue = require("vue");
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
var _tslib = require("tslib");
var _iconsVue = require("@ant-design/icons-vue/lib/icons");
var _shared = require("@fe6/shared");
var _const = require("../const");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
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); }
function itemRender(_ref) {
var page = _ref.page,
type = _ref.type,
originalElement = _ref.originalElement;
if (type === 'prev') {
return page === 0 ? null : (0, _vue.createVNode)(_iconsVue.LeftOutlined, null, null);
} else if (type === 'next') {
return page === 1 ? null : (0, _vue.createVNode)(_iconsVue.RightOutlined, null, null);
}
return originalElement;
}
function usePagination(refProps) {
var configRef = (0, _vue.ref)({});
var show = (0, _vue.ref)(true);
var getPaginationInfo = (0, _vue.computed)(function () {
var _unref = (0, _vue.unref)(refProps),
pagination = _unref.pagination,
totalRender = _unref.totalRender;
if (!(0, _vue.unref)(show) || (0, _shared.isBoolean)(pagination) && !pagination) {
return false;
}
return _extends(_extends({
current: 1,
pageSize: _const.PAGE_SIZE,
size: 'small',
defaultPageSize: _const.PAGE_SIZE,
showTotal: (0, _shared.isFunction)(totalRender) ? totalRender : function (total) {
return "\u5171 ".concat(total, " \u6761\u6570\u636E");
},
showSizeChanger: false,
pageSizeOptions: _const.PAGE_SIZE_OPTIONS,
itemRender: itemRender,
showQuickJumper: false
}, (0, _shared.isBoolean)(pagination) ? {} : pagination), (0, _vue.unref)(configRef));
});
function setPagination(info) {
var paginationInfo = (0, _vue.unref)(getPaginationInfo);
configRef.value = _extends(_extends({}, !(0, _shared.isBoolean)(paginationInfo) ? paginationInfo : {}), info);
}
function getPagination() {
return (0, _vue.unref)(getPaginationInfo);
}
function getShowPagination() {
return (0, _vue.unref)(show);
}
function setShowPagination(flag) {
return (0, _tslib.__awaiter)(this, void 0, void 0, /*#__PURE__*/_regenerator.default.mark(function _callee() {
return _regenerator.default.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
};
}