vue3+elementplus中的table表格双击某一个td展开新的一行,隐藏展开小图标

vue3+elementplus中的table表格双击某一个td展开新的一行,隐藏展开小图标

1.隐藏展开小图标,设置 width="1",样式display: none;

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

//内容,通过v-if来判断显示/隐藏
<template #default="props">
    <div class="Orderdetail" v-if="props.row.columnshow"></div>
</template>
</el-table-column>
<style  scoped lang="scss">
::v-deep(.el-table__expand-column .cell) {
  display: none;
}
</style>

2.双击展开,给每排数据加一个标识columnshow

<script setup lang="ts" name="dayTable">

records = records.map(function (item: any) {
       return { ...item, columnshow: false };
     });
</script>

3.绑定事件 ,双击打开/关闭详情,移上去出现文字提示(双击打开/关闭详情),移除隐藏提示

 <el-table
       :default-expand-all="true"
        @cell-dblclick="handleTableRow"
        @cell-mouse-enter="enterSelectionRows"
        @cell-mouse-leave="leaveSelectionRows"
            ></el-table>
 <el-tooltip
              v-model:visible="visible"
              content="双击展开详情/关闭 "
              placement="top"
              trigger="click"
              virtual-triggering
              :virtual-ref="triggerRef"
            />

<script setup lang="ts" name="dayTable">
//双击
const handleTableRow = (row: any, event: any, column: any) => {
  row.columnshow = !row.columnshow;
  visible.value = false;
};
const visible = ref(false);
// 鼠标进入表格行的回调函数
const enterSelectionRows = (row: any, column: any, cell: any, event: any) => {
  if (!row.hasAuth) {
    visible.value = true;
    return;
  }
};
// 鼠标离开表格行的回调函数
const leaveSelectionRows = (row: any) => {
  visible.value = false;
};
const triggerRef = ref({
  getBoundingClientRect() {
    return position.value;
  },
});

const position = ref({
  top: 0,
  left: 0,
  bottom: 0,
  right: 0,
});

const mousemoveHandler = (e: any) => {
  position.value = DOMRect.fromRect({
    width: 0,
    height: 0,
    x: e.clientX,
    y: e.clientY,
  });
};
onMounted(() => {
  document.addEventListener("mousemove", mousemoveHandler);
});

onUnmounted(() => {
  document.removeEventListener("mousemove", mousemoveHandler);
});
</script>

好了,就这样就可以啦!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值