最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

element ui分頁多選,翻頁記憶的實例

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 21:51:24
文檔

element ui分頁多選,翻頁記憶的實例

element ui分頁多選,翻頁記憶的實例:先說需求:實時記錄當(dāng)前選中的分頁中的列表,分頁保存數(shù)據(jù),然后在用選中的數(shù)據(jù)進行某些操作;PS:左下角的數(shù)字為記錄的當(dāng)前選中的列表的和 直接上可用的代碼,前提已配置好各種環(huán)境 HTML部分 <!--table組件需要使用ref=table--> <
推薦度:
導(dǎo)讀element ui分頁多選,翻頁記憶的實例:先說需求:實時記錄當(dāng)前選中的分頁中的列表,分頁保存數(shù)據(jù),然后在用選中的數(shù)據(jù)進行某些操作;PS:左下角的數(shù)字為記錄的當(dāng)前選中的列表的和 直接上可用的代碼,前提已配置好各種環(huán)境 HTML部分 <!--table組件需要使用ref=table--> <

先說需求:實時記錄當(dāng)前選中的分頁中的列表,分頁保存數(shù)據(jù),然后在用選中的數(shù)據(jù)進行某些操作;PS:左下角的數(shù)字為記錄的當(dāng)前選中的列表的和

直接上可用的代碼,前提已配置好各種環(huán)境

HTML部分

<!--table組件需要使用ref="table"-->
<template>
 <div>
 <el-table :data="tableData" ref="table" stripe style="width: 100%" @selection-change="handleSelectionChange">
 <el-table-column type="selection" width="55"></el-table-column>
 <el-table-column prop="name" label="商品名稱"></el-table-column>
 <el-table-column prop="barcode" label="商品編碼"></el-table-column>
 <el-table-column prop="quantity" label="區(qū)域總庫存"></el-table-column>
 </el-table>
 <div class="block" v-show="page.pageTotal>10">
 <el-pagination @current-change="handleCurrentChange" :current-page.sync="page.currentPage" :page-size="page.pnum" layout="total, prev, pager, next , jumper" :total="page.pageTotal">
 </el-pagination>
 </div>
 <div>
 {{multipleSelectionAll.length}}
 </div>
 </div>
</template>

JS部分

export default {
 data(){
 return {
 tableData: [], // 表格數(shù)據(jù) 
 multipleSelectionAll:[],//所有選中的數(shù)據(jù)包含跨頁數(shù)據(jù)
 multipleSelection:[],// 當(dāng)前頁選中的數(shù)據(jù)
 idKey: 'barcode', // 標(biāo)識列表數(shù)據(jù)中每一行的唯一鍵的名稱
 page:{
 //每頁數(shù)據(jù)量
 pnum:10,
 //數(shù)據(jù)總數(shù)
 pageTotal:0,
 //當(dāng)前頁,從1開始
 currentPage:1,
 }
 }
 },
 methods: {
 handleCurrentChange(){
 this.changePageCoreRecordData();
 if(!this.$isNull(this.page.pageTotal)) this.getGoodsList();
 },
 handleSelectionChange (val) {
 this.multipleSelection = val;
 //實時記錄選中的數(shù)據(jù)
 setTimeout(()=>{
 this.changePageCoreRecordData();
 }, 50)
 },
 setSelectRow() {
 if (!this.multipleSelectionAll || this.multipleSelectionAll.length <= 0) {
 return;
 }
 // 標(biāo)識當(dāng)前行的唯一鍵的名稱
 let idKey = this.idKey;
 let selectAllIds = [];
 let that = this;
 this.multipleSelectionAll.forEach(row=>{
 selectAllIds.push(row[idKey]);
 })
 this.$refs.table.clearSelection();
 for(var i = 0; i < this.tableData.length; i++) { 
 if (selectAllIds.indexOf(this.tableData[i][idKey]) >= 0) {
 // 設(shè)置選中,記住table組件需要使用ref="table"
 this.$refs.table.toggleRowSelection(this.tableData[i], true);
 }
 }
 },
 // 記憶選擇核心方法
 changePageCoreRecordData () {
 // 標(biāo)識當(dāng)前行的唯一鍵的名稱
 let idKey = this.idKey;
 let that = this;
 // 如果總記憶中還沒有選擇的數(shù)據(jù),那么就直接取當(dāng)前頁選中的數(shù)據(jù),不需要后面一系列計算
 if (this.multipleSelectionAll.length <= 0) {
 this.multipleSelectionAll = this.multipleSelection;
 return;
 }
 // 總選擇里面的key集合
 let selectAllIds = [];
 this.multipleSelectionAll.forEach(row=>{
 selectAllIds.push(row[idKey]);
 })
 let selectIds = []
 // 獲取當(dāng)前頁選中的id
 this.multipleSelection.forEach(row=>{
 selectIds.push(row[idKey]);
 // 如果總選擇里面不包含當(dāng)前頁選中的數(shù)據(jù),那么就加入到總選擇集合里
 if (selectAllIds.indexOf(row[idKey]) < 0) {
 that.multipleSelectionAll.push(row);
 }
 })
 let noSelectIds = [];
 // 得到當(dāng)前頁沒有選中的id
 this.tableData.forEach(row=>{
 if (selectIds.indexOf(row[idKey]) < 0) {
 noSelectIds.push(row[idKey]);
 }
 })
 noSelectIds.forEach(id=>{
 if (selectAllIds.indexOf(id) >= 0) {
 for(let i = 0; i< that.multipleSelectionAll.length; i ++) {
 if (that.multipleSelectionAll[i][idKey] == id) {
 // 如果總選擇中有未被選中的,那么就刪除這條
 that.multipleSelectionAll.splice(i, 1);
 break;
 }
 }
 }
 })
 },
 //請求接口部分
 getGoodsList(){
 let data = {};
 data['page'] = this.page.currentPage;
 data['pnum'] = this.page.pnum;
 this.$ajax({
 url:'goods/list',
 data:data
 }).then(val => {
 this.tableData = val.data.rows ? val.data.rows : [];
 this.page = {
 pnum:10,
 pageTotal:val.data.total,
 currentPage:val.data.page,
 };
 setTimeout(()=>{
 this.setSelectRow();
 }, 50)
 })
 }
 },
 created () {
 this.getGoodsList()
 }
 }

代碼可直接粘貼到項目中使用,親測可用,傻瓜式代碼

以上這篇element ui分頁多選,翻頁記憶的實例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

element ui分頁多選,翻頁記憶的實例

element ui分頁多選,翻頁記憶的實例:先說需求:實時記錄當(dāng)前選中的分頁中的列表,分頁保存數(shù)據(jù),然后在用選中的數(shù)據(jù)進行某些操作;PS:左下角的數(shù)字為記錄的當(dāng)前選中的列表的和 直接上可用的代碼,前提已配置好各種環(huán)境 HTML部分 <!--table組件需要使用ref=table--> <
推薦度:
標(biāo)簽: 例子 示例 記憶
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top