copy.js 784 B

1234567891011121314151617181920212223242526272829
  1. import { ElMessage } from "element-plus";
  2. export default {
  3. mounted(el, binding) {
  4. el.$value = binding.value;
  5. el.handler = () => {
  6. const textarea = document.createElement("textarea");
  7. textarea.readOnly = "readonly";
  8. textarea.style.position = "absolute";
  9. textarea.style.left = "-9999px";
  10. textarea.value = el.$value;
  11. document.body.appendChild(textarea);
  12. textarea.select();
  13. textarea.setSelectionRange(0, textarea.value.length);
  14. const result = document.execCommand("Copy");
  15. if (result) {
  16. ElMessage.success("复制成功");
  17. }
  18. document.body.removeChild(textarea);
  19. };
  20. el.addEventListener("click", el.handler);
  21. },
  22. updated(el, binding) {
  23. el.$value = binding.value;
  24. },
  25. unmounted(el) {
  26. el.removeEventListener("click", el.handler);
  27. },
  28. };