💄 导入链接

This commit is contained in:
刘嘉伟 2024-08-11 17:06:24 +08:00
parent 702c552892
commit 80d0b53759

View File

@ -133,6 +133,7 @@ const copyServerConfigBase64 = ref();
const pasteServerConfigBase64 = ref(); const pasteServerConfigBase64 = ref();
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();
const protocol = ref("frp://");
const visibles = reactive({ const visibles = reactive({
copyServerConfig: false, copyServerConfig: false,
@ -235,7 +236,7 @@ const handleCopyServerConfig2Base64 = useDebounceFn(() => {
const base64str = Base64.encode( const base64str = Base64.encode(
JSON.stringify(shareConfig) JSON.stringify(shareConfig)
) )
copyServerConfigBase64.value = base64str; copyServerConfigBase64.value = protocol.value + base64str;
visibles.copyServerConfig = true; visibles.copyServerConfig = true;
}, 300); }, 300);
@ -248,32 +249,34 @@ const handlePasteServerConfig4Base64 = useDebounceFn(() => {
}, 300); }, 300);
const handlePasteServerConfigBase64 = useDebounceFn(() => { const handlePasteServerConfigBase64 = useDebounceFn(() => {
const plain = Base64.decode(pasteServerConfigBase64.value) const tips = () => {
console.log('plain', plain)
let serverConfig: ShareLinkConfig = null;
try {
serverConfig = JSON.parse(plain)
} catch {
ElMessage({ ElMessage({
type: "warning", type: "warning",
message: "链接不正确 请输入正确的链接" message: "链接不正确 请输入正确的链接"
}); });
return; }
if (!pasteServerConfigBase64.value.startsWith(protocol.value)) {
tips()
return
}
const ciphertext = pasteServerConfigBase64.value.replace("frp://", "")
const plaintext = Base64.decode(ciphertext)
console.log('plain', plaintext)
let serverConfig: ShareLinkConfig = null;
try {
serverConfig = JSON.parse(plaintext)
} catch {
tips()
return
} }
if (!serverConfig && !serverConfig.serverAddr) { if (!serverConfig && !serverConfig.serverAddr) {
ElMessage({ tips()
type: "warning", return
message: "链接不正确 请输入正确的链接"
});
return;
} }
if (!serverConfig && !serverConfig.serverPort) { if (!serverConfig && !serverConfig.serverPort) {
ElMessage({ tips()
type: "warning", return
message: "链接不正确 请输入正确的链接"
});
return;
} }
formData.value.serverAddr = serverConfig.serverAddr formData.value.serverAddr = serverConfig.serverAddr
formData.value.serverPort = serverConfig.serverPort formData.value.serverPort = serverConfig.serverPort
@ -285,6 +288,7 @@ const handlePasteServerConfigBase64 = useDebounceFn(() => {
formData.value.metaToken = serverConfig.metaToken formData.value.metaToken = serverConfig.metaToken
handleSubmit(); handleSubmit();
pasteServerConfigBase64.value = "";
visibles.pasteServerConfig = false; visibles.pasteServerConfig = false;
}, 300) }, 300)
@ -810,16 +814,16 @@ onUnmounted(() => {
</div> </div>
</div> </div>
<el-dialog v-model="visibles.copyServerConfig" title="分享服务器" width="500"> <el-dialog v-model="visibles.copyServerConfig" title="复制链接" width="500">
<el-alert class="mb-4" title="生成内容包含服务器密钥等内容 请妥善保管 且链接仅在Frpc-Desktop中可用" type="warning" <el-alert class="mb-4" title="生成内容包含服务器密钥等内容 请妥善保管 且链接仅在Frpc-Desktop中可用" type="warning"
:closable="false"/> :closable="false"/>
<el-input class="h-30" v-model="copyServerConfigBase64" type="textarea" :rows="8"></el-input> <el-input class="h-30" v-model="copyServerConfigBase64" type="textarea" :rows="8"></el-input>
</el-dialog> </el-dialog>
<el-dialog v-model="visibles.pasteServerConfig" title="导入服务器" width="500"> <el-dialog v-model="visibles.pasteServerConfig" title="导入链接" width="500">
<el-input class="h-30" <el-input class="h-30"
v-model="pasteServerConfigBase64" v-model="pasteServerConfigBase64"
type="textarea" placeholder="在此输入分享链接" type="textarea" placeholder="frp://......"
:rows="8"></el-input> :rows="8"></el-input>
<template #footer> <template #footer>
<div class="dialog-footer"> <div class="dialog-footer">