# vue3-form-making
**Repository Path**: blind181/vue3-form-making
## Basic Information
- **Project Name**: vue3-form-making
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-10-07
- **Last Updated**: 2025-10-07
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Vue3 Form Making
基于 Vue3 + Element Plus 的可视化表单设计器,让表单开发更简单、更高效。
## 特性
- 🎨 **可视化设计** - 通过拖拽方式快速创建表单
- 📦 **丰富的组件** - 支持 13+ 种表单组件
- 🎯 **表单渲染** - 基于 JSON 配置快速渲染表单
- 🌍 **国际化** - 内置中英文支持
- 📱 **响应式布局** - 支持栅格布局
- ✨ **Vue3 + Composition API** - 采用最新 Vue3 技术栈
- 🎭 **Element Plus** - 基于 Element Plus UI 组件库
## 安装
```bash
npm install vue3-form-making
```
## 快速开始
### 全局注册
```javascript
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import Vue3FormMaking from 'vue3-form-making'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
app.use(Vue3FormMaking)
app.mount('#app')
```
### 按需引入
```javascript
import { MakingForm, GenerateForm } from 'vue3-form-making'
export default {
components: {
MakingForm,
GenerateForm
}
}
```
## 使用示例
### 表单设计器 (MakingForm)
```vue
```
### 表单渲染器 (GenerateForm)
```vue
提交
```
## 组件 API
### MakingForm Props
| 参数 | 说明 | 类型 | 默认值 |
|------|------|------|--------|
| preview | 显示预览按钮 | boolean | false |
| generateJson | 显示导出JSON按钮 | boolean | false |
| generateCode | 显示导出代码按钮 | boolean | false |
| clearable | 显示清空按钮 | boolean | false |
### MakingForm Methods
| 方法名 | 说明 | 参数 |
|--------|------|------|
| getJson | 获取表单配置JSON | - |
| setJson | 设置表单配置JSON | json |
### GenerateForm Props
| 参数 | 说明 | 类型 | 默认值 |
|------|------|------|--------|
| data | 表单配置数据 | object | - |
| value / v-model:value | 表单数据 | object | {} |
### GenerateForm Methods
| 方法名 | 说明 | 返回值 |
|--------|------|--------|
| getData | 获取表单数据(会触发验证) | Promise |
| reset | 重置表单 | - |
## 支持的表单组件
### 基础组件
- 单行文本 (input)
- 多行文本 (textarea)
- 计数器 (number)
- 单选框组 (radio)
- 多选框组 (checkbox)
- 下拉选择器 (select)
- 开关 (switch)
- 滑块 (slider)
- 日期选择器 (date)
- 时间选择器 (time)
- 评分 (rate)
- 颜色选择器 (color)
- 上传 (upload)
### 布局组件
- 栅格布局 (grid)
## 开发
```bash
# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建库文件
npm run build:lib
# 构建生产版本
npm run build
```
## 项目结构
```
vue3-form-making/
├── src/
│ ├── components/
│ │ ├── MakingForm/ # 表单设计器组件
│ │ │ ├── index.vue
│ │ │ ├── WidgetFormItem.vue
│ │ │ ├── WidgetConfig.vue
│ │ │ └── FormConfig.vue
│ │ └── GenerateForm/ # 表单渲染器组件
│ │ ├── index.vue
│ │ └── GenerateFormItem.vue
│ ├── config/
│ │ └── widget.js # 组件配置
│ ├── locale/ # 国际化
│ │ ├── index.js
│ │ ├── zh-CN.js
│ │ └── en-US.js
│ ├── App.vue # Demo 应用
│ ├── main.js
│ └── index.js # 入口文件
├── index.html
├── vite.config.js
└── package.json
```
## 技术栈
- Vue 3.4+
- Element Plus 2.5+
- Vite 5+
- Vue I18n 9+
- vuedraggable
## License
MIT
## 贡献
欢迎提交 Issue 和 Pull Request!