This commit is contained in:
Your Name
2026-07-25 00:09:24 +08:00
parent 9a315e1404
commit 9bae6b1d9b
16 changed files with 338 additions and 17 deletions
+19 -4
View File
@@ -81,7 +81,14 @@
<!-- Cloudflare Config -->
<template v-if="form.dns_provider === 'cloudflare'">
<el-form-item label="API Token">
<el-input v-model="manualConfig.cf_api_token" type="password" show-password placeholder="Cloudflare API Token" />
<el-input v-model="manualConfig.cf_api_token" type="password" show-password placeholder="Cloudflare API Token(推荐)" />
<div class="form-tip">需要 Zone:Read + DNS:Edit 权限。也可留空,改用下方 Email + Global API Key 方式</div>
</el-form-item>
<el-form-item label="Email">
<el-input v-model="manualConfig.cf_email" placeholder="Cloudflare 账号邮箱(Global API Key 方式)" />
</el-form-item>
<el-form-item label="Global API Key">
<el-input v-model="manualConfig.cf_api_key" type="password" show-password placeholder="Global API Key(与 Email 配合使用)" />
</el-form-item>
</template>
@@ -162,6 +169,8 @@ const manualConfig = reactive({
ali_key: '',
ali_secret: '',
cf_api_token: '',
cf_email: '',
cf_api_key: '',
dnspod_id: '',
dnspod_key: '',
})
@@ -220,6 +229,8 @@ const buildDnsConfigJson = (): string => {
case 'cloudflare':
return JSON.stringify({
cf_api_token: manualConfig.cf_api_token,
cf_email: manualConfig.cf_email,
cf_api_key: manualConfig.cf_api_key,
})
case 'dnspod':
return JSON.stringify({
@@ -246,9 +257,13 @@ const handleSubmit = async () => {
ElMessage.warning('请填写阿里云 AccessKey')
return
}
if (form.dns_provider === 'cloudflare' && !manualConfig.cf_api_token) {
ElMessage.warning('请填写 Cloudflare API Token')
return
if (form.dns_provider === 'cloudflare') {
const hasToken = !!manualConfig.cf_api_token
const hasEmailKey = !!manualConfig.cf_email && !!manualConfig.cf_api_key
if (!hasToken && !hasEmailKey) {
ElMessage.warning('请填写 Cloudflare API Token或者同时填写 Email Global API Key')
return
}
}
if (form.dns_provider === 'dnspod' && (!manualConfig.dnspod_id || !manualConfig.dnspod_key)) {
ElMessage.warning('请填写 DNSPod 凭证')