From deefce785617961b7cb77e055b9d20152fad8fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E5=AE=B6=E8=AE=AD?= Date: Thu, 10 Sep 2026 09:27:31 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=89=E8=A7=92=E6=B4=B2=E6=94=B9?= =?UTF-8?q?=E6=9E=AA=E7=A0=81=E7=AE=A1=E7=90=86=E9=A1=B5=E4=B8=8E=E5=85=8D?= =?UTF-8?q?=E7=99=BB=E5=BD=95=E5=85=AC=E5=BC=80=E5=A4=8D=E5=88=B6=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增改枪码管理页面与 API(分页、新增、编辑、删除、复制) - 新增免登录公开页 public/delta-gun-codes.html - 新增通用剪贴板工具 src/common/js/clipboard.js --- public/delta-gun-codes.html | 281 ++++++++++++++++++++ src/api/delta/delta-gun-code.js | 67 +++++ src/common/js/clipboard.js | 37 +++ src/view/delta/delta-gun-code.vue | 414 ++++++++++++++++++++++++++++++ 4 files changed, 799 insertions(+) create mode 100644 public/delta-gun-codes.html create mode 100644 src/api/delta/delta-gun-code.js create mode 100644 src/common/js/clipboard.js create mode 100644 src/view/delta/delta-gun-code.vue diff --git a/public/delta-gun-codes.html b/public/delta-gun-codes.html new file mode 100644 index 0000000..06b0eea --- /dev/null +++ b/public/delta-gun-codes.html @@ -0,0 +1,281 @@ + + + + + + 三角洲行动 · 改枪码速查复制 + + + +
+
+
DELTA FORCE · GUN CODE
+

三角洲行动 · 改枪码速查

+

已收录 0 套配置,点击复制即可在游戏内粘贴使用

+
+ +
+ +
+
+ +
+
加载中...
+
+ +
三角洲行动 · 改枪码共享站  |  本页面无需登录即可访问
+
+ +
+ + + + diff --git a/src/api/delta/delta-gun-code.js b/src/api/delta/delta-gun-code.js new file mode 100644 index 0000000..e2dccf8 --- /dev/null +++ b/src/api/delta/delta-gun-code.js @@ -0,0 +1,67 @@ +import axios from '@/libs/api.request' +import { getToken } from '@/libs/util' + +/** 后台管理-分页查询改枪码列表 **/ +export const getDataList = (data) => { + return axios.request({ + url: 'delta-gun-code/findPageList', + headers: { + 'Authorization': getToken() + }, + data: data, + method: 'post' + }) +} + +/** 后台管理-新增改枪码 **/ +export const add = (data) => { + return axios.request({ + url: 'delta-gun-code/add', + headers: { + 'Authorization': getToken() + }, + data: data, + method: 'post' + }) +} + +/** 后台管理-更新改枪码 **/ +export const update = (data) => { + return axios.request({ + url: 'delta-gun-code/update', + headers: { + 'Authorization': getToken() + }, + data: data, + method: 'post' + }) +} + +/** 后台管理-删除改枪码 **/ +export const remove = (data) => { + return axios.request({ + url: 'delta-gun-code/remove', + headers: { + 'Authorization': getToken() + }, + data: data, + method: 'post' + }) +} + +/** 公开-查询所有启用改枪码(无需鉴权) **/ +export const getPublicList = () => { + return axios.request({ + url: 'delta-gun-code/public/list', + method: 'post' + }) +} + +/** 公开-复制成功增加复制次数(无需鉴权) **/ +export const addCopyCount = (id) => { + return axios.request({ + url: 'delta-gun-code/public/addCopyCount', + params: { id: id }, + method: 'post' + }) +} diff --git a/src/common/js/clipboard.js b/src/common/js/clipboard.js new file mode 100644 index 0000000..1492f1c --- /dev/null +++ b/src/common/js/clipboard.js @@ -0,0 +1,37 @@ +/** + * 文本复制工具 + * 优先使用 navigator.clipboard(需安全上下文),否则降级为隐藏 textarea + execCommand + * @param {String} text 待复制的文本 + * @returns {Promise} 是否复制成功 + */ +const fallbackCopy = (text) => { + const textarea = document.createElement('textarea') + textarea.value = text + textarea.setAttribute('readonly', '') + textarea.style.position = 'fixed' + textarea.style.top = '-9999px' + textarea.style.opacity = '0' + document.body.appendChild(textarea) + textarea.select() + textarea.setSelectionRange(0, textarea.value.length) + let ok = false + try { + ok = document.execCommand('copy') + } catch (e) { + ok = false + } + document.body.removeChild(textarea) + return ok +} + +export const copyText = (text) => { + if (!text) return Promise.resolve(false) + if (navigator.clipboard && window.isSecureContext) { + return navigator.clipboard.writeText(text) + .then(() => true) + .catch(() => fallbackCopy(text)) + } + return Promise.resolve(fallbackCopy(text)) +} + +export default copyText diff --git a/src/view/delta/delta-gun-code.vue b/src/view/delta/delta-gun-code.vue new file mode 100644 index 0000000..5cb8a40 --- /dev/null +++ b/src/view/delta/delta-gun-code.vue @@ -0,0 +1,414 @@ + + + + +