FormCreate 表单

# FormCreate 表单

使用FormCreate (opens new window)二次封装的表单组件,可以通过 JSON 生成具有动态渲染,支持表单验证,表单提交、同时可以使用怪兽系统内置的FormBuilder类生成自动生成表单等功能,使用前请详细阅读FormCreate (opens new window)相关文档。


<template>
    <div v-loading="loading" class="dk-demo-form">
        <dk-form-create :form-data="formData" style="width: 100%" :isSubmit="false" @submit="submit"/>
    </div>
</template>
<script>
    export default {
        // provide() {
        //     return {
        //         layout: {
        //             device:'mobile'
        //         }
        //     }
        // },
        data() {
            return {
                formData: null,
                loading: true
            }
        },
        mounted() {
            this.form()
        },
        methods: {
            form() {
                setTimeout(() => {
                    // 模拟接口返回数据
                    var res = {
                        "code": 0,
                        "data": {
                            "title": "表单演示",
                            "action": "/demo/save",
                            "method": "POST",
                            "rules": [
                                {
                                    "type": "input",
                                    "field": "text",
                                    "value": "",
                                    "title": "输入框",
                                    "effect": {"help": "这是一个帮助内容"},
                                    "props": {"type": "text", "placeholder": "请输入内容"}
                                }
                            ]
                        }
                    }
                    this.formData = res.data
                    this.loading = false
                }, 500)
            },
            submit(formData, res) {
                this.$alert("演示数据:" + JSON.stringify(formData), '提交成功', {
                    confirmButtonText: '确定'
                });
            }
        }
    }
</script>
<style>
    .dk-demo-form {
        min-height: 100px;
    }
</style>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Expand Copy

# 内容帮助

在rules中,新增了一个effect.help属性,可以在表单项下方显示帮助内容,如下:

{
    "type": "input",
    "field": "text",
    "value": "",
    "title": "输入框",
    "effect": {"help": "这是一个帮助内容"},
    "props": {"type": "text", "placeholder": "请输入内容"}
}
1
2
3
4
5
6
7
8

# 属性 Props

参数 说明 类型 可选值 默认值
formData 绑定值 object
isSubmit 是否提交 boolean true
extraConfig 额外配置 object
path 提交请求路径 string
isLoading 点击提交按钮后按钮是否 boolean false

# 事件 Events

事件名称 说明 回调参数
submit 提交成功 formData, res
fail 提交失败 formData, res

# formData 参数

参数 说明 类型 可选值 默认值
title 表单标题 string
action 提交地址 string
method 提交方式 string POST
rules JSON表单 array