UNPKG

tav-ui

Version:
95 lines (90 loc) 2.74 kB
'use strict'; 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