el-plus-form
Version:
采用Vue3 + TS,封装的element-plus数据驱动表单组件
141 lines (125 loc) • 3.1 kB
text/typescript
/**
* 获取通用的校验规则
*/
/**
* 不能为空
*/
export const notNull = [{ required: true, trigger: 'blur', validator: validateInputNotBull }]
/**
* 必须是数字
*/
export const number = [{ type: 'number', message: '请填入数字!' }]
/**
* 校验验证码
*/
export const vCode = [{ required: true, trigger: 'blur', validator: validateValidateCode }]
/**
* 必须是数字且不为空
*/
export const numberNotNull = [
{ required: true, message: '不能为空!', trigger: 'blur' },
{ type: 'number', message: '请填入数字!' }
]
/**
* 正整数
*/
export const zhengZhengShu = [{ required: true, trigger: 'blur', validator: validateZhengZhengShu }]
/**
* Double类型
*/
export const double = [{ trigger: 'blur', validator: validateDouble }]
/**
* Double类型且必填
*/
export const doubleNotNull = [{ required: true, trigger: 'blur', validator: validateDouble }]
/**
* 选择
*/
export const select = [{ required: true, trigger: 'change', validator: validateSelect }]
/**
* 级联选择
* @type {[*]}
*/
export const cascader = [{ required: true, trigger: 'change', validator: validateSelect }]
/**
* 必须上传
*/
export const upload = [{ required: true, trigger: 'change', validator: validateUpload }]
/**
* 正整数校验
* @param rule
* @param value
* @param callback
*/
function validateZhengZhengShu(rule: any, value: any, callback?: any) {
if (!/^[1-9]\d*$/.test(value * 1 + '')) {
callback(new Error('请输入正整数!'))
} else {
callback()
}
}
/**
* 选择
* @param rule
* @param value
* @param callback
*/
function validateValidateCode(rule: any, value: any, callback?: any) {
if (value.length !== 4) {
callback(new Error('验证码必须是4位!'))
} else {
callback()
}
}
/**
* 选择
* @param rule
* @param value
* @param callback
*/
function validateInputNotBull(rule: any, value: any, callback?: any) {
if (typeof value === 'undefined' || value === '') {
callback(new Error('此项必填!'))
} else {
callback()
}
}
/**
* 选择
* @param rule
* @param value
* @param callback
*/
function validateSelect(rule: any, value: any, callback?: any) {
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
callback(new Error('请选择!'))
} else {
callback()
}
}
/**
* 上传
* @param rule
* @param value
* @param callback
*/
function validateUpload(rule: any, value: any, callback?: any) {
if (value === null || typeof value === 'undefined' || value === '' || value.length <= 0) {
callback(new Error('请上传!'))
} else {
callback()
}
}
/**
* 小数校验规则
* @param rule
* @param value
* @param callback
*/
function validateDouble(rule: any, value: any, callback?: any) {
if (!/^\d+(\.(\d{1}|\d{2}))?$/.test(value * 1 + '')) {
callback(new Error('小数格式错误(最多两位)!'))
} else {
callback()
}
}