|
|
@ -89,7 +89,7 @@ |
|
|
</div> |
|
|
</div> |
|
|
<template #footer> |
|
|
<template #footer> |
|
|
<div class="flex-s-c card-footer"> |
|
|
<div class="flex-s-c card-footer"> |
|
|
<el-link class="copy" @click="copyUrl(item)" title="点击复制链接"> |
|
|
<el-link class="copy" @click="copyUrl(item.url)" title="点击复制链接"> |
|
|
<Icon :size="16" icon="ep:copy-document" /> |
|
|
<Icon :size="16" icon="ep:copy-document" /> |
|
|
<span>访问链接</span> |
|
|
<span>访问链接</span> |
|
|
</el-link> |
|
|
</el-link> |
|
|
@ -168,11 +168,32 @@ const getList = async () => { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
getList() |
|
|
getList() |
|
|
const copyUrl = async ({ url,code }) => { |
|
|
const copyUrl = async (textToCopy)=> { |
|
|
// router.push({ path: '/board',query:{code} }) |
|
|
|
|
|
// return |
|
|
|
|
|
try { |
|
|
try { |
|
|
await navigator.clipboard.writeText(url) |
|
|
// navigator clipboard 需要https等安全上下文 |
|
|
|
|
|
if (navigator.clipboard && window.isSecureContext) { |
|
|
|
|
|
// navigator clipboard 向剪贴板写文本 |
|
|
|
|
|
navigator.clipboard.writeText(textToCopy); |
|
|
|
|
|
} else { |
|
|
|
|
|
// 创建一个临时的 textarea 元素 |
|
|
|
|
|
const tempTextArea = document.createElement('textarea'); |
|
|
|
|
|
tempTextArea.value = textToCopy; |
|
|
|
|
|
document.body.appendChild(tempTextArea); |
|
|
|
|
|
// 选择并复制文本 |
|
|
|
|
|
tempTextArea.select(); |
|
|
|
|
|
tempTextArea.setSelectionRange(0, 99999); // 适用于移动设备 |
|
|
|
|
|
try { |
|
|
|
|
|
const successful = document.execCommand('copy'); |
|
|
|
|
|
if (!successful) { |
|
|
|
|
|
alert('复制失败。'); |
|
|
|
|
|
} |
|
|
|
|
|
} catch (err) { |
|
|
|
|
|
console.error('无法执行复制操作: ', err); |
|
|
|
|
|
alert('复制失败。'); |
|
|
|
|
|
} |
|
|
|
|
|
// 移除临时的 textarea 元素 |
|
|
|
|
|
document.body.removeChild(tempTextArea); |
|
|
|
|
|
} |
|
|
ElMessage.success('复制成功') |
|
|
ElMessage.success('复制成功') |
|
|
} catch (err) { |
|
|
} catch (err) { |
|
|
ElMessage.error('复制失败') |
|
|
ElMessage.error('复制失败') |
|
|
|