UNPKG

nimble-ui

Version:
82 lines (80 loc) 3.02 kB
import { callFn, getBackData, toPascal } from 'nimble-lib'; /** * 分页的mixin * * @param {Object} options 选项 * @param {String} options.pageNum 页码的key * @param {String} options.pageSize 每面数据的key * @param {String} options.total 总数量的key * @param {String} options.list 列表的key * @param {Object} options.config 默认值 * @export * @returns {Object} */ export default function paging(options) { options = options || {}; let pageNum = 'my' + toPascal(options['pageNum'] || 'pageNum'); let pageSize = 'my' + toPascal(options['pageSize'] || 'pageSize'); let total = 'my' + toPascal(options['total'] || 'total'); let list = 'my' + toPascal(options['list'] || 'list'); return { data() { let data = {}; data[pageNum] = 1; data[pageSize] = 10; data[total] = 0; data[list] = []; return Object.assign(data, callFn(options.config, [], this) || {}); }, created() { let _that = this; if (!options || callFn(options.notCreateInit, [], _that) !== true) { _that[list] = []; let res = callFn(options.createCallback, [_that[pageNum], _that[pageSize]], _that); if (res !== false) { getBackData(_that.getList, [_that[pageNum], _that[pageSize]], _that).then((back) => { if (back instanceof Array) { _that[list] = back; } }); } } }, watch: { /** * 监听pageNum改变 * @param {any} nowVal 变化后数据 * @param {any} oldVal 变化前的值 */ [pageNum] () { let _that = this; _that[list] = []; let res = callFn(options.pageNumCallback, [_that[pageNum], _that[pageSize]], _that); if (res !== false) { getBackData(_that.getList, [_that[pageNum], _that[pageSize]], _that).then((back) => { if (back instanceof Array) { _that[list] = back; } }); } }, /** * 监听pageSize的改变 * @param {any} nowVal 变化后数据 * @param {any} oldVal 变化前的值 */ [pageSize] () { let _that = this; _that[list] = []; let res = callFn(options.pageSizeCallback, [_that[pageNum], _that[pageSize]], _that); if (res !== false) { getBackData(_that.getList, [_that[pageNum], _that[pageSize]], _that).then((back) => { if (back instanceof Array) { _that[list] = back; } }); } } } }; }