本文介绍: 对于eltable自带展开行,功能已经实现,但是每次操作之后eltable展开行都关闭了这样用户体验很不友好。这是eltable不是很友好的地方,每次页面刷新都会默认关闭所有的行。希望:对于每次展开行的操作操作之后该行继续展开。…

于极迷处识迷 则处处醒,将难放怀一放 则万境宽。

目录

一、el-table展开行(基础 可跳过)

1. 展示tag信息

 2. 实现添加功能

问题:

二、控制el-table展开行核心

1.expand-row-keys

2.在添加时更新expands


 效果比较

 修改前:刷新表格,展开行消失  ==>   修改后:刷新表格保存当前操作展开行。

 


一、eltable展开行(基础 可跳过)

参考element UI:Element – The world’s most popular Vue UI framework

通过设置 type=”expand” 和 Scoped slot 可以开启展开行功能el-table-column 的模板会被渲染成为展开行的内容,展开行可访问属性使用自定义模板时的 Scoped slot 相同

1. 展示tag信息

 效果每行组合数据展示包含产品名称信息后端返回数据结构如下

<el-table v-loading="loading" stripe :data="groupList">
      <el-table-column type="expand" prop="productData"&gt;
        <template slot-scope="scope"&gt;
          <div class="tag-content">
            <div
              class="tag-item"
              :key="tag.prdtName"
              v-for="tag in scope.row.productData"
            >
              <el-tag closable style="margin: auto" type="danger">{{
                tag.prdtName
              }}</el-tag>
            </div>
          </div>
        </template>
      </el-table-column>
      <el-table-column label="序号" prop="index" width="55">
        <template slot-scope="scope">
          <span>{{ scope.$index + 1 }}</span>
        </template>
      </el-table-column>
      <el-table-column label="组合编号" align="center" prop="groupCode" />
      <el-table-column label="组合名称" align="center" prop="groupName" />
      <el-table-column label="产品个数" align="center" prop="productNum" />
</el-table>

至此可以完成全部tags展示,且满足样式要求一行展示三个。

.tag-item {
  width: 33%;
  margin-bottom: 10px;
  display: flex;
  justify-content: center;
}

 2. 实现添加功能

 只需要在刚才代码的后面添加tag实现新增功能即可

<div class="tag-item">
              <el-button
                class="button-new-tag"
                size="small"
                @click="AddProduct(scope.row)"
                >+ 新产品</el-button
              >
</div>

addProduct()函数中主要:显示dialog==> 清空弹框form表单

问题

功能已经实现,但是每次操作之后el-table的展开行都关闭了这样用户体验很不友好。这是el-table不是很友好的地方,每次页面刷新都会默认关闭所有的行。

希望:对于每次展开行的操作,操作之后该行继续展开。


二、控制el-table展开行

 1.expandrowkeys

expand-rowkeys: 可以通过该属性设置 Table 目前的展开行,需要设置 rowkey 属性才能使用,该属性为展开行的 keys 数组

 实现思路创建一个expends数组用于存储展开的keys。每次点击添加时,将该行的id存放进去。

需要给table添加如下两行代码

 row-key="id"
:expand-row-keys="expands"

2.在添加更新expands

在AddProduct()时记录当前的行id

// 添加产品对话框
    AddProduct(row) {
      this.open = true;
      this.groupId = row.id;
      // 表格置空
      this.form = {};
      // console.log(this.expands, "[[[[[[expends]]]]]]]]]");
      this.expands = [];
      this.expands.push(row.id);
      // console.log(this.expands, "[[[[[[expends]]]]]]]]]");
},

当然expends可以记录数组,以上只希望记录并保存选中添加行的展开状态。可以根据需要进行修改

原文地址:https://blog.csdn.net/Sabrina_cc/article/details/126104254

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_48622.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注