【调整】SSH地址支持域名形式

【新增】支持自定义监控端口
【新增】通知类型-企业微信
【新增】申请证书(Buypass)、自定义ACME服务器地址
【新增】授权API管理(namesilo、Bunny、Gcore、name.com、京东云)
This commit is contained in:
chudong
2025-06-07 17:37:42 +08:00
parent 87ae1c9570
commit f0d83d23c6
106 changed files with 1570 additions and 223 deletions

View File

@@ -27,7 +27,7 @@ import {
useLoadingMask,
} from '@baota/naive-ui/hooks'
import { useError } from '@baota/hooks/error'
import { isEmail, isIp, isPort, isUrl } from '@baota/utils/business'
import { isEmail, isIp, isPort, isUrl, isDomain } from '@baota/utils/business'
import { $t } from '@locales/index'
import { useStore } from './useStore'
import { ApiProjectConfig } from '@config/data'
@@ -42,6 +42,11 @@ import type {
CloudnsAccessConfig,
AwsAccessConfig,
AzureAccessConfig,
NamesiloAccessConfig,
NamedotcomAccessConfig,
BunnyAccessConfig,
GcoreAccessConfig,
JdcloudAccessConfig,
} from '@/types/access'
import type { VNode, Ref } from 'vue'
import { testAccess } from '@/api/access'
@@ -306,8 +311,8 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
required: true,
trigger: 'input',
validator: (rule: FormItemRule, value: string, callback: (error?: Error) => void) => {
if (!isIp(value)) {
return callback(new Error($t('t_0_1745317313835')))
if (!isIp(value) && !isDomain(value)) {
return callback(new Error($t('t_0_1749119980577')))
}
callback()
},
@@ -663,6 +668,27 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
useFormInput('Environment', 'config.environment', { allowInput: noSideSpace, placeholder: 'public' }),
)
break
case 'namesilo':
items.push(useFormInput('API Key', 'config.api_key', { allowInput: noSideSpace }))
break
case 'namedotcom':
items.push(
useFormInput('Username', 'config.username', { allowInput: noSideSpace }),
useFormInput('API Token', 'config.api_token', { allowInput: noSideSpace }),
)
break
case 'bunny':
items.push(useFormInput('API Key', 'config.api_key', { allowInput: noSideSpace }))
break
case 'gcore':
items.push(useFormInput('API Token', 'config.api_token', { allowInput: noSideSpace }))
break
case 'jdcloud':
items.push(
useFormInput('Access Key ID', 'config.access_key_id', { allowInput: noSideSpace }),
useFormInput('Secret Access Key', 'config.secret_access_key', { allowInput: noSideSpace }),
)
break
default:
break
}
@@ -760,6 +786,33 @@ export const useApiFormController = (props: ApiFormControllerProps): ApiFormCont
environment: '',
} as AzureAccessConfig
break
case 'namesilo':
param.value.config = {
api_key: '',
} as NamesiloAccessConfig
break
case 'namedotcom':
param.value.config = {
username: '',
api_token: '',
} as NamedotcomAccessConfig
break
case 'bunny':
param.value.config = {
api_key: '',
} as BunnyAccessConfig
break
case 'gcore':
param.value.config = {
api_token: '',
} as GcoreAccessConfig
break
case 'jdcloud':
param.value.config = {
access_key_id: '',
secret_access_key: '',
} as JdcloudAccessConfig
break
}
},
)