mirror of
https://gitee.com/mirrors/AllinSSL.git
synced 2026-03-11 01:01:09 +08:00
【修复】申请证书中CA强制邮箱关联的问题
This commit is contained in:
@@ -21,15 +21,18 @@ import { $t } from '@locales/index'
|
||||
* path="form.eabId"
|
||||
* v-model:value="formValue.eabId"
|
||||
* v-model:ca="formValue.ca"
|
||||
* v-model:email="formValue.email"
|
||||
* />
|
||||
*
|
||||
* @property {string} path - 表单路径,用于表单校验。
|
||||
* @property {string} value - 当前选中的值 (通过 v-model:value 绑定)。
|
||||
* @property {string} ca - 当前选中的CA类型 (通过 v-model:ca 绑定)。
|
||||
* @property {string} email - 邮箱地址 (通过 v-model:email 绑定),当 value 不为空时会被自动赋值。
|
||||
* @property {boolean} [disabled=false] - 是否禁用。
|
||||
* @property {string} [customClass] - 自定义CSS类名。
|
||||
*
|
||||
* @emits update:value - (value: { value: string; ca: string }) 当选择的CA授权变更时触发,传递值和CA类型。
|
||||
* @emits update:email - (email: string) 当 value 不为空时触发,传递邮箱地址。
|
||||
*/
|
||||
export default defineComponent<CAProviderSelectProps>({
|
||||
name: 'CAProviderSelect',
|
||||
@@ -47,6 +50,10 @@ export default defineComponent<CAProviderSelectProps>({
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
email: {
|
||||
type: String,
|
||||
required: true,
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
@@ -58,6 +65,7 @@ export default defineComponent<CAProviderSelectProps>({
|
||||
},
|
||||
emits: {
|
||||
'update:value': (value: { value: string; ca: string }) => true,
|
||||
'update:email': (email: string) => true,
|
||||
},
|
||||
setup(props: CAProviderSelectProps, { emit }: { emit: CAProviderSelectEmits }) {
|
||||
const {
|
||||
|
||||
@@ -6,6 +6,7 @@ export interface CAProviderOption {
|
||||
label: string
|
||||
value: string
|
||||
ca: string
|
||||
email: string
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -28,6 +29,11 @@ export interface CAProviderSelectProps {
|
||||
* @description 当前选中的CA类型
|
||||
*/
|
||||
ca: string
|
||||
/**
|
||||
* @property email
|
||||
* @description 邮箱地址,当 value 不为空时会被赋值
|
||||
*/
|
||||
email: string
|
||||
/**
|
||||
* @property disabled
|
||||
* @description 是否禁用选择器
|
||||
@@ -46,7 +52,8 @@ export interface CAProviderSelectProps {
|
||||
* @description CAProviderSelect 组件的 Emits 定义
|
||||
*/
|
||||
export interface CAProviderSelectEmits {
|
||||
(e: 'update:value', value: { value: string; ca: string }): void
|
||||
(e: 'update:value', value: { value: string; ca: string; email: string }): void
|
||||
(e: 'update:email', email: string): void
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -22,6 +22,7 @@ export function useCAProviderSelectController(props: CAProviderSelectProps, emit
|
||||
label: '',
|
||||
value: '',
|
||||
ca: '',
|
||||
email: '',
|
||||
})
|
||||
const caProviderRef = ref<CAProviderOption[]>([])
|
||||
const isLoading = ref(false)
|
||||
@@ -47,6 +48,7 @@ export function useCAProviderSelectController(props: CAProviderSelectProps, emit
|
||||
label: selectedProvider.label,
|
||||
value: selectedProvider.value,
|
||||
ca: selectedProvider.ca,
|
||||
email: selectedProvider.email,
|
||||
}
|
||||
} else if (caProviderRef.value.length > 0 && param.value.value === '') {
|
||||
// 如果 param.value 为空(例如初始状态或清空后),且 caProviderRef 列表不为空,则默认选中第一个
|
||||
@@ -54,9 +56,16 @@ export function useCAProviderSelectController(props: CAProviderSelectProps, emit
|
||||
label: caProviderRef.value[0]?.label || '',
|
||||
value: caProviderRef.value[0]?.value || '',
|
||||
ca: caProviderRef.value[0]?.ca || '',
|
||||
email: caProviderRef.value[0]?.email || '',
|
||||
}
|
||||
}
|
||||
emit('update:value', { value: param.value.value, ca: param.value.ca })
|
||||
|
||||
// 当 value 不为空时,将其赋值给 email 字段
|
||||
if (param.value.value !== '') {
|
||||
emit('update:email', param.value.email)
|
||||
}
|
||||
|
||||
emit('update:value', { value: param.value.value, ca: param.value.ca, email: param.value.email })
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -82,6 +91,7 @@ export function useCAProviderSelectController(props: CAProviderSelectProps, emit
|
||||
label: "Let's Encrypt",
|
||||
value: '',
|
||||
ca: 'letsencrypt',
|
||||
email: '',
|
||||
}
|
||||
|
||||
// 获取其他CA授权列表
|
||||
@@ -90,6 +100,7 @@ export function useCAProviderSelectController(props: CAProviderSelectProps, emit
|
||||
label: item.name,
|
||||
value: item.id.toString(),
|
||||
ca: item.ca,
|
||||
email: item.mail,
|
||||
}))
|
||||
|
||||
// 合并选项,Let's Encrypt在首位
|
||||
|
||||
@@ -113,6 +113,7 @@ nodeOptions[APPLY] = () =>
|
||||
provider: '',
|
||||
provider_id: '',
|
||||
algorithm: 'RSA2048',
|
||||
skip_check: 0,
|
||||
},
|
||||
childNode: null,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user