vue3使用element-Plus,简单实现el-table展开功能,单击行展开,隐藏小图标,手风琴模式

怎么默认使用展开,在这里就不叙述了。自己去官方看实例很简单。主要就是说一下简单实现标题功能。
首先实现单击行展开
el-table添加以下核心属性,属性对应自己查看官方文档,这里不讲解了

row-key="id"
:expand-row-keys="expands"
@row-click="clickRowHandle"

添加一个expands

const expands = ref([])

接下来单击触发

//点击行展示
const clickRowHandle = (row:any) => {
   if (proxy.expands.includes(row.id)) {
      proxy.expands = proxy.expands.filter(val => val !== row.id);
   } else {
      proxy.expands = [];//添加该代码实现手风琴模式,删除该代码取消手风琴模式
      proxy.expands.push(row.id);
   }
}

上面代码中proxy和vue2中的$this差不多
但是到vue3中必须单独引用,自行添加

import { getCurrentInstance } from 'vue'
const { proxy } = (getCurrentInstance() as any)

以上就可以实现点击行展开关闭功能。
以下是取消小图标方法,把type="expand"添加一个width=“1”

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

css也的添加display: none;
:deep是穿透

:deep(.el-table__expand-icon){
   display: none;
}

PS:下述代码是点击行变色
在el-table里面添加属性highlight-current-row

highlight-current-row

修改css

:deep(.el-table__body tr.current-row>td.el-table__cell) {
    background-color: #00a2ff;
    color: #ffffff;
}

以下代码是修改展开的背景色

:deep(.el-table__expanded-cell){
   background-color: #FAFAFA !important;
}
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
您想要实现el-table 的每一中上传文件,需要在 el-table 的列中添加一个自定义的列,用于上传文件。具体实现步骤如下: 1. 在 el-table 的 columns 中添加自定义列,例如: ```html <el-table :data="tableData" :columns="columns"> <template #upload> <el-upload class="upload-demo" :action="uploadUrl" :show-file-list="false" :on-success="handleUploadSuccess" > <el-button size="mini" type="primary">上传文件</el-button> </el-upload> </template> </el-table> ``` 注意,这里使用了 template 标签,并指定了 #upload 作为该模板的名称。 2. 在 el-table 的 columns 中,添加一个自定义的列,例如: ```js columns: [ { label: '姓名', prop: 'name', }, { label: '年龄', prop: 'age', }, { label: '上传文件', align: 'center', width: 120, template: '#upload', }, ], ``` 这里需要注意的是,在自定义列中,我们使用了 template 属性,并指定为之前定义的模板名称 #upload。 3. 在 el-table 的数据中,添加一个上传文件的属性,例如: ```js tableData: [ { name: '张三', age: 18, file: {}, }, { name: '李四', age: 20, file: {}, }, ], ``` 这里添加的 file 属性就是用于保存上传的文件对象。 4. 在 handleUploadSuccess 方法中,将上传成功的文件对象保存到对应的数据中,例如: ```js handleUploadSuccess(response, file, fileList) { const index = this.tableData.findIndex(item => item.name === file.name); this.tableData[index].file = file; }, ``` 这里通过文件名查找到对应的数据项,然后将上传的文件对象保存到该数据项的 file 属性中。 通过以上步骤,就可以实现el-table 的每一中上传文件的功能了。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JsoCc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值