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

vue2+elementUI的el-tree的選中、高亮、定位功能的實(shí)現(xiàn)

 更新時(shí)間:2022年09月19日 09:42:08   作者:懶啦  
這篇文章主要介紹了vue2+elementUI的el-tree的選中、高亮、定位功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

在使用無選擇框的el-tree時(shí)遇到的坑以及如何使用el-tree

最后附全部代碼

    ref="tree" ----> 必須寫
    accordion ----> 是否每次只打開一個(gè)同級樹節(jié)點(diǎn)展開 看個(gè)人選擇
    default-expand-all ----> 默認(rèn)打開全部節(jié)點(diǎn)
    :data="leftData"  ----> 必寫 展示數(shù)據(jù)
    @node-click="handleNodeClick" ----> 節(jié)點(diǎn)被點(diǎn)擊時(shí)的回調(diào)
    node-key="listId"  ----> 設(shè)置選中的數(shù)據(jù) 必須寫 注意不要寫 ':' 我當(dāng)時(shí)就是寫了 找錯(cuò)找了得有好幾個(gè)小時(shí) 哭死
    :current-node-key="currentNodeKey" ----> 設(shè)置選中必須寫
    :highlight-current="true" ----> 設(shè)置高亮 必須寫
    :props="defaultProps" ----> 可以配置節(jié)點(diǎn)標(biāo)簽的屬性值

props的配置

在這里插入圖片描述

HTML部分

    <el-tree
      ref="tree"
      default-expand-all
      :data="data"
      @node-click="handleNodeClick"
      node-key="id"
      :current-node-key="currentNodeKey"
      :highlight-current="true"
      :props="defaultProps"
    >
      <span class="custom-tree-node" slot-scope="{ node, data }">
        <span :id="data.id">{{ node.label }}</span>
      </span>
    </el-tree>
    <el-button @click="nodeClick1" type="primary">點(diǎn)擊后選中id為006的</el-button>

JS部分

<script>
export default {
  data() {
    return {
      data: [
        {
          id: 1,
          name: "一級 1",
          children: [
            {
              id: 4,
              name: "二級 1-1",
              children: [
                {
                  id: 9,
                  name: "三級 1-1-1",
                },
                {
                  id: 10,
                  name: "三級 1-1-2",
                },
              ],
            },
          ],
        },
        {
          id: 2,
          name: "一級 2",
          children: [
            {
              id: "005",
              name: "二級 2-1",
            },
            {
              id: "006",
              name: "二級 2-2",
            },
          ],
        },
        {
          id: 3,
          name: "一級 3",
          children: [
            {
              id: 7,
              name: "二級 3-1",
            },
            {
              id: 8,
              name: "二級 3-2",
              children: [
                {
                  id: 11,
                  name: "三級 3-2-1",
                },
                {
                  id: 12,
                  name: "三級 3-2-2",
                },
                {
                  id: 13,
                  name: "三級 3-2-3",
                },
              ],
            },
          ],
        },
      ],
      defaultProps: {
        children: "children",
        label: "name",
      },
      currentNodeKey: "",
    };
  },
   watch: {
    currentNodeKey(newVal) {
      if (newVal.toString()) {
        this.$refs["tree"].setCurrentKey(newVal);
      } else {
        this.$refs["tree"].setCurrentKey(null);
      }
    },
  },
  methods: {
    // 點(diǎn)擊節(jié)點(diǎn)
    handleNodeClick(data,node){
      this.currentNodeKey = data.id;
      // 判斷點(diǎn)擊的層級進(jìn)行操作
      if(node.level == 1){
        console.log('第一層data1',data);
        console.log('第一層node1',node);
      }else if(node.level == 2){
        console.log('第二層data2',data);
        console.log('第二層node2',node);
      }else if(node.level == 3){
        console.log('第三層data3',data);
        console.log('第三層node3',node);
      }
    },

    nodeClick1(){
      // 點(diǎn)擊選中006號
      this.$refs.tree.setCurrentKey('006'); 
    },

    // 如果數(shù)據(jù)過多可以調(diào)用這個(gè)方法并傳入要顯示的id
    //滾動到選中定位的位置
    selectedRegion(id) {
      console.log("滾動到選中定位的位置");
      // 通過Id獲取到對應(yīng)的dom元素
      const node = document.getElementById(id);
      setTimeout(() => {
        if (node) {
          this.$nextTick(() => {
            // 通過scrollIntoView方法將對應(yīng)的dom元素定位到可見區(qū)域 【block: 'center'】這個(gè)屬性是在垂直方向居中顯示
            node.scrollIntoView({ block: "center" });
          });
        }
      }, 100);
    },
  },
};
</script>

修改樣式

<style scoped>
/*  點(diǎn)擊時(shí)的樣式 */
.el-tree ::v-deep.el-tree-node:focus > .el-tree-node__content {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
/* tree 的高度和寬度重新定義 */
::v-deep.el-tree .el-tree-node > .el-tree-node__content {
  width: 300px;
  height: 40px;
}
/*  鼠標(biāo)hover改變背景顏色 */
.el-tree ::v-deep.el-tree-node > .el-tree-node__content:hover {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
/*  顏色高亮 */
::v-deep.el-tree--highlight-current
  .el-tree-node.is-current
  > .el-tree-node__content {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
</style>

附上全部代碼

<style scoped>
/*  點(diǎn)擊時(shí)的樣式 */
.el-tree ::v-deep.el-tree-node:focus > .el-tree-node__content {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
/* tree 的高度和寬度重新定義 */
::v-deep.el-tree .el-tree-node > .el-tree-node__content {
  width: 300px;
  height: 40px;
}
/*  鼠標(biāo)hover改變背景顏色 */
.el-tree ::v-deep.el-tree-node > .el-tree-node__content:hover {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
/*  顏色高亮 */
::v-deep.el-tree--highlight-current
  .el-tree-node.is-current
  > .el-tree-node__content {
  background-color: #edf3fc !important;
  border-radius: 8px;
}
</style>

到此這篇關(guān)于vue2+elementUI的el-tree的選中、高亮、定位的文章就介紹到這了,更多相關(guān)vue2 elementUI選中、高亮、定位內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用vNode實(shí)現(xiàn)給列表字段打標(biāo)簽

    使用vNode實(shí)現(xiàn)給列表字段打標(biāo)簽

    這篇文章主要為大家介紹了使用vNode實(shí)現(xiàn)給列表字段打標(biāo)簽示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • vue?Router(v3.x)?路由傳參的三種方式場景分析

    vue?Router(v3.x)?路由傳參的三種方式場景分析

    vue?路由傳參的使用場景一般都是應(yīng)用在父路由跳轉(zhuǎn)到子路由時(shí),攜帶參數(shù)跳轉(zhuǎn),傳參方式可劃分為?params?傳參和?query?傳參,而?params?傳參又可分為在?url?中顯示參數(shù)和不顯示參數(shù)兩種方式,這就是vue路由傳參的三種方式,感興趣的朋友跟隨小編一起看看吧
    2023-07-07
  • vue-rx的初步使用教程

    vue-rx的初步使用教程

    這篇文章主要介紹了vue-rx的初步使用教程,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue3中封裝axios請求最新實(shí)現(xiàn)步驟

    vue3中封裝axios請求最新實(shí)現(xiàn)步驟

    這篇文章主要給大家介紹了關(guān)于vue3中封裝axios請求的最新實(shí)現(xiàn)步驟,在Vue 3中可以通過封裝axios來實(shí)現(xiàn)接口的統(tǒng)一管理和調(diào)用,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-04-04
  • 在vue中實(shí)現(xiàn)iframe嵌套Html頁面及注意事項(xiàng)說明

    在vue中實(shí)現(xiàn)iframe嵌套Html頁面及注意事項(xiàng)說明

    這篇文章主要介紹了在vue中實(shí)現(xiàn)iframe嵌套Html頁面及注意事項(xiàng)說明,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue Element UI + OSS實(shí)現(xiàn)上傳文件功能

    Vue Element UI + OSS實(shí)現(xiàn)上傳文件功能

    這篇文章主要為大家詳細(xì)介紹了Vue Element UI + OSS實(shí)現(xiàn)上傳文件功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • 深入了解Vue中單向數(shù)據(jù)流的原理與管理

    深入了解Vue中單向數(shù)據(jù)流的原理與管理

    在Vue中,數(shù)據(jù)流是指數(shù)據(jù)的傳遞和管理方式,而Vue采用的是單向數(shù)據(jù)流,所以這篇文章就來就來和大家講講什么是Vue的數(shù)據(jù)流以及如何進(jìn)行數(shù)據(jù)流管理,感興趣的可以了解一下
    2023-06-06
  • vue2 router 動態(tài)傳參,多個(gè)參數(shù)的實(shí)例

    vue2 router 動態(tài)傳參,多個(gè)參數(shù)的實(shí)例

    下面小編就為大家?guī)硪黄獀ue2 router 動態(tài)傳參,多個(gè)參數(shù)的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue3中的:deep()深度選擇器詳解

    vue3中的:deep()深度選擇器詳解

    本文講述了"v-deep"深度選擇器被廢棄的情況,作者提醒讀者更新知識庫,避免誤導(dǎo)他人,深度選擇器是HTML5的新屬性,用于實(shí)現(xiàn)組件私有化和防止樣式污染,如果想讓樣式中的一個(gè)選擇器作用得更深,可以使用深度選擇器,但現(xiàn)在,以前的寫法已不再支持,需要調(diào)整方法
    2024-10-10
  • vue對象的深度克隆方式

    vue對象的深度克隆方式

    這篇文章主要介紹了vue對象的深度克隆方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-09-09

最新評論

乌拉特后旗| 特克斯县| 长葛市| 临武县| 勐海县| 鹿泉市| 武平县| 宜昌市| 乌兰浩特市| 盖州市| 柳河县| 牡丹江市| 屏山县| 凭祥市| 大洼县| 建湖县| 柘荣县| 铜陵市| 嘉善县| 海城市| 武强县| 石台县| 徐水县| 华坪县| 扶沟县| 分宜县| 英超| 思南县| 万年县| 铁岭市| 志丹县| 四会市| 清涧县| 禄丰县| 繁峙县| 安乡县| 宁都县| 清新县| 东明县| 凤庆县| 昌图县|