form-design-vue 保姆级文档
# 组件介绍
因维护公司的中后台项目时需要一款基于element-ui+vue2 && element-plus+vue3 && vuedraggable拖拽组件开发的一款简洁易用,功能强大的表单设计器, 发现已有的开源项目并不太适合自己使用,所以只能重复造这个轮子了,主要用于在一键CURD过程中快速设计表单,自定义生成表单布局,并且代码简洁易懂!
# 支持功能
- 栅格布局
- 预览
- 导入JSON
- 生成 JSON
- 生成代码
# 在线预览
https://johnnyjintao.github.io/form-design-vue2/index.html
# 下载源码
https://github.com/Johnnyjintao/form-design-vue2
https://github.com/Johnnyjintao/form-design-vue3
# 使用说明
vue2
<template>
<div>
<el-generate-form ref="generateFormRef" :data="widgetForm"></el-generate-form>
</div>
</template>
<script >
import ElGenerateForm from "@/components/ElGenerateForm/index.vue"
export default {
data() {
return {
widgetForm: {
"list":[],
"config":{ //config里包含的是表单属性
"size":"default", //对齐方式 left right top
"hideRequiredAsterisk":false,
"labelWidth":100,
"labelPosition":"right"
}
}
};
},
components: {
ElGenerateForm
},
methods: {
},
mounted() {
}
};
</script>
vue3
<template>
<el-generate-form ref="generateFormRef" :data="widgetForm">
</el-generate-form>
<el-button type="primary" @click="handleSubmit">提交</el-button>
</template>
<script lang="ts">
import { defineComponent, reactive, toRefs } from 'vue'
export default defineComponent({
setup() {
const state = reactive({
generateFormRef: null,
widgetForm: {"list":[],"config":{"size":"default","hideRequiredAsterisk":false,"labelWidth":100,"labelPosition":"right"}}
})
const handleSubmit = () => {
state.generateFormRef.getData().then(data => {
console.log(data)
// data success
// data 表单数据
}).catch(error => {
// data failed
})
}
return {
...toRefs(state),
handleSubmit
}
}
})
</script>
# 图片预览
![]() | ![]() |
![]() | ![]() |
![]() |
参与贡献
欢迎Fork 本仓库有好的需求可以提交PR