wiz-frameworks
Version:
wizlong react framework
213 lines (164 loc) • 5.5 kB
JavaScript
'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'];