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
|
|
|
};
|