---
url: /docs/forms/intro.md
---
# 介绍

目前 CatchAdmin 专业版已有一个基于 JSON 的 CatchTable，但是目前是基于 Vue 文件的。如果上线的话，需要重新打包才能看到效果。在 V2 版本，依据 form-create 提供了一个 PHP 生成 Vue 表单的组件。现在在专业版依然通过 [form-create](https://form-create.com/v3/guide/) 提供一个动态表单组件，但是组件更加丰富，语法更加语义化。使用更加方便，更加易于扩展

## 组件

新的动态表单提供了以下新的组件

### 基础组件

* [Boolean 组件](./components/boolean.md)
* [Button 组件](./components/button.md)
* [Cascader 组件](./components/cascader.md)
* [Checkbox 组件](./components/checkbox.md)
* [Col 组件](./components/col.md)
* [ColorPicker 组件](./components/colorPicker.md)
* [Date 组件](./components/date.md)
* [DatePicker 组件](./components/datePicker.md)
* [DateRange 组件](./components/dateRange.md)
* [Dates 组件](./components/dates.md)
* [Datetime 组件](./components/datetime.md)
* [DatetimeRange 组件](./components/datetimeRange.md)
* [Email 组件](./components/email.md)
* [Group 组件](./components/group.md)
* [Hidden 组件](./components/hidden.md)
* [IconSelect 组件](./components/iconSelect.md)
* [Month 组件](./components/month.md)
* [Number 组件](./components/number.md)
* [Password 组件](./components/password.md)
* [Radio 组件](./components/radio.md)
* [Rate 组件](./components/rate.md)
* [RichText 组件](./components/richText.md)
* [Row 组件](./components/row.md)
* [Select 组件](./components/select.md)
* [SelectOptions 组件](./components/selectOptions.md)
* [Slider 组件](./components/slider.md)
* [SubForm 组件](./components/subForm.md)
* [Text 组件](./components/text.md)
* [Textarea 组件](./components/textarea.md)
* [TimePicker 组件](./components/timePicker.md)
* [Tree 组件](./components/tree.md)
* [Upload 组件](./components/upload.md)
* [Url 组件](./components/url.md)
* [Week 组件](./components/week.md)
* [Year 组件](./components/year.md)

### 基本方法

#### 设置表单显示样式

```php
public function inline()
```

#### label 宽度

```php
public function labelWidth(int $width)
```

#### label 位置

因为默认位置是在左侧，所以这里只提供右侧

```php
public function labelRightPosition()
```

#### 设置提交按钮文案

```php
public function submitButton(string $text)
```

#### 隐藏提交按钮

```php
public function hideSubmitButton()
```

#### 设置重置按钮文案

```php
public function resetButton(string $text)
```

#### 显示重置按钮

```php
public function showResetButton()
```

#### 设置表单默认值

该设置的默认值，表单值不是响应式

```php
public function setFormDefaultValues(array $formData)
```

#### 禁用表单

```php
public function disabled()
```

#### 设置表单尺寸

目前支持以下三个尺寸

```php
public function small();

public function mini();

public function large();
```

### 表单支持组件的方法

```php
public function boolean(string $name, string $label = '');
public function text(string $name, string $label = '');
public function password(string $name, string $label = '');
public function number(string $name, string $label = '');
public function datePicker(string $name, string $label = '');
public function timePicker(string $name, string $label = '');
public function slider(string $name, string $label = '');
public function select(string $name, string $label = '');
public function rate(string $name, string $label = '');
public function cascader(string $name, string $label = '');
public function checkbox(string $name, string $label = '');
public function textarea(string $name, string $label = '');
public function hidden(string $name, string $label = '');
public function url(string $name, string $label = '');
public function tree(string $name, string $label = '');
public function group(string $name, string $label = '', $callback);
public function colorPicker(string $name, string $label = '');
public function button(string $name, string $label = '');
public function email(string $name, string $label = '');
public function year(string $name, string $label = '');
public function month(string $name, string $label = '');
public function week(string $name, string $label = '');
public function date(string $name, string $label = '');
public function datetime(string $name, string $label = '');
public function datetimeRange(string $name, string $label = '');
public function dateRange(string $name, string $label = '');
public function dates(string $name, string $label = '');
public function subForm(string $name, string $label = '', $callback);
public function upload(string $name, string $label = '');
public function iconSelect(string $name, string $label = '');
public function richText(string $name, string $label = '');
public function grid($callback);
public function flex($callback);
public function row($callback);
public function col($callback);
public function radio(string $name, string $label = '');
public function selectOptions(string $name, string $label = '');
```

## 安装

```shell
composer require catchadmin/form
```
