mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
chore(Field): extract some utils
This commit is contained in:
parent
9aabb42f9d
commit
608bd3de39
@ -21,6 +21,7 @@ import {
|
||||
preventDefault,
|
||||
createNamespace,
|
||||
} from '../utils';
|
||||
import { runSyncRule } from './utils';
|
||||
|
||||
// Composition
|
||||
import { useParent } from '@vant/use';
|
||||
@ -133,26 +134,6 @@ export default createComponent({
|
||||
resolve(returnVal);
|
||||
});
|
||||
|
||||
const isEmptyValue = (value) => {
|
||||
if (Array.isArray(value)) {
|
||||
return !value.length;
|
||||
}
|
||||
if (value === 0) {
|
||||
return false;
|
||||
}
|
||||
return !value;
|
||||
};
|
||||
|
||||
const runSyncRule = (value, rule) => {
|
||||
if (rule.required && isEmptyValue(value)) {
|
||||
return false;
|
||||
}
|
||||
if (rule.pattern && !rule.pattern.test(value)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const getRuleMessage = (value, rule) => {
|
||||
const { message } = rule;
|
||||
|
||||
@ -337,7 +318,6 @@ export default createComponent({
|
||||
if (isDef(props[key])) {
|
||||
return props[key];
|
||||
}
|
||||
|
||||
if (form && isDef(form.props[key])) {
|
||||
return form.props[key];
|
||||
}
|
||||
@ -423,7 +403,6 @@ export default createComponent({
|
||||
ref: inputRef,
|
||||
name: props.name,
|
||||
rows: props.rows,
|
||||
style: null,
|
||||
class: bem('control', inputAlign),
|
||||
value: props.modelValue,
|
||||
disabled: props.disabled,
|
||||
|
30
src/field/utils.ts
Normal file
30
src/field/utils.ts
Normal file
@ -0,0 +1,30 @@
|
||||
export type FieldValidateTrigger = 'onSubmit' | 'onChange' | 'onBlur';
|
||||
|
||||
export type FieldRule = {
|
||||
pattern?: RegExp;
|
||||
trigger?: FieldValidateTrigger;
|
||||
message?: string | ((value: unknown, rule: FieldRule) => string);
|
||||
required?: boolean;
|
||||
validator?: (value: unknown, rule: FieldRule) => boolean | Promise<boolean>;
|
||||
formatter?: (value: unknown, rule: FieldRule) => unknown;
|
||||
};
|
||||
|
||||
function isEmptyValue(value: unknown) {
|
||||
if (Array.isArray(value)) {
|
||||
return !value.length;
|
||||
}
|
||||
if (value === 0) {
|
||||
return false;
|
||||
}
|
||||
return !value;
|
||||
}
|
||||
|
||||
export function runSyncRule(value: unknown, rule: FieldRule) {
|
||||
if (rule.required && isEmptyValue(value)) {
|
||||
return false;
|
||||
}
|
||||
if (rule.pattern && !rule.pattern.test(String(value))) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
@ -486,7 +486,7 @@ export default {
|
||||
| message `v2.5.3` | 错误提示文案 | _string \| (value, rule) => string_ |
|
||||
| validator `v2.5.3` | 通过函数进行校验 | _(value, rule) => boolean \| Promise_ |
|
||||
| pattern `v2.5.3` | 通过正则表达式进行校验 | _RegExp_ |
|
||||
| trigger `v2.5.2` | 本项规则的触发时机,可选值为`onChange`、`onBlur` | _string_ |
|
||||
| trigger `v2.5.2` | 本项规则的触发时机,可选值为 `onChange`、`onBlur` | _string_ |
|
||||
| formatter `v2.5.3` | 格式化函数,将表单项的值转换后进行校验 | _(value, rule) => any_ |
|
||||
|
||||
### validate-trigger 可选值
|
||||
|
Loading…
x
Reference in New Issue
Block a user