parent
e9a44b9984
commit
c6c004ce8d
|
@ -119,19 +119,33 @@ function useForm(
|
||||||
clearValidate: (names?: namesType) => void;
|
clearValidate: (names?: namesType) => void;
|
||||||
} {
|
} {
|
||||||
const initialModel = cloneDeep(unref(modelRef));
|
const initialModel = cloneDeep(unref(modelRef));
|
||||||
let validateInfos: validateInfos = {};
|
const validateInfos = reactive<validateInfos>({});
|
||||||
|
|
||||||
const rulesKeys = computed(() => {
|
const rulesKeys = computed(() => {
|
||||||
return Object.keys(unref(rulesRef));
|
return Object.keys(unref(rulesRef));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
watch(
|
||||||
|
rulesKeys,
|
||||||
|
() => {
|
||||||
|
const newValidateInfos = {};
|
||||||
rulesKeys.value.forEach(key => {
|
rulesKeys.value.forEach(key => {
|
||||||
validateInfos[key] = {
|
newValidateInfos[key] = validateInfos[key] || {
|
||||||
autoLink: false,
|
autoLink: false,
|
||||||
required: isRequired(unref(rulesRef)[key]),
|
required: isRequired(unref(rulesRef)[key]),
|
||||||
};
|
};
|
||||||
|
delete validateInfos[key];
|
||||||
});
|
});
|
||||||
validateInfos = reactive(validateInfos);
|
for (const key in validateInfos) {
|
||||||
|
if (Object.prototype.hasOwnProperty.call(validateInfos, key)) {
|
||||||
|
delete validateInfos[key];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Object.assign(validateInfos, newValidateInfos);
|
||||||
|
},
|
||||||
|
{ immediate: true },
|
||||||
|
);
|
||||||
|
|
||||||
const resetFields = (newValues: Props) => {
|
const resetFields = (newValues: Props) => {
|
||||||
Object.assign(unref(modelRef), {
|
Object.assign(unref(modelRef), {
|
||||||
...cloneDeep(initialModel),
|
...cloneDeep(initialModel),
|
||||||
|
@ -251,6 +265,9 @@ function useForm(
|
||||||
},
|
},
|
||||||
!!option.validateFirst,
|
!!option.validateFirst,
|
||||||
);
|
);
|
||||||
|
if (!validateInfos[name]) {
|
||||||
|
return promise.catch((e: any) => e);
|
||||||
|
}
|
||||||
validateInfos[name].validateStatus = 'validating';
|
validateInfos[name].validateStatus = 'validating';
|
||||||
promise
|
promise
|
||||||
.catch((e: any) => e)
|
.catch((e: any) => e)
|
||||||
|
@ -327,7 +344,9 @@ function useForm(
|
||||||
validate(names, { trigger: 'change' });
|
validate(names, { trigger: 'change' });
|
||||||
oldModel = cloneDeep(model);
|
oldModel = cloneDeep(model);
|
||||||
};
|
};
|
||||||
|
|
||||||
const debounceOptions = options?.debounce;
|
const debounceOptions = options?.debounce;
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
modelRef,
|
modelRef,
|
||||||
debounceOptions && debounceOptions.wait
|
debounceOptions && debounceOptions.wait
|
||||||
|
|
2
v2-doc
2
v2-doc
|
@ -1 +1 @@
|
||||||
Subproject commit 2e39bc81a84e2cfa90e8863e8f18d5a3d3ab1995
|
Subproject commit 3f94a02d16bac2377d71e26948ffe45571dae49e
|
Loading…
Reference in New Issue