---
url: /docs/forms/component.md
---
# 表单基类组件

基类组件是所有组件的基础，组件内一些方法，适合所有子类组件使用

以下是将你提供的 PHP 代码转换为 Markdown 格式的介绍文档：

## 基本方法

### 设置信息提示

```php
public function info(string $info, string $position = 'left'): static
```

设置信息提示。

* **参数**
  * `string $info`: 信息内容。
  * `string $position`: 信息位置（默认为 'left'）。
* **返回**: 当前实例。

***

### 设置前缀

```php
public function prefix(string|array $prefix): static
```

设置前缀。

* **参数**
  * `string|array $prefix`: 前缀内容。
* **返回**: 当前实例。

***

### 设置后缀

```php
public function suffix(string|array $suffix): static
```

设置后缀。

* **参数**
  * `string|array $suffix`: 后缀内容。
* **返回**: 当前实例。

***

### 启用组件缓存

```php
public function cache(): static
```

启用组件缓存。

* **返回**: 当前实例。

***

### 设置标签宽度

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

设置标签宽度。

* **参数**
  * `int $width`: 标签宽度（单位为像素）。
* **返回**: 当前实例。

***

### 设置组件样式

```php
public function style(array $style): static
```

设置组件样式。

* **参数**
  * `array $style`: 样式数组。
* **返回**: 当前实例。

***

### 设置默认值

```php
public function defaultValue(mixed $value): static
```

设置组件的默认值。

* **参数**
  * `mixed $value`: 默认值。
* **返回**: 当前实例。

***

### 设置为原生组件

```php
public function native(): static
```

设置组件为原生生成，不嵌套在 `FormItem` 中。

* **返回**: 当前实例。

***

### 设置 CSS 类

```php
public function class(array|string $class): static
```

设置组件的 CSS 类。

* **参数**
  * `array|string $class`: CSS 类名。
* **返回**: 当前实例。

***

### 设置插槽名称

```php
public function slot(string $slot): static
```

设置插槽名称。

* **参数**
  * `string $slot`: 插槽名称。
* **返回**: 当前实例。

***

### 设置为必填项

```php
public function required(): static
```

设置组件为必填项。

* **返回**: 当前实例。

***

### 隐藏组件

```php
public function hide(): static
```

隐藏组件。

* **返回**: 当前实例。

***

### 显示组件

```php
public function show(): static
```

显示组件。

* **返回**: 当前实例。

***

### 设置双向绑定属性

```php
public function sync(string|array $sync): static
```

设置需要双向绑定的属性名称。

* **参数**
  * `string|array $sync`: 属性名称或名称数组。
* **返回**: 当前实例。

***

### 设置事件名称

```php
public function emits(string|array $emits): static
```

设置组件发出的事件名称。

* **参数**
  * `string|array $emits`: 事件名称或名称数组。
* **返回**: 当前实例。

***

### emit Change 事件

```php
public function emitChange(): static
```

发出 `change` 事件。

* **返回**: 当前实例。

***

### emit 点击事件

```php
public function emitClick(): static
```

发出 `click` 事件。

* **返回**: 当前实例。

***

### emit 焦点事件

```php
public function emitBlur(): static
```

发出 `blur` 事件。

* **返回**: 当前实例。

***

### 自定义事件前缀

```php
public function emitPrefix(string $prefix): static
```

自定义组件 `emit` 事件的前缀。

* **参数**
  * `string $prefix`: 前缀字符串。
* **返回**: 当前实例。

***

### 设置为组件

```php
public function asComponent(): static
```

将当前实例设置为组件。

* **返回**: 当前实例。

***

### 配置字段变化触发更新

```php
public function link(string|array $link): static
```

配置哪些字段变化时会触发当前组件的更新回调。

* **参数**
  * `string|array $link`: 字段名称或名称数组。
* **返回**: 当前实例。

***

### 设置属性

```php
public function prop(string $key, mixed $value): static
```

设置组件的 `props` 属性。

* **参数**
  * `string $key`: 属性名。
  * `mixed $value`: 属性值。
* **返回**: 当前实例。

***

### 批量设置属性

```php
public function props(array $props): static
```

批量设置组件的 `props` 属性。

* **参数**
  * `array $props`: 属性数组。
* **返回**: 当前实例。

***

### 指定选项填充目标

```php
public function optionsTo(string $to = 'data'): static
```

指定选项填充到 `props` 字段。

* **参数**
  * `string $to`: 目标字段（默认为 'data'）。
* **返回**: 当前实例。

***

### 禁用组件

```php
public function disable(): static
```

禁用组件。

* **返回**: 当前实例。

***

### 加载数据

```php
public function loadData(string $attr, string $to): static
```

设置加载数据的属性和目标。

* **参数**
  * `string $attr`: 数据属性。
  * `string $to`: 目标字段。
* **返回**: 当前实例。

***

## 组件验证规则

详细规则请查看[验证规则](./rules.md)

```php
public function validates(string|array|ValidateInterface $validate): static
```

## 联动控制

## 当等于

```php
public function whenEqual(mixed $value, callable $callback): static
```

* **参数**:
  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值等于指定值时，执行回调函数。

***

## 当不等于

```php
public function whenNotEqual(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值不等于指定值时，执行回调函数。

***

## 当小于

```php
public function whenLt(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值小于指定值时，执行回调函数。

***

## 当小于或等于

```php
public function whenLte(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值小于或等于指定值时，执行回调函数。

***

## 当大于

```php
public function whenGt(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值大于指定值时，执行回调函数。

***

## 当大于或等于

```php
public function whenGte(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要比较的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值大于或等于指定值时，执行回调函数。

***

## 当在集合中

```php
public function whenIn(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值在指定的集合中时，执行回调函数。

***

## 当不在集合中

```php
public function whenNotIn(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值不在指定的集合中时，执行回调函数。

***

## 当在数组中

```php
public function whenInArray(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值在指定的数组中时，执行回调函数。

***

## 当不在数组中

```php
public function whenNotInArray(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值不在指定的数组中时，执行回调函数。

***

## 当在范围内

```php
public function whenBetween(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值在指定的范围之间时，执行回调函数。

***

## 当不在范围内

```php
public function whenNotBetween(mixed $value, callable $callback): static
```

* **参数**:

  * `mixed $value`: 要检查的值。
  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值不在指定的范围之间时，执行回调函数。

***

## 当为空

```php
public function whenEmpty(callable $callback): static
```

* **参数**:

  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值为空时，执行回调函数。

***

## 当不为空

```php
public function whenNotEmpty(callable $callback): static
```

* **参数**:

  * `callable $callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 当当前值不为空时，执行回调函数。

***

## 当满足条件

```php
public function when(string $condition, mixed $value, $callback): static
```

* **参数**:

  * `string $condition`: 条件字符串。
  * `mixed $value`: 要比较的值。
  * `$callback`: 当条件满足时调用的回调函数。

* **返回**: `static` - 返回当前对象实例。

* **描述**: 根据指定条件创建一个控制规则，并执行回调函数。
