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

解決elementUI中el-tree樹形結(jié)構(gòu)中節(jié)點過濾的問題

 更新時間:2023年04月23日 11:12:04   作者:木屋x  
這篇文章主要介紹了解決elementUI中el-tree樹形結(jié)構(gòu)中節(jié)點過濾的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

elementUI中el-tree樹形結(jié)構(gòu)中節(jié)點過濾

業(yè)務需求

vue項目,權(quán)限管理模塊中經(jīng)常遇到樹形結(jié)構(gòu)的處理,這篇文章我們講一下樹形結(jié)構(gòu)的節(jié)點過濾問題。在權(quán)限管理中的菜單管理模塊,當我們新增菜單是需要選擇它的父級菜單或者目錄(有這樣一個需求,就是菜單下面是可以新增按鈕的,所以新增按鈕就需要選擇它的父級菜單,菜單的父級當然只是目錄),那么這里選擇上級菜單或者目錄時就需要對樹形結(jié)構(gòu)進行過濾。

需求分析

處理el-tree的樹形結(jié)構(gòu)過濾問題我們首先會想到遍歷遞歸去給要過濾的節(jié)點的值置空,這樣它既然是空置那么就不會被el-tree樹形渲染,經(jīng)過踩坑這里的答案是不行的,它雖然為空,但還是會占位顯示為空。

這里我使用的是el-tree控件的filter-node-method 方法進行過濾。

解決方案

第一步是既然要過濾的節(jié)點置空不行,那么我們就給他設置一個特殊的過濾值,我用的是'undefined',所以在遞歸遍歷的時候就給要過濾的節(jié)點的值設置為'undefined',然后再對樹形數(shù)據(jù)進行過濾:

? ? ? ? ?// 樹形數(shù)據(jù)過濾
? ? ??? ? this.$nextTick(() => {
? ? ? ? ? ? this.$refs.menutree.filter('undefined')
? ? ? ? ? })

第二步,當已經(jīng)執(zhí)行樹形數(shù)據(jù)過濾之后,然后在樹形組件上綁定:filter-node-method="filterNode"方法對樹形結(jié)構(gòu)的節(jié)點進行過濾:

? ? ? // 樹形節(jié)點過濾
? ? ? filterNode(value, data, node) {
? ? ? ? // if (!value) return true;
? ? ? ? // 當節(jié)點的data.resourcesName里面有值時展示它,否則過濾它
? ? ? ? if (data.resourcesName.includes(value)) {
? ? ? ? ? return false
? ? ? ? } else {
? ? ? ? ? return true
? ? ? ? }
? ? ? },

el-tree樹形踩坑

需求:el-tree節(jié)點需要傳選中的父級菜單給后臺,而不是僅僅子節(jié)點。

比如說下方需要將系統(tǒng)管理的節(jié)點id也傳過給后臺。

處理方法

實現(xiàn):簡單,通過getCheckedNodes()即可,但是需要定義后面的參數(shù)半選節(jié)點為true

遍歷拿到id

 let chooseArr = this.$refs.meauTree.getCheckedNodes(false,true);
 let idList = []
 chooseArr.forEach(item=>{
    idList.push(item.id);
 })

普通需求應該getCheckedKeys即可滿足。

 let chooseArr = this.$refs.meauTree.getCheckedKeys();

回顯菜單

問題來了,回顯菜單的時候,后臺返回的是包含父節(jié)點的id,于是需要過濾處理。

方法:

遍歷el-tree數(shù)據(jù),看是否有子節(jié)點,沒有子節(jié)點則存下id

 resolveAllEunuchNodeId(json, idArr, temp) {
      for (let i = 0; i < json.length; i++) {
        const item = json[i]
        // 存在子節(jié)點,遞歸遍歷;不存在子節(jié)點,將json的id添加到臨時數(shù)組中
        if (item.children && item.children.length !== 0) {
          this.resolveAllEunuchNodeId(item.children, idArr, temp)
        } else {
          temp.push(idArr.filter(id => id === item.id))
        }
      }
      return temp
    }
 

使用:

  • menuData樹形結(jié)構(gòu)數(shù)據(jù) 
  • menuIds后臺拿到的包含所有半選的節(jié)點id數(shù)組
 // 解析出所有的太監(jiān)節(jié)點
this.menuIdList = this.resolveAllEunuchNodeId(this.menuData, menuIds, [])

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 詳解mpvue開發(fā)小程序小總結(jié)

    詳解mpvue開發(fā)小程序小總結(jié)

    這篇文章主要介紹了詳解mpvue開發(fā)小程序小總結(jié),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • 關(guān)于Element-ui中table默認選中toggleRowSelection問題

    關(guān)于Element-ui中table默認選中toggleRowSelection問題

    這篇文章主要介紹了關(guān)于Element-ui中table默認選中toggleRowSelection問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue el-autocomplete遠程搜索下拉框并實現(xiàn)自動填充功能(推薦)

    Vue el-autocomplete遠程搜索下拉框并實現(xiàn)自動填充功能(推薦)

    在elementui Input輸入框中可以找到遠程搜索組件,獲取服務端的數(shù)據(jù)。這篇文章主要給大家介紹Vue el-autocomplete遠程搜索下拉框并實現(xiàn)自動填充功能,感興趣的朋友一起看看吧
    2019-10-10
  • vue滾動條滾動到頂部或者底部的方法

    vue滾動條滾動到頂部或者底部的方法

    這篇文章主要給大家介紹了關(guān)于vue滾動條滾動到頂部或者底部的相關(guān)資料,文中通過代碼示例介紹的非常詳細,對大家的學習或者工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • 如何使用Vue3.2+Vite2.7從0快速打造一個UI組件庫

    如何使用Vue3.2+Vite2.7從0快速打造一個UI組件庫

    構(gòu)建工具使用vue3推薦的vite,下面這篇文章主要給大家介紹了關(guān)于如何使用Vue3.2+Vite2.7從0快速打造一個UI組件庫的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-09-09
  • Vue使用Swiper封裝輪播圖組件的方法詳解

    Vue使用Swiper封裝輪播圖組件的方法詳解

    Swiper是一個很常用的用于實現(xiàn)各種滑動效果的插件,PC端和移動端都能很好的適配。本文將利用Swiper實現(xiàn)封裝輪播圖組件,感興趣的可以了解一下
    2022-09-09
  • vue實現(xiàn)富文本編輯器詳細過程

    vue實現(xiàn)富文本編輯器詳細過程

    Vue富文本的實現(xiàn)可以使用一些現(xiàn)成的第三方庫,如Quill、Vue-quill-editor、wangEditor等,這篇文章主要給大家介紹了關(guān)于vue實現(xiàn)富文本編輯器的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • el-table表格動態(tài)合并行及合并行列實例詳解

    el-table表格動態(tài)合并行及合并行列實例詳解

    在使用el-table的時候經(jīng)常會涉及到表格的列合并,包括表格操作列的合并,下面這篇文章主要給大家介紹了關(guān)于el-table表格動態(tài)合并行及合并行列的相關(guān)資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-10-10
  • Vue-cli3中如何引入ECharts并實現(xiàn)自適應

    Vue-cli3中如何引入ECharts并實現(xiàn)自適應

    這篇文章主要介紹了Vue-cli3中如何引入ECharts并實現(xiàn)自適應,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • 如何使用el-table實現(xiàn)純前端導出(適用于el-table任意表格)

    如何使用el-table實現(xiàn)純前端導出(適用于el-table任意表格)

    我們?nèi)粘W鲰椖?特別是后臺管理系統(tǒng),常常需要導出excel文件,這篇文章主要給大家介紹了關(guān)于如何使用el-table實現(xiàn)純前端導出的相關(guān)資料,本文適用于el-table任意表格,需要的朋友可以參考下
    2024-03-03

最新評論

连南| 长乐市| 西充县| 延边| 龙江县| 东莞市| 杭州市| 双桥区| 栾川县| 靖安县| 吴堡县| 曲沃县| 韶关市| 得荣县| 甘孜| 义乌市| 师宗县| 囊谦县| 拜泉县| 烟台市| 合江县| 姚安县| 昔阳县| 婺源县| 衡南县| 仙桃市| 隆安县| 驻马店市| 乃东县| 织金县| 新密市| 恩平市| 镇平县| 宁乡县| 确山县| 祁连县| 宾川县| 呼和浩特市| 凤庆县| 株洲市| 红原县|