@fastspace/schema-form 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +48 -3
- package/dist/schema-form-lib.js +990 -987
- package/dist/schema-form-lib.umd.cjs +10 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -804,11 +804,56 @@ const MyCustomInput = ({ field, form, values, label, error, helperText }) => {
|
|
|
804
804
|
|
|
805
805
|
---
|
|
806
806
|
|
|
807
|
-
##
|
|
807
|
+
## 自动完成 (Autocomplete)
|
|
808
808
|
|
|
809
|
-
`Autocomplete`
|
|
809
|
+
`Autocomplete` 组件支持两种数据加载模式:**一次性加载**和**服务端搜索**。
|
|
810
810
|
|
|
811
|
-
|
|
811
|
+
### 1. 一次性加载 (Static / Async)
|
|
812
|
+
|
|
813
|
+
适用于数据量较小(如少于 1000 条),或者可以一次性加载所有选项的场景。
|
|
814
|
+
|
|
815
|
+
**用法:**
|
|
816
|
+
- **静态选项**:直接配置 `ui.options`。
|
|
817
|
+
- **异步加载**:配置 `ui.optionRequest`,组件挂载时(或依赖变化时)会自动执行一次请求。
|
|
818
|
+
|
|
819
|
+
**特点:**
|
|
820
|
+
- 前端过滤:组件内置了基于输入的本地过滤功能。
|
|
821
|
+
- 简单:无需处理分页、防抖等逻辑。
|
|
822
|
+
|
|
823
|
+
```typescript
|
|
824
|
+
// 示例:异步加载一次性数据
|
|
825
|
+
{
|
|
826
|
+
name: 'userId',
|
|
827
|
+
component: 'Autocomplete',
|
|
828
|
+
ui: {
|
|
829
|
+
label: '选择用户',
|
|
830
|
+
// 方式 A: 静态数据
|
|
831
|
+
// options: [{ label: '张三', value: 1 }, { label: '李四', value: 2 }],
|
|
832
|
+
|
|
833
|
+
// 方式 B: 异步一次性加载
|
|
834
|
+
optionRequest: async (values) => {
|
|
835
|
+
// 这里的 values 是当前表单的值,可用于联动
|
|
836
|
+
const users = await api.getAllUsers();
|
|
837
|
+
return users.map(u => ({ label: u.name, value: u.id }));
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
### 2. 服务端搜索 (Remote Search)
|
|
844
|
+
|
|
845
|
+
适用于数据量极大(如用户库、商品库),无法一次性加载,需要根据用户输入实时搜索的场景。
|
|
846
|
+
|
|
847
|
+
**用法:**
|
|
848
|
+
- 配置 `ui.remoteConfig`。
|
|
849
|
+
|
|
850
|
+
**特点:**
|
|
851
|
+
- 服务端过滤:每次输入都会发送请求给服务端。
|
|
852
|
+
- 支持分页:滚动到底部自动加载下一页。
|
|
853
|
+
- 支持防抖:内置防抖机制,减少请求频率。
|
|
854
|
+
- 支持回显:通过 `fetchById` 解决默认值不在当前列表中的问题。
|
|
855
|
+
|
|
856
|
+
> **注意**:如果配置了 `remoteConfig`,`ui.options` 和 `ui.optionRequest` 加载的数据将被忽略(除非作为初始值),组件将完全由 `remoteConfig` 接管数据流。
|
|
812
857
|
|
|
813
858
|
```typescript
|
|
814
859
|
{
|