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 @@
+
+
+
+
+
+
+
+
+
+ {{ item.label }}
+
+
+
+
+
+
+
+
+
+
+
+
+ 取消
+
+
+ 确定
+
+
+
+
+
+