首页 > 其他分享 >vue+element-ui 点击表格某一行,展开内容

vue+element-ui 点击表格某一行,展开内容

时间:2023-07-19 16:48:25浏览次数:40  
标签:vue 小吃 element ui key props expands id row

正常情况下,表格中想要展开某一行只能通过点击最前面的小箭头,如果想要实现点击某一行后直接展开,那么首先,就要先了解这几个属性:

  row-key的值只能是表格中某一列的key,而expand-row-keys数组里保存的则是所有展开行的row-key值,假如设置row-key=“id”,那么expand-row-keys数组里则保存的是表格中所有展开行的id值。

<template>
  <el-table :data="tableData" row-key="id" :expand-row-keys="expands" @row-click="rowClick" style="width: 100%">
    <el-table-column type="expand">
      <template slot-scope="props">
        <el-form label-position="left" inline class="demo-table-expand">
          <el-form-item label="商品名称">
            <span>{{ props.row.name }}</span>
          </el-form-item>
          <el-form-item label="所属店铺">
            <span>{{ props.row.shop }}</span>
          </el-form-item>
          <el-form-item label="商品 ID">
            <span>{{ props.row.id }}</span>
          </el-form-item>
          <el-form-item label="店铺 ID">
            <span>{{ props.row.shopId }}</span>
          </el-form-item>
          <el-form-item label="商品分类">
            <span>{{ props.row.category }}</span>
          </el-form-item>
          <el-form-item label="店铺地址">
            <span>{{ props.row.address }}</span>
          </el-form-item>
          <el-form-item label="商品描述">
            <span>{{ props.row.desc }}</span>
          </el-form-item>
        </el-form>
      </template>
    </el-table-column>
    <el-table-column label="商品 ID" prop="id"></el-table-column>
    <el-table-column label="商品名称" prop="name"></el-table-column>
    <el-table-column label="描述" prop="desc"></el-table-column>
  </el-table>
</template>
<style>
.demo-table-expand {
  font-size: 0;
}
.demo-table-expand label {
  width: 90px;
  color: #99a9bf;
}
.demo-table-expand .el-form-item {
  margin-right: 0;
  margin-bottom: 0;
  width: 50%;
}
</style>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          id: '12987122',
          name: '好滋好味鸡蛋仔',
          category: '江浙小吃、小吃零食',
          desc: '荷兰优质淡奶,奶香浓而不腻',
          address: '上海市普陀区真北路',
          shop: '王小虎夫妻店',
          shopId: '10333'
        },
        {
          id: '12987123',
          name: '好滋好味鸡蛋仔',
          category: '江浙小吃、小吃零食',
          desc: '荷兰优质淡奶,奶香浓而不腻',
          address: '上海市普陀区真北路',
          shop: '王小虎夫妻店',
          shopId: '10333'
        },
        {
          id: '12987125',
          name: '好滋好味鸡蛋仔',
          category: '江浙小吃、小吃零食',
          desc: '荷兰优质淡奶,奶香浓而不腻',
          address: '上海市普陀区真北路',
          shop: '王小虎夫妻店',
          shopId: '10333'
        },
        {
          id: '12987126',
          name: '好滋好味鸡蛋仔',
          category: '江浙小吃、小吃零食',
          desc: '荷兰优质淡奶,奶香浓而不腻',
          address: '上海市普陀区真北路',
          shop: '王小虎夫妻店',
          shopId: '10333'
        }
      ],
      expands: []
    }
  },
  methods: {
    //在<table>里,我们已经设置row的key值设置为每行数据id:row-key="id"
    rowClick(row, event, column) {
      if (this.expands.indexOf(row.id) < 0) {
        this.expands.push(row.id)
      } else {
        this.expands.remove(row.id)
      }
      console.log(this.expands) // ['12987122','12987123']
    }
  }
}
</script>

运行结果输出expands数组为['12987122','12987123']

 

标签:vue,小吃,element,ui,key,props,expands,id,row
From: https://www.cnblogs.com/zengyu123/p/17566004.html

相关文章

  • huilder 无法调试微信小程序方法
    huilder无法调试微信小程序方法 npxbrowserslist@latest--update-db​14:20:29.948项目'test11'编译成功。前端运行日志,请另行在小程序开发工具的控制台查看。14:20:29.953正在启动微信开发者工具...14:20:30.328[微信小程序开发者工具]-initialize14:20:30.330[微......
  • element-ui pagination分页组件 点击一次页面跳转触发两次current-change请求
    在项目中使用element编写前端页面时,发现在使用pagination分页组件的时候,出现一个坑。情况是每一次点击页面切换,都会重复触发两次页面切换current-change事件。无论是点击后面的页码或者是下一页或者是跳转到某个页面都会触发两次。第一次正常触发,第二次触发后会返回首页。经过多......
  • 【实战技能】基于硬件垂直消隐的多缓冲技术在LVGL, emWin,GUIX和TouchGFX应用,含视频教
    原贴地址:https://www.armbbs.cn/forum.php?mod=viewthread&tid=120114这两天研究了下LVGL的持单缓冲,双缓冲和配合硬件消隐的双缓冲的实现(已经分享V5,V6和V7开发板的程序模板),特别是这个整屏缓冲方案,这几款GUI的实现基本是一样的,所以专门开了一期视频做个分享。视频:https://www.b......
  • 数据迁移卷不动了?Squids DBMotion新增多种数据库迁移能力
    又双叒叕,丝滑的零停机数据库在线迁移工具SquidsDBMotion再发新版!SqudisDBMotion新增了多种数据库的迁移能力:SQLServertoSQLServer、RedistoRedis、MySQLtoKafka,增加了列映射、校验任务独立、抽样校验、校验复检和限速等十多项功能。本次版本更新,DBMotion新增了三种数据库迁......
  • docker build后在哪里能找到
    DockerBuild后在哪里能找到在使用Docker进行应用程序的构建时,我们使用dockerbuild命令来创建一个Docker镜像。但是,构建完成后,我们可能会好奇这个镜像在哪里,以及如何访问它。本文将向你介绍Docker构建完成后镜像所在的位置,并提供代码示例来帮助你理解这个过程。Docker......
  • [LeetCode] 2222. Number of Ways to Select Buildings
    Youaregivena 0-indexed binarystring s whichrepresentsthetypesofbuildingsalongastreetwhere:s[i]='0' denotesthatthe ith buildingisanofficeands[i]='1' denotesthatthe ith buildingisarestaurant.Asacityoff......
  • cpp generate uuid by random
    #include<cstdio>#include<cstdlib>#include<ctime>#include<cstdint>uint32_trand32(){return((rand()&0x3)<<30)|((rand()&0x7fff)<<15)|(rand()&0x7fff);}boolgen_uuid4(chardst[37]......
  • Android 7在Burpsuite中无法抓取HTTPS包
    链接(URL):https://www.hygrey.com/burpsuite-can-not-capture-https-packet-in-android7.html来源(Source):渡缘人  渡缘人大佬的教程详细的列出来Android7配置bp抓包的流程,也可以一同参考下面的链接https://blog.chenjia.me/articles/171029-223953.html 说说遇到的问题......
  • Element plus Carousel 修改指示器样式
    在Vue的<style>标签中,使用/deep/选择器是不推荐的,因为它已经被废弃了。取而代之的是使用>>>或::v-deep选择器来代替/deep/选择器。思路:通过::v-deep找到标签,通过伪类添加需要的样式: //滚动窗口底部的指示器.el-carousel::v-deep.el-carousel__indicators--outsidelibu......
  • ant design vue描述列表设置列宽
    这是默认的样子,没有数据时会显得label特别宽设置列宽为200px后如图所示方式如下自定义style.label.ant-descriptions-item-label{width:200px;}给descriptions应用样式<a-descriptionsid="jbxx"class="label"title="基本信息"bordered><a-descripti......