From 8a1c08baaf0ee002b471996b195e7da180b90209 Mon Sep 17 00:00:00 2001 From: feige <791364011@qq.com> Date: 星期一, 21 七月 2025 09:38:47 +0800 Subject: [PATCH] 增加了前端代码库 --- src/directive/module/clipboard.js | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 54 insertions(+), 0 deletions(-) diff --git a/src/directive/module/clipboard.js b/src/directive/module/clipboard.js new file mode 100644 index 0000000..4c11fc9 --- /dev/null +++ b/src/directive/module/clipboard.js @@ -0,0 +1,54 @@ +/** +* 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 + } + } +} -- Gitblit v1.9.1