小工具知识网

当前位置: 首页 > 行业知识 > Vue2+ElementUI el-table初始化时定位并高亮指定行

行业知识

Vue2+ElementUI el-table初始化时定位并高亮指定行

2026-11-03 23:48:26 来源:互联网转载

目录

  • 需求描述
  • 预期效果
  • 实���

    需求描述

    项目里遇到了这样一个需求: 从指定项跳转到审核页时,需要在待审核列表里高亮显示所选项,若该项在列表可视区域之外,还需要将列表滚动至该项出现在可视区域内

    预期效果

    实现

            ...        

    js部分:

    export default{    data(){        return{                examinedCourseId: null,                showList: [],                textList: [                {                    id: 0,                    name: "xxx"                },                //...            ]        }    },    mounted(){        if(typeof(this.$route.params.id)=='undefined'){            // ...        }else{            this.examinedCourseId = this.$route.params.id            console.log(this.editedCourseId)            this.getList(this.examinedCourseId).then((res)=>{                if (res) {                    // 模拟审核                    this.scrollToGoalRow(12)                      }            })        }        this.showList = this.testList    },    methods: {        getList(id){            // 模拟从后端获取数据            return new Promise((resolve, reject) => {                setTimeout(()=>{                    resolve(true)                }, 200)            })        },        handleChooseRow(currentRow, oldCurrentRow){            this.examinedCourseId = currentRow.id        },        srollToGoalRow(id){            let index = this.testList.findIndex((item) => item.id == id)            let courseListEL = this.$refs.couseList.$el                        if(courseListEL){                const goalRowTop = courseListEL.getElementsByClassName("el-table__row")[index].getBoundingClientRect().top                const listTop = courseListEL.querySelector('.el-table__body').getBoundingClientRect().top                                if(goalRowTop - listTop - 483 > 0){                    this.$refs.couseList.setCurrentRow(this.$refs.couseList.data[index])                    this.$refs.couseList.$refs.bodyWrapper.scrollTop = goalRowTop - listTop                }            }        }    }}

    高亮样式

    ::v-deep{    .el-table{        .el-table__body tr.current-row>td{            background: #6785f1bf !important;            color: white;            font-weight: 600;        }    }}

上一篇:请问短的英文怎么写?

下一篇:宝塔面板安装教程,轻松上手BT-Panel安装秘籍