当前位置:   article > 正文

form-create 通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件_element ui formcreate

element ui formcreate

安装

根据自己使用的 UI 安装对应的版本
ElementUI 版本

npm i @form-create/element-ui
  • 1

Iview@2.x|3.x 版本

npm i @form-create/iview
  • 1

iview/view-design@4.x 版本

npm i @form-create/iview4
  • 1

Ant-design-vue@1.5.3+ 版本

npm i @form-create/ant-design-vue
  • 1

基本使用

详细使用请查看官网

form-create的基本用法:

<template>
 	<div>
    	<form-create v-model="Forms" :rule="rule" :option="option"></form-create>
	</div>
</template>

<script>
export default {
  name: "Forms",
  components: {},
  data() {
    return {
      // 实例对象
      Forms: {},
 
      // 表单生成规则数组对象  生成规则:http://www.form-create.com/v2/guide/rule.html
      // 生成规则数组中一个对象就是一个表单项(是一个json对象),在里面可以对应的表单名称、类型、属性、值、样式、类名、是否必填、错误提示等。
      rule: [
        {
          type: "input", // 生成组件的名称(就是表单的名称:如input,radio,checkbox,select,slider等)
          field: "userName", // 表单组件的字段名称(就是表单的name属性,注:该必须唯一),自定义组件可以不配置
          className: "user-name-dom", // 设置组件的class属性
          title: "用户名称:", // 组件的名称, 选填
          value: "", // 表单组件的字段值(就是表单的value值),自定义组件可以不用设置
          props: {
            placeholder: "请输入用户名称!",
            disabled: false,
            readonly: false,
            clearable: true // 是否显示清空按钮
          },
          validate: [
            {
              trigger: "blur",
              required: true,
              message: "用户名称不能为空!"
            }
          ],
          col: {
            md: { span: 12 }
          }
        },
 
        {
          type: "input",
          field: "password",
          title: "用户密码:",
          value: "666",
          props: {
            // input的表单类型 <input type="">:注:有些表单类型form-create和element-ui专门做成了组件,可以在上面的type中直接用,所以下面有些类型如(radio)在这里会无效哦!!
            // text	默认。定义单行输入字段,用户可在其中输入文本。默认是 20 个字符。
            // button	定义可点击的按钮(大多与 JavaScript 使用来启动脚本)
            // checkbox	定义复选框。
            // color	定义拾色器。
            // date	定义日期字段(带有 calendar 控件)
            // datetime	定义日期字段(带有 calendar 和 time 控件)
            // datetime-local	定义日期字段(带有 calendar 和 time 控件)
            // month	定义日期字段的月(带有 calendar 控件)
            // week	定义日期字段的周(带有 calendar 控件)
            // time	定义日期字段的时、分、秒(带有 time 控件)
            // email	定义用于 e-mail 地址的文本字段
            // file	定义输入字段和 "浏览..." 按钮,供文件上传
            // hidden	定义隐藏输入字段
            // image	定义图像作为提交按钮
            // number	定义带有 spinner 控件的数字字段
            // password	定义密码字段。字段中的字符会被遮蔽。
            // radio	定义单选按钮。
            // range	定义带有 slider 控件的数字字段。
            // reset	定义重置按钮。重置按钮会将所有表单字段重置为初始值。
            // search	定义用于搜索的文本字段。
            // submit	定义提交按钮。提交按钮向服务器发送数据。
            // tel	定义用于电话号码的文本字段。
            // url	定义用于 URL 的文本字段。
 
            type: "password",
            placeholder: "请输入用户密码!"
          },
          col: {
            md: { span: 12 }
          }
        },
 
        {
          type: "input",
          field: "summary",
          title: "个人简介:",
          value: "",
          props: {
            type: "textarea",
            rows: 3,
            placeholder: "请输入个人简介!"
          }
        },
 
        {
          type: "radio",
          field: "sex",
          title: "性 别:",
          value: 0,
          options: [
            { label: "先 生", value: 1 },
            { label: "女 士", value: 2 },
            { label: "人 妖", value: 3, disabled: true },
            { label: "未 知", value: 0 }
          ]
        },
 
        {
          type: "checkbox",
          field: "hobby",
          title: "爱 好:",
          value: [1, 3],
          options: [
            { label: "吃喝", value: 1 },
            { label: "上班", value: 2, disabled: true },
            { label: "旅游", value: 3 },
            { label: "运动", value: 4 },
            { label: "学习", value: 5, disabled: true }
          ]
        },
 
        {
          type: "select",
          field: "address",
          title: "想去哪里:",
          value: 6,
          col: {
            //   sx: {span: 24}
            md: { span: 10 }
          },
          options: [
            { label: "内国走走", value: 1 },
            { label: "呆在公司", value: 2, disabled: true },
            { label: "非洲美洲", value: 3 },
            { label: "港澳台游", value: 4 },
            { label: "东南亚游", value: 5 },
            { label: "澳洲旅游", value: 6 },
            { label: "自驾游", value: 7 }
          ]
        },
 
        {
          type: "select",
          field: "address2",
          title: "想多选点:",
          value: [3, 5],
          col: {
            md: { span: 14 }
          },
          props: {
            multiple: true,
            placement: "bottom"
          },
          options: [
            { label: "内国走走", value: 1 },
            { label: "呆在公司", value: 2, disabled: true },
            { label: "非洲美洲", value: 3 },
            { label: "港澳台游", value: 4 },
            { label: "东南亚游", value: 5 },
            { label: "澳洲旅游", value: 6 },
            { label: "自驾游", value: 7 }
          ]
        }
      ],
 
      // 组件参数配置
      option: {
        // 显示重置表单按扭
        resetBtn: true,
 
        // 表单提交按扭事件
        onSubmit: formData => {
          alert(JSON.stringify(formData));
 
          console.log("获取表单中的数据:", formData);
 
          //按钮进入提交状态
          //   this.fApi.btn.loading();
 
          //重置按钮禁用
          //   this.fApi.resetBtn.disabled();
 
          //按钮进入可点击状态
          //   this.fApi.btn.finish();
        }
      }
    };
  },
  mounted() {
   
  },
  methods: {
 
    
    
  }
};
</script>

  • 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
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/797312
推荐阅读
相关标签
  

闽ICP备14008679号