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 {
|
2022-12-21 13:03:49 +08:00
|
|
|
const reg = /^[a-zA-Z0-9\u4e00-\u9fa5]{1}[a-zA-Z0-9_.\u4e00-\u9fa5-]{0,30}$/;
|
2022-09-16 16:00:49 +08:00
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.commonName')));
|
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-12-21 13:03:49 +08:00
|
|
|
const checkSimpleName = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.simpleName')));
|
|
|
|
} else {
|
|
|
|
const reg = /^[a-zA-Z0-9]{1}[a-zA-Z0-9_]{0,30}$/;
|
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.simpleName')));
|
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
const checkDBName = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
|
|
|
} else {
|
|
|
|
const reg = /^[a-zA-Z0-9]{1}[a-zA-Z0-9_.-]{0,30}$/;
|
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.dbName')));
|
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-12-02 16:38:36 +08:00
|
|
|
const checkImageName = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
2022-12-21 13:03:49 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.imageName')));
|
2022-12-02 16:38:36 +08:00
|
|
|
} else {
|
|
|
|
const reg = /^[a-zA-Z0-9\u4e00-\u9fa5]{1}[a-z:A-Z0-9_.\u4e00-\u9fa5-]{0,30}$/;
|
|
|
|
if (!reg.test(value) && value !== '') {
|
|
|
|
callback(new Error(i18n.global.t('commons.rule.imageName')));
|
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-11-25 15:55:31 +08:00
|
|
|
const checkLinuxName = (rule: any, value: any, callback: any) => {
|
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.linuxName', ['/\\:*?"<>|'])));
|
2022-11-25 15:55:31 +08:00
|
|
|
} else {
|
2022-12-23 14:50:28 +08:00
|
|
|
const reg = /^((?!\\|\/|:|\*|\?|<|>|\||'|%).){1,30}$/;
|
2022-11-25 15:55:31 +08:00
|
|
|
if (!reg.test(value) && value !== '') {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.linuxName', ['/\\:*?"<>|'])));
|
2022-11-25 15:55:31 +08:00
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-12-23 14:50:28 +08:00
|
|
|
const checkDatabaseName = (rule: any, value: any, callback: any) => {
|
2022-12-12 15:51:55 +08:00
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.databaseName')));
|
2022-12-12 15:51:55 +08:00
|
|
|
} else {
|
2022-12-23 14:50:28 +08:00
|
|
|
const reg = /^[a-zA-Z0-9]{1}[a-zA-Z0-9_]{0,30}$/;
|
2022-12-12 15:51:55 +08:00
|
|
|
if (!reg.test(value) && value !== '') {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.databaseName')));
|
2022-12-12 15:51:55 +08:00
|
|
|
} else {
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
2022-12-23 14:50:28 +08:00
|
|
|
const checkDomain = (rule: any, value: any, callback: any) => {
|
2022-12-20 23:18:33 +08:00
|
|
|
if (value === '' || typeof value === 'undefined' || value == null) {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.domain')));
|
2022-12-20 23:18:33 +08:00
|
|
|
} else {
|
2022-12-23 14:50:28 +08:00
|
|
|
const reg =
|
|
|
|
/^([\w\u4e00-\u9fa5\-\*]{1,100}\.){1,10}([\w\u4e00-\u9fa5\-]{1,24}|[\w\u4e00-\u9fa5\-]{1,24}\.[\w\u4e00-\u9fa5\-]{1,24})$/;
|
2022-12-20 23:18:33 +08:00
|
|
|
if (!reg.test(value) && value !== '') {
|
2022-12-23 14:50:28 +08:00
|
|
|
callback(new Error(i18n.global.t('commons.rule.domain')));
|
2022-12-20 23:18:33 +08:00
|
|
|
} 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-12-21 13:03:49 +08:00
|
|
|
simpleName: FormItemRule;
|
|
|
|
dbName: FormItemRule;
|
2022-12-02 16:38:36 +08:00
|
|
|
imageName: FormItemRule;
|
2022-11-25 15:55:31 +08:00
|
|
|
linuxName: 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-12-12 15:51:55 +08:00
|
|
|
domain: FormItemRule;
|
2022-12-20 23:18:33 +08:00
|
|
|
databaseName: 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-12-21 13:03:49 +08:00
|
|
|
simpleName: {
|
|
|
|
required: true,
|
|
|
|
validator: checkSimpleName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
|
|
|
dbName: {
|
|
|
|
required: true,
|
|
|
|
validator: checkDBName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
2022-12-02 16:38:36 +08:00
|
|
|
imageName: {
|
|
|
|
required: true,
|
|
|
|
validator: checkImageName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
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',
|
|
|
|
},
|
2022-11-25 15:55:31 +08:00
|
|
|
linuxName: {
|
|
|
|
required: true,
|
|
|
|
validator: checkLinuxName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
2022-12-20 23:18:33 +08:00
|
|
|
databaseName: {
|
|
|
|
required: true,
|
|
|
|
validator: checkDatabaseName,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
2022-09-16 16:00:49 +08:00
|
|
|
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-12-12 15:51:55 +08:00
|
|
|
domain: {
|
|
|
|
required: true,
|
|
|
|
validator: checkDomain,
|
|
|
|
trigger: 'blur',
|
|
|
|
},
|
2022-08-16 23:30:23 +08:00
|
|
|
};
|