欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element-ui?tree?手動(dòng)展開(kāi)功能實(shí)現(xiàn)(異步樹(shù)也可以)

 更新時(shí)間:2022年08月12日 11:00:52   作者:追極  
這篇文章主要介紹了element-ui?tree?手動(dòng)進(jìn)行展開(kāi)(異步樹(shù)也可以),項(xiàng)目中用到了vue的element-ui框架,用到了el-tree組件,需要的朋友可以參考下

背景

項(xiàng)目中用到了vue的element-ui框架,用到了el-tree組件。由于數(shù)據(jù)量很大,使用了數(shù)據(jù)懶加載模式,即異步樹(shù)。異步樹(shù)采用復(fù)選框進(jìn)行結(jié)點(diǎn)選擇的時(shí)候,沒(méi)法自動(dòng)展開(kāi),官方文檔找了半天也沒(méi)有找到好的辦法! 找不到相關(guān)的配置,或者方法可以使用。 經(jīng)過(guò)調(diào)試與閱讀elment-ui源碼才發(fā)現(xiàn)有現(xiàn)成的方法可以進(jìn)行結(jié)點(diǎn)展開(kāi)。下面就介紹結(jié)點(diǎn)展開(kāi)的實(shí)現(xiàn)!

1.監(jiān)聽(tīng)復(fù)選框點(diǎn)擊事件check

<el-tree
        :props="mulprops"
        :load="loadNode"
        lazy
        node-key="id"
        show-checkbox
        accordion
        @current-change="currentChange"
        :filter-node-method="filterNode"
        @check="handleCheck"
        ref="tree"
        :default-checked-keys="defaultCheckedNodes"
        :default-expanded-keys="defaultExpandedNodes">
    </el-tree>

2.手動(dòng)展開(kāi),使用node.expand()方法

handleCheck(nodeData,  treeChecked) {
      let node = this.$refs.tree.getNode(nodeData.id)
      //將選中的未展開(kāi)的節(jié)點(diǎn)進(jìn)行展開(kāi)
      if(node.checked && !node.expanded){
        node.expand(function(){
          for(let i=0; i< node.childNodes.length; i++){
            node.childNodes[i].expand()
          }
        })
      }
    }

項(xiàng)目中的實(shí)現(xiàn)

(復(fù)選框勾選后能自動(dòng)展開(kāi)并選中,先展開(kāi)再勾選也可以自動(dòng)展開(kāi))

1.監(jiān)聽(tīng)check-change事件

<el-tree
        :props="mulprops"
        :load="loadNode"
        lazy
        node-key="id"
        show-checkbox
        accordion
        @check-change="handleCheckChange"
        :filter-node-method="filterNode"
        ref="tree"
        :default-checked-keys="defaultCheckedNodes"
        :default-expanded-keys="defaultExpandedNodes"
    >
    </el-tree>

2.編寫展開(kāi)結(jié)點(diǎn)方法

handleCheckChange(nodeData, nodeSelected) {
      //展開(kāi)選中的未展開(kāi)的節(jié)點(diǎn)
      let tree = this.$refs.tree;
      let node = tree.getNode(nodeData.id)
      //展開(kāi)選中的未展開(kāi)的節(jié)點(diǎn)
      this.expandNotExpandNodes(node);

      //具體業(yè)務(wù)實(shí)現(xiàn)
      console.log(nodeData, nodeSelected)
    },
    //展開(kāi)選中的未展開(kāi)的節(jié)點(diǎn)
    expandNotExpandNodes(node) {
      let tree = this.$refs.tree;
      if (node.checked && !node.expanded && !node.isLeaf) {
        node.expand(function () {
          let childNodes = node.childNodes;
          for (let i = 0; i < childNodes.length; i++) {
            let childNode = childNodes[i];
            //手動(dòng)觸發(fā)check-change事件,事件處理函數(shù)中回繼續(xù)調(diào)用此函數(shù),形成遞歸展開(kāi)
            tree.$emit('check-change', childNode.data, childNode.checked, childNode.indeterminate);
          }
        })
      }
    },

到此這篇關(guān)于element-ui tree 手動(dòng)進(jìn)行展開(kāi)(異步樹(shù)也可以)的文章就介紹到這了,更多相關(guān)element-ui tree手動(dòng)展開(kāi)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • element--Diaolog彈窗打開(kāi)之后渲染組件方式

    element--Diaolog彈窗打開(kāi)之后渲染組件方式

    這篇文章主要介紹了element--Diaolog彈窗打開(kāi)之后渲染組件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue3+vite+ts使用require.context問(wèn)題

    vue3+vite+ts使用require.context問(wèn)題

    這篇文章主要介紹了vue3+vite+ts使用require.context問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • ElementUI中兩個(gè)Select選擇聯(lián)動(dòng)效果實(shí)現(xiàn)方法

    ElementUI中兩個(gè)Select選擇聯(lián)動(dòng)效果實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于ElementUI中兩個(gè)Select選擇聯(lián)動(dòng)效果實(shí)現(xiàn)的相關(guān)資料,在前端項(xiàng)目開(kāi)發(fā)中,經(jīng)常會(huì)遇到省市縣三級(jí)聯(lián)動(dòng)的下拉列表框組的問(wèn)題,需要的朋友可以參考下
    2023-08-08
  • 使用Elemen加上lang=“ts“后編譯報(bào)錯(cuò)

    使用Elemen加上lang=“ts“后編譯報(bào)錯(cuò)

    本文主要介紹了使用Elemen加上lang=“ts“后編譯報(bào)錯(cuò),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • VUE+Java實(shí)現(xiàn)評(píng)論回復(fù)功能

    VUE+Java實(shí)現(xiàn)評(píng)論回復(fù)功能

    這篇文章主要為大家詳細(xì)介紹了VUE+Java實(shí)現(xiàn)評(píng)論回復(fù)功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue3?keep-alive實(shí)現(xiàn)tab頁(yè)面緩存功能

    vue3?keep-alive實(shí)現(xiàn)tab頁(yè)面緩存功能

    如何在我們切換tab標(biāo)簽的時(shí)候,緩存標(biāo)簽最后操作的內(nèi)容,簡(jiǎn)單來(lái)說(shuō)就是每個(gè)標(biāo)簽頁(yè)中設(shè)置的比如搜索條件及結(jié)果、分頁(yè)、新增、編輯等數(shù)據(jù)在切換回來(lái)的時(shí)候還能保持原樣,這篇文章介紹vue3?keep-alive實(shí)現(xiàn)tab頁(yè)面緩存功能,感興趣的朋友一起看看吧
    2023-04-04
  • vue前端實(shí)現(xiàn)打印下載示例詳解

    vue前端實(shí)現(xiàn)打印下載示例詳解

    這篇文章主要為大家介紹了vue前端實(shí)現(xiàn)打印下載示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • Vue中使用Tailwind CSS的具體方法

    Vue中使用Tailwind CSS的具體方法

    本文主要介紹了Vue中使用Tailwind CSS的具體方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • vue如何循環(huán)請(qǐng)求一個(gè)接口

    vue如何循環(huán)請(qǐng)求一個(gè)接口

    這篇文章主要介紹了vue如何循環(huán)請(qǐng)求一個(gè)接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • vue點(diǎn)擊導(dǎo)航頁(yè)面實(shí)現(xiàn)自動(dòng)滾動(dòng)到特定位置

    vue點(diǎn)擊導(dǎo)航頁(yè)面實(shí)現(xiàn)自動(dòng)滾動(dòng)到特定位置

    這篇文章主要介紹了vue點(diǎn)擊導(dǎo)航頁(yè)面實(shí)現(xiàn)自動(dòng)滾動(dòng)到特定位置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03

最新評(píng)論