Elment Plus表格展开行后,进行修改数据后展开行自动收起

您所在的位置:网站首页 表格行折叠了 Elment Plus表格展开行后,进行修改数据后展开行自动收起

Elment Plus表格展开行后,进行修改数据后展开行自动收起

2024-02-02 03:02| 来源: 网络整理| 查看: 265

Elment Plus表格展开行后,进行修改数据后展开行自动收起

场景:

在使用Element Plus中的table组件展示数据时,由于需要对表格行内数据的数据进行修改,在展开行内放置了一个输入框组件,但是在每次输入框输入时,展开行就会自动收起。

解决方法:

首先我们明确一点就是:在数据发生改变时是会引起表格的重新渲染的。

这里需要使用table组件的两个属性:row-key、expand-row-keys

row-key:image-20220118155045744

expand-row-keys:

image-20220118155308694

 

row-key有点类似于选择器组件的value属性,expand-row-keys则类似于选择器组件内多选的数组。我们需要通过在expand-change事件中对expand-row-keys这个数组进行操作来达到控制expand是否展开的目的。

demo                                                        ​import { defineComponent, ref } from 'vue'​export default defineComponent({  setup() {    const expandedRowKeys = ref([]),      remove = function (array: any[], val: any) {        const index = array.indexOf(val)        if (index > -1) {          array.splice(index, 1)          return true       }        return false     },      expandOpen = async (row: any, expand: any) => {        console.log(row, expand)        if (!remove(expandedRowKeys.value, row.recordId)) {          expandedRowKeys.value.push(row.recordId)       }        //业务实现     },      tableData = ref([       {          date: '2016-05-03',          name: 'Tom',          address: 'No. 189, Grove St, Los Angeles'       },       {          date: '2016-05-02',          name: 'Tom',          address: 'No. 189, Grove St, Los Angeles'       },       {          date: '2016-05-04',          name: 'Tom',          address: 'No. 189, Grove St, Los Angeles'       },       {          date: '2016-05-01',          name: 'Tom',          address: 'No. 189, Grove St, Los Angeles'       }     ]),      tableColumns = [       { prop: 'date', label: 'Date', width: '180' },       {


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3