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

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

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

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

需求:點(diǎn)擊某一個節(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ù)據(jù),表格樹。

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

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

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

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

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

在獲取列表的代碼塊中:

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

vue中table表格做定位處理

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

search(){
  if(this.positionIndx.length==0){
    this.tableData.forEach((item,index)=>{
      if(item.partNo == this.queryForm.partNo){
        this.positionIndx.push(index)                        // 定義一個空數(shù)組 positionIndx 用來保存相同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ì)算滾動條的位置
        const targetTop = vmEl.querySelectorAll('.el-table__body tr')[this.positionIndx[this.inPosition]].getBoundingClientRect().top    // 找到table中的每一行利用下標(biāo)來計(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按鈕的時候,讓下標(biāo)進(jìn)行++操作,以遍定位到下一個匹配的partNO;
        if( this.inPosition >= this.positionIndx.length ){
          this.inPosition = 0;                                 // 所有的都遍歷完成以后,讓定位回到第一個匹配的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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳解vue中v-model和v-bind綁定數(shù)據(jù)的異同

    詳解vue中v-model和v-bind綁定數(shù)據(jù)的異同

    這篇文章主要介紹了vue中v-model和v-bind綁定數(shù)據(jù)的異同,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • vue?webpack打包原理解析(全網(wǎng)最新最全)

    vue?webpack打包原理解析(全網(wǎng)最新最全)

    webpack是讓我們可以進(jìn)行模塊化開發(fā),并且會幫助我們處理模塊間的依賴關(guān)系,這篇文章主要介紹了vue?webpack打包原理,本篇介紹的有點(diǎn)長,希望大家耐心閱讀
    2023-02-02
  • 解決el-date-picker日期選擇控件少一天的問題

    解決el-date-picker日期選擇控件少一天的問題

    這篇文章主要介紹了解決el-date-picker日期選擇控件少一天的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Vue組件化通訊的實(shí)例代碼

    Vue組件化通訊的實(shí)例代碼

    這篇文章主要介紹了Vue組件化通訊的實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • vue實(shí)現(xiàn)文章點(diǎn)贊和差評功能

    vue實(shí)現(xiàn)文章點(diǎn)贊和差評功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)文章點(diǎn)贊和差評功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn)

    解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn)

    這篇文章主要介紹了解決vuex刷新狀態(tài)初始化的方法實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • vue cli3 配置 stylus全局變量的使用方式

    vue cli3 配置 stylus全局變量的使用方式

    這篇文章主要介紹了vue cli3 配置 stylus全局變量的使用方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue.js組件tree實(shí)現(xiàn)無限級樹形菜單

    Vue.js組件tree實(shí)現(xiàn)無限級樹形菜單

    這篇文章主要為大家詳細(xì)介紹了Vue.js組件tree實(shí)現(xiàn)無限級樹形菜單代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Vue.js?rules校驗(yàn)規(guī)則舉例詳解

    Vue.js?rules校驗(yàn)規(guī)則舉例詳解

    Vue表單校驗(yàn)規(guī)則(rules)是一種用于驗(yàn)證表單數(shù)據(jù)的對象,它通常用于Vue.js框架中的表單組件中,可以在表單提交前進(jìn)行數(shù)據(jù)驗(yàn)證,這篇文章主要給大家介紹了關(guān)于Vue.js?rules校驗(yàn)規(guī)則的相關(guān)資料,需要的朋友可以參考下
    2024-02-02
  • Vue3?中實(shí)現(xiàn)元素拖拽功能

    Vue3?中實(shí)現(xiàn)元素拖拽功能

    這篇文章主要介紹了在Vue3中實(shí)現(xiàn)飄逸的元素拖拽,在本次案例中需要認(rèn)真思考對應(yīng)的幾個坐標(biāo)和移動時坐標(biāo)如何更新,事件的使用要成對出現(xiàn),如何在這個拖拽的 Icon 上增加點(diǎn)擊事件時還需要多做一些處理,需要的朋友可以參考下
    2023-07-07

最新評論