element中el-table,type=‘expand‘展开行,记录展开了哪些行,点击详情返回回来,默认展开之前记录的行-----改良版

上一篇用了后发现再次点击后就会掉值。突然想起可以直接传展开行的值,不用单独写一个值来传。就解决这个问题了。

直接看代码

这个是表格页的代码:

<el-table ref="tableList" :data="tableData" :row-key="row => row.id" 
:expand-row-keys="expandRows" @expand-change="handleExpandChange">
  <!-- 表格列定义 -->
</el-table>
 
export default {
    data() {
        return {
            // 展开数组
            expandRows: [],
        };
    },
    methods: {
        // 记录展开的id,存进this.expandRows
        handleExpandChange(row, expandedRows) {
      const Ids = []
      expandedRows.forEach(element => {
        Ids.push(element.id)
      })
      this.expandRows= Ids
      console.log('展开的id,this.expandRows', this.expandRows)
    },
    // 跳转详情的函数,我用的params传递,详情页进行接收
goOperationRecard(index, row) {
    // 这个是给详情页传id,可以不用看
      this.$store.dispatch('pageData/setDevice', JSON.stringify(row.id))
    // 主要是这个this.$router.push给详情页传expandRows
      this.$router.push({ name: `OrderOperationRecard`, params: {
        expandRows: this.expandRows
      }})
    },
// 获取表格列表的函数,在此进行接收详情页返回回来的展开的Ids
getFindListAll() {
//...获取表格的接口方法省略了...
            this.expandRows = this.$route.params.expandRows
          
},
    }
}
</script>

这个是详情页的返回函数的代码

    goBack() {
// 返回函数,里面把接收到的expandedRowIds再传给表格页
      this.$router.push({
        name: 'OrderView',
        params: {
          expandRows: this.$route.params.expandRows
        }
      })
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值