From 8e3098265d2de66b27a490ef28753eff7c740424 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=A2=81=E5=AD=90=E9=BE=99?= <14096380+qwe963852@user.noreply.gitee.com> Date: Tue, 20 Aug 2024 22:09:22 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=9D=E5=A7=8B=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/icons/svg/chart.svg | 3 + src/assets/icons/svg/checkbox.svg | 14 ++++ src/assets/icons/svg/client.svg | 18 ++++ src/assets/icons/svg/clipboard.svg | 4 + src/assets/icons/svg/code.svg | 11 +++ src/assets/icons/svg/color.svg | 14 ++++ src/directive/module/clipboard.js | 57 +++++++++++++ src/views/tool/build/CodeTypeDialog.vue | 106 ++++++++++++++++++++++++ 8 files changed, 227 insertions(+) create mode 100644 src/assets/icons/svg/chart.svg create mode 100644 src/assets/icons/svg/checkbox.svg create mode 100644 src/assets/icons/svg/client.svg create mode 100644 src/assets/icons/svg/clipboard.svg create mode 100644 src/assets/icons/svg/code.svg create mode 100644 src/assets/icons/svg/color.svg create mode 100644 src/directive/module/clipboard.js create mode 100644 src/views/tool/build/CodeTypeDialog.vue diff --git a/src/assets/icons/svg/chart.svg b/src/assets/icons/svg/chart.svg new file mode 100644 index 0000000..c13fe1f --- /dev/null +++ b/src/assets/icons/svg/chart.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/icons/svg/checkbox.svg b/src/assets/icons/svg/checkbox.svg new file mode 100644 index 0000000..4e04af0 --- /dev/null +++ b/src/assets/icons/svg/checkbox.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/src/assets/icons/svg/client.svg b/src/assets/icons/svg/client.svg new file mode 100644 index 0000000..cdb2cfa --- /dev/null +++ b/src/assets/icons/svg/client.svg @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/src/assets/icons/svg/clipboard.svg b/src/assets/icons/svg/clipboard.svg new file mode 100644 index 0000000..fbe9e7f --- /dev/null +++ b/src/assets/icons/svg/clipboard.svg @@ -0,0 +1,4 @@ + + + diff --git a/src/assets/icons/svg/code.svg b/src/assets/icons/svg/code.svg new file mode 100644 index 0000000..cc643f2 --- /dev/null +++ b/src/assets/icons/svg/code.svg @@ -0,0 +1,11 @@ + + + + + + + diff --git a/src/assets/icons/svg/color.svg b/src/assets/icons/svg/color.svg new file mode 100644 index 0000000..379b22e --- /dev/null +++ b/src/assets/icons/svg/color.svg @@ -0,0 +1,14 @@ + + + + + + + + diff --git a/src/directive/module/clipboard.js b/src/directive/module/clipboard.js new file mode 100644 index 0000000..4dbb944 --- /dev/null +++ b/src/directive/module/clipboard.js @@ -0,0 +1,57 @@ +/** + * v-clipboard 文字复制剪贴 + * Copyright (c) 2021 muyu + */ + +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; + } + } +} diff --git a/src/views/tool/build/CodeTypeDialog.vue b/src/views/tool/build/CodeTypeDialog.vue new file mode 100644 index 0000000..7e8058b --- /dev/null +++ b/src/views/tool/build/CodeTypeDialog.vue @@ -0,0 +1,106 @@ + +