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

vue table直接定位到指定元素的操作代碼

 更新時(shí)間:2022年11月24日 11:41:06   作者:_houjie  
最近遇到這樣的需求點(diǎn)擊某一個(gè)節(jié)點(diǎn),彈窗,直接定位到點(diǎn)擊的節(jié)點(diǎn),高亮并顯示數(shù)據(jù),下面小編給大家?guī)?lái)了vue table直接定位到指定元素的操作代碼,需要的朋友可以參考下

vue+element中的表格,直接定位到指定的元素。

需求:點(diǎn)擊某一個(gè)節(jié)點(diǎn),彈窗,直接定位到點(diǎn)擊的節(jié)點(diǎn),高亮并顯示數(shù)據(jù)。

  <el-table ref="highTable" :data="treeData" highlight-current-row border default-expand-all row-key="'id" :tree-props="{children:'children',hasChildren:'hasChildren'}" :row-style="rowClassRender" :row-class-name="tableRowClassName">
            ...
        </el-table>

treeData是我的樹(shù)狀數(shù)據(jù),表格樹(shù)。

default-expand-all:是否默認(rèn)展開(kāi)所有行,當(dāng) Table 包含展開(kāi)行存在或者為樹(shù)形表格時(shí)有效;

row-style:行的 style 的回調(diào)方法,也可以使用一個(gè)固定的 Object 為所有行設(shè)置一樣的 Style; //高亮顯示

row-class-name:行的 className 的回調(diào)方法,也可以使用字符串為所有行設(shè)置一個(gè)固定的 className。 //獲取index(我用的是樹(shù)狀數(shù)據(jù),如果是列表數(shù)據(jù)就不需要)

rowClassRender({
                row
            }) {
                if (row.id === this.currentItemId) {
                    return {
                        'background-color': 'red'
                    }
                } else {
                    return ''
                }
            },
            tableRowClassName({
                row,
                index
            }) {
                //this.nodeItem是我最開(kāi)始點(diǎn)擊的節(jié)點(diǎn)
                if (row.id === this.nodeItem.id) {
                    this.currentIndex = index;
                }
            }

注意:一定要在獲取數(shù)據(jù)之后去賦值?。?!不然scrollTop一直為0?。。。。?/p>

在獲取列表的代碼塊中:

let divT = this.$refs.hightTable;
                this.$nextTick(()=>{
                    divT.scrollTop = 36 * this.currentIndex
                 })

vue中table表格做定位處理

需求:前端根據(jù)搜索條件中的partNo的值,進(jìn)行定位查詢到table列表中對(duì)應(yīng)的每一行

search(){
  if(this.positionIndx.length==0){
    this.tableData.forEach((item,index)=>{
      if(item.partNo == this.queryForm.partNo){
        this.positionIndx.push(index)                        // 定義一個(gè)空數(shù)組 positionIndx 用來(lái)保存相同partNo的下標(biāo);
      }
    })
  }
  if (this.tableData.length > 0) {
    if (this.queryForm.partNo !== '') {
      if (this.$refs['selectPartRefs']) {
        let vmEl = this.$refs['selectPartRefs'].$el            // selectPartRefs 是table中綁定的ref的值,一定要保持一致;
        //計(jì)算滾動(dòng)條的位置
        const targetTop = vmEl.querySelectorAll('.el-table__body tr')[this.positionIndx[this.inPosition]].getBoundingClientRect().top    // 找到table中的每一行利用下標(biāo)來(lái)計(jì)算每一行dom元素的上部與瀏覽器的可視窗口的上面的高度距離;
        const containerTop = vmEl.querySelector('.el-table__body').getBoundingClientRect().top
        const scrollParent = vmEl.querySelector('.el-table__body-wrapper')
        scrollParent.scrollTop = targetTop - containerTop;
        this.inPosition++;                                     // 首先在data中定義 inPosition = 0 ,每次點(diǎn)擊search按鈕的時(shí)候,讓下標(biāo)進(jìn)行++操作,以遍定位到下一個(gè)匹配的partNO;
        if( this.inPosition >= this.positionIndx.length ){
          this.inPosition = 0;                                 // 所有的都遍歷完成以后,讓定位回到第一個(gè)匹配的partNo的行上,以此達(dá)到可以循環(huán)定位的效果;
        }
      }
    } else {
      this.$message({
        type: 'error',
        message:'Please enter the partNo of the query'
      })
    }
  }
},
 

到此這篇關(guān)于vue table直接定位到指定元素的文章就介紹到這了,更多相關(guān)vue定位指定元素內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue版日歷組件的實(shí)現(xiàn)方法

    vue版日歷組件的實(shí)現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了vue版日歷組件的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue2.0移動(dòng)端滑動(dòng)事件vue-touch的實(shí)例代碼

    vue2.0移動(dòng)端滑動(dòng)事件vue-touch的實(shí)例代碼

    這篇文章主要介紹了vue2.0移動(dòng)端滑動(dòng)事件vue-touch的實(shí)例代碼,需要的朋友可以參考下
    2018-11-11
  • vue中對(duì)監(jiān)聽(tīng)esc事件和退出全屏問(wèn)題的解決方案

    vue中對(duì)監(jiān)聽(tīng)esc事件和退出全屏問(wèn)題的解決方案

    這篇文章主要介紹了vue中對(duì)監(jiān)聽(tīng)esc事件和退出全屏問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • VUE 使用中踩過(guò)的坑

    VUE 使用中踩過(guò)的坑

    本篇是我對(duì)vue使用過(guò)程中以及對(duì)一些社區(qū)朋友提問(wèn)我的問(wèn)題中做的一些總結(jié),感興趣的朋友跟隨腳本之家小編一起學(xué)習(xí)吧
    2018-02-02
  • vue使用富文本編輯器vue-quill-editor的操作指南和注意事項(xiàng)

    vue使用富文本編輯器vue-quill-editor的操作指南和注意事項(xiàng)

    vue中很多項(xiàng)目都需要用到富文本編輯器,在使用了ueditor和tinymce后,發(fā)現(xiàn)并不理想,所以果斷使用vue-quill-editor來(lái)實(shí)現(xiàn),下面這篇文章主要給大家介紹了關(guān)于vue使用富文本編輯器vue-quill-editor的操作指南和注意事項(xiàng),需要的朋友可以參考下
    2023-05-05
  • Vue實(shí)現(xiàn)選擇城市功能

    Vue實(shí)現(xiàn)選擇城市功能

    這篇文章主要介紹了Vue實(shí)現(xiàn)選擇城市功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-05-05
  • vue在.js文件中如何進(jìn)行路由跳轉(zhuǎn)

    vue在.js文件中如何進(jìn)行路由跳轉(zhuǎn)

    這篇文章主要介紹了vue在.js文件中如何進(jìn)行路由跳轉(zhuǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 詳解vue.js的事件處理器v-on:click

    詳解vue.js的事件處理器v-on:click

    本篇文章主要介紹了詳解vue.js的事件處理器v-on:click,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • idea部署RuoYi-Vue分離版的圖文詳解

    idea部署RuoYi-Vue分離版的圖文詳解

    RuoYi-Vue是一款基于SpringBoot+Vue的前后端分離極速后臺(tái)開(kāi)發(fā)框架, 本文主要介紹了idea部署RuoYi-Vue分離版的圖文詳解,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-06-06
  • vue3網(wǎng)絡(luò)請(qǐng)求添加loading過(guò)程

    vue3網(wǎng)絡(luò)請(qǐng)求添加loading過(guò)程

    這篇文章主要介紹了vue3網(wǎng)絡(luò)請(qǐng)求添加loading過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08

最新評(píng)論

余姚市| 政和县| 新建县| 曲沃县| 桃源县| 通海县| 稷山县| 承德市| 新绛县| 苗栗县| 开原市| 吴桥县| 赤城县| 武清区| 大同市| 青铜峡市| 富阳市| 东乌珠穆沁旗| 申扎县| 类乌齐县| 芒康县| 平顶山市| 汾西县| 台南县| 皮山县| 莱阳市| 阳高县| 田东县| 红安县| 元氏县| 黄冈市| 辛集市| 淄博市| 东城区| 雅江县| 苍南县| 玉林市| 大厂| 诏安县| 中宁县| 长海县|