在线示例 
以下是 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);
            });
    }
});
//或者
api.submit((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'
            }
        ]
    }
]);组件示例 
- Input 输入框
 - Password 密码输入框
 - Textarea 多行输入框
 - Radio 单选框
 - Cascader 多级联动
 - Upload 上传
 - Select 下拉选择框
 - Checkbox 多选框
 - InputNumber 数字输入框
 - TimePicker 时间选择器
 - TimeRangePicker 时间区间选择器
 - DatePicker 日期选择器
 - DateRangePicker 日期区间选择器
 - Switch 开关
 - ColorPicker 颜色选择框
 - Rate 评分
 - Slider 滑块
 - Tree 树形组件
 - TreeSelect 树形下拉选择框
 - Transfer 穿梭框
 


