1
0
mirror of https://github.com/1Panel-dev/1Panel.git synced 2025-02-01 22:48:06 +08:00
1Panel/frontend/src/global/form-rues.ts

65 lines
1.7 KiB
Go
Raw Normal View History

2022-08-16 23:30:23 +08:00
import i18n from '@/lang';
import { FormItemRule } from 'element-plus';
2022-08-18 18:51:27 +08:00
const checkIp = (rule: any, value: any, callback: any) => {
if (value === '' || typeof value === 'undefined' || value == null) {
callback(new Error(i18n.global.t('commons.rule.requiredInput')));
} else {
const reg =
/^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
if (!reg.test(value) && value !== '') {
callback(new Error(i18n.global.t('commons.rule.ip')));
} else {
callback();
}
}
};
2022-08-16 23:30:23 +08:00
interface CommonRule {
2022-08-18 18:51:27 +08:00
requiredInput: FormItemRule;
requiredSelect: FormItemRule;
2022-08-16 23:30:23 +08:00
name: FormItemRule;
email: FormItemRule;
2022-08-18 18:51:27 +08:00
ip: FormItemRule;
port: FormItemRule;
2022-08-16 23:30:23 +08:00
}
export const Rules: CommonRule = {
2022-08-18 18:51:27 +08:00
requiredInput: {
2022-08-16 23:30:23 +08:00
required: true,
2022-08-18 18:51:27 +08:00
message: i18n.global.t('commons.rule.requiredInput'),
2022-08-16 23:30:23 +08:00
trigger: 'blur',
},
2022-08-18 18:51:27 +08:00
requiredSelect: {
required: true,
message: i18n.global.t('commons.rule.requiredSelect'),
trigger: 'change',
},
2022-08-16 23:30:23 +08:00
name: {
type: 'regexp',
min: 1,
max: 30,
message: i18n.global.t('commons.rule.commonName'),
trigger: 'blur',
pattern: '/^[a-zA-Z0-9\u4e00-\u9fa5]{1}[a-zA-Z0-9_.\u4e00-\u9fa5-]{0,30}$/',
},
email: {
type: 'email',
message: i18n.global.t('commons.rule.email'),
trigger: 'blur',
},
2022-08-18 18:51:27 +08:00
ip: {
validator: checkIp,
required: true,
trigger: 'blur',
},
port: {
required: true,
trigger: 'blur',
min: 1,
max: 65535,
type: 'number',
message: i18n.global.t('commons.rule.port'),
},
2022-08-16 23:30:23 +08:00
};