tav-ui
Version:
95 lines (90 loc) • 2.74 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var basic = require('../../../../utils/basic2.js');
var log = require('../../../../utils/log2.js');
const isProdMode = () => true;
function useForm(props) {
const formRef = vue.ref(null);
const loadedRef = vue.ref(false);
async function getForm() {
const form = vue.unref(formRef);
if (!form) {
log.error("The form instance has not been obtained, please make sure that the form has been rendered when performing the form operation!");
}
await vue.nextTick();
return form;
}
function register(instance) {
isProdMode() && vue.onUnmounted(() => {
formRef.value = null;
loadedRef.value = null;
});
if (vue.unref(loadedRef) && isProdMode() && instance === vue.unref(formRef))
return;
formRef.value = instance;
loadedRef.value = true;
vue.watch(() => props, () => {
props && instance.setProps(basic.getDynamicProps(props));
}, {
immediate: true,
deep: true
});
}
const methods = {
scrollToField: async (name, options) => {
const form = await getForm();
form.scrollToField(name, options);
},
setProps: async (formProps) => {
const form = await getForm();
form.setProps(formProps);
},
updateSchema: async (data) => {
const form = await getForm();
form.updateSchema(data);
},
resetSchema: async (data) => {
const form = await getForm();
form.resetSchema(data);
},
clearValidate: async (name) => {
const form = await getForm();
form.clearValidate(name);
},
resetFields: async () => {
getForm().then(async (form) => {
await form.resetFields();
});
},
removeSchemaByFiled: async (field) => {
vue.unref(formRef)?.removeSchemaByFiled(field);
},
getFieldsValue: () => {
return vue.unref(formRef)?.getFieldsValue();
},
setFieldsValue: async (values, useValidate = true) => {
const form = await getForm();
form.setFieldsValue(values, useValidate);
},
appendSchemaByField: async (schema, prefixField, first) => {
const form = await getForm();
form.appendSchemaByField(schema, prefixField, first);
},
submit: async () => {
const form = await getForm();
return form.submit();
},
validate: async (nameList) => {
const form = await getForm();
return form.validate(nameList);
},
validateFields: async (nameList) => {
const form = await getForm();
return form.validateFields(nameList);
}
};
return [register, methods];
}
exports.useForm = useForm;
//# sourceMappingURL=useForm2.js.map