clipboard.js 763 Bytes
Newer Older
冯超鹏's avatar
冯超鹏 committed
1 2 3 4 5
import Vue from 'vue';
import Clipboard from 'clipboard';

function clipboardSuccess() {
  Vue.prototype.$message({
Administrator's avatar
Administrator committed
6
    message: '复制成功',
冯超鹏's avatar
冯超鹏 committed
7 8 9 10 11 12 13
    type: 'success',
    duration: 1500,
  });
}

function clipboardError() {
  Vue.prototype.$message({
Administrator's avatar
Administrator committed
14
    message: '复制失败',
冯超鹏's avatar
冯超鹏 committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
    type: 'error',
  });
}

export default function handleClipboard(text, event) {
  const clipboard = new Clipboard(event.target, {
    text: () => text,
  });

  clipboard.on('success', () => {
    clipboardSuccess();
    clipboard.off('error');
    clipboard.off('success');
    clipboard.destroy();
  });

  clipboard.on('error', () => {
    clipboardError();
    clipboard.off('error');
    clipboard.off('success');
    clipboard.destroy();
  });

  clipboard.onClick(event);
}