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