UNPKG

wiz-frameworks

Version:

wizlong react framework

213 lines (164 loc) 5.5 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _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; }; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _index = require('./index'); var _index2 = _interopRequireDefault(_index); var _tool = require('../../../tool'); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } var $$ = _tool.utils_tool.$$; /** * 分页对象 */ var PageInfo = function () { function PageInfo() { _classCallCheck(this, PageInfo); this.pageNum = 1; this.pageSize = 10; this.total = 0; this.totalPages = 0; this.list = []; this.filters = {}; this.sorts = {}; this.reasonable = false; } // 页码,从1开始 // 每页数量 // 当前页的数量 //size = 0; // 总记录数 // 总页数 // 结果集 // 过滤条件 {name: 'jonn'} // 排序条件 {name: 'asc', age: 'desc'} //表头数据 //headList = []; /** * 希望用户输入的页数不在合法范围(第一页到最后一页之外) * 时能够正确的响应到正确的结果页面,那么你可以配置reasonable为true, * 这时如果pageNum<1,会查询第一页,如果pageNum>总页数,会查询最后一页 */ _createClass(PageInfo, [{ key: 'startPage', /** * 组装分页信息 * @param {number} pageNum page number, default 1 * @param {number} pageSize page size, default 10 */ value: function startPage() { var pageNum = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; var pageSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 10; this.pageNum = pageNum; this.pageSize = pageSize; this.size = 0; this.total = 0; this.totalPages = 0; this.list = []; this.filters = {}; this.sorts = {}; return this; } /** * 组装分页信息 * @param {number} pageNum page number * @param {number} pageSize page size */ }, { key: 'jumpPage', value: function jumpPage(pageNum, pageSize) { if (pageNum && pageNum <= Math.ceil(this.totalPages) || pageNum === 1) { this.pageNum = pageNum; if (pageSize) this.pageSize = pageSize; } return this; } /** * 拼接过滤条件 * @param {object} q 过滤条件 {name: 'jonn', sex: 1} * @param {boolean} merge 是否将新条件与现有条件合并 */ }, { key: 'filter', value: function filter(q, merge) { if ($$.isObject(q)) { if (merge) { this.filters = _extends({}, this.filters, q); } else { this.filters = q; } } return this; } /** * 拼接排序条件 * @param {object} q 排序字段 {name: 'asc', age: 'desc'} */ }, { key: 'sortBy', value: function sortBy(q) { if ($$.isObject(q)) { this.sorts = q; } return this; } /** * 下一页或指定页数 * @param {number} pageNum */ }, { key: 'nextPage', value: function nextPage(pageNum) { if (this.totalPages !== -1) { if (pageNum && pageNum <= Math.ceil(this.totalPages)) { this.pageNum = pageNum; } else if (this.pageNum + 1 <= Math.ceil(this.totalPages)) { this.pageNum++; } } else { this.pageNum = this.totalPages; } return this; } /** * 上一页 */ }, { key: 'prevPage', value: function prevPage() { if (this.totalPages !== -1) { if (this.pageNum - 1 > 0) { this.pageNum--; } } else { this.pageNum = 1; } return this; } // deprecate }, { key: 'send', value: function send(url, options) { var self = this; var pageNum = this.pageNum, pageSize = this.pageSize, filters = this.filters, sorts = this.sorts; var data = { pageNum: pageNum, pageSize: pageSize, filters: filters, sorts: sorts }; if ($$.isFunction(_index2['default'].requestFormat)) { data = _index2['default'].requestFormat(this); } return $$.send(url, _extends({ data: data }, options)).then(function (resp) { if ($$.isFunction(_index2['default'].responseFormat)) { var newPageInfo = _index2['default'].responseFormat(resp); return _extends(self, newPageInfo); } }); } }]); return PageInfo; }(); exports['default'] = PageInfo; module.exports = exports['default'];