Clipboard中success重复提示处理,顺带记录表格复制
2020/6/19 5:26:21
本文主要是介绍Clipboard中success重复提示处理,顺带记录表格复制,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
重复提示处理
原因: 因为多次定义了Clipboard,所以会重复提示
需要销毁多余的定义,利用 clipboard.destroy()
进行清除
触发按钮
<button data-clipboard-action="copy" :id="`copyBtn${tableKey}`" :data-clipboard-target="`#copyTextarea${tableKey}`" > 复制表格 </button>
需要复制的表格
<div style="position: absolute; top: -1000000px;left:-1000000px"> <!-- <div id="copyDomBox"> --> <div :id="`copyHeadTable${tableKey}`"> <table border> <tr> <th v-for="(temp,key) in tableColums" :key="key" >{{temp.name||temp.text||temp.title}}</th> </tr> <tr v-for="(item,index) in copyTableList" :key="index" > <td v-for="(temp,key) in tableColums" :key="key" > `<span>{{item[temp.label]||'0'}}</span>`//自定义渲染内容 </td> </tr> </table> </div> </div>
需要用到textarea
经过复制的内容放入textarea中,然后去除textarea 的value,就可以去除表格自带样式,只取表格数据内容
<textarea name="" :id="`copyTextarea${tableKey}`" cols="30" rows="10" ></textarea>
data
data(){ return { tableKey: 'helloword', tableColums: [ { name: "姓名", label: "name" }, { name: "性别", label: "sex" }, { name: "年龄", label: "age" } ], copyTableList: [ { name: '张三', sex: '男', age: '20', }, { name: '李四', sex: '女', age: '30', } ] } }
模板初始化
initCopy() { let self = this; Vue.nextTick(function() { if (self.xTableObj.afterFullData.length > 0) { self.copyTableList = self.xTableObj.afterFullData; } let copybtn = document.getElementById(`copyBtn${self.tableKey}`); let copyTable = document.getElementById(`copyTable${self.tableKey}`); textarea.value = ""; setTimeout(() => { textarea.value = copyTable.innerText; if(self.clipboard){ self.clipboard.destroy(); } let clipboard = new Clipboard(copybtn); self.clipboard = clipboard; self.clipboard.on("success", function(e) { self.$message({ message: "表格复制成功", type: "success" }); self.clipboard.destroy(); }); }, 500); }); }
总结
由于表格带有排序、筛选的操作,需要每次操作完后,复制的是操作后的表格内容,因此会多次调用初始化方法,需要每次定义之前,或者成功复制之后进行清除。
这样既可保证,只有一个复制模板的定义,也就不会在多次操作排序或者筛选之后,弹多个提示。
注意
表格中用到的tableKey
,用来指定唯一表格。单页应用,经常可能会取到多个,需要进行区分。
这篇关于Clipboard中success重复提示处理,顺带记录表格复制的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Vite多环境配置学习:新手入门教程
- 2024-11-23实现OSS直传,前端怎么实现?-icode9专业技术文章分享
- 2024-11-22在 HTML 中怎么实现当鼠标光标悬停在按钮上时显示提示文案?-icode9专业技术文章分享
- 2024-11-22html 自带属性有哪些?-icode9专业技术文章分享
- 2024-11-21Sass教程:新手入门及初级技巧
- 2024-11-21Sass学习:初学者必备的简单教程
- 2024-11-21Elmentplus入门:新手必看指南
- 2024-11-21Sass入门:初学者的简单教程
- 2024-11-21前端页面设计教程:新手入门指南
- 2024-11-21Elmentplus教程:初学者必备指南