解决vxe-table编辑单元格时,自定义渲染模板(结合element ui的标签组件)

HTML样例

<vxe-table-column
  field="destination"
  title="目的地"
  width="300px"
  :edit-render="{type: 'default'}"
>
<template v-slot:edit="scope">
  <el-cascader
    v-model="scope.row.destination"
    :options="addressArr"
    :props="{ multiple: true }"
    collapse-tags
    placeholder="目的地省市区"
  ></el-cascader>
</template>
</vxe-table-column>

实现方法

安装vxe-table-plugin-element插件

npm install vxe-table-plugin-element

在main.js里

import VXETablePluginElement from 'vxe-table-plugin-element'
VXETable.use(VXETablePluginElement)

VXETable.interceptor.add('event.clearActived', (params, event) => {
  if (event.target.className.indexOf('other-popper') > -1) {
    return false
  }
})

实测可用!

在这里插入图片描述

vxe-table 是一个基于 Vue.js 的表格组件库,它提供了丰富的功能和灵活的配置选项,其中包括点击单元格弹窗显示在单元格附近的功能。 实现这个功能的方式是通过使用 vxe-table 提供的 slot 和 API。具体来说,可以在表格的 column 中定义一个 slot,然后在 slot 中使用 vxe-table 提供的 API 来实现弹窗的显示和定位。 以下是一个示例代码: ``` <template> <vxe-table :data="tableData"> <vxe-table-column type="index" width="60"></vxe-table-column> <vxe-table-column field="name" title="姓名"></vxe-table-column> <<vxe-table-column field="age" title="年龄"> <template #default="{ row, column }"> <div @click="showPopover(row, column)"> {{ row.age }} </div> </template> </vxe-table-column> </vxe-table> </template> <script> export default { data() { return { tableData: [ { name: '张三', age: 18 }, { name: '李四', age: 22 }, { name: '王五', age: 30 } ], popoverVisible: false, popoverContent: '', popoverPosition: { top: 0, left: 0 } } }, methods: { showPopover(row, column) { // 获取单元格位置信息 const cell = this.$refs.table.getCell(row, column); const { top, left, height, width } = cell.getBoundingClientRect(); // 设置弹窗位置 this.popoverPosition = { top: top + height, left }; // 显示弹窗 this.popoverContent = `姓名:${row.name},年龄:${row.age}`; this.popoverVisible = true; } } } </script> ``` 在上面的代码中,我们在 age 列中定义了一个 slot,用来显示单元格内容,并且绑定了 click 事件。当用户点击单元格,我们会调用 showPopover 方法来显示弹窗。 在 showPopover 方法中,我们首先获取单元格的位置信息,然后根据位置信息设置弹窗的位置。最后,我们将弹窗内容设置为当前单元格的姓名和年龄,并将弹窗显示出来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值