An Json Based Form Generator for Vuetify!
Explore the docs »
View Demo
·
Report Bug
·
Request Feature
Cheetah Forms is a simple JSON form builder for generating a Vuetify Form with just a JSON. Cheetah Forms uses Vuetify to make you form a Material designed form
- JSON based
- Grid support
- Default fields
- Validation
- Default style
This is an example of how to list things you need to use the software and how to install them.
- npm
npm install npm@latest -g
- Install NPM packages
npm install cheetah-form
<cheetah-form :schema="schema" :model="model" @save="save"></cheetah-form>
schema
: the json configuration of the form (required)model
: the starting value of your model (required)@save
: event for handeling the save (returns edited model)
{
"code": "profile-parent",
"title": "title",
"subtitle": "subtitle",
"fields": [{
"type": "text-field",
"name": "Naam",
"required": true,
"model": "name",
"cols": {...}
},
"groups": []
}
code
: the form unique codetitle
: the title of the form (optional)subtitle
: ths subtitle of the form (optional)fields
: array of fields for the form (is ignored is groups has a value)groups
: when you want to create a form of multiple parts use groups
{
"type": "text-field",
"name": "Name",
"required": true,
"disabled": false,
"placeholder": 'placeholder',
"hint": 'hint',
"model": "user.name",
"prefix": "+32",
"cols": 12
}
type
: the type of field (check suported types) (required)name
: the label of the field (required)model
: model in doted notation (required)required
: if the field is required or not (optional)disabled
: if the field is disabled or not (optional)placeholder
: the placeholder (optional)hint
: the hint (optional)prefix
: a prefix added before the field (optional)cols
: the width of the field (1-12, default: 12)
{
"id": 1,
"title": "Name",
"fields": [],
}
id
: id of the group (required)title
: the title of the group (required)fields
: array of fields (see Json Field format) (required)
-
text-field
: a normal text field- number field
attributes: { type: 'number', min: 1000 max: 1000 }
- number field
-
textarea
: a normal textarea -
select
: a normal select-
string items
items: ['Men', 'Woman']
-
object items
itemValue: 'key', itemText: 'label', items: [{ 'label': 'label', 'key': 'someKey', },{ 'label': 'label2', 'key': 'someKey2', }]
-
-
combobox
: a combobox-
string items
items: ['Men', 'Woman']
-
object items
itemValue: 'key', itemText: 'label', items: [{ 'label': 'label', 'key': 'someKey', },{ 'label': 'label2', 'key': 'someKey2', }]
-
-
toggler
: a switch -
radio
: radio- object items
options: [{ 'label': 'label', 'value': 'someKey', },{ 'label': 'label2', 'value': 'someKey2', }]
- object items
-
checkbox
: a simple checkbox ###### special additional options: -
password
: a password input field with hide and reviel option ###### special additional options:
See the open issues for a list of proposed features (and known issues).
Contributions are what make the open source community such an amazing place to be learn, inspire, and create. Any contributions you make are greatly appreciated.
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Siebe Vander Henst - @vh_siebe - vhsiebe@gmail.com
Project Link: https://github.com/siebevh/Cheetah-forms