Vue3,el-tabel,如何设置展开项下拉选项和关闭下拉选项

  <el-table :data="tableData" :border="parentBorder" style="width: 100%">

    <el-table-column type="expand">

      <template #default="props">

          <el-checkbox  >{{ 选择项 }}</el-checkbox>

          <el-input>输入</el-input>

      </template>

    </el-table-column>

    <el-table-column label="Date" prop="date" />

    <el-table-column label="Name" prop="name" />

  </el-table>

</template>

此时,当勾选选择项或者,输入值时,tabel展开项回自动关闭,解决办法:

第一步,设置row-key获取到唯一值,

第二步,设置expand-row-keys设置一个空数组,

第三步,当点击展开列按钮,调用方法,将Id/name等其他不显示的值,通过expand.value=[row.*];判断expandedRows的长度,如果为空,把expands.value=[] ,如果不为空,把expands.value=[],如果row为true,将row.name存到数组中。

此时:当你点击哪项,会获取到指定数据,再次点击展开项关闭,每次展开项只能打开一个。

意思是:获取当前行的变量,把不显示的变量如(Id/name),设置到expand中。通过不显示的变量,开展开当前行和关闭当前行。

代码如下:

<el-table :data="tableData" :border="parentBorder" style="width: 100%"

@expand-change="expandChange" :expand-row-keys="expand" :row-key="getRowKeys">

    <el-table-column type="expand">

      <template #default="props">

          <el-checkbox  >{{ 选择项 }}</el-checkbox>

          <el-input>输入</el-input>

      </template>

    </el-table-column>

    <el-table-column label="Date" prop="date" />

    <el-table-column label="Name" prop="name" />

  </el-table>

</template>

<script>

const expand = ref([]) as any

const getRowKeys = (row: any) => {

    return row.regionId

}

const expandChange = (row: any, expandedRows: any) => {

    expands.value = [row.regionId]

    if (expandedRows.length) {

        expand.value = []

        if (row) {

            expand.value.push(row.regionId)

        }

    } else {

        expand.value = []

    }

}

</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值