JS实现一键复制文本

背景#

实现对table中的某一列文本内容进行复制

代码#

需求:表格中只有"姓名"列可以复制,其他列不能复制

<template>
  <div class="app">
    <h1>App Page</h1>
    <el-table :data="tableData" border style="width: 100%">
      <el-table-column prop="date" label="日期" width="180"> </el-table-column>
      <el-table-column prop="name" label="姓名" width="180" class-name="can-select">
      </el-table-column>
      <el-table-column prop="address" label="地址"> </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        {
          date: "2016-05-02",
          name: "小明",
          address: "上海市普陀区金沙江路 1518 弄",
        },
        {
          date: "2016-05-04",
          name: "小红",
          address: "上海市普陀区金沙江路 1517 弄",
        },
        {
          date: "2016-05-01",
          name: "王小虎",
          address: "上海市普陀区金沙江路 1519 弄",
        },
        {
          date: "2016-05-03",
          name: "张三",
          address: "上海市普陀区金沙江路 1516 弄",
        },
      ],
    };
  },
  mounted() {
    const table = document.querySelector(".el-table__body-wrapper");

    const allNames = this.tableData.map((item) => item.name);
    table.onmouseup = async () => {
      const selection = window.getSelection().toString();
      if (!selection) return;
      console.log(selection);

      const selectionArr = selection.split(/\n/);
      const result = [];
      selectionArr.forEach((s) => {
        if (allNames.includes(s)) {
          result.push(s);
        }
      });
      const copyContent = result.join(",");
      await navigator.clipboard.writeText(copyContent);
      this.$notify({
        title: "成功",
        message: "姓名复制成功",
        type: "success",
      });
    };
  },
};
</script>

<style lang="less" scoped>
/deep/.el-table__body-wrapper {
  user-select: none;
}

/deep/.can-select .cell {
  user-select: text;
}
</style>

效果图#

posted @   ^Mao^  阅读(74)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
历史上的今天:
2022-12-15 element-ui表格组件的封装(2)
点击右上角即可分享
微信分享提示
主题色彩