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, // 默認當(dāng)前頁數(shù) ? ? ? ? defaultPageSize: 5, // 默認當(dāng)前頁顯示數(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)當(dāng)前頁和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)多主題切換的示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04vue中el-date-picker限制選擇7天內(nèi)&禁止內(nèi)框選擇
項目中需要選擇時間范圍,并且只能選擇當(dāng)前日期之后的七天,本文就來介紹了vue中el-date-picker限制選擇7天內(nèi)&禁止內(nèi)框選擇,具有一定的參考價值,感興趣的可以了解一下2023-12-12