ant-design-vue Table pagination分頁實現(xiàn)全過程
ant-design-vue Table pagination分頁實現(xiàn)
ant-design-vue Table自帶分頁的問題
表格單獨使用時,自帶簡單分頁,只包含 上一頁, 頁面碼, 下一頁,例如:

我們的實現(xiàn)
但如果想要與后端配合著寫,則需要傳入pagination參數(shù)來自定義,

看代碼:
分頁變動出發(fā)handleTableChange事件:
<a-table
:columns="columns"
:data-source="wmsWarehouseList"
:pagination="pagination"
@change="handleTableChange"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
>
data () {
return {
// 分頁參數(shù)
pagination: {
// size: 'large',
current: 1,
pageSize: 10,
total: 0,
pageSizeOptions: ['10', '20', '30'], // 可選的頁面顯示條數(shù)
showTotal: (total, range) => {
return range[0] + '-' + range[1] + ' 共' + total + '條'
}, // 展示每頁第幾條至第幾條和總數(shù)
hideOnSinglePage: false, // 只有一頁時是否隱藏分頁器
showQuickJumper: true, // 是否可以快速跳轉(zhuǎn)至某頁
showSizeChanger: true // 是否可以改變pageSize
},
}
}
methods: {
handleTableChange (e) {
console.log(e)
this.pagination = e
this.loading = true
const pageNum = e.current - 1
const pageSize = e.pageSize
const query = {
...this.queryParams,
}
const pageReq = { page: pageNum, size: pageSize }
listWmsWarehouse(query, pageReq).then((response) => {
})
},
onChange與onShowSizeChange 比較
onChange:頁碼改變的回調(diào),參數(shù)是改變后的頁碼及每頁條數(shù)onShowSizeChange:只有pageSize 變化才會回調(diào)
Ant Design Vue 如何分頁(后臺傳入)
我們在使用分頁使,直接用表格()的自定義:pagination屬性最方便;如下圖所示:
? ? ? ?<a-table ? ? ? ? ?ref="table" ? ? ? ? ? style="margin-bottom: 24px" ? ? ? ? ? row-key="key" ? ? ? ? ? :columns="goodsColumns" ? ? ? ? ? :data-source="loadGoodsData" ? ? ? ? ? :pagination="paginationOpt" ? ? ? ? ? bordered> ? ? ? ? </a-table>
基于VUE,我們必須在data中定義paginationOpt對象,代碼片段如下:
// 分頁
? ? ? paginationOpt: {
? ? ? ? defaultCurrent: 1, // 默認當前頁數(shù)
? ? ? ? defaultPageSize: 5, // 默認當前頁顯示數(shù)據(jù)的大小
? ? ? ? total: 0, // 總數(shù),必須先有
? ? ? ? showSizeChanger: true,
? ? ? ? showQuickJumper: true,
? ? ? ? pageSizeOptions: ["5", "10", "15", "20"],
? ? ? ? showTotal: (total) => `共 ${total} 條`, // 顯示總數(shù)
? ? ? ? onShowSizeChange: (current, pageSize) => {
? ? ? ? ? this.paginationOpt.defaultCurrent = 1;
? ? ? ? ? this.paginationOpt.defaultPageSize = pageSize;
? ? ? ? ? this.searchCameraFrom(); //顯示列表的接口名稱
? ? ? ? },
? ? ? ? // 改變每頁數(shù)量時更新顯示
? ? ? ? onChange: (current, size) => {
? ? ? ? ? this.paginationOpt.defaultCurrent = current;
? ? ? ? ? this.paginationOpt.defaultPageSize = size;
? ? ? ? ? this.searchCameraFrom();
? ? ? ? },
? ? ? },調(diào)用接口時,?一定要更新total值?。。。。?并在發(fā)送請求前結(jié)構(gòu)當前頁和pagesize的值,否則一直時默認值1和5(我這邊初始時1和5,可自己更改)
? ? // 查詢
? ? searchCameraFrom() {
? ? ? console.log(this.cameraParams);
? ? ? const { defaultCurrent, defaultPageSize } = this.paginationOpt;
?
? ? ? this.$api.Camera.getCameraList({
? ? ? ? currPage: defaultCurrent,
? ? ? ? pageSize: defaultPageSize,
? ? ? ? info: this.cameraParams,
? ? ? })
? ? ? ? .then((res) => {
? ? ? ? ? if (res.code != "200") {
? ? ? ? ? ? return Promise.reject;
? ? ? ? ? }
? ? ? ? ? console.log(res);
? ? ? ? ? this.cameraList = res.data;
? ? ? ? ? this.paginationOpt.total = res.total;
? ? ? ? })
? ? ? ? .catch(() => {});
? ? },總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
基于Vue2.0和Typescript實現(xiàn)多主題切換的示例
本文主要介紹了基于Vue2.0和Typescript實現(xiàn)多主題切換的示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-04-04
vue中el-date-picker限制選擇7天內(nèi)&禁止內(nèi)框選擇
項目中需要選擇時間范圍,并且只能選擇當前日期之后的七天,本文就來介紹了vue中el-date-picker限制選擇7天內(nèi)&禁止內(nèi)框選擇,具有一定的參考價值,感興趣的可以了解一下2023-12-12

