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

element-ui中實(shí)現(xiàn)tree子節(jié)點(diǎn)部分選中時(shí)父節(jié)點(diǎn)也選中

 更新時(shí)間:2022年08月02日 09:15:11   作者:雅致坊  
這篇文章主要介紹了element-ui中實(shí)現(xiàn)tree子節(jié)點(diǎn)部分選中時(shí)父節(jié)點(diǎn)也選中的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

子節(jié)點(diǎn)部分選中時(shí)父節(jié)點(diǎn)也選中

如果需求是:選中任何一個(gè)子節(jié)點(diǎn)都默認(rèn)選擇父節(jié)點(diǎn),怎么辦?

其實(shí),element-ui也提供了方案,常規(guī)下,如果子節(jié)點(diǎn)選中,那么這時(shí)父節(jié)點(diǎn)是半選中狀態(tài),在獲取選中值時(shí),只需要利用**getHalfCheckedKeys()+getCheckedKeys()**兩個(gè)方法即可達(dá)到效果。

?let zi = this.$refs.tree.getCheckedKeys()//返回選中子節(jié)點(diǎn)的key
?let fu =this.$refs.tree.getHalfCheckedKeys()//返回選中子節(jié)點(diǎn)的父節(jié)點(diǎn)的key
?let new1 = zi.concat(fu)

el-tree數(shù)據(jù)回顯時(shí)子節(jié)點(diǎn)部分選中,父節(jié)點(diǎn)都全選中的坑

el-tree 在編輯中回顯數(shù)據(jù)時(shí),有一個(gè)bug,就是只要我們回顯的數(shù)據(jù)中有父節(jié)點(diǎn)的 id,不管當(dāng)前父節(jié)點(diǎn)下的子節(jié)點(diǎn)是部分選中還是全選中,回顯的效果是該父子節(jié)點(diǎn)下的子節(jié)點(diǎn)都會(huì)全選中,這很顯然不是我們需要的

看大家有用自己的辦法解決,比如有說用 check-strictly 來控制父子互不互相關(guān)聯(lián)的做法,還有自己手動(dòng)寫函數(shù)來控制父子節(jié)點(diǎn)的選中狀態(tài),但是方法多感覺很繁瑣。

我這里用getNode()的方法來簡單解決

預(yù)計(jì)的效果

目前實(shí)際效果

先上代碼看如何實(shí)現(xiàn)

template 部分

 <el-tree
   :data="list.data"
   show-checkbox
   node-key="id"
   :props="defaultProps"
   :default-expand-all="list.isExpand"
   v-loading="list.loading"
   ref="tree"
   @check-change="checkChange">
 </el-tree>

js 部分

export default {
  data () {
    return {
      list: {
        data: [],
        loading: false,
        isExpand: true
      },
      defaultProps: {
        children: 'children',
        label: 'name'
      },
      loading:false
    }
  },
  methods: {
    defaultChecked () { // 默認(rèn)選中
      this.$nextTick(() => {
        const arr = []
        this.menus.forEach(item => {
          if (!this.$refs.tree.getNode(item.id).childNodes || !this.$refs.tree.getNode(item.id).childNodes.length) {
            arr.push(item.id)
          }
        })
        this.$refs.tree.setCheckedKeys(arr)
      })
    },
  }
}

解析:this.menus 是從后端獲取回來的數(shù)據(jù),getNode() 獲取到當(dāng)前節(jié)點(diǎn),判斷當(dāng)前節(jié)點(diǎn)是否是葉子節(jié)點(diǎn),是的話存入 arr 數(shù)組中,最后使用 setCheckedKeys() 將數(shù)據(jù)回顯選中,從而實(shí)現(xiàn)父級(jí)的半選狀態(tài)

打印了一下Node 節(jié)點(diǎn)

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

相關(guān)文章

最新評(píng)論

安徽省| 靖远县| 和田县| 蒙自县| 巴彦县| 九寨沟县| 安国市| 龙江县| 彭山县| 仁怀市| 沅江市| 那曲县| 嘉荫县| 闵行区| 镇沅| 聂荣县| 丹棱县| 镇安县| 长白| 平乡县| 东丽区| 雅安市| 吴旗县| 龙口市| 盘锦市| 尼木县| 响水县| 昌江| 华容县| 涞源县| 锡林浩特市| 平阳县| 尉犁县| 诏安县| 商南县| 乌拉特后旗| 铜鼓县| 呼和浩特市| 金塔县| 北京市| 德清县|