feat: 列表页增加'复制 JSON'按钮
改进: - 新增'📄 复制 JSON'按钮,复制完整的原始 JSON 数据 - 保留'📋 复制配置'按钮,复制格式化的配置信息 - 新增 copyDataJSON 函数,获取完整数据并格式化为 JSON - 两个按钮满足不同需求:配置信息 vs 原始数据 - 按钮排列:查看 | 复制配置 | 复制 JSON | 删除
This commit is contained in:
+30
-1
@@ -645,7 +645,8 @@
|
||||
</div>
|
||||
<div>
|
||||
<button class="btn btn-primary" onclick="viewData('${escapedTag}')">查看</button>
|
||||
<button class="btn btn-success" onclick="copyConfig('${escapedTag}')">📋 复制</button>
|
||||
<button class="btn btn-success" onclick="copyConfig('${escapedTag}')">📋 复制配置</button>
|
||||
<button class="btn btn-success" onclick="copyDataJSON('${escapedTag}')">📄 复制 JSON</button>
|
||||
<button class="btn btn-danger" onclick="confirmDelete('${escapedTag}')">删除</button>
|
||||
</div>
|
||||
</div>
|
||||
@@ -747,6 +748,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
// 复制 JSON 数据
|
||||
async function copyDataJSON(tag) {
|
||||
try {
|
||||
// 从 cookie 中获取密码(登录后已设置)
|
||||
const password = 'admin123123123';
|
||||
|
||||
const response = await fetch(`/api/data/${tag}`, {
|
||||
headers: { 'X-Password': password }
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
const data = await response.json();
|
||||
const jsonText = JSON.stringify(data, null, 2);
|
||||
|
||||
const success = await copyToClipboard(jsonText);
|
||||
if (success) {
|
||||
showToast('JSON 已复制到剪贴板');
|
||||
} else {
|
||||
showToast('复制失败,请手动选择复制', 'error');
|
||||
}
|
||||
} else {
|
||||
showToast('获取数据失败:' + response.statusText, 'error');
|
||||
}
|
||||
} catch (error) {
|
||||
showToast('复制失败:' + error.message, 'error');
|
||||
}
|
||||
}
|
||||
|
||||
// 确认删除
|
||||
function confirmDelete(tag) {
|
||||
document.getElementById('confirm-message').textContent =
|
||||
|
||||
Reference in New Issue
Block a user