form-create
form-create is a form generation component that can generate dynamic rendering, data collection, verification and submission functions through JSON. Supports 3 UI frameworks, and supports the generation of any Vue components. Built-in 20 kinds of commonly used form components and custom components, no matter how complex forms can be easily handled.
中文 README
Support
- iview
- view-design
- element-ui
- ant-design-vue
If you have a form component suitable for form-create, please feel free to click here to leave a message
If it helps, you can click on "Star" in the upper right corner. Thank you! The project is still being developed and improved. If there are any 'recommendations or questions, please ask here
本项目QQ讨论群28963712
- Preview
Docs
Packages
Name | Description |
---|---|
@caxa-form/iview | iview version |
@caxa-form/iview4 | view-design version |
@caxa-form/element-ui | element-ui version |
@caxa-form/ant-design-vue | ant-design-vue version |
@caxa-form/designer | Form Designer |
Example
Install
Install the corresponding version according to the UI you use
iview
npm install @caxa-form/iview
view-design
npm install @caxa-form/iview4
element-ui
npm install @caxa-form/element-ui
ant-design-vue
npm install @caxa-form/ant-design-vue
Import
CDN:
iview
<!-- import Vue.js -->
<script src="//vuejs.org/js/vue.min.js"></script>
<!-- import stylesheet -->
<link rel="stylesheet" href="//unpkg.com/iview/dist/styles/iview.css">
<!-- import iView -->
<script src="//unpkg.com/iview/dist/iview.min.js"></script>
<!-- import form-create/iview -->
<script src="//unpkg.com/@caxa-form/iview/dist/form-create.min.js"></script>
element-ui
<!-- import Vue.js -->
<script src="//vuejs.org/js/vue.min.js"></script>
<!-- import stylesheet -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<!-- import element -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<!-- import form-create/element -->
<script src="//unpkg.com/@caxa-form/element-ui/dist/form-create.min.js"></script>
ant-design-vue
<!-- import Vue.js -->
<script src="//vuejs.org/js/vue.min.js"></script>
<!-- import stylesheet -->
<link href="https://unpkg.com/ant-design-vue@1.5.3/dist/antd.min.css" rel="stylesheet">
<!-- import moment -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/locale/zh-cn.js"></script>
<!-- import ant-design-vue -->
<script defer src="https://unpkg.com/ant-design-vue@1.5.3/dist/antd.js"></script>
<!-- import form-create -->
<script src="//unpkg.com/@caxa-form/ant-design-vue/dist/form-create.min.js"></script>
NodeJs:
iview
import formCreate from '@caxa-form/iview'
Vue.use(formCreate)
element-ui
import formCreate from '@caxa-form/element-ui'
Vue.use(formCreate)
ant-design-vue
import formCreate from '@caxa-form/ant-design-vue'
Vue.use(formCreate)
Usage
<form-create :rule="rule" v-model="fApi" :option="options" :value.sync="value"/>
export default {
data(){
return {
fApi:{},
value:{field1:'111',field2:'222',time:'11:11:11'},
options:{
onSubmit:(formData)=>{
alert(JSON.stringify(formData))
}
},
rule:[
{type:'input', field:'field1',title:'field1',value:'aaa'},
{type:'input', field:'field2',title:'field2',value:'sss'},
{type:'timePicker', field:'time',title:'time',value:'12:12:12'},
{
type:'ElButton',
title:'Modify field1',
native: false,
on:{
click: ()=>{
this.rule[0].value+='a'
}
},
children: ['Click'],
}
]
}
}
}
Demo
Download project
$ git clone https://github.com/wangjing0630/caxa-form.git
$ cd form-create
Install dependencies
$ npm run bootstrap
iview Demo
$ npm run dev:iview
view-design Demo
$ npm run dev:iview4
element-ui Demo
$ npm run dev:ele
ant-design-vue Demo
$ npm run dev:antd
Thank
时光弧线 | wxxtqk | williamBoss | HeyMrLin | djkloop | JetBrains
Donation
Contact
wangjing112602005@qq.com
email :License
Copyright (c) 2018-present wangjing11260