最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Element實現表格分頁數據選擇+全選所有完善批量操作

 更新時間:2019年06月07日 09:29:45   作者:懵鐘小粉紅  
這篇文章主要介紹了Element實現表格分頁數據選擇+全選所有完善批量操作,文中通過示例代碼介紹的非常詳細,對大家學習或者使用vue具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

后臺管理系統(tǒng)中的列表頁面,一般都會有對列表數據進行批量操作的功能,例如:批量刪除、批量刪除等。

之前項目中只是簡單的用到Element框架中常規(guī)的屬性、事件。在一次機緣巧合下,了解到一個公司內部的框架是基于Element框架內部實現了一些插件功能,對于表格這一塊完善了很多功能,當時沒有把握住機會去看源碼是怎么實現的,現在有點小后悔呢,嚶嚶嚶~~~~沒關系,自己慢慢一點一點實現。

實現的功能有:

  • 分頁數據選擇 
  • 全選所有數據(不是element框架自帶的全選本頁哦!)

1、分頁數據選擇

一開始以為不就是分頁的時候把之前選中的數據存儲在一個list里面嘛,然后選擇的時候map一下。等到自己寫代碼的時候,會發(fā)現沒有那么簡單,百度后,發(fā)現有兩個屬性被忽視了

  •  row-key  
  • reserve-selection

代碼截圖:

事件代碼:

getRowKeys (row) {
 return row.execId
}

這樣通過 selectionChange 方法就能獲取頁面中選中數據的改變,將選中的數據保存到list中

selectionChange (rows) {
 this.checkList = rows
}

2、全選所有數據

element框架中有select-all事件,全選本頁所有數據,但是項目中,經常會遇到說對所有的進行操作,例如批量刪除(刪除所有數據,這個權限有點大)

實現思路:

  • 一個全選所有復選框,當選中時,前端傳遞一個參數Flag:1給后臺,后臺就會知道這是對所有數據進行操作,同時前后臺之間都不用進行龐大的數據傳輸 
<el-checkbox v-model="allCheck" @change="allCheckEvent">全選所有</el-checkbox>
  • 選中全選所有復選框,當前頁數據需全部是選中狀態(tài),翻頁到另一頁,這一頁的數據也是全部選中狀態(tài) (監(jiān)聽當前頁中數據)
allCheckEvent () {
 if (this.allCheck) {
 this.testList.forEach(row => {
 this.$refs.recordTable.toggleRowSelection(row, true)
 })
 } else {
 this.$refs.recordTable.clearSelection()
 }
}
watch: {
 testList: {
 handler (value) {
 if (this.allCheck) {
 let that = this
 let len = that.checkList.length
 value.forEach(row => {
  for (let i = 0; i < len; i++) {
  if (row.execId === that.checkList[i].execId) {
  that.$refs.recordTable.toggleRowSelection(row, false)
  break
  } else {
  that.$refs.recordTable.toggleRowSelection(row, true)
  }
  }
 })
 }
 },
 deep: true
 }
}
  • 選中全選所有復選框,同時,已經翻頁了兩頁,選中的數據是兩頁數據,若取消其中一行數據的選中狀態(tài),此時,全選所有取消,當前選中的數據應是:已翻頁的兩頁數據-取消的那一行數據
selectOne () {
 if (this.allCheck) {
 this.allCheck = false
 }
}

實現的表格:

走了不少彎路才注意到的問題:

  • 若從第一頁翻選到第二頁,然后又回到第一頁,選中的數據理應是1+2兩頁的數據,現實是1+2+1這三頁數據,在展現形式上是看不出來問題,而且前面說了,全選所有的時候,我向后臺傳的參數只是一個flag,而不是這些選中數據。但是若在第一頁取消一行數據,此時全選所有數據框已取消,本條數據也不是選中狀態(tài),翻到第二頁,在回到第二頁,Duang~那條數據又回到了選中狀態(tài)!因為選中數據中該條數據是兩條啊,你取消了一個,另一個還在呀,當然你再取消一次,再回來,是取消狀態(tài),bug,bug,bug!
  • 想到的就是數據要去重,首先想到的是從結果去重,在selectionChange方法中去重,悲劇了,根本不起作用,理清思路后發(fā)現:當選擇項發(fā)生改變時,調用selectionChange方法獲取選中的所有數據,此時我們用forEach遍歷數據,用toggleRowSelection方法將頁面中的數據選中,此時toggleRowSelection一次,selectionChange方法執(zhí)行一次 那就在監(jiān)聽數據時,如果數據ID相同,不在執(zhí)行toggleRowSelection方法

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。

相關文章

  • vue3 vite如何讀取文件內容

    vue3 vite如何讀取文件內容

    這篇文章主要介紹了vue3 vite如何讀取文件內容問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • vue實現tab切換外加樣式切換方法

    vue實現tab切換外加樣式切換方法

    下面小編就為大家分享一篇vue實現tab切換外加樣式切換方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • vue-router vuex-oidc動態(tài)路由實例及功能詳解

    vue-router vuex-oidc動態(tài)路由實例及功能詳解

    這篇文章主要為大家介紹了vue-router vuex-oidc動態(tài)路由實例及功能詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • 在Vue中使用icon 字體圖標的方法

    在Vue中使用icon 字體圖標的方法

    這篇文章主要介紹了在Vue中使用icon 字體圖標的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • vue3中配置文件vue.config.js不生效的解決辦法

    vue3中配置文件vue.config.js不生效的解決辦法

    這篇文章主要介紹了vue3中配置文件vue.config.js不生效的解決辦法,文中通過代碼示例講解的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下
    2024-05-05
  • Vue.js中class與style的增強綁定實現方法

    Vue.js中class與style的增強綁定實現方法

    由于Class和Style綁定使用頻繁,字符串拼接麻煩且易錯,因此,Vue.js 做了專門的增強,表達式結果的類型除了字符串之外,還可以是對象或數組,本文給大家講解Vue.js中class與style的增強綁定知識,感興趣的朋友一起看看吧
    2023-04-04
  • vue props 單項數據流實例分享

    vue props 單項數據流實例分享

    在本篇文章里小編給大家分享的是一篇關于vue props 單項數據流實例分享內容,需要的朋友們可以參考下。
    2020-02-02
  • vuex直接修改state、commit和dispatch修改state的用法及區(qū)別說明

    vuex直接修改state、commit和dispatch修改state的用法及區(qū)別說明

    這篇文章主要介紹了vuex直接修改state、commit和dispatch修改state的用法及區(qū)別說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue3響應式高階用法之shallowRef()的使用

    Vue3響應式高階用法之shallowRef()的使用

    在Vue3框架中,shallowRef()為開發(fā)者提供了細粒度的響應式控制能力,特別適用于處理深層嵌套對象或需要部分響應式的場景,本文就來詳細的介紹一下,感興趣的可以了解一下
    2024-09-09
  • vue-router beforeEach跳轉路由驗證用戶登錄狀態(tài)

    vue-router beforeEach跳轉路由驗證用戶登錄狀態(tài)

    這篇文章主要介紹了vue-router beforeEach跳轉路由驗證用戶登錄狀態(tài),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論

藁城市| 渝北区| 乐平市| 嵩明县| 龙游县| 洛浦县| 三台县| 沙雅县| 宜川县| 大名县| 洛阳市| 镇江市| 龙南县| 巫山县| 威信县| 安西县| 广河县| 肥城市| 龙泉市| 石楼县| 新闻| 六盘水市| 新疆| 吉林市| 巴青县| 渝北区| 余姚市| 仪征市| 虹口区| 安国市| 寻乌县| 锦州市| 漳平市| 华安县| 马尔康县| 泰兴市| 静海县| 武义县| 许昌县| 若羌县| 永新县|