halo/console/src/formkit
Takagi 9e33a81e2d
refactor: refactor the repeater component using the schema approach (#4702)
#### What type of PR is this?

/kind improvement

#### What this PR does / why we need it:

对 Formkit Repeater 组件使用 schema 的方式进行重构,重构后的 Repeater 组件将支持条件判断,按照下述方式定义即可。

```
const formSchema = [
  {
    $formkit: "repeater",
    name: "testing",
    min: 1,
    max: 2,
    addLabel: "添加",
    children: [
      {
        $formkit: "select",
        name: "things",
        id: "things",
        label: "Things",
        placeholder: "Select",
        options: ["Something", "Else"],
      },
      {
        $formkit: "number",
        if: "$value.things === Something",
        name: "show_1",
        id: "show_something_1",
        label: "Show something",
      },
      {
        $formkit: "number",
        if: "$value.things === Something",
        name: "show_2",
        id: "show_something_2",
        label: "Also show something",
      },
    ],
  },
];
```

同时额外增加了对 `addLabel`、`addButton`、`upControl`、`downControl`、`insertControl`、`removeControl`  属性的支持。

#### How to test it?

- 测试原有使用 `Repeater` 组件可否正常使用。
- 对 `Repeater` 条件判断功能进行测试。
- 查看保存的数据格式是否正确

#### Which issue(s) this PR fixes:

Fixes #4603 

#### Does this PR introduce a user-facing change?
```release-note
重构 Repeater 组件,使其支持条件判断
```
2023-10-12 08:08:33 +00:00
..
inputs refactor: refactor the repeater component using the schema approach (#4702) 2023-10-12 08:08:33 +00:00
plugins pref: scroll to the error location when form submission validation fails (#4358) 2023-08-03 07:51:27 +00:00
utils Move root to console 2023-03-02 15:49:22 +08:00
formkit.config.ts refactor: refactor the repeater component using the schema approach (#4702) 2023-10-12 08:08:33 +00:00
theme.ts refactor: refactor the repeater component using the schema approach (#4702) 2023-10-12 08:08:33 +00:00