mirror of
https://github.com/certd/certd.git
synced 2026-04-05 07:20:56 +08:00
fix: 修复发件邮箱无法输入的bug
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
//注意: @符号是保留字符,需要用{'@'}替换
|
||||
export default {
|
||||
app: {
|
||||
crud: {
|
||||
@@ -266,77 +267,6 @@ export default {
|
||||
webhookEnabledHelper: "Support webhook trigger pipeline, please check webhook address in trigger source",
|
||||
},
|
||||
notificationDefault: "Use Default Notification",
|
||||
monitor: {
|
||||
remark: "Remark",
|
||||
title: "Site Certificate Monitoring",
|
||||
description: "Check website certificates' expiration at 0:00 daily; reminders sent 10 days before expiration (using default notification channel);",
|
||||
settingLink: "Site Monitoring Settings",
|
||||
limitInfo: "Basic edition limited to 1, professional and above unlimited, current",
|
||||
checkAll: "Check All",
|
||||
confirmTitle: "Confirm",
|
||||
confirmContent: "Confirm to trigger check for all site certificates?",
|
||||
checkSubmitted: "Check task submitted",
|
||||
pleaseRefresh: "Please refresh the page later to see the results",
|
||||
siteName: "Site Name",
|
||||
enterSiteName: "Please enter the site name",
|
||||
domain: "Domain",
|
||||
enterDomain: "Please enter the domain",
|
||||
enterValidDomain: "Please enter a valid domain",
|
||||
httpsPort: "HTTPS Port",
|
||||
enterPort: "Please enter the port",
|
||||
certInfo: "Certificate Info",
|
||||
issuer: "Issuer",
|
||||
certDomains: "Certificate Domains",
|
||||
certProvider: "Issuer",
|
||||
certStatus: "Certificate Status",
|
||||
error: "Error",
|
||||
status: {
|
||||
ok: "Valid",
|
||||
expired: "Expired",
|
||||
},
|
||||
certEffectiveTime: "Certificate Effective",
|
||||
certExpiresTime: "Certificate Expiration",
|
||||
remainingValidity: "Remaining Validity",
|
||||
expired: "expired",
|
||||
days: "days",
|
||||
lastCheckTime: "Last Check Time",
|
||||
disabled: "Enable/Disable",
|
||||
ipCheck: "Enable IP Check",
|
||||
ipCheckHelper: "Enable to check certificate expiration time on each IP (or source site domain) ",
|
||||
ipSyncAuto: "Enable IP Sync Auto",
|
||||
ipSyncMode: "IP Sync Mode",
|
||||
ipIgnoreCoherence: "Ignore Certificate Coherence",
|
||||
ipIgnoreCoherenceHelper: "Enable to ignore certificate coherence check, only check certificate expiration time",
|
||||
selectRequired: "Please select",
|
||||
ipCheckConfirm: "Are you sure to {status} IP check?",
|
||||
ipCount: "IP Count",
|
||||
checkStatus: "Check Status",
|
||||
pipelineId: "Linked Pipeline ID",
|
||||
certInfoId: "Certificate ID",
|
||||
checkSubmittedRefresh: "Check task submitted. Please refresh later to view the result.",
|
||||
ipManagement: "IP Management",
|
||||
bulkImport: "Bulk Import",
|
||||
basicLimitError: "Basic version allows only one monitoring site. Please upgrade to the Pro version.",
|
||||
limitExceeded: "Sorry, you can only create up to {max} monitoring records. Please purchase or upgrade your plan.",
|
||||
setting: {
|
||||
siteMonitorSettings: "Site Monitor Settings",
|
||||
notificationChannel: "Notification Channel",
|
||||
setNotificationChannel: "Set the notification channel",
|
||||
retryTimes: "Retry Times",
|
||||
monitorRetryTimes: "Number of retry attempts for monitoring requests",
|
||||
monitorCronSetting: "Monitoring Schedule",
|
||||
cronTrigger: "Scheduled trigger for monitoring",
|
||||
dnsServer: "DNS Server",
|
||||
dnsServerHelper: "Use a custom domain name resolution server, such as: 1.1.1.1 , support multiple",
|
||||
certValidDays: "Certificate Valid Days",
|
||||
certValidDaysHelper: "Number of days before expiration to send a notification",
|
||||
},
|
||||
cert: {
|
||||
expired: "Expired",
|
||||
expiring: "Expiring",
|
||||
noExpired: "Not Expired",
|
||||
},
|
||||
},
|
||||
checkStatus: {
|
||||
success: "Success",
|
||||
checking: "Checking",
|
||||
@@ -690,7 +620,7 @@ export default {
|
||||
password: "Password",
|
||||
pleaseEnterPassword: "Please enter password",
|
||||
qqEmailAuthCodeHelper: "If using QQ email, get an authorization code in QQ email settings as the password",
|
||||
senderEmailHelper: "You can use the format: Name<Email> to set the sender name, e.g.: autossl<certd@example.com>",
|
||||
senderEmailHelper: "You can use the format: Name<Email> to set the sender name, e.g.: autossl<certd{'@'}example.com>",
|
||||
senderEmail: "Sender Email",
|
||||
pleaseEnterSenderEmail: "Please enter sender email",
|
||||
useSsl: "Use SSL",
|
||||
|
||||
@@ -6,7 +6,8 @@ import preferences from "./preferences";
|
||||
import ui from "./ui";
|
||||
import guide from "./guide";
|
||||
import common from "./common";
|
||||
|
||||
import monitor from "./monitor";
|
||||
//注意: @符号是保留字符,需要用{'@'}替换
|
||||
export default {
|
||||
certd,
|
||||
authentication,
|
||||
@@ -16,4 +17,5 @@ export default {
|
||||
preferences,
|
||||
guide,
|
||||
common,
|
||||
monitor,
|
||||
};
|
||||
|
||||
71
packages/ui/certd-client/src/locales/langs/en-US/monitor.ts
Normal file
71
packages/ui/certd-client/src/locales/langs/en-US/monitor.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
export default {
|
||||
remark: "Remark",
|
||||
title: "Site Certificate Monitoring",
|
||||
description: "Check website certificates' expiration at 0:00 daily; reminders sent 10 days before expiration (using default notification channel);",
|
||||
settingLink: "Site Monitoring Settings",
|
||||
limitInfo: "Basic edition limited to 1, professional and above unlimited, current",
|
||||
checkAll: "Check All",
|
||||
confirmTitle: "Confirm",
|
||||
confirmContent: "Confirm to trigger check for all site certificates?",
|
||||
checkSubmitted: "Check task submitted",
|
||||
pleaseRefresh: "Please refresh the page later to see the results",
|
||||
siteName: "Site Name",
|
||||
enterSiteName: "Please enter the site name",
|
||||
domain: "Domain",
|
||||
enterDomain: "Please enter the domain",
|
||||
enterValidDomain: "Please enter a valid domain",
|
||||
httpsPort: "HTTPS Port",
|
||||
enterPort: "Please enter the port",
|
||||
certInfo: "Certificate Info",
|
||||
issuer: "Issuer",
|
||||
certDomains: "Certificate Domains",
|
||||
certProvider: "Issuer",
|
||||
certStatus: "Certificate Status",
|
||||
error: "Error",
|
||||
status: {
|
||||
ok: "Valid",
|
||||
expired: "Expired",
|
||||
},
|
||||
certEffectiveTime: "Certificate Effective",
|
||||
certExpiresTime: "Certificate Expiration",
|
||||
remainingValidity: "Remaining Validity",
|
||||
expired: "expired",
|
||||
days: "days",
|
||||
lastCheckTime: "Last Check Time",
|
||||
disabled: "Enable/Disable",
|
||||
ipCheck: "Enable IP Check",
|
||||
ipCheckHelper: "Enable to check certificate expiration time on each IP (or source site domain) ",
|
||||
ipSyncAuto: "Enable IP Sync Auto",
|
||||
ipSyncMode: "IP Sync Mode",
|
||||
ipIgnoreCoherence: "Ignore Certificate Coherence",
|
||||
ipIgnoreCoherenceHelper: "Enable to ignore certificate coherence check, only check certificate expiration time",
|
||||
selectRequired: "Please select",
|
||||
ipCheckConfirm: "Are you sure to {status} IP check?",
|
||||
ipCount: "IP Count",
|
||||
checkStatus: "Check Status",
|
||||
pipelineId: "Linked Pipeline ID",
|
||||
certInfoId: "Certificate ID",
|
||||
checkSubmittedRefresh: "Check task submitted. Please refresh later to view the result.",
|
||||
ipManagement: "IP Management",
|
||||
bulkImport: "Bulk Import",
|
||||
basicLimitError: "Basic version allows only one monitoring site. Please upgrade to the Pro version.",
|
||||
limitExceeded: "Sorry, you can only create up to {max} monitoring records. Please purchase or upgrade your plan.",
|
||||
setting: {
|
||||
siteMonitorSettings: "Site Monitor Settings",
|
||||
notificationChannel: "Notification Channel",
|
||||
setNotificationChannel: "Set the notification channel",
|
||||
retryTimes: "Retry Times",
|
||||
monitorRetryTimes: "Number of retry attempts for monitoring requests",
|
||||
monitorCronSetting: "Monitoring Schedule",
|
||||
cronTrigger: "Scheduled trigger for monitoring",
|
||||
dnsServer: "DNS Server",
|
||||
dnsServerHelper: "Use a custom domain name resolution server, such as: 1.1.1.1 , support multiple",
|
||||
certValidDays: "Certificate Valid Days",
|
||||
certValidDaysHelper: "Number of days before expiration to send a notification",
|
||||
},
|
||||
cert: {
|
||||
expired: "Expired",
|
||||
expiring: "Expiring",
|
||||
noExpired: "Not Expired",
|
||||
},
|
||||
};
|
||||
@@ -1,3 +1,4 @@
|
||||
//注意: @符号是保留字符,需要用{'@'}替换
|
||||
export default {
|
||||
app: {
|
||||
crud: {
|
||||
@@ -269,82 +270,6 @@ export default {
|
||||
webhookEnabledHelper: "支持webhook触发流水线,请在触发源中查看webhook地址",
|
||||
},
|
||||
notificationDefault: "使用默认通知",
|
||||
monitor: {
|
||||
remark: "备注",
|
||||
title: "站点证书监控",
|
||||
description: "每天0点,检查网站证书的过期时间,到期前10天时将发出提醒(使用默认通知渠道);",
|
||||
settingLink: "站点监控设置",
|
||||
limitInfo: "基础版限制1条,专业版以上无限制,当前",
|
||||
checkAll: "检查全部",
|
||||
confirmTitle: "确认",
|
||||
confirmContent: "确认触发检查全部站点证书吗?",
|
||||
checkSubmitted: "检查任务已提交",
|
||||
pleaseRefresh: "请稍后刷新页面查看结果",
|
||||
siteName: "站点名称",
|
||||
enterSiteName: "请输入站点名称",
|
||||
domain: "网站域名",
|
||||
enterDomain: "请输入域名",
|
||||
enterValidDomain: "请输入正确的域名",
|
||||
httpsPort: "HTTPS端口",
|
||||
enterPort: "请输入端口",
|
||||
certInfo: "证书信息",
|
||||
issuer: "证书颁发机构",
|
||||
certDomains: "证书域名",
|
||||
certProvider: "颁发机构",
|
||||
certStatus: "证书状态",
|
||||
error: "错误信息",
|
||||
status: {
|
||||
ok: "正常",
|
||||
expired: "过期",
|
||||
},
|
||||
certEffectiveTime: "证书生效时间",
|
||||
certExpiresTime: "证书到期时间",
|
||||
remainingValidity: "到期剩余",
|
||||
expired: "过期",
|
||||
days: "天",
|
||||
lastCheckTime: "上次检查时间",
|
||||
disabled: "禁用启用",
|
||||
ipCheck: "开启IP检查",
|
||||
ipCheckHelper: "开启后,会检查IP(或源站)上的证书有效期",
|
||||
ipSyncAuto: "自动同步IP",
|
||||
ipSyncMode: "IP同步模式",
|
||||
ipSyncModeHelper: "选择仅检查IPv4或IPv6,或检查所有IP",
|
||||
ipSyncModeAll: "检查所有IP",
|
||||
ipSyncModeIPV4Only: "仅检查IPv4",
|
||||
ipSyncModeIPV6Only: "仅检查IPv6",
|
||||
selectRequired: "请选择",
|
||||
ipCheckConfirm: "确定{status}IP检查?",
|
||||
ipCount: "IP数量",
|
||||
ipIgnoreCoherence: "忽略证书一致性",
|
||||
ipIgnoreCoherenceHelper: "开启后,即使IP上的证书与站点证书不一致,也会被认为是正常,仅校验证书过期时间",
|
||||
checkStatus: "检查状态",
|
||||
pipelineId: "关联流水线ID",
|
||||
certInfoId: "证书ID",
|
||||
checkSubmittedRefresh: "检查任务已提交,请稍后刷新查看结果",
|
||||
ipManagement: "IP管理",
|
||||
bulkImport: "批量导入",
|
||||
basicLimitError: "基础版只能添加一个监控站点,请赞助升级专业版",
|
||||
limitExceeded: "对不起,您最多只能创建条{max}监控记录,请购买或升级套餐",
|
||||
setting: {
|
||||
siteMonitorSettings: "站点监控设置",
|
||||
notificationChannel: "通知渠道",
|
||||
setNotificationChannel: "设置通知渠道",
|
||||
retryTimes: "重试次数",
|
||||
monitorRetryTimes: "监控请求重试次数",
|
||||
monitorCronSetting: "监控定时设置",
|
||||
cronTrigger: "定时触发监控",
|
||||
dnsServer: "DNS服务器",
|
||||
dnsServerHelper: "使用自定义的域名解析服务器,如:1.1.1.1 , 支持多个",
|
||||
certValidDays: "证书到期前天数",
|
||||
certValidDaysHelper: "证书到期前多少天发送通知",
|
||||
},
|
||||
|
||||
cert: {
|
||||
expired: "已过期",
|
||||
expiring: "即将过期",
|
||||
noExpired: "未过期",
|
||||
},
|
||||
},
|
||||
checkStatus: {
|
||||
success: "成功",
|
||||
checking: "检查中",
|
||||
@@ -701,7 +626,7 @@ export default {
|
||||
password: "密码",
|
||||
pleaseEnterPassword: "请输入密码",
|
||||
qqEmailAuthCodeHelper: "如果是qq邮箱,需要到qq邮箱的设置里面申请授权码作为密码",
|
||||
senderEmailHelper: "您可以使用 名称<邮箱> 的格式,来修改发件人名称,例如: autossl<certd@example.com>",
|
||||
senderEmailHelper: "您可以使用 名称<邮箱> 的格式,来修改发件人名称,例如: autossl<certd{'@'}example.com>",
|
||||
senderEmail: "发件邮箱",
|
||||
pleaseEnterSenderEmail: "请输入发件邮箱",
|
||||
useSsl: "是否ssl",
|
||||
|
||||
@@ -6,7 +6,8 @@ import preferences from "./preferences";
|
||||
import ui from "./ui";
|
||||
import guide from "./guide";
|
||||
import common from "./common";
|
||||
|
||||
import monitor from "./monitor";
|
||||
//注意: @符号是保留字符,需要用{'@'}替换
|
||||
export default {
|
||||
certd,
|
||||
authentication,
|
||||
@@ -16,4 +17,5 @@ export default {
|
||||
preferences,
|
||||
guide,
|
||||
common,
|
||||
monitor,
|
||||
};
|
||||
|
||||
75
packages/ui/certd-client/src/locales/langs/zh-CN/monitor.ts
Normal file
75
packages/ui/certd-client/src/locales/langs/zh-CN/monitor.ts
Normal file
@@ -0,0 +1,75 @@
|
||||
export default {
|
||||
remark: "备注",
|
||||
title: "站点证书监控",
|
||||
description: "每天0点,检查网站证书的过期时间,到期前10天时将发出提醒(使用默认通知渠道);",
|
||||
settingLink: "站点监控设置",
|
||||
limitInfo: "基础版限制1条,专业版以上无限制,当前",
|
||||
checkAll: "检查全部",
|
||||
confirmTitle: "确认",
|
||||
confirmContent: "确认触发检查全部站点证书吗?",
|
||||
checkSubmitted: "检查任务已提交",
|
||||
pleaseRefresh: "请稍后刷新页面查看结果",
|
||||
siteName: "站点名称",
|
||||
enterSiteName: "请输入站点名称",
|
||||
domain: "网站域名",
|
||||
enterDomain: "请输入域名",
|
||||
enterValidDomain: "请输入正确的域名",
|
||||
httpsPort: "HTTPS端口",
|
||||
enterPort: "请输入端口",
|
||||
certInfo: "证书信息",
|
||||
issuer: "证书颁发机构",
|
||||
certDomains: "证书域名",
|
||||
certProvider: "颁发机构",
|
||||
certStatus: "证书状态",
|
||||
error: "错误信息",
|
||||
status: {
|
||||
ok: "正常",
|
||||
expired: "过期",
|
||||
},
|
||||
certEffectiveTime: "证书生效时间",
|
||||
certExpiresTime: "证书到期时间",
|
||||
remainingValidity: "到期剩余",
|
||||
expired: "过期",
|
||||
days: "天",
|
||||
lastCheckTime: "上次检查时间",
|
||||
disabled: "禁用启用",
|
||||
ipCheck: "开启IP检查",
|
||||
ipCheckHelper: "开启后,会检查IP(或源站)上的证书有效期",
|
||||
ipSyncAuto: "自动同步IP",
|
||||
ipSyncMode: "IP同步模式",
|
||||
ipSyncModeHelper: "选择仅检查IPv4或IPv6,或检查所有IP",
|
||||
ipSyncModeAll: "检查所有IP",
|
||||
ipSyncModeIPV4Only: "仅检查IPv4",
|
||||
ipSyncModeIPV6Only: "仅检查IPv6",
|
||||
selectRequired: "请选择",
|
||||
ipCheckConfirm: "确定{status}IP检查?",
|
||||
ipCount: "IP数量",
|
||||
ipIgnoreCoherence: "忽略证书一致性",
|
||||
ipIgnoreCoherenceHelper: "开启后,即使IP上的证书与站点证书不一致,也会被认为是正常,仅校验证书过期时间",
|
||||
checkStatus: "检查状态",
|
||||
pipelineId: "关联流水线ID",
|
||||
certInfoId: "证书ID",
|
||||
checkSubmittedRefresh: "检查任务已提交,请稍后刷新查看结果",
|
||||
ipManagement: "IP管理",
|
||||
bulkImport: "批量导入",
|
||||
basicLimitError: "基础版只能添加一个监控站点,请赞助升级专业版",
|
||||
limitExceeded: "对不起,您最多只能创建条{max}监控记录,请购买或升级套餐",
|
||||
setting: {
|
||||
siteMonitorSettings: "站点监控设置",
|
||||
notificationChannel: "通知渠道",
|
||||
setNotificationChannel: "设置通知渠道",
|
||||
retryTimes: "重试次数",
|
||||
monitorRetryTimes: "监控请求重试次数",
|
||||
monitorCronSetting: "监控定时设置",
|
||||
cronTrigger: "定时触发监控",
|
||||
dnsServer: "DNS服务器",
|
||||
dnsServerHelper: "使用自定义的域名解析服务器,如:1.1.1.1 , 支持多个",
|
||||
certValidDays: "证书到期前天数",
|
||||
certValidDaysHelper: "证书到期前多少天发送通知",
|
||||
},
|
||||
cert: {
|
||||
expired: "已过期",
|
||||
expiring: "即将过期",
|
||||
noExpired: "未过期",
|
||||
},
|
||||
};
|
||||
@@ -227,9 +227,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
name: "fs-dict-select",
|
||||
dict: dict({
|
||||
data: [
|
||||
{ label: t("certd.monitor.cert.expired"), value: "expired" },
|
||||
{ label: t("certd.monitor.cert.expiring"), value: "expiring" },
|
||||
{ label: t("certd.monitor.cert.noExpired"), value: "noExpired" },
|
||||
{ label: t("monitor.cert.expired"), value: "expired" },
|
||||
{ label: t("monitor.cert.expiring"), value: "expiring" },
|
||||
{ label: t("monitor.cert.noExpired"), value: "noExpired" },
|
||||
],
|
||||
}),
|
||||
},
|
||||
|
||||
@@ -84,13 +84,13 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
|
||||
function checkAll() {
|
||||
Modal.confirm({
|
||||
title: t("certd.monitor.confirmTitle"), // "确认"
|
||||
content: t("certd.monitor.confirmContent"), // "确认触发检查全部站点证书吗?"
|
||||
title: t("monitor.confirmTitle"), // "确认"
|
||||
content: t("monitor.confirmContent"), // "确认触发检查全部站点证书吗?"
|
||||
onOk: async () => {
|
||||
await siteInfoApi.CheckAll();
|
||||
notification.success({
|
||||
message: t("certd.monitor.checkSubmitted"), // "检查任务已提交"
|
||||
description: t("certd.monitor.pleaseRefresh"), // "请稍后刷新页面查看结果"
|
||||
message: t("monitor.checkSubmitted"), // "检查任务已提交"
|
||||
description: t("monitor.pleaseRefresh"), // "请稍后刷新页面查看结果"
|
||||
});
|
||||
},
|
||||
});
|
||||
@@ -199,7 +199,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
// 非plus
|
||||
if (crudBinding.value.data.length >= 1) {
|
||||
notification.error({
|
||||
message: t("certd.monitor.basicLimitError"),
|
||||
message: t("monitor.basicLimitError"),
|
||||
});
|
||||
mitter.emit("openVipModal");
|
||||
return;
|
||||
@@ -213,7 +213,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
const max = suiteDetail.monitorCount.max;
|
||||
if (max != -1 && max <= suiteDetail.monitorCount.used) {
|
||||
notification.error({
|
||||
message: t("certd.monitor.limitExceeded", { max }),
|
||||
message: t("monitor.limitExceeded", { max }),
|
||||
});
|
||||
return;
|
||||
}
|
||||
@@ -228,7 +228,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
//导入按钮
|
||||
import: {
|
||||
show: true,
|
||||
text: t("certd.monitor.bulkImport"),
|
||||
text: t("monitor.bulkImport"),
|
||||
type: "primary",
|
||||
async click() {
|
||||
const defaultGroupId = getDefaultGroupId();
|
||||
@@ -242,7 +242,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
checkAll: {
|
||||
show: true,
|
||||
text: t("certd.monitor.checkAll"),
|
||||
text: t("monitor.checkAll"),
|
||||
type: "primary",
|
||||
click() {
|
||||
checkAll();
|
||||
@@ -266,7 +266,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
await api.DoCheck(row.id);
|
||||
await crudExpose.doRefresh();
|
||||
notification.success({
|
||||
message: t("certd.monitor.checkSubmittedRefresh"),
|
||||
message: t("monitor.checkSubmittedRefresh"),
|
||||
});
|
||||
},
|
||||
},
|
||||
@@ -276,7 +276,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
text: null,
|
||||
show: compute(({ row }) => row.ipCheck === true),
|
||||
tooltip: {
|
||||
title: t("certd.monitor.ipManagement"),
|
||||
title: t("monitor.ipManagement"),
|
||||
},
|
||||
icon: "entypo:address",
|
||||
click: async ({ row }) => {
|
||||
@@ -306,29 +306,29 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
name: {
|
||||
title: t("certd.monitor.siteName"),
|
||||
title: t("monitor.siteName"),
|
||||
search: {
|
||||
show: true,
|
||||
},
|
||||
type: "text",
|
||||
form: {
|
||||
rules: [{ required: true, message: t("certd.monitor.enterSiteName") }],
|
||||
rules: [{ required: true, message: t("monitor.enterSiteName") }],
|
||||
},
|
||||
column: {
|
||||
width: 160,
|
||||
},
|
||||
},
|
||||
domain: {
|
||||
title: t("certd.monitor.domain"),
|
||||
title: t("monitor.domain"),
|
||||
search: {
|
||||
show: true,
|
||||
},
|
||||
type: "text",
|
||||
form: {
|
||||
rules: [
|
||||
{ required: true, message: t("certd.monitor.enterDomain") },
|
||||
{ required: true, message: t("monitor.enterDomain") },
|
||||
// @ts-ignore
|
||||
{ type: "domains", message: t("certd.monitor.enterValidDomain") },
|
||||
{ type: "domains", message: t("monitor.enterValidDomain") },
|
||||
],
|
||||
},
|
||||
column: {
|
||||
@@ -349,14 +349,14 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
httpsPort: {
|
||||
title: t("certd.monitor.httpsPort"),
|
||||
title: t("monitor.httpsPort"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
type: "number",
|
||||
form: {
|
||||
value: 443,
|
||||
rules: [{ required: true, message: t("certd.monitor.enterPort") }],
|
||||
rules: [{ required: true, message: t("monitor.enterPort") }],
|
||||
},
|
||||
column: {
|
||||
width: 100,
|
||||
@@ -364,7 +364,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certInfo: {
|
||||
title: t("certd.monitor.certInfo"),
|
||||
title: t("monitor.certInfo"),
|
||||
type: "text",
|
||||
form: { show: false },
|
||||
column: {
|
||||
@@ -378,10 +378,10 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
return (
|
||||
<div>
|
||||
<div>
|
||||
{t("certd.monitor.issuer")}: {row.certProvider}
|
||||
{t("monitor.issuer")}: {row.certProvider}
|
||||
</div>
|
||||
<div>
|
||||
{t("certd.monitor.certDomains")}: {row.certDomains}
|
||||
{t("monitor.certDomains")}: {row.certDomains}
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@@ -396,7 +396,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certDomains: {
|
||||
title: t("certd.monitor.certDomains"),
|
||||
title: t("monitor.certDomains"),
|
||||
search: {
|
||||
show: true,
|
||||
},
|
||||
@@ -418,7 +418,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certProvider: {
|
||||
title: t("certd.monitor.certProvider"),
|
||||
title: t("monitor.certProvider"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -436,15 +436,15 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certStatus: {
|
||||
title: t("certd.monitor.certStatus"),
|
||||
title: t("monitor.certStatus"),
|
||||
search: {
|
||||
show: true,
|
||||
},
|
||||
type: "dict-select",
|
||||
dict: dict({
|
||||
data: [
|
||||
{ label: t("certd.monitor.status.ok"), value: "ok", color: "green" },
|
||||
{ label: t("certd.monitor.status.expired"), value: "expired", color: "red" },
|
||||
{ label: t("monitor.status.ok"), value: "ok", color: "green" },
|
||||
{ label: t("monitor.status.expired"), value: "expired", color: "red" },
|
||||
],
|
||||
}),
|
||||
form: {
|
||||
@@ -458,7 +458,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
checkStatus: {
|
||||
title: t("certd.monitor.checkStatus"),
|
||||
title: t("monitor.checkStatus"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -481,7 +481,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certEffectiveTime: {
|
||||
title: t("certd.monitor.certEffectiveTime"),
|
||||
title: t("monitor.certEffectiveTime"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -496,7 +496,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certExpiresTime: {
|
||||
title: t("certd.monitor.certExpiresTime"),
|
||||
title: t("monitor.certExpiresTime"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -510,7 +510,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
remainingValidity: {
|
||||
title: t("certd.monitor.remainingValidity"),
|
||||
title: t("monitor.remainingValidity"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -543,7 +543,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
const color = leftDays < certValidDays ? "red" : "#389e0d";
|
||||
const percent = (leftDays / effectiveDays) * 100;
|
||||
// console.log('cellRender', 'effectiveDays', effectiveDays, 'expiresTime', expiresTime, 'applyTime', applyTime, 'percent', percent, row)
|
||||
return <a-progress title={expireDate + t("certd.monitor.expired")} percent={percent} strokeColor={color} format={(percent: number) => `${leftDays}${t("certd.monitor.days")}`} />;
|
||||
return <a-progress title={expireDate + t("monitor.expired")} percent={percent} strokeColor={color} format={(percent: number) => `${leftDays}${t("monitor.days")}`} />;
|
||||
},
|
||||
},
|
||||
},
|
||||
@@ -574,7 +574,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
remark: {
|
||||
title: t("certd.monitor.remark"),
|
||||
title: t("monitor.remark"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -589,7 +589,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
lastCheckTime: {
|
||||
title: t("certd.monitor.lastCheckTime"),
|
||||
title: t("monitor.lastCheckTime"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -603,7 +603,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
disabled: {
|
||||
title: t("certd.monitor.disabled"),
|
||||
title: t("monitor.disabled"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -652,7 +652,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
// }
|
||||
// },
|
||||
ipCheck: {
|
||||
title: t("certd.monitor.ipCheck"),
|
||||
title: t("monitor.ipCheck"),
|
||||
type: "dict-switch",
|
||||
dict: dict({
|
||||
data: [
|
||||
@@ -661,9 +661,9 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
],
|
||||
}),
|
||||
form: {
|
||||
helper: t("certd.monitor.ipCheckHelper"),
|
||||
helper: t("monitor.ipCheckHelper"),
|
||||
value: false,
|
||||
rules: [{ required: true, message: t("certd.monitor.selectRequired") }],
|
||||
rules: [{ required: true, message: t("monitor.selectRequired") }],
|
||||
},
|
||||
column: {
|
||||
align: "center",
|
||||
@@ -676,7 +676,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
change({ row, $event }) {
|
||||
Modal.confirm({
|
||||
title: t("common.confirm"),
|
||||
content: t("certd.monitor.ipCheckConfirm", { status: $event ? t("common.enabled") : t("common.disabled") }),
|
||||
content: t("monitor.ipCheckConfirm", { status: $event ? t("common.enabled") : t("common.disabled") }),
|
||||
onOk: async () => {
|
||||
await api.IpCheckChange(row.id, $event);
|
||||
await crudExpose.doRefresh();
|
||||
@@ -694,7 +694,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
} as ColumnCompositionProps,
|
||||
ipSyncAuto: {
|
||||
title: t("certd.monitor.ipSyncAuto"),
|
||||
title: t("monitor.ipSyncAuto"),
|
||||
type: "dict-switch",
|
||||
dict: dict({
|
||||
data: [
|
||||
@@ -715,13 +715,13 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
ipSyncMode: {
|
||||
title: t("certd.monitor.ipSyncMode"),
|
||||
title: t("monitor.ipSyncMode"),
|
||||
type: "dict-select",
|
||||
dict: dict({
|
||||
data: [
|
||||
{ label: t("certd.monitor.ipSyncModeAll"), value: "all" },
|
||||
{ label: t("certd.monitor.ipSyncModeIPV4Only"), value: "ipv4" },
|
||||
{ label: t("certd.monitor.ipSyncModeIPV6Only"), value: "ipv6" },
|
||||
{ label: t("monitor.ipSyncModeAll"), value: "all" },
|
||||
{ label: t("monitor.ipSyncModeIPV4Only"), value: "ipv4" },
|
||||
{ label: t("monitor.ipSyncModeIPV6Only"), value: "ipv6" },
|
||||
],
|
||||
}),
|
||||
form: {
|
||||
@@ -729,7 +729,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
show: compute(({ form }) => {
|
||||
return form.ipSyncAuto;
|
||||
}),
|
||||
helper: t("certd.monitor.ipSyncModeHelper"),
|
||||
helper: t("monitor.ipSyncModeHelper"),
|
||||
},
|
||||
column: {
|
||||
width: 100,
|
||||
@@ -738,7 +738,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
ipIgnoreCoherence: {
|
||||
title: t("certd.monitor.ipIgnoreCoherence"),
|
||||
title: t("monitor.ipIgnoreCoherence"),
|
||||
type: "dict-switch",
|
||||
dict: dict({
|
||||
data: [
|
||||
@@ -751,7 +751,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
show: compute(({ form }) => {
|
||||
return form.ipCheck;
|
||||
}),
|
||||
helper: t("certd.monitor.ipIgnoreCoherenceHelper"),
|
||||
helper: t("monitor.ipIgnoreCoherenceHelper"),
|
||||
},
|
||||
column: {
|
||||
width: 100,
|
||||
@@ -760,7 +760,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
pipelineId: {
|
||||
title: t("certd.monitor.pipelineId"),
|
||||
title: t("monitor.pipelineId"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -773,7 +773,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
certInfoId: {
|
||||
title: t("certd.monitor.certInfoId"),
|
||||
title: t("monitor.certInfoId"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
@@ -786,7 +786,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
},
|
||||
},
|
||||
error: {
|
||||
title: t("certd.monitor.error"),
|
||||
title: t("monitor.error"),
|
||||
search: {
|
||||
show: false,
|
||||
},
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
<fs-page>
|
||||
<template #header>
|
||||
<div class="title flex items-center">
|
||||
{{ t("certd.monitor.title") }}
|
||||
{{ t("monitor.title") }}
|
||||
<div class="sub flex-1">
|
||||
<div>
|
||||
{{ t("certd.monitor.description") }}
|
||||
<router-link to="/certd/monitor/setting">{{ t("certd.monitor.settingLink") }}</router-link>
|
||||
{{ t("monitor.description") }}
|
||||
<router-link to="/certd/monitor/setting">{{ t("monitor.settingLink") }}</router-link>
|
||||
</div>
|
||||
<div class="flex items-center">
|
||||
{{ t("certd.monitor.limitInfo") }}
|
||||
{{ t("monitor.limitInfo") }}
|
||||
<vip-button class="ml-5" mode="nav"></vip-button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,40 +1,40 @@
|
||||
<template>
|
||||
<fs-page class="page-user-settings page-site-monitor-setting">
|
||||
<template #header>
|
||||
<div class="title">{{ t("certd.monitor.setting.siteMonitorSettings") }}</div>
|
||||
<div class="title">{{ t("monitor.setting.siteMonitorSettings") }}</div>
|
||||
</template>
|
||||
<div class="user-settings-form settings-form">
|
||||
<a-form :model="formState" name="basic" :label-col="{ span: 8 }" :wrapper-col="{ span: 16 }" autocomplete="off">
|
||||
<a-form-item :label="t('certd.monitor.setting.notificationChannel')" :name="['notificationId']">
|
||||
<a-form-item :label="t('monitor.setting.notificationChannel')" :name="['notificationId']">
|
||||
<div class="flex">
|
||||
<NotificationSelector v-model="formState.notificationId" />
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.setNotificationChannel") }}</div>
|
||||
<div class="helper">{{ t("monitor.setting.setNotificationChannel") }}</div>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('certd.monitor.setting.retryTimes')" :name="['retryTimes']">
|
||||
<a-form-item :label="t('monitor.setting.retryTimes')" :name="['retryTimes']">
|
||||
<div class="flex">
|
||||
<a-input-number v-model:value="formState.retryTimes" />
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.monitorRetryTimes") }}</div>
|
||||
<div class="helper">{{ t("monitor.setting.monitorRetryTimes") }}</div>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('certd.monitor.setting.certValidDays')" :name="['certValidDays']">
|
||||
<a-form-item :label="t('monitor.setting.certValidDays')" :name="['certValidDays']">
|
||||
<div class="flex">
|
||||
<a-input-number v-model:value="formState.certValidDays" />
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.certValidDaysHelper") }}</div>
|
||||
<div class="helper">{{ t("monitor.setting.certValidDaysHelper") }}</div>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('certd.monitor.setting.dnsServer')" :name="['dnsServer']">
|
||||
<a-form-item :label="t('monitor.setting.dnsServer')" :name="['dnsServer']">
|
||||
<div class="flex">
|
||||
<a-select v-model:value="formState.dnsServer" :token-separators="[' ', ',', ',', '、', '|']" mode="tags" :open="false" />
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.dnsServerHelper") }}</div>
|
||||
<div class="helper">{{ t("monitor.setting.dnsServerHelper") }}</div>
|
||||
</a-form-item>
|
||||
<a-form-item :label="t('certd.monitor.setting.monitorCronSetting')" :name="['cron']">
|
||||
<a-form-item :label="t('monitor.setting.monitorCronSetting')" :name="['cron']">
|
||||
<div class="flex flex-baseline">
|
||||
<cron-editor v-model="formState.cron" :disabled="!settingsStore.isPlus" :allow-every-min="userStore.isAdmin" />
|
||||
<vip-button class="ml-5" mode="button"></vip-button>
|
||||
</div>
|
||||
<div class="helper">{{ t("certd.monitor.setting.cronTrigger") }}</div>
|
||||
<div class="helper">{{ t("monitor.setting.cronTrigger") }}</div>
|
||||
</a-form-item>
|
||||
<a-form-item label=" " :colon="false" :wrapper-col="{ span: 16 }">
|
||||
<loading-button type="primary" html-type="button" :click="doSave">{{ t("certd.save") }}</loading-button>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
|
||||
<a-form-item :label="t('certd.smtpPort')" name="port" :rules="[{ required: true, message: t('certd.pleaseEnterSmtpPort') }]">
|
||||
<a-input v-model:value="formState.port" />
|
||||
<div class="helper">{{ t("certd.pleaseEnterSmtpPort") }}</div>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item :label="t('certd.username')" :name="['auth', 'user']" :rules="[{ required: true, message: t('certd.pleaseEnterUsername') }]">
|
||||
@@ -128,9 +129,9 @@ import * as api from "../api";
|
||||
import * as emailApi from "./api.email";
|
||||
import { notification } from "ant-design-vue";
|
||||
import { useSettingStore } from "/src/store/settings";
|
||||
import * as _ from "lodash-es";
|
||||
import { useI18n } from "/src/locales";
|
||||
import AddonSelector from "../../../certd/addon/addon-selector/index.vue";
|
||||
import { merge } from "lodash-es";
|
||||
const { t } = useI18n();
|
||||
defineOptions({
|
||||
name: "EmailSetting",
|
||||
@@ -189,7 +190,7 @@ function fillEmailTemplates(form: any) {
|
||||
|
||||
async function load() {
|
||||
const data: any = await api.EmailSettingsGet();
|
||||
_.merge(formState, data);
|
||||
merge(formState, data);
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
|
||||
Reference in New Issue
Block a user