@qin-ui/antdv-next-pro 1.1.14 → 1.2.0
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/AI-CONTEXT.md +281 -23
- package/LICENSE +9 -0
- package/README.md +75 -58
- package/api.json +70 -28
- package/bin/init-ai.mjs +404 -49
- package/es/antdv-next-pro.css +9 -9
- package/es/component-provider/{index-Daiw7IxY.js → index-Tesc9NuK.js} +2 -1
- package/es/component-provider/index-Tesc9NuK.js.map +1 -0
- package/es/component-provider/index.js +2 -1
- package/es/component-provider/index.js.map +1 -0
- package/es/components/component-provider/components/index.vue.d.ts +27 -0
- package/es/components/component-provider/components/index.vue.d.ts.map +1 -0
- package/es/components/component-provider/constants/index.d.ts +16 -0
- package/es/components/component-provider/constants/index.d.ts.map +1 -0
- package/es/components/component-provider/index.d.ts +4 -0
- package/es/components/component-provider/index.d.ts.map +1 -0
- package/es/components/component-provider/types/index.d.ts +26 -0
- package/es/components/component-provider/types/index.d.ts.map +1 -0
- package/es/components/form/components/BaseField/index.vue.d.ts +13 -0
- package/es/components/form/components/BaseField/index.vue.d.ts.map +1 -0
- package/es/components/form/components/BaseField/utils/index.d.ts +3 -0
- package/es/components/form/components/BaseField/utils/index.d.ts.map +1 -0
- package/es/components/form/components/BaseFormItem/index.vue.d.ts +9 -0
- package/es/components/form/components/BaseFormItem/index.vue.d.ts.map +1 -0
- package/es/components/form/components/ContainerFragment/index.vue.d.ts +23 -0
- package/es/components/form/components/ContainerFragment/index.vue.d.ts.map +1 -0
- package/es/components/form/components/GroupedFieldAttrs/index.vue.d.ts +31 -0
- package/es/components/form/components/GroupedFieldAttrs/index.vue.d.ts.map +1 -0
- package/es/components/form/components/PathProvider/index.vue.d.ts +24 -0
- package/es/components/form/components/PathProvider/index.vue.d.ts.map +1 -0
- package/es/components/form/components/ProForm/index.vue.d.ts +36 -0
- package/es/components/form/components/ProForm/index.vue.d.ts.map +1 -0
- package/es/components/form/components/SlotComponent/index.vue.d.ts +7 -0
- package/es/components/form/components/SlotComponent/index.vue.d.ts.map +1 -0
- package/es/components/form/components/index.d.ts +12 -0
- package/es/components/form/components/index.d.ts.map +1 -0
- package/es/components/form/constants/index.d.ts +81 -0
- package/es/components/form/constants/index.d.ts.map +1 -0
- package/es/components/form/hooks/index.d.ts +5 -0
- package/es/components/form/hooks/index.d.ts.map +1 -0
- package/es/components/form/hooks/useFields.d.ts +57 -0
- package/es/components/form/hooks/useFields.d.ts.map +1 -0
- package/es/components/form/hooks/useForm.d.ts +93 -0
- package/es/components/form/hooks/useForm.d.ts.map +1 -0
- package/es/components/form/hooks/useFormRef.d.ts +30 -0
- package/es/components/form/hooks/useFormRef.d.ts.map +1 -0
- package/es/components/form/index.d.ts +7 -0
- package/es/components/form/index.d.ts.map +1 -0
- package/es/components/form/types/index.d.ts +251 -0
- package/es/components/form/types/index.d.ts.map +1 -0
- package/es/components/table/components/ColumnControl.vue.d.ts +9 -0
- package/es/components/table/components/ColumnControl.vue.d.ts.map +1 -0
- package/es/components/table/components/DefaultSearchFormContainer.vue.d.ts +18 -0
- package/es/components/table/components/DefaultSearchFormContainer.vue.d.ts.map +1 -0
- package/es/components/table/components/DefaultTableContainer.vue.d.ts +18 -0
- package/es/components/table/components/DefaultTableContainer.vue.d.ts.map +1 -0
- package/es/components/table/components/ProTable.vue.d.ts +118 -0
- package/es/components/table/components/ProTable.vue.d.ts.map +1 -0
- package/es/components/table/components/SearchForm.vue.d.ts +48 -0
- package/es/components/table/components/SearchForm.vue.d.ts.map +1 -0
- package/es/components/table/components/SizeControl.vue.d.ts +12 -0
- package/es/components/table/components/SizeControl.vue.d.ts.map +1 -0
- package/es/components/table/components/icons/ColumnHeightOutlined.vue.d.ts +3 -0
- package/es/components/table/components/icons/ColumnHeightOutlined.vue.d.ts.map +1 -0
- package/es/components/table/components/icons/DownOutlined.vue.d.ts +3 -0
- package/es/components/table/components/icons/DownOutlined.vue.d.ts.map +1 -0
- package/es/components/table/components/icons/FilterOutlined.vue.d.ts +3 -0
- package/es/components/table/components/icons/FilterOutlined.vue.d.ts.map +1 -0
- package/es/components/table/components/index.d.ts +5 -0
- package/es/components/table/components/index.d.ts.map +1 -0
- package/es/components/table/index.d.ts +8 -0
- package/es/components/table/index.d.ts.map +1 -0
- package/es/components/table/types/index.d.ts +48 -0
- package/es/components/table/types/index.d.ts.map +1 -0
- package/es/components/table/useTable.d.ts +111 -0
- package/es/components/table/useTable.d.ts.map +1 -0
- package/es/form/{index-7clzY8ZD.js → index-CcP5OaUd.js} +12 -6
- package/es/form/index-CcP5OaUd.js.map +1 -0
- package/es/form/index.js +4 -3
- package/es/form/index.js.map +1 -0
- package/es/index.d.ts +76 -1522
- package/es/index.d.ts.map +1 -0
- package/es/index.js +14 -23
- package/es/index.js.map +1 -0
- package/es/shared/core/index.d.ts +6 -0
- package/es/shared/core/index.d.ts.map +1 -0
- package/es/shared/ui/index.d.ts +9 -0
- package/es/shared/ui/index.d.ts.map +1 -0
- package/es/table/index.js +11 -9
- package/es/table/index.js.map +1 -0
- package/package.json +10 -11
- package/src/components/component-provider/components/index.vue +67 -0
- package/src/components/component-provider/constants/index.ts +177 -0
- package/src/components/component-provider/index.ts +6 -0
- package/src/components/component-provider/types/index.ts +59 -0
- package/src/components/form/components/BaseField/index.vue +181 -0
- package/src/components/form/components/BaseField/utils/index.ts +16 -0
- package/src/components/form/components/BaseFormItem/index.vue +158 -0
- package/src/components/form/components/ContainerFragment/index.vue +24 -0
- package/src/components/form/components/GroupedFieldAttrs/index.vue +119 -0
- package/src/components/form/components/PathProvider/index.vue +19 -0
- package/src/components/form/components/ProForm/index.vue +104 -0
- package/src/components/form/components/SlotComponent/index.vue +26 -0
- package/src/components/form/components/index.ts +15 -0
- package/src/components/form/constants/index.ts +140 -0
- package/src/components/form/hooks/index.ts +5 -0
- package/src/components/form/hooks/useFields.ts +67 -0
- package/src/components/form/hooks/useForm.ts +110 -0
- package/src/components/form/hooks/useFormRef.ts +35 -0
- package/src/components/form/index.ts +29 -0
- package/src/components/form/types/index.ts +317 -0
- package/src/components/table/components/ColumnControl.vue +142 -0
- package/src/components/table/components/DefaultSearchFormContainer.vue +22 -0
- package/src/components/table/components/DefaultTableContainer.vue +19 -0
- package/src/components/table/components/ProTable.vue +372 -0
- package/src/components/table/components/SearchForm.vue +296 -0
- package/src/components/table/components/SizeControl.vue +54 -0
- package/src/components/table/components/icons/ColumnHeightOutlined.vue +4 -0
- package/src/components/table/components/icons/DownOutlined.vue +4 -0
- package/src/components/table/components/icons/FilterOutlined.vue +4 -0
- package/src/components/table/components/index.ts +4 -0
- package/src/components/table/index.ts +14 -0
- package/src/components/table/types/index.ts +52 -0
- package/src/components/table/useTable.ts +129 -0
- package/src/index.ts +81 -0
- package/src/shared/core/index.ts +37 -0
- package/src/shared/ui/index.ts +55 -0
- package/es/core/index-ghYuQ3Sy.js +0 -360
- package/es/vendor/utils/lodash-es-p6jau26B.js +0 -1120
package/api.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-
|
|
2
|
+
"generatedAt": "2026-07-09T04:30:33.730Z",
|
|
3
3
|
"name": "@qin-ui/antdv-next-pro",
|
|
4
4
|
"api": [
|
|
5
5
|
{
|
|
@@ -12,25 +12,25 @@
|
|
|
12
12
|
"```vue\n<ProComponentProvider\n:componentVars=\"{ 'input': { placeholder: '请输入' } }\"\n>\n<ProForm :form=\"form\" :fields=\"fields\" />\n</ProComponentProvider>\n```"
|
|
13
13
|
]
|
|
14
14
|
},
|
|
15
|
+
{
|
|
16
|
+
"name": "ContainerFragment",
|
|
17
|
+
"type": "component",
|
|
18
|
+
"package": "@qin-ui/antdv-next-pro",
|
|
19
|
+
"signature": "<ContainerFragment>",
|
|
20
|
+
"description": "容器分片渲染组件。用于动态渲染表单行或表单项的外部包裹容器(例如 Grid 行、Col 列等布局容器)。"
|
|
21
|
+
},
|
|
15
22
|
{
|
|
16
23
|
"name": "ProForm",
|
|
17
24
|
"type": "component",
|
|
18
25
|
"package": "@qin-ui/antdv-next-pro",
|
|
19
26
|
"signature": "<ProForm>",
|
|
20
|
-
"description": "@qin-ui/antdv-next-pro 配置驱动表单组件\n通过配置驱动的方式快速构建表单,支持:\n- 字段联动(通过 setField、watch 等实现)\n- 嵌套字段(通过 fields 递归配置)\n- 自定义组件(通过 component 属性和 custom 类型)\n- 网格布局(通过 grid 属性)\n- 动态插槽(以字段 path 命名的插槽)",
|
|
27
|
+
"description": "@qin-ui/antdv-next-pro 配置驱动表单组件\n架构设计说明 (Architecture Overview)\n[ 数据层 (Core) ] => [ 绑定层 (ProForm) ] => [ 渲染层 (BaseFormItem / BaseField) ]\n1. 数据隔离:ProForm 本身不负责存储和管理表单状态,所有核心状态(formData, fields, 校验规则)\n均交由底层的 `useForm`(@qin-ui/pro-components-core)驱动。\n2. 上下文透传:通过 `provide` 将核心状态下发给子组件,避免了深层嵌套的 Props 传递。\n3. 递归渲染:网格布局和具体字段的解析交由 `<BaseFormItem>` 递归完成,实现了 UI 布局与表单逻辑的解耦。\n通过配置驱动的方式快速构建表单,支持:\n- 字段联动(通过 setField、watch 等实现)\n- 嵌套字段(通过 fields 递归配置)\n- 自定义组件(通过 component 属性和 custom 类型)\n- 网格布局(通过 grid 属性)\n- 动态插槽(以字段 path 命名的插槽)",
|
|
21
28
|
"typeParams": [
|
|
22
29
|
{
|
|
23
30
|
"name": "F"
|
|
24
31
|
}
|
|
25
32
|
]
|
|
26
33
|
},
|
|
27
|
-
{
|
|
28
|
-
"name": "ContainerFragment",
|
|
29
|
-
"type": "component",
|
|
30
|
-
"package": "@qin-ui/antdv-next-pro",
|
|
31
|
-
"signature": "<ContainerFragment>",
|
|
32
|
-
"description": "容器分片渲染组件。用于动态渲染表单行或表单项的外部包裹容器(例如 Grid 行、Col 列等布局容器)。"
|
|
33
|
-
},
|
|
34
34
|
{
|
|
35
35
|
"name": "SlotComponent",
|
|
36
36
|
"type": "component",
|
|
@@ -38,6 +38,13 @@
|
|
|
38
38
|
"signature": "<SlotComponent>",
|
|
39
39
|
"description": "插槽渲染辅助组件。用于在表单或表格的自定义插槽中动态渲染外部传入的 VNode、渲染函数或静态字符串。"
|
|
40
40
|
},
|
|
41
|
+
{
|
|
42
|
+
"name": "BaseComponentMap",
|
|
43
|
+
"type": "type",
|
|
44
|
+
"package": "@qin-ui/antdv-next-pro",
|
|
45
|
+
"signature": "export type BaseComponentMap =",
|
|
46
|
+
"description": "内置组件映射表\nantdv-next 内置支持的组件类型映射。\n每个 key 对应 Field 配置中 `component` 可使用的字符串值,\nvalue 为实际渲染的 antdv-next 组件。"
|
|
47
|
+
},
|
|
41
48
|
{
|
|
42
49
|
"name": "ComponentMap",
|
|
43
50
|
"type": "interface",
|
|
@@ -55,13 +62,20 @@
|
|
|
55
62
|
"signature": "export type ComponentName =\n | keyof BaseComponentMap\n | keyof ComponentMap\n | 'custom';",
|
|
56
63
|
"description": "组件名称联合类型\n所有支持的组件名称"
|
|
57
64
|
},
|
|
65
|
+
{
|
|
66
|
+
"name": "componentMap",
|
|
67
|
+
"type": "function",
|
|
68
|
+
"package": "@qin-ui/antdv-next-pro",
|
|
69
|
+
"signature": "export const componentMap: BaseComponentMap =",
|
|
70
|
+
"description": "组件名称到 antdv-next 组件的运行时映射\nProForm 通过此映射将 Field 配置中的 component 字符串解析为实际 Vue 组件。\n例如 `component: 'input'` → `Input`, `component: 'select'` → `Select`。"
|
|
71
|
+
},
|
|
58
72
|
{
|
|
59
73
|
"name": "useFormData",
|
|
60
74
|
"type": "function",
|
|
61
75
|
"package": "@qin-ui/antdv-next-pro",
|
|
62
|
-
"signature": "export const useFormData = <D extends Data = Data>(\n initFormData?: ExtendWithAny<DeepPartial<D>>\n) =>",
|
|
76
|
+
"signature": "export const useFormData = <D extends Data = Data>(\n initFormData?: ExtendWithAny<DeepPartial<D>>\n): UseFormDataReturn<D> =>",
|
|
63
77
|
"description": "表单数据处理 Hook\n提供响应式表单数据的管理能力,支持:\n- 响应式数据存储(基于 Vue reactive)\n- 深层路径读写(支持点号分隔,如 'address.city')\n- 类型安全的路径提示(传入泛型 D 后,path 参数可获得类型推导)\n- 父子表单自动注入(非根表单会从注入中获取数据)",
|
|
64
|
-
"returns": "{
|
|
78
|
+
"returns": "{UseFormDataReturn<D>} 表单数据操作对象",
|
|
65
79
|
"typeParams": [
|
|
66
80
|
{
|
|
67
81
|
"name": "D"
|
|
@@ -75,15 +89,16 @@
|
|
|
75
89
|
"name": "useFields",
|
|
76
90
|
"type": "function",
|
|
77
91
|
"package": "@qin-ui/antdv-next-pro",
|
|
78
|
-
"signature": "export
|
|
79
|
-
"description": "
|
|
92
|
+
"signature": "export function useFields<D extends Data = Data>(\n initFields?: Fields<D>\n): UseFieldsReturn<D, Field<ComponentName, D>, FormItemInstance>;",
|
|
93
|
+
"description": "字段配置管理 Hook\n基于 `@qin-ui/pro-components-core` 的 `useFields`,将泛型参数绑定为 antdv-next 的本地类型:\n- 字段类型 F → `Field<ComponentName, D>`(支持 antdv-next 组件类型推导)\n- FormItem 实例 → antdv-next 的 `FormItemInstance`\n提供对字段配置数组的增删改查操作,支持:\n- 通过路径字符串或查找函数定位字段\n- 深层嵌套字段的遍历和匹配\n- 字段配置的合并/覆盖更新\n- 字段的添加、插入、删除\n- 父级字段查找\n- `fields` — 字段配置数组(响应式 Ref\\<F[]\\>)\n- `getField(path)` — 获取字段配置,支持路径字符串或查找函数\n- `setField(path, field, options?)` — 更新字段配置,默认合并模式\n- `deleteField(path, options?)` — 删除字段配置\n- `appendField(path, field, options?)` — 在指定字段后追加\n- `prependField(path, field, options?)` — 在指定字段前插入\n- `getParentField(path, options?)` — 获取父级字段配置",
|
|
94
|
+
"returns": "字段操作对象,包含以下属性:",
|
|
80
95
|
"typeParams": [
|
|
81
96
|
{
|
|
82
97
|
"name": "D"
|
|
83
98
|
}
|
|
84
99
|
],
|
|
85
100
|
"examples": [
|
|
86
|
-
"```ts\ninterface User { name: string; age: number }\n\nconst { fields, getField, setField } = useFields<User>([\n{ path: 'name', label: '姓名', component: 'input' },\n{ path: 'age', label: '年龄', component: 'input-number' },\n])\n```"
|
|
101
|
+
"```ts\ninterface User { name: string; age: number }\n\nconst { fields, getField, setField } = useFields<User>([\n{ path: 'name', label: '姓名', component: 'input' },\n{ path: 'age', label: '年龄', component: 'input-number' },\n])\n\n// 通过路径获取\ngetField('name')\n// 通过查找函数获取\ngetField(f => f.label === '姓名')\n// 更新字段(合并模式)\nsetField('name', { label: '用户名', disabled: true })\n```"
|
|
87
102
|
]
|
|
88
103
|
},
|
|
89
104
|
{
|
|
@@ -91,14 +106,14 @@
|
|
|
91
106
|
"type": "type",
|
|
92
107
|
"package": "@qin-ui/antdv-next-pro",
|
|
93
108
|
"signature": "export type UseFields<D extends Data = Data> = ReturnType<typeof useFields<D>>;",
|
|
94
|
-
"description": "useFields
|
|
109
|
+
"description": "useFields 返回值类型"
|
|
95
110
|
},
|
|
96
111
|
{
|
|
97
112
|
"name": "Form",
|
|
98
113
|
"type": "type",
|
|
99
114
|
"package": "@qin-ui/antdv-next-pro",
|
|
100
115
|
"signature": "export type Form<\n D extends Data = Data,\n F extends Field<ComponentName, D> = Field<ComponentName, D>,\n> = _Form<D, F, FormInstance>;",
|
|
101
|
-
"description": "在 core Form
|
|
116
|
+
"description": "表单实例类型\n在 core Form 类型的基础上,将字段类型 F 绑定为本地 Field<ComponentName, D>,\n将底层表单实例 I 绑定为 antdv-next 的 FormInstance,使 formRef 获得完整的类型提示。\n1. `setFormData(path, value)` — 设置指定路径的值<br>\n2. `setFormData(path, prev => newVal)` — 函数式更新<br>\n3. `setFormData({ ... })` — 批量覆盖整个表单",
|
|
102
117
|
"typeParams": [
|
|
103
118
|
{
|
|
104
119
|
"name": "D"
|
|
@@ -108,35 +123,50 @@
|
|
|
108
123
|
}
|
|
109
124
|
],
|
|
110
125
|
"examples": [
|
|
111
|
-
"```ts\ninterface User { name: string; age: number }\nconst form: Form<User> = useForm({ name: '张三', age: 25 })\nform.formRef.value?.validate()
|
|
126
|
+
"```ts\ninterface User { name: string; age: number }\nconst form: Form<User> = useForm({ name: '张三', age: 25 })\n\nform.formData.name // 直接读写响应式数据\nform.getFormData('name') // 通过路径读取\nform.setFormData('name', '李四') // 更新数据\nform.formRef.value?.validate() // 访问底层 Form 实例\n```"
|
|
112
127
|
]
|
|
113
128
|
},
|
|
114
129
|
{
|
|
115
130
|
"name": "useForm",
|
|
116
131
|
"type": "function",
|
|
117
132
|
"package": "@qin-ui/antdv-next-pro",
|
|
118
|
-
"signature": "export
|
|
119
|
-
"description": "
|
|
133
|
+
"signature": "export function useForm<D extends Data = Data>(\n initFormData?: ExtendWithAny<DeepPartial<D>>,\n initFields?: Field<ComponentName, D>[],\n root?: boolean\n): Form<D, Field<ComponentName, D>>;",
|
|
134
|
+
"description": "创建表单实例的 Hook\n基于 `@qin-ui/pro-components-core` 的 `useForm`,将泛型参数绑定为 antdv-next 的本地类型:\n- 字段类型 F → `Field<ComponentName, D>`(支持 antdv-next 所有内置组件类型推导)\n- 表单实例 → antdv-next 的 `FormInstance`(使 formRef 获得完整的类型提示)\n表单实例组合了三个子模块的能力:\n- **useFormData**:表单数据管理(响应式数据、读写、批量更新)\n- **useFields**:字段配置管理(增删改查字段配置,支持嵌套)\n- **useFormRef**:底层 Form 组件实例引用",
|
|
135
|
+
"returns": "{Form<D>} 表单实例,包含数据操作、字段操作和 ref 操作",
|
|
120
136
|
"typeParams": [
|
|
121
137
|
{
|
|
122
138
|
"name": "D"
|
|
123
139
|
}
|
|
124
140
|
],
|
|
125
141
|
"examples": [
|
|
126
|
-
"```ts\ninterface User { name: string; age: number }\n\nconst form = useForm<User>(\n{ name: '张三', age: 25 },\n[\n{ path: 'name', label: '姓名', component: 'input' },\n{ path: 'age', label: '年龄', component: 'input-number' },\n],\ntrue\n)\n```"
|
|
142
|
+
"```ts\ninterface User { name: string; age: number }\n\n// 方式一:同时传入初始数据和字段\nconst form = useForm<User>(\n{ name: '张三', age: 25 },\n[\n{ path: 'name', label: '姓名', component: 'input' },\n{ path: 'age', label: '年龄', component: 'input-number' },\n],\ntrue\n)\n\n// 方式二:仅设置 root 标识\nconst form = useForm<User>(true)\n\n// 使用\nconst { formData, formRef, fields, setFormData, getField } = form\nsetFormData('name', '李四')\nawait formRef.value?.validate()\n```"
|
|
127
143
|
]
|
|
128
144
|
},
|
|
129
145
|
{
|
|
130
146
|
"name": "useFormRef",
|
|
131
147
|
"type": "function",
|
|
132
148
|
"package": "@qin-ui/antdv-next-pro",
|
|
133
|
-
"signature": "export
|
|
134
|
-
"description": "
|
|
135
|
-
"returns": "
|
|
149
|
+
"signature": "export function useFormRef(): UseFormRefReturn<FormInstance>",
|
|
150
|
+
"description": "表单组件实例引用 Hook\n基于 `@qin-ui/pro-components-core` 的 `useFormRef`,将泛型参数绑定为 antdv-next 的 `FormInstance`,\n使 formRef 获取到完整的 antdv-next Form 组件 API 类型提示(如 `validate()`、`resetFields()` 等)。\n`formRef` 由 ProForm 组件内部自动通过 `setFormRef` 绑定,无需手动调用。\n- `formRef` — antdv-next Form 组件实例的响应式引用(`Ref<FormInstance | undefined>`)\n- `setFormRef(inst)` — 设置 Form 组件实例,由 ProForm 内部自动调用",
|
|
151
|
+
"returns": "表单组件实例引用管理对象:",
|
|
136
152
|
"examples": [
|
|
137
|
-
"```ts\nconst { formRef, setFormRef } = useFormRef()\nawait formRef.value?.validate()\nformRef.value?.resetFields()\n```"
|
|
153
|
+
"```ts\nconst { formRef, setFormRef } = useFormRef()\n\n// formRef 由 ProForm 自动绑定,可直接使用\nawait formRef.value?.validate()\nformRef.value?.resetFields()\nformRef.value?.scrollToField('username')\n```"
|
|
138
154
|
]
|
|
139
155
|
},
|
|
156
|
+
{
|
|
157
|
+
"name": "Base",
|
|
158
|
+
"type": "type",
|
|
159
|
+
"package": "@qin-ui/antdv-next-pro",
|
|
160
|
+
"signature": "export type Base<D extends Data = Data> =\n | BaseWithFields<D>\n | BaseWithoutFields<D>;",
|
|
161
|
+
"description": "字段配置的基础公共类型\n定义了 ProForm 字段配置的**保留属性**(由 ProForm 自身消费,不会透传给底层组件):\n- path, label, component - 字段标识与渲染\n- hidden, disabled, rules - 字段状态与校验\n- span, slots, grid, fields - 布局与嵌套\n- modelProp, valueFormatter - 双向绑定与值转换\n- formItemStyle/Class/Container/DataAttrs - FormItem 容器样式\n- componentStyle/Class/Container/DataAttrs - 输入组件样式\n- extraProps - 自定义扩展属性\n**重要:所有未在此列出的属性将直接 v-bind 透传到底层 antdv-next 组件。**"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"name": "FieldTypeMap",
|
|
165
|
+
"type": "type",
|
|
166
|
+
"package": "@qin-ui/antdv-next-pro",
|
|
167
|
+
"signature": "export type FieldTypeMap<D extends Data = Data> =",
|
|
168
|
+
"description": "字段类型映射集合\n将每个 component 字符串映射到其对应的 antdv-next 组件 Props 类型。\n例如 `component: 'select'` 时,Field 获得 Select 组件的所有 Props(options, mode, showSearch 等)作为类型提示。\n`component: 'custom'` 支持通过渲染函数或直接传入 Vue 组件进行完全自定义渲染。"
|
|
169
|
+
},
|
|
140
170
|
{
|
|
141
171
|
"name": "Field",
|
|
142
172
|
"type": "type",
|
|
@@ -181,7 +211,7 @@
|
|
|
181
211
|
"type": "type",
|
|
182
212
|
"package": "@qin-ui/antdv-next-pro",
|
|
183
213
|
"signature": "export type Table<\n D extends Data = Data,\n T extends Data = ExtendWithAny<D>,\n> = _Table<D, T, Column<T>>;",
|
|
184
|
-
"description": "在 core Table 类型的基础上,将列类型 C 绑定为本地 Column
|
|
214
|
+
"description": "表格实例类型\n在 core Table 类型的基础上,将列类型 C 绑定为本地 Column\\<T\\>,\n使 columns 操作获得 antdv-next 表格列的完整属性类型提示。",
|
|
185
215
|
"typeParams": [
|
|
186
216
|
{
|
|
187
217
|
"name": "D"
|
|
@@ -189,14 +219,26 @@
|
|
|
189
219
|
{
|
|
190
220
|
"name": "T"
|
|
191
221
|
}
|
|
222
|
+
],
|
|
223
|
+
"examples": [
|
|
224
|
+
"```ts\ninterface User { name: string; age: number; email: string }\n\nconst table: Table<{}, User> = useTable({\ncolumns: [{ dataIndex: 'name', title: '姓名' }],\n})\n\ntable.columns.value // 访问列配置\ntable.setColumn('name', { width: 150 }) // 更新列\ntable.setPageParam({ current: 2 }) // 切换页码\ntable.searchForm.setFormData('keyword', '搜索词') // 操作搜索表单\n```"
|
|
192
225
|
]
|
|
193
226
|
},
|
|
194
227
|
{
|
|
195
228
|
"name": "useTable",
|
|
196
229
|
"type": "function",
|
|
197
230
|
"package": "@qin-ui/antdv-next-pro",
|
|
198
|
-
"signature": "export
|
|
199
|
-
"description": "
|
|
231
|
+
"signature": "export function useTable<\n D extends Data = Data,\n T extends Data = ExtendWithAny<D>,\n>(params:",
|
|
232
|
+
"description": "创建表格实例的 Hook\n基于 `@qin-ui/pro-components-core` 的 `useTable`,将列类型绑定为本地 `Column<T>`。\n是 ProTable 组件的核心 Hook,提供了:\n- 列配置管理(增删改查)\n- 数据源管理\n- 分页管理\n- 搜索表单集成(内部使用 useForm)\n- 查询参数重置",
|
|
233
|
+
"params": [
|
|
234
|
+
{
|
|
235
|
+
"name": "params",
|
|
236
|
+
"type": "object",
|
|
237
|
+
"optional": false,
|
|
238
|
+
"description": "表格配置参数"
|
|
239
|
+
}
|
|
240
|
+
],
|
|
241
|
+
"returns": "{Table<D, T>} 表格实例",
|
|
200
242
|
"typeParams": [
|
|
201
243
|
{
|
|
202
244
|
"name": "D"
|
|
@@ -206,7 +248,7 @@
|
|
|
206
248
|
}
|
|
207
249
|
],
|
|
208
250
|
"examples": [
|
|
209
|
-
"```ts\ninterface User { name: string; age: number; email: string }\n\nconst table = useTable<User>({\ncolumns: [\n{ dataIndex: 'name', title: '姓名', width: 120 },\n{ dataIndex: 'age', title: '年龄', width: 80 },\n],\ndataSource: [],\npageParam: { current: 1, pageSize: 20, total: 0 },\n})\n```"
|
|
251
|
+
"```ts\ninterface SearchParams { keyword: string; status: string }\ninterface User { name: string; age: number; email: string }\n\nconst table = useTable<SearchParams, User>({\ncolumns: [\n{ dataIndex: 'name', title: '姓名', width: 120 },\n{ dataIndex: 'age', title: '年龄', width: 80 },\n],\ndataSource: [],\npageParam: { current: 1, pageSize: 20, total: 0 },\nsearchParam: { keyword: '', status: '' },\nsearchFields: [\n{ path: 'keyword', label: '关键词', component: 'input' },\n{ path: 'status', label: '状态', component: 'select' },\n],\n})\n\n// 查询\nconst handleSearch = async () => {\nconst res = await fetchUserList({\n...table.searchForm.formData,\n...table.pageParam,\n})\ntable.dataSource.value = res.data\ntable.setPageParam({ total: res.total })\n}\n\n// 重置\nconst handleReset = () => {\ntable.resetQueryParams()\nhandleSearch()\n}\n```"
|
|
210
252
|
]
|
|
211
253
|
}
|
|
212
254
|
]
|