mirror of
https://github.com/acepanel/panel.git
synced 2026-02-04 13:47:15 +08:00
feat: 新增一批dns提供商
This commit is contained in:
@@ -119,6 +119,78 @@ const handleCreateDNS = async () => {
|
||||
placeholder="输入 Cloudflare API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'godaddy'" path="ak" label="Token">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 GoDaddy Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'gcore'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 G-Core API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'porkbun'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Porkbun API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'porkbun'" path="sk" label="Secret Key">
|
||||
<n-input
|
||||
v-model:value="model.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Porkbun Secret Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'namecheap'" path="sk" label="API Username">
|
||||
<n-input
|
||||
v-model:value="model.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Namecheap API Username"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'namecheap'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Namecheap API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'namesilo'" path="ak" label="API Token">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 NameSilo API Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'namecom'" path="sk" label="Username">
|
||||
<n-input
|
||||
v-model:value="model.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Name.com Username"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="model.type == 'namecom'" path="ak" label="Token">
|
||||
<n-input
|
||||
v-model:value="model.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Name.com Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
<n-button type="info" block @click="handleCreateDNS">提交</n-button>
|
||||
</n-space>
|
||||
|
||||
@@ -46,17 +46,11 @@ const columns: any = [
|
||||
},
|
||||
{
|
||||
default: () => {
|
||||
switch (row.type) {
|
||||
case 'aliyun':
|
||||
return '阿里云'
|
||||
case 'tencent':
|
||||
return '腾讯云'
|
||||
case 'huawei':
|
||||
return '华为云'
|
||||
case 'cloudflare':
|
||||
return 'Cloudflare'
|
||||
default:
|
||||
return '未知'
|
||||
const provider = dnsProviders.value.find((provider: any) => provider.value === row.type)
|
||||
if (provider) {
|
||||
return provider.label
|
||||
} else {
|
||||
return '未知'
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -206,7 +200,6 @@ onUnmounted(() => {
|
||||
:options="dnsProviders"
|
||||
/>
|
||||
</n-form-item>
|
||||
|
||||
<n-form-item v-if="updateDNSModel.type == 'aliyun'" path="ak" label="Access Key">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
@@ -239,7 +232,6 @@ onUnmounted(() => {
|
||||
placeholder="输入腾讯云 SecretKey"
|
||||
/>
|
||||
</n-form-item>
|
||||
|
||||
<n-form-item v-if="updateDNSModel.type == 'huawei'" path="ak" label="AccessKeyId">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
@@ -264,6 +256,78 @@ onUnmounted(() => {
|
||||
placeholder="输入 Cloudflare API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'godaddy'" path="ak" label="Token">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 GoDaddy Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'gcore'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 G-Core API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'porkbun'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Porkbun API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'porkbun'" path="sk" label="Secret Key">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Porkbun Secret Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'namecheap'" path="sk" label="API Username">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Namecheap API Username"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'namecheap'" path="ak" label="API Key">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Namecheap API Key"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'namesilo'" path="ak" label="API Token">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 NameSilo API Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'namecom'" path="sk" label="Username">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.sk"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Name.com Username"
|
||||
/>
|
||||
</n-form-item>
|
||||
<n-form-item v-if="updateDNSModel.type == 'namecom'" path="ak" label="Token">
|
||||
<n-input
|
||||
v-model:value="updateDNSModel.data.ak"
|
||||
type="text"
|
||||
@keydown.enter.prevent
|
||||
placeholder="输入 Name.com Token"
|
||||
/>
|
||||
</n-form-item>
|
||||
</n-form>
|
||||
<n-button type="info" block @click="handleUpdateDNS">提交</n-button>
|
||||
</n-space>
|
||||
|
||||
@@ -34,49 +34,64 @@ const handleSubmit = () => {
|
||||
messageReactive?.destroy()
|
||||
})
|
||||
} else if (model.value.type == 'manual') {
|
||||
const { data } = useRequest(cert.manualDNS(id.value))
|
||||
messageReactive.destroy()
|
||||
window.$message.info('请先前往域名处设置 DNS 解析,再继续签发')
|
||||
const d = window.$dialog.info({
|
||||
style: 'width: 60vw',
|
||||
title: '待设置DNS 记录列表',
|
||||
content: () => {
|
||||
return h(NTable, [
|
||||
h('thead', [
|
||||
h('tr', [h('th', '域名'), h('th', '类型'), h('th', '主机记录'), h('th', '记录值')])
|
||||
]),
|
||||
h(
|
||||
'tbody',
|
||||
data.map((item: any) =>
|
||||
h('tr', [
|
||||
h('td', item?.domain),
|
||||
h('td', 'TXT'),
|
||||
h('td', item?.name),
|
||||
h('td', item?.value)
|
||||
])
|
||||
useRequest(cert.manualDNS(id.value))
|
||||
.onSuccess(({ data }: { data: any }) => {
|
||||
window.$message.info('请先前往域名处设置 DNS 解析,再继续签发')
|
||||
const d = window.$dialog.info({
|
||||
style: 'width: 60vw',
|
||||
title: '待设置DNS 记录列表',
|
||||
content: () => {
|
||||
return h(
|
||||
NTable,
|
||||
{},
|
||||
{
|
||||
default: () => [
|
||||
h('thead', [
|
||||
h('tr', [
|
||||
h('th', '域名'),
|
||||
h('th', '类型'),
|
||||
h('th', '主机记录'),
|
||||
h('th', '记录值')
|
||||
])
|
||||
]),
|
||||
h(
|
||||
'tbody',
|
||||
data.map((item) =>
|
||||
h('tr', [
|
||||
h('td', item?.domain),
|
||||
h('td', 'TXT'),
|
||||
h('td', item?.name),
|
||||
h('td', item?.value)
|
||||
])
|
||||
)
|
||||
)
|
||||
]
|
||||
}
|
||||
)
|
||||
)
|
||||
])
|
||||
},
|
||||
positiveText: '签发',
|
||||
onPositiveClick: async () => {
|
||||
d.loading = true
|
||||
messageReactive = window.$message.loading('请稍后...', {
|
||||
duration: 0
|
||||
},
|
||||
positiveText: '签发',
|
||||
onPositiveClick: async () => {
|
||||
d.loading = true
|
||||
messageReactive = window.$message.loading('请稍后...', {
|
||||
duration: 0
|
||||
})
|
||||
useRequest(cert.obtainManual(id.value))
|
||||
.onSuccess(() => {
|
||||
window.$bus.emit('cert:refresh-cert')
|
||||
window.$bus.emit('cert:refresh-async')
|
||||
show.value = false
|
||||
window.$message.success('签发成功')
|
||||
})
|
||||
.onComplete(() => {
|
||||
d.loading = false
|
||||
messageReactive?.destroy()
|
||||
})
|
||||
}
|
||||
})
|
||||
useRequest(cert.obtainManual(id.value))
|
||||
.onSuccess(() => {
|
||||
window.$bus.emit('cert:refresh-cert')
|
||||
window.$bus.emit('cert:refresh-async')
|
||||
show.value = false
|
||||
window.$message.success('签发成功')
|
||||
})
|
||||
.onComplete(() => {
|
||||
d.loading = false
|
||||
messageReactive?.destroy()
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
.onComplete(() => {
|
||||
messageReactive?.destroy()
|
||||
})
|
||||
} else {
|
||||
useRequest(cert.obtainSelfSigned(id.value))
|
||||
.onSuccess(() => {
|
||||
|
||||
Reference in New Issue
Block a user