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-09-16 16:00:49 +08:00
|
|
|
const complexityPassword = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.complexityPassword')));
|
|
|
|
} else {
|
|
|
|
const reg = /^(?=.*\d)(?=.*[a-zA-Z])(?=.*[~!@#$%^&*.])[\da-zA-Z~!@#$%^&*.]{8,}$/;
|
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.complexityPassword')));
|
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const checkName = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.commonName')));
|
|
|
|
} else {
|
|
|
|
const reg = /^[a-zA-Z0-9\u4e00-\u9fa5]{1}[a-zA-Z0-9_.\u4e00-\u9fa5-]{0,30}$/;
|
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.commonName')));
|
|
|
|
} 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-11-02 18:18:20 +08:00
|
|
|
requiredSelectBusiness: FormItemRule;
|
2022-08-16 23:30:23 +08:00
|
|
|
name: FormItemRule;
|
2022-09-16 16:00:49 +08:00
|
|
|
password: FormItemRule;
|
2022-08-16 23:30:23 +08:00
|
|
|
email: FormItemRule;
|
2022-09-14 23:27:17 +08:00
|
|
|
number: 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-11-02 18:18:20 +08:00
|
|
|
requiredSelectBusiness: {
|
|
|
|
required: true,
|
|
|
|
min: 1,
|
|
|
|
max: 65535,
|
|
|
|
type: 'number',
|
|
|
|
message: i18n.global.t('commons.rule.requiredSelect'),
|
|
|
|
trigger: 'change',
|
|
|
|
},
|
2022-08-16 23:30:23 +08:00
|
|
|
name: {
|
2022-09-16 18:53:45 +08:00
|
|
|
required: true,
|
2022-09-16 16:00:49 +08:00
|
|
|
validator: checkName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
|
|
|
password: {
|
|
|
|
validator: complexityPassword,
|
2022-08-16 23:30:23 +08:00
|
|
|
trigger: 'blur',
|
|
|
|
},
|
|
|
|
email: {
|
2022-09-16 16:00:49 +08:00
|
|
|
required: true,
|
2022-08-16 23:30:23 +08:00
|
|
|
type: 'email',
|
|
|
|
message: i18n.global.t('commons.rule.email'),
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
2022-09-14 23:27:17 +08:00
|
|
|
number: {
|
|
|
|
required: true,
|
|
|
|
trigger: 'blur',
|
|
|
|
min: 0,
|
|
|
|
type: 'number',
|
|
|
|
message: i18n.global.t('commons.rule.number'),
|
|
|
|
},
|
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
|
|
|
};
|