对比新文件 |
| | |
| | | /** |
| | | * v-clipboard 文字复制剪贴 |
| | | * Copyright (c) 2021 ruoyi |
| | | */ |
| | | |
| | | import Clipboard from 'clipboard' |
| | | export default { |
| | | bind(el, binding, vnode) { |
| | | switch (binding.arg) { |
| | | case 'success': |
| | | el._vClipBoard_success = binding.value; |
| | | break; |
| | | case 'error': |
| | | el._vClipBoard_error = binding.value; |
| | | break; |
| | | default: { |
| | | const clipboard = new Clipboard(el, { |
| | | text: () => binding.value, |
| | | action: () => binding.arg === 'cut' ? 'cut' : 'copy' |
| | | }); |
| | | clipboard.on('success', e => { |
| | | const callback = el._vClipBoard_success; |
| | | callback && callback(e); |
| | | }); |
| | | clipboard.on('error', e => { |
| | | const callback = el._vClipBoard_error; |
| | | callback && callback(e); |
| | | }); |
| | | el._vClipBoard = clipboard; |
| | | } |
| | | } |
| | | }, |
| | | update(el, binding) { |
| | | if (binding.arg === 'success') { |
| | | el._vClipBoard_success = binding.value; |
| | | } else if (binding.arg === 'error') { |
| | | el._vClipBoard_error = binding.value; |
| | | } else { |
| | | el._vClipBoard.text = function () { return binding.value; }; |
| | | el._vClipBoard.action = () => binding.arg === 'cut' ? 'cut' : 'copy'; |
| | | } |
| | | }, |
| | | unbind(el, binding) { |
| | | if (!el._vClipboard) return |
| | | if (binding.arg === 'success') { |
| | | delete el._vClipBoard_success; |
| | | } else if (binding.arg === 'error') { |
| | | delete el._vClipBoard_error; |
| | | } else { |
| | | el._vClipBoard.destroy(); |
| | | delete el._vClipBoard; |
| | | } |
| | | } |
| | | } |