Vue el-table 默认展开某一行的实例

 更新时间:2022年08月09日 14:27:01   作者:Song_Estelle  
这篇文章主要介绍了Vue el-table 默认展开某一行的实例,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Vue el-table 默认展开某一行

需求是在另外一个页面选择IP地址直接到这个页面,并需要默认展开选择的那一行

代码如下:

<el-table
  border
  ref="expandTable"
  :data="nodeList">
  <el-table-column type="expand">
    <template slot-scope="props">
      <el-form label-position="left" inline class="demo-table-expand">
        <el-form-item label="节点IP:">
          <span>{{ props.row.ip }}</span>
        </el-form-item>
        <el-form-item label="国家/城市:">
          <span>{{ props.row.country }}</span>
        </el-form-item>
        <el-form-item label="购买日期:">
          <span>{{ props.row.purchaseDate }}</span>
        </el-form-item>
        <el-form-item label="到期日期:">
          <span>{{ props.row.expiryDate }}</span>
        </el-form-item>
      </el-form>
    </template>
  </el-table-column>
  <el-table-column type="selection" width="55" align="center"/>
  <el-table-column label="序号" type="index" width="55" align="center"/>
  <el-table-column label="IP地址" align="center" prop="ip" width="150"/>
  <el-table-column label="国家/城市" align="center" prop="country" width="200"/>
  <el-table-column label="购买日期" align="center" prop="purchaseDate" sortable width="160"/>
  <el-table-column label="到期日期" align="center" prop="expiryDate" sortable width="160"/>
</el-table>

在获取列表时,调用展开详情,这只适用于一个表格

/** 查询列表 */
getList() {
  this.nodeList = [];
  // 从URL中获取的对应的主键ID
  const rowId = this.$route.query && this.$route.query.rowId;
  listNode(this.queryParams).then(response => {
    this.nodeList = response.rows;
    this.total = response.total;
    // 查找rowId对应的列表的下标值
    let index = this.nodeList.findIndex(item => item.id === this.rowId);
    if (index >= 0) {
      this.openDetail(this.nodeList[index]);
    }
  });
},
/** 展开详情 */
openDetail(row) {
  this.$nextTick(() => {
    this.$refs.expandTable.toggleRowExpansion(row, true);
  });
},

但是如果表格在for循环下,或者在多个tab下的话,那么this.$refs.expandTable就是一个数组,就需要使用下列方式:

openDetail(row) {
  this.$nextTick(() => {
    for (let i = 0; i < this.$refs.expandTable.length; i++) {
      this.$refs.expandTable[i].toggleRowExpansion(row, true);
    }
  });
},

el-table 高亮某一行

使用 highlight-current-row 属性

el-table 加上 highlight-current-row 属性。

<el-table ref='tTable' :data="dataList" highlight-current-row></el-table>

调用 setCurrentRow(row, true) 设置当前行高亮,row为dataList里面的数据。

selectRow(row) {
     if (row) {
       this.$refs.tTable.setCurrentRow(row, true);
     } else {
       this.$refs.tTable.setCurrentRow();  // 取消高亮
     }
}

如果要改变默认的高亮的颜色。这样就把项目中所有el-table的高亮颜色都改了。

<style lang="scss">
    .el-table__body tr.current-row>td {
        background: #453878 !important;
    }
</style>

使用 row-class-name

<el-table ref='transcriptTable' :data="sentenceList" height="400" :row-class-name="transcriptTableRowClassName"></table>
    transcriptTableRowClassName({row, rowIndex}) {
        if (rowIndex === this.curSentenceRowIndex) {
            return 'speak-row';
        }
        return '';
    },

如果是当前行时,返回不同的样式。

<style lang="scss">
    .el-table .speak-row {
        color: darkorange;
        font-size: 15px;
        font-weight: 500;
        background: #f0f9eb;
    }
</style>

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。 

相关文章

  • Vue 监视属性之天气案例实现

    Vue 监视属性之天气案例实现

    这篇文章主要介绍了Vue 监视属性之天气案例实现,文章以天气为例展开介绍Vue 监视属性 的相关内容,需要的小伙伴可以参考一下
    2022-05-05
  • Vue自定义组件实现 v-model 的几种方式

    Vue自定义组件实现 v-model 的几种方式

    在 Vue 中,v-model 是一个常用的指令,用于实现表单元素和组件之间的双向绑定,当我们使用原生的表单元素时,直接使用 v-model 是很方便的,本文给大家介绍了Vue自定义组件实现 v-model 的几种方式,需要的朋友可以参考下
    2024-02-02
  • Vue按需加载的具体实现

    Vue按需加载的具体实现

    本篇文章主要介绍了Vue按需加载的具体实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • Vue事件处理原理及过程详解

    Vue事件处理原理及过程详解

    这篇文章主要介绍了vue事件处理原理及过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • vue 过滤器和自定义指令的使用

    vue 过滤器和自定义指令的使用

    本文主要介绍Vue.js中过滤器和自定义指令相关的知识点,包括过滤器的定义方式,和使用方法,以及自定义指令的概念和注册方式。
    2021-05-05
  • vue2路由基本用法实例分析

    vue2路由基本用法实例分析

    这篇文章主要介绍了vue2路由基本用法,结合实例形式分析了vue2路由基本功能、原理、用法与操作注意事项,需要的朋友可以参考下
    2020-03-03
  • vue中改变选中当前项的显示隐藏或者状态的实现方法

    vue中改变选中当前项的显示隐藏或者状态的实现方法

    下面小编就为大家分享一篇vue中改变选中当前项的显示隐藏或者状态的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • web前端vue filter 过滤器

    web前端vue filter 过滤器

    vue的过滤器通常用在一些常见的文本格式化,过滤器可以用在两个地方:双花括号插值和 v-bind 表达式。本文给大家介绍了web前端vue filter 过滤器的相关知识,感兴趣的朋友一起看看吧
    2018-01-01
  • vuex中this.$store.commit和this.$store.dispatch的基本用法实例

    vuex中this.$store.commit和this.$store.dispatch的基本用法实例

    在vue的项目里常常会遇到父子组件间需要进行数据传递的情况,下面这篇文章主要给大家介绍了关于vuex中this.$store.commit和this.$store.dispatch的基本用法的相关资料,需要的朋友可以参考下
    2023-01-01
  • vue中nextTick用法实例

    vue中nextTick用法实例

    在本篇文章里小编给大家整理了关于vue中nextTick用法实例以及相关代码内容,需要的朋友们可以参考下。
    2019-09-09

最新评论