快速上手

本节将以iview版本为例介绍如何在项目中使用 form-create

ElementUI

AntDesignVue

引入 form-create V2

浏览器

  1. <!-- import Vue 2.5-->
  2. <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.min.js"></script>
  3. <!-- import iview 2.14.3-->
  4. <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/styles/iview.css">
  5. <script src="https://cdn.jsdelivr.net/npm/iview@2.14.3/dist/iview.min.js"></script>
  6. <!-- 省市区三级联动json数据,不使用三级联动不需要引入 -->
  7. <script src="https://cdn.jsdelivr.net/npm/@form-create/data/dist/province_city_area.js"></script>
  8. <!-- import formCreate -->
  9. <script src="https://cdn.jsdelivr.net/npm/@form-create/iview/dist/form-create.min.js"></script>

NodeJs

在 main.js 中写入以下内容:

  1. import Vue from 'vue';
  2. import iView from 'iview';
  3. import 'iview/dist/styles/iview.css';
  4. import formCreate from '@form-create/iview'
  5. Vue.use(iView);
  6. Vue.use(formCreate)

生成表单

::: tip 可使用3种方式创建表单:

组件模式, Vue 原型方法, Window 全局方法

:::

组件模式

使用 <form-create></form-create> 标签创建表单

  1. <div id="app1">
  2. <form-create v-model="fApi" :rule="rule" :option="option"></form-create>
  3. </div>

NodeJs

  1. export default {
  2. data () {
  3. return {
  4. //实例对象
  5. fApi:{},
  6. //表单生成规则
  7. rule:[
  8. {
  9. type:'input',
  10. field:'goods_name',
  11. title:'商品名称'
  12. },
  13. {
  14. type:'datePicker',
  15. field:'created_at',
  16. title:'创建时间'
  17. }
  18. ],
  19. //组件参数配置
  20. option:{
  21. //表单提交事件
  22. onSubmit:function (formData) {
  23. alert(JSON.stringify(formData));
  24. }
  25. }
  26. };
  27. }
  28. };

浏览器

  1. new Vue({
  2. el:'#app1',
  3. data:{
  4. fApi:{},
  5. rule:[
  6. {
  7. type:'input',
  8. field:'goods_name',
  9. title:'商品名称'
  10. },
  11. {
  12. type:'datePicker',
  13. field:'created_at',
  14. title:'创建时间'
  15. }
  16. ],
  17. option:{
  18. onSubmit:function (formData) {
  19. alert(JSON.stringify(formData));
  20. }
  21. }
  22. }
  23. });

Vue 原型方法

使用 vue 原型方法$formCreate(rule,option) 创建表单

  1. <div id="app2">
  2. <div id="form-create"></div>
  3. </div>
  1. new Vue({
  2. el:'#app2',
  3. data:{
  4. fApi:{},
  5. model:{}
  6. },
  7. mounted:function () {
  8. //表单插入的节点
  9. const root = document.getElementById('form-create');
  10. //fApi为表单api
  11. this.fApi = this.$formCreate(
  12. //表单生成规则
  13. [
  14. this.$formCreate.maker.input('商品名称','goods_name',''),
  15. this.$formCreate.maker.date('创建时间','created_at')
  16. ],
  17. //组件参数配置
  18. {
  19. el:root,
  20. //表单提交事件
  21. onSubmit:function (formData,fApi) {
  22. fApi.btn.loading();
  23. }
  24. });
  25. }
  26. })

全局方法

使用 window 全局方法formCreate.create(rule,option)创建表单

  1. <div id="app3">
  2. <div id="form-create"></div>
  3. </div>
  1. //表单插入的节点
  2. const root = document.getElementById('form-create');
  3. //$f为表单api
  4. const $f = window.formCreate.create(
  5. //表单生成规则
  6. [
  7. {
  8. type:'input',
  9. field:'goods_name',
  10. title:'商品名称'
  11. },
  12. {
  13. type:'datePicker',
  14. field:'created_at',
  15. title:'创建时间'
  16. }
  17. ],
  18. //组件参数配置
  19. {
  20. el:root,
  21. //显示表单重置按钮
  22. resetBtn:true,
  23. //表单提交事件
  24. onSubmit:function (formData) {
  25. //按钮进入提交状态
  26. $f.btn.loading();
  27. }
  28. });

JSON

使用 JSON 生成表单

  1. <div id="app3">
  2. <div id="form-create"></div>
  3. </div>
  1. //JSON 规则
  2. const rule = [
  3. {"type":"input","field":"goods_name","title":"商品名称","value":"mi"},
  4. {"type":"inputNumber","field":"goods_price","title":"商品价格","value":12}
  5. ]
  1. //表单插入的节点
  2. const root = document.getElementById('form-create');
  3. //$f为表单api
  4. const $f = window.formCreate.create(
  5. //表单生成规则
  6. rule,
  7. //组件参数配置
  8. {
  9. el:root,
  10. //显示表单重置按钮
  11. resetBtn:true,
  12. //表单提交事件
  13. onSubmit:function (formData) {
  14. //按钮进入提交状态
  15. $f.btn.loading();
  16. }
  17. });