File tree Expand file tree Collapse file tree 8 files changed +225
-11
lines changed
Expand file tree Collapse file tree 8 files changed +225
-11
lines changed Original file line number Diff line number Diff line change 66
77Build element-ui forms with JSON schema.
88
9+ :us : English | [ :cn : 简体中文] ( README.zh-CN.md )
10+
911## Example
1012
13+ [ :zap : Live Preview] ( https://element-form-builder.now.sh ) | [ :book : Docs] ( https://codetrial.github.io/element-form-builder )
14+
1115![ Screen Capture] ( .github/preview.gif )
16+
17+ ## Quick Start
18+
19+ First you need to have an element-ui project. If not, it is recommended to create one quickly using the preset below.
20+
21+ ``` bash
22+ vue create --preset codetrial/vue-cli-plugin-element your-project
23+ ```
24+
25+ ### Install
26+
27+ ``` bash
28+ yarn add element-form-builder
29+ # OR
30+ npm i element-form-builder
31+ ```
32+
33+ ### Registry
34+
35+ ``` javascript
36+ import FormBuilder from ' element-form-builder'
37+
38+ Vue .use (FormBuilder)
39+ ```
40+
41+ ### Witness the miracle moment
42+
43+ Vue template:
44+
45+ ``` html
46+ <el-form-builder :config =" formConfig" v-model =" formValues" label-width =" 80px" >
47+ </el-form-builder >
48+ ```
49+
50+ Vue component:
51+
52+ ``` javascript
53+ export default {
54+ data () {
55+ return {
56+ formValues: {
57+ title: ' Some Awesome Title'
58+ },
59+
60+ formConfig: {
61+ rules: {
62+ title: [{ required: true , message: ' Please enter the title' }]
63+ },
64+ elements: [
65+ {
66+ tag: ' el-input' ,
67+ item: {
68+ label: ' Title'
69+ },
70+ detail: {
71+ name: ' title'
72+ }
73+ }
74+ ]
75+ }
76+ }
77+ }
78+ }
79+ ```
80+
81+ ## Core Features
82+
83+ - :camera : Any Component
84+ - :tv : Form Validation
85+ - :watch : Form Model
86+ - :radio : Custom Slot
87+
88+ ## Contributing
89+
90+ Looking forward to your pull requests.
91+
92+ ## Built With
93+
94+ - [ Vue.js] ( https://github.com/vuejs/vue )
95+ - [ ElementUI] ( https://github.com/ElemeFE/element )
96+
97+ ## License
98+
99+ [ MIT] ( http://opensource.org/licenses/MIT )
100+
101+ Copyright (c) 2018 - present, Felix Yang
Original file line number Diff line number Diff line change 1+ # element-form-builder
2+
3+ [ ![ Version] ( https://img.shields.io/npm/v/element-form-builder.svg )] ( https://www.npmjs.com/package/element-form-builder )
4+ [ ![ License] ( https://img.shields.io/npm/l/element-form-builder.svg )] ( https://www.npmjs.com/package/element-form-builder )
5+ [ ![ Dependencies] ( https://img.shields.io/david/codetrial/element-form-builder.svg )] ( https://www.npmjs.com/package/element-form-builder )
6+
7+ 使用 JSON 配置构建 element-ui 动态表单.
8+
9+ :cn : 简体中文 | [ :us : English] ( README.md )
10+
11+ ## 在线示例
12+
13+ [ :zap : 在线示例] ( https://element-form-builder.now.sh ) | [ :book : 参考文档] ( https://codetrial.github.io/element-form-builder )
14+
15+ ![ Screen Capture] ( .github/preview.gif )
16+
17+ ## 快速开始
18+
19+ 首先你需要有一个 element-ui 项目。如果没有,推荐使用下面的 preset 快速创建一个。
20+
21+ ``` bash
22+ vue create --preset codetrial/vue-cli-plugin-element your-project
23+ ```
24+
25+ ### 安装
26+
27+ ``` bash
28+ yarn add element-form-builder
29+ # OR
30+ npm i element-form-builder
31+ ```
32+
33+ ### 注册组件
34+
35+ ``` javascript
36+ import FormBuilder from ' element-form-builder'
37+
38+ Vue .use (FormBuilder)
39+ ```
40+
41+ ### 见证奇迹的时刻
42+
43+ Vue 模板:
44+
45+ ``` html
46+ <el-form-builder :config =" formConfig" v-model =" formValues" label-width =" 80px" >
47+ </el-form-builder >
48+ ```
49+
50+ Vue 组件:
51+
52+ ``` javascript
53+ export default {
54+ name: ' some-component' ,
55+ data () {
56+ return {
57+ formValues: {
58+ title: ' Some Awesome Title'
59+ },
60+
61+ formConfig: {
62+ rules: {
63+ title: [{ required: true , message: ' 请输入标题' }]
64+ },
65+ elements: [
66+ {
67+ tag: ' el-input' ,
68+ item: {
69+ label: ' 标题'
70+ },
71+ detail: {
72+ name: ' title'
73+ }
74+ }
75+ ]
76+ }
77+ }
78+ }
79+ }
80+ ```
81+
82+ ## 核心功能
83+
84+ - :camera : 支持任意组件
85+ - :tv : 表单校验
86+ - :watch : 表单数据模型
87+ - :radio : 自定义插槽
88+
89+ ## 贡献
90+
91+ 期待你的 ` pull requests ` 。如果你觉得有帮助,还请多多反馈!
92+
93+ ## 技术栈
94+
95+ - [ Vue.js] ( https://github.com/vuejs/vue )
96+ - [ ElementUI] ( https://github.com/ElemeFE/element )
97+
98+ ## 许可
99+
100+ [ MIT] ( http://opensource.org/licenses/MIT )
101+
102+ Copyright (c) 2018 - present, Felix Yang
Original file line number Diff line number Diff line change 11/**
2- * Element form-builder v0.1 .0
3- * (c) 2018 Felix Yang
2+ * Element form-builder v1.0 .0
3+ * (c) 2019 Felix Yang
44 */
55var _extends = Object . assign || function ( target ) {
66 for ( var i = 1 ; i < arguments . length ; i ++ ) {
Original file line number Diff line number Diff line change 1+ {
2+ "name" : " element-form-builder" ,
3+ "version" : 2 ,
4+ "alias" : " element-form-builder" ,
5+ "builds" : [{ "src" : " **" , "use" : " @now/static" }],
6+ "routes" : [
7+ { "src" : " ^/js/(.*)" , "dest" : " /js/$1" },
8+ { "src" : " ^/css/(.*)" , "dest" : " /css/$1" },
9+ { "src" : " ^/fonts/(.*)" , "dest" : " /fonts/$1" },
10+ { "src" : " ^/img/(.*)" , "dest" : " /img/$1" },
11+ {
12+ "src" : " ^/(favicon|manifest|precache|service-worker|robots)(.*)" ,
13+ "dest" : " /$1$2"
14+ },
15+ { "src" : " .*" , "dest" : " /index.html" }
16+ ]
17+ }
Original file line number Diff line number Diff line change 55 "scripts" : {
66 "serve" : " vue-cli-service serve" ,
77 "build" : " vue-cli-service build" ,
8- "lint" : " vue-cli-service lint"
8+ "lint" : " vue-cli-service lint" ,
9+ "deploy" : " npm run build && now ./dist -A ../now.json && now alias"
910 },
1011 "dependencies" : {
1112 "element-ui" : " ^2.4.11" ,
Original file line number Diff line number Diff line change 11<!DOCTYPE html>
22< html lang ="en ">
33 < head >
4- < meta charset ="utf-8 ">
5- < meta http-equiv ="X-UA-Compatible " content ="IE=edge ">
6- < meta name ="viewport " content ="width=device-width,initial-scale=1.0 ">
7- < link rel ="icon " href ="<%= BASE_URL %>favicon.ico ">
8- < title > simple-demo </ title >
4+ < meta charset ="utf-8 " / >
5+ < meta http-equiv ="X-UA-Compatible " content ="IE=edge " / >
6+ < meta name ="viewport " content ="width=device-width,initial-scale=1.0 " / >
7+ < link rel ="icon " href ="<%= BASE_URL %>favicon.ico " / >
8+ < title > ElementUI Form Builder </ title >
99 </ head >
1010 < body >
1111 < noscript >
12- < strong > We're sorry but simple-demo doesn't work properly without JavaScript enabled. Please enable it to continue.</ strong >
12+ < strong
13+ > We're sorry but simple-demo doesn't work properly without JavaScript
14+ enabled. Please enable it to continue.</ strong
15+ >
1316 </ noscript >
1417 < div id ="app "> </ div >
1518 <!-- built files will be auto injected -->
Original file line number Diff line number Diff line change 11{
22 "name" : " element-form-builder" ,
3- "version" : " 0.1 .0" ,
3+ "version" : " 1.0 .0" ,
44 "description" : " Build element-ui forms with JSON schema." ,
55 "main" : " dist/index.js" ,
66 "scripts" : {
Original file line number Diff line number Diff line change 11const babel = require ( 'rollup-plugin-babel' )
22const rollup = require ( 'rollup' )
33const version = process . env . VERSION || require ( '../package.json' ) . version
4- const banner = `/**\n * Element form-builder v${ version } \n * (c) 2018 Felix Yang\n */`
4+ const year = new Date ( ) . getFullYear ( )
5+ const banner = `/**\n * Element form-builder v${ version } \n * (c) ${ year } Felix Yang\n */`
56
67const inputOptions = {
78 input : 'src/index.js' ,
You can’t perform that action at this time.
0 commit comments