Skip to content

在线示例

以下是 FormCreate 的功能演示和参考案例,帮助开发者快速了解如何在实际项目中使用和扩展。

简单示例

以下是一个简单的表单示例,展示了如何使用 FormCreate 生成表单并处理提交事件。

使用教程

详细的使用教程可以帮助您更深入地了解 FormCreate 的功能和用法。

业务场景示例

FormCreate 在各种业务场景中都能发挥重要作用,以下是几个常见的应用场景:

动态表单生成

假设您有一个需要根据用户选择动态生成的表单,可以使用 FormCreate 来实现:

表单联动效果

您可以轻松实现表单项之间的联动,例如根据一个下拉框的值动态显示或隐藏其他表单项。

动态组件加载

在复杂场景中,您可能需要根据业务逻辑动态加载不同的组件,FormCreate 提供了灵活的动态加载机制。

js
const dynamicComponent = () => import('./CustomComponent.vue');


const rule = ref([
    {
        component: dynamicComponent,
        field: 'custom_field',
        title: '自定义组件'
    }
]);

使用自定义组件

除了内置的组件外,您还可以将自定义 Vue 组件集成到 FormCreate 中,轻松实现复杂的业务需求。

js
import MyCustomComponent from './MyCustomComponent.vue';
import formCreate from '@form-create/element-ui';


formCreate.component('MyCustomComponent', MyCustomComponent);


const rule = ref([
    {
        type: 'MyCustomComponent',
        field: 'custom_field',
        title: '自定义组件'
    }
]);

加载初始数据

在一些场景中,您可能需要从 API 加载初始数据并填充到表单中。可以通过 mounted 钩子在表单加载后进行 API 请求,并将获取的数据绑定到表单中。

js
export default {
    data() {
        return {
            formData: {},
            rule: [
                { type: 'input', field: 'username', title: '用户名' },
                { type: 'input', field: 'email', title: '邮箱' }
            ],
            option: {
                onSubmit: (formData) => {
                    console.log('提交表单数据:', formData);
                }
            }
        };
    },
    mounted() {
        axios.get('/api/user')
            .then(response => {
                this.formData = response.data;
            });
    }
};

表单数据提交

FormCreate 提供了便捷的表单提交方法,您可以在表单提交时将数据发送到服务器。

js
const options = ref({
    submitBtn: true,
    resetBtn: true,
    onSubmit: function (formData) {
        axios.post('/api/submit', formData)
            .then(response => {
                console.log('提交成功:', response.data);
            })
            .catch(error => {
                console.error('提交失败:', error);
            });
    }
});

自定义验证规则

除了内置的验证规则外,FormCreate 允许您自定义验证逻辑,以满足复杂的业务需求。

js
const rule = ref([
    {
        type: 'input',
        field: 'username',
        title: '用户名',
        validate: [
            { required: true, message: '用户名不能为空' },
            {
                validator: async (rule, value) => {
                    const isExist = await axios.get(`/api/check-username?username=${value}`);
                    if (isExist.data) {
                        return Promise.reject('用户名已被注册');
                    } else {
                        return Promise.resolve();
                    }
                },
                trigger: 'blur'
            }
        ]
    },
    {
        type: 'input',
        field: 'password',
        title: '密码',
        validate: [
            { required: true, message: '密码不能为空' },
            {
                validator: (rule, value) => {
                    if (value.length < 6) {
                        return Promise.reject('密码长度不能少于6个字符');
                    } else {
                        return Promise.resolve();
                    }
                },
                trigger: 'blur'
            }
        ]
    }
]);

组件示例

进阶组件

FormCreate 是一个开源项目,基于 MIT 许可证发布,欢迎个人和企业用户免费使用