# h-form-design
**Repository Path**: nm-gc/h-form-design
## Basic Information
- **Project Name**: h-form-design
- **Description**: 低代码表单设计
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-27
- **Last Updated**: 2026-02-27
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# H-Form-Design
一个基于 Vue3 + TypeScript + Element Plus 的低代码表单设计组件库。
## 特性
- 🎨 **可视化设计** - 拖拽式表单设计器,所见即所得
- 🧩 **丰富组件** - 支持多种表单组件类型
- 📱 **响应式布局** - 支持水平和垂直布局
- 🎯 **类型安全** - 完整的 TypeScript 支持
- 🔧 **高度可配置** - 支持字段属性配置和表单验证
- 📦 **组件库模式** - 可作为 npm 包发布使用
## 支持的字段类型
### 基础组件
- 单行文本 (input)
- 多行文本 (textarea)
- 数字输入 (number)
### 选择组件
- 下拉选择 (select)
- 单选框 (radio)
- 多选框 (checkbox)
### 日期组件
- 日期选择 (date)
- 日期时间 (datetime)
### 其他组件
- 开关 (switch)
## 快速开始
### 安装依赖
```bash
pnpm install
```
### 开发模式
```bash
pnpm dev
```
### 构建组件库
```bash
pnpm build:lib
```
### 代码检查
```bash
pnpm lint
```
### 代码格式化
```bash
pnpm format
```
## 使用示例
```vue
```
## 项目结构
```
src/
├── components/ # 组件目录
│ ├── FormDesigner/ # 表单设计器主组件
│ ├── FormCanvas/ # 表单画布组件
│ ├── FormPreview/ # 表单预览组件
│ ├── FieldPanel/ # 字段面板组件
│ └── PropertyPanel/ # 属性面板组件
├── types/ # 类型定义
├── utils/ # 工具函数
└── index.ts # 组件库入口文件
```
## API 文档
### FormConfig
表单配置接口
```typescript
interface FormConfig {
id: string // 表单ID
title: string // 表单标题
description?: string // 表单描述
fields: FormField[] // 字段列表
layout?: 'horizontal' | 'vertical' // 布局方式
labelWidth?: string // 标签宽度
size?: 'large' | 'default' | 'small' // 表单尺寸
}
```
### FormField
表单字段接口
```typescript
interface FormField {
id: string // 字段ID
type: string // 字段类型
label: string // 字段标签
name: string // 字段名称
required?: boolean // 是否必填
placeholder?: string // 占位符
options?: Array<{ label: string; value: any }> // 选项列表
props?: Record // 额外属性
validation?: FormRules[string] // 验证规则
}
```
## 开发指南
### 添加新字段类型
1. 在 `FieldPanel/index.vue` 中添加新的字段模板
2. 在 `FormCanvas/index.vue` 中添加对应的组件渲染逻辑
3. 在 `FormPreview/index.vue` 中添加预览渲染逻辑
4. 在 `PropertyPanel/index.vue` 中添加属性配置项
5. 在 `types/index.ts` 中更新类型定义
### 自定义主题
可以通过 CSS 变量来自定义主题样式:
```css
:root {
--h-form-primary-color: #409eff;
--h-form-success-color: #67c23a;
--h-form-warning-color: #e6a23c;
--h-form-danger-color: #f56c6c;
}
```
## 许可证
MIT License
## 贡献
欢迎提交 Issue 和 Pull Request!