vue中el-table單元格復制功能

一、單頁面中使用
1.在el-table上綁定單擊事件 @cell-click=“copyText” 或雙擊事件 @cell-dblclick=“copyText”
在這里插入圖片描述
注:cell-dblclick函數有四個參數,分別是row, column, cell, event;

row:可看到被其操作單元格所在行的所有的數據;

cloumn:可以看到被其操作單元格的property,根據property可以再row中得到該單元格的值;

cell:可看到該單元格的dom結構;

event:事件觸發時的所有參數;

2.在methods中寫如方法即可

copyText(row, column, cell, event){// 雙擊復制let save = function (e){e.clipboardData.setData('text/plain',event.target.innerText);e.preventDefault();  //阻止默認行為}document.addEventListener('copy',save);//添加一個copy事件document.execCommand("copy");//執行copy方法this.$message({message: '復制成功', type:'success'})//提示},

二、封裝成組件,使用mixins
Mixins 是一種讓多個組件之間共享Vue選項的方式,適合抽取和復用多個組件的相同選項或邏輯。你可以把公共方法封裝在一個 mixin 中,然后在需要的組件中引入和使用。
Mixin 示例 (新建columnCopy.js):
1.在el-table上綁定單擊事件 @cell-click=“copyText” 或雙擊事件 @cell-dblclick=“copyText”
在這里插入圖片描述
2.新建columnCopy.js,此文件中方法為

export const commonMethodsMixin = {methods: {copyText(row, column, cell, event){// 雙擊復制let save = function (e){e.clipboardData.setData('text/plain',event.target.innerText);e.preventDefault();  //阻止默認行為}document.addEventListener('copy',save);//添加一個copy事件document.execCommand("copy");//執行copy方法this.$message({message: '復制成功', type:'success'})//提示},}
};

3.在使用此方法的組件中引入columnCopy.js文件

  import { commonMethodsMixin } from '@/utils/columnCopy';

并在export default中使用 mixins: [commonMethodsMixin],如下圖
在這里插入圖片描述
三、 單擊copy圖標復制對應的內容到剪切板

  1. 添加copy的小圖標
<span v-else><i class="el-icon-document-copy" @click="clickCopy(msg)" />{{ msg }}
</span>
  1. 在methods中添加單擊復制的clickCopy方法
clickCopy(msg) {const save = function(e) {e.clipboardData.setData('text/plain', msg)e.preventDefault() // 阻止默認行為}document.addEventListener('copy', save) // 添加一個copy事件document.execCommand('copy') // 執行copy方法this.$message({ message: '復制成功', type: 'success' })
}

3.踩坑
添加了copy事件之后整個頁面按ctrl+c復制東西沒反應了

猜測是使用document.addEventListener(‘copy’, save)會在整個dom樹添加事件,會覆蓋dom樹原有的事件的發生,所以需要添加once參數使這個事件只生效一次

once 表示 listener 在添加之后最多只調用一次。如果是 true, listener 會在其被調用之后自動移除

clickCopy(msg) {const save = function(e) {e.clipboardData.setData('text/plain', msg)e.preventDefault() // 阻止默認行為}const once = {once: true}document.addEventListener('copy', save, once) // 添加一個copy事件,當觸發時執行一次,執行完刪除document.execCommand('copy') // 執行copy方法this.$message({ message: '復制成功', type: 'success' })
}

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/43492.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/43492.shtml
英文地址,請注明出處:http://en.pswp.cn/web/43492.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【IT領域新生必看】解鎖 `final` 關鍵字的秘密:Java 編程中的終極武器

文章目錄 引言什么是 final 關鍵字&#xff1f;一、 final 變量final 局部變量final 實例變量final 靜態變量 二、 final 方法三、 final 類四、 final 關鍵字的實際應用1. 定義常量2. 防止方法被重寫3. 創建不可變類4. 優化性能 五、 final 的一些常見誤區1. final 變量不能在…

力扣995.K連續位的最小翻轉次數

力扣995.K連續位的最小翻轉次數 因為翻轉順序改變不影響最終結果 因此從頭找每個位置翻轉后的結果如果為0 將從它開始的K長的數組翻轉 class Solution {public:int minKBitFlips(vector<int>& nums, int k) {int n nums.size();vector<int> s(n1);int res0…

05.FFMPEG日志系統

一、頭文件 #include <libavutil/log.h> 二、常用函數 1、av_log_set_level void av_log_set_level(int level);該函數用于設置全局日志級別。 2、av_log void av_log(void* avcl, int level, const char* fmt, ...);該函數用于輸出日志消息。avcl 參數是相關聯的上下…

uboot學習:(三)目錄分析

目錄 目錄分析 uboot自帶 編譯生成的文件 分析之前需要編譯一次uboot源碼&#xff0c;編譯之后的uboot源碼會多出來很多文件 目錄分析 uboot自帶 api 與硬件無關的API函數arch 與架構體系有關的代碼 里面有x86,arm等架構文件夾 架構文件夾里面有cpu&#xff0c;設備樹等…

使用 Nuxt 3 搭建國際官網

搭建國際官網是一個復雜的任務,涉及多方面的技術和策略。在這篇文章中,我們將探討如何使用 Nuxt 3 框架搭建一個國際化官網,并展示其在 SEO 優勢和全棧可維護性方面的卓越性能。 使用 Nuxt 3 搭建國際官網 1. Nuxt 3 簡介 Nuxt 3 是一個基于 Vue 3 和 Vite 的框架,旨在構…

大數據面試題之ElasticSearch(2)

目錄 ElasticSearch的單播、多播和廣播 什么是Zen Discovery機制 ElasticSearch和Solr主要區別 ElasticSearch和Solr各自適用于哪些場景 Elasticsearch的同類產品有哪些 Elasticsearch有哪些主要應用場景 Elasticsearch 中執行搜索的各種可能方式有哪些 Elasticsearch 中…

UWB系列教程(一)UWB簡介

UWB系列教程&#xff08;一&#xff09;&#xff1a;UWB簡介 超寬帶&#xff08;Ultra-Wideband, UWB&#xff09;技術作為一種先進的無線通信技術&#xff0c;近年來在多個領域展現出了巨大的潛力和應用前景。 什么是超寬帶&#xff08;UWB&#xff09;技術&#xff1f; 超…

Java中的數據緩存技術及其應用

Java中的數據緩存技術及其應用 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 在現代應用程序中&#xff0c;數據緩存是一種重要的技術手段&#xff0c;用于提…

linux中的僵尸進程

僵尸進程&#xff08;Zombie Process&#xff09;是指在操作系統中&#xff0c;一個進程已經終止執行了&#xff08;即已經退出&#xff09;&#xff0c;但是其父進程還沒有通過 wait() 系統調用來獲取該進程的終止狀態&#xff08;exit status&#xff09;&#xff0c;因此該進…

Python面試寶典第10題:精選選擇題

題目1 在以下函數中&#xff0c;b和a的關系是___。 def add_one_to_list(lst):lst.append(1)return lsta [1, 2, 3] b add_one_to_list(a) A. b是a的淺拷貝 B. b和a是同一個列表對象 C. b是a的深拷貝 D. b是a的一個子列表 題目2 以下函數的作用是___。 def operate_s…

C++多態的實現原理

靜態多態&#xff08;編譯期&#xff09; 函數重載&#xff1a; 允許在同一個作用域中聲明多個功能類似的同名函數函數的參數列表不同&#xff08;參數個數&#xff0c;參數類型&#xff0c;參數順序&#xff09;注意&#xff1a;不能通過函數返回值區分&#xff08;name man…

(補充)IDEA項目結構

文章目錄 前言一、pycharm中Python項目結構二、IDEA中的java項目結構設計總結前言 本文主要介紹一下pycharm和IDEA里面的項目結構的使用方法 一、pycharm中Python項目結構 之前我們在pycharm做過python項目,項目結構很清晰,還是比較靈活的。 一般項目里面就是 數據驅動、數…

【JavaSE】程序邏輯控制

目錄 1. 順序結構 2. 分支結構 2.1 if語句 2.1.1 語法格式1 2.1.2 語法格式2 2.1.3 語法格式3 2.1.4 練習 2.1.5 注意事項 2.2 switch 語句 3. 循環結構 3.1 while循環 3.1.1 語法格式 3.1.2 代碼示例 3.1.3 注意事項 3.2 break 3.3 continue 3.4 for循環 …

scratch3編程05-畫筆繪制圓及與圓相關的圖形

目錄 一&#xff0c;圓 1&#xff0c;空心圓 2&#xff0c;實心圓 3&#xff0c;嵌套在一起的圓 4&#xff0c;圓環 二&#xff0c;五角星 1&#xff0c;空心五角星 1&#xff09;思路 2&#xff09;完整的程序 2&#xff0c;實心五角星 1&#xff09;思路 2&…

C# 預處理器指令

C# 預處理器指令 概述 C# 預處理器指令是編譯器在編譯代碼之前處理的指令。這些指令用于控制編譯過程,包括條件編譯、編譯指令的定義和取消等。預處理器指令以 # 開頭,不包含在代碼的執行邏輯中,僅在編譯階段起作用。 常用的預處理器指令 1. #define 和 #undef #define…

RK3568筆記三十三: helloworld 驅動測試

若該文為原創文章&#xff0c;轉載請注明原文出處。 報著學習態度&#xff0c;接下來學習驅動是如何使用的&#xff0c;從簡單的helloworld驅動學習起。 開始編寫第一個驅動程序—helloworld 驅動。 一、環境 1、開發板&#xff1a;正點原子的ATK-DLRK3568 2、系統&#xf…

d3dcompiler_43.dll文件是什么?如何快速有效的解決d3dcompiler_43.dll文件丟失問題

dcompiler_43.dll 是一個Windows系統中的系統文件&#xff0c;屬于DirectX軟件的一部分。這個dcompiler_43.dll&#xff08;動態鏈接庫&#xff09;文件主要用于處理與3D圖形編程有關的任務&#xff0c;是運行許多游戲和高級圖形程序必需的組件之一。那么如果電腦丟失d3dcompil…

香蕉派BPI-Wifi6迷你路由器公開發售

Banana Pi BPI-Wifi6 Mini 公開發售。 Banana Pi BPI-Wifi6 Mini 開源路由器采用Triductor TR6560 TR5220 wifi SOC設計&#xff0c;是一款迷你尺寸的wifi6路由器解決方案。內置高性能雙核ARM Cortec A9處理器用于WIFI報文轉發或智能業務處理&#xff0c;內置高性能LSW和硬件N…

[NeetCode150] String Encode and Decode

String Encode and Decode Design an algorithm to encode a list of strings to a single string. The encoded string is then decoded back to the original list of strings. Please implement encode and decode Example 1: Input: [“neet”,“code”,“love”,“you…

ubuntu 上vscode +cmake的debug調試配置方法

在ubuntu配置pcl點云庫以及opencv庫的時候&#xff0c;需要在CMakeLists.txt中加入相應的代碼。配置完成后&#xff0c;無法調試&#xff0c;與在windows上體驗vs studio差別有點大。 找了好多調試debug配置方法&#xff0c;最終能用的有幾種&#xff0c;但是有一種特別好用&a…