@qin-ui/antd-vue-pro 2.4.5 → 2.5.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 +26 -2
- package/README.md +44 -37
- package/api.json +24 -9
- package/es/antd-vue-pro.css +15 -15
- package/es/components/component-provider/components/index.vue.d.ts +3 -3
- package/es/components/component-provider/components/index.vue.d.ts.map +1 -1
- package/es/components/component-provider/constants/index.d.ts +20 -4
- package/es/components/component-provider/constants/index.d.ts.map +1 -1
- package/es/components/component-provider/types/index.d.ts +7 -3
- package/es/components/component-provider/types/index.d.ts.map +1 -1
- package/es/components/form/components/BaseField/index.vue.d.ts +7 -1
- package/es/components/form/components/BaseField/index.vue.d.ts.map +1 -1
- package/es/components/form/components/BaseField/utils/index.d.ts +18 -0
- package/es/components/form/components/BaseField/utils/index.d.ts.map +1 -1
- package/es/components/form/components/BaseFormItem/index.vue.d.ts +3 -0
- package/es/components/form/components/BaseFormItem/index.vue.d.ts.map +1 -1
- package/es/components/form/components/ContainerFragment/index.vue.d.ts +1 -0
- package/es/components/form/components/ContainerFragment/index.vue.d.ts.map +1 -1
- package/es/components/form/components/ProForm/index.vue.d.ts.map +1 -1
- package/es/components/form/components/SlotComponent/index.vue.d.ts +1 -0
- package/es/components/form/components/SlotComponent/index.vue.d.ts.map +1 -1
- package/es/components/form/components/index.d.ts +4 -0
- package/es/components/form/components/index.d.ts.map +1 -1
- package/es/components/form/constants/index.d.ts.map +1 -1
- package/es/components/form/hooks/useFields.d.ts +2 -0
- package/es/components/form/hooks/useFields.d.ts.map +1 -1
- package/es/components/form/hooks/useGroupFieldAttrs.d.ts +10 -0
- package/es/components/form/hooks/useGroupFieldAttrs.d.ts.map +1 -1
- package/es/components/form/index.d.ts +2 -2
- package/es/components/form/index.d.ts.map +1 -1
- package/es/components/form/types/index.d.ts +75 -44
- package/es/components/form/types/index.d.ts.map +1 -1
- package/es/components/form/utils/fieldKey.d.ts +13 -0
- package/es/components/form/utils/fieldKey.d.ts.map +1 -0
- package/es/components/table/components/ColumnControl.vue.d.ts +3 -0
- package/es/components/table/components/ColumnControl.vue.d.ts.map +1 -1
- package/es/components/table/components/DefaultSearchFormContainer.vue.d.ts.map +1 -1
- package/es/components/table/components/DefaultTableContainer.vue.d.ts.map +1 -1
- package/es/components/table/components/ProTable.vue.d.ts +8 -1
- package/es/components/table/components/ProTable.vue.d.ts.map +1 -1
- package/es/components/table/components/SearchForm.vue.d.ts +9 -1
- package/es/components/table/components/SearchForm.vue.d.ts.map +1 -1
- package/es/components/table/components/SizeControl.vue.d.ts +7 -2
- package/es/components/table/components/SizeControl.vue.d.ts.map +1 -1
- package/es/components/table/hooks/useTable.d.ts.map +1 -1
- package/es/components/table/index.d.ts +4 -1
- package/es/components/table/index.d.ts.map +1 -1
- package/es/components/table/types/index.d.ts +14 -6
- package/es/components/table/types/index.d.ts.map +1 -1
- package/es/index.d.ts +8 -4
- package/es/index.d.ts.map +1 -1
- package/es/index.js +259 -123
- package/es/index.js.map +1 -1
- package/es/locale/index.d.ts +2 -0
- package/es/locale/index.d.ts.map +1 -1
- package/es/shared/core/index.d.ts +1 -1
- package/es/shared/core/index.d.ts.map +1 -1
- package/es/shared/ui/index.d.ts +15 -3
- package/es/shared/ui/index.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/components/component-provider/components/index.vue +26 -12
- package/src/components/component-provider/constants/index.ts +33 -6
- package/src/components/component-provider/types/index.ts +17 -9
- package/src/components/form/components/BaseField/index.vue +41 -13
- package/src/components/form/components/BaseField/utils/index.ts +19 -1
- package/src/components/form/components/BaseFormItem/index.vue +28 -30
- package/src/components/form/components/ContainerFragment/index.vue +3 -1
- package/src/components/form/components/ProForm/index.vue +19 -14
- package/src/components/form/components/SlotComponent/index.vue +14 -4
- package/src/components/form/components/index.ts +8 -1
- package/src/components/form/constants/index.ts +3 -4
- package/src/components/form/hooks/useFields.ts +3 -1
- package/src/components/form/hooks/useGroupFieldAttrs.ts +29 -13
- package/src/components/form/index.ts +1 -3
- package/src/components/form/types/index.ts +79 -46
- package/src/components/form/utils/fieldKey.ts +27 -0
- package/src/components/table/components/ColumnControl.vue +17 -3
- package/src/components/table/components/DefaultSearchFormContainer.vue +5 -0
- package/src/components/table/components/DefaultTableContainer.vue +5 -0
- package/src/components/table/components/ProTable.vue +228 -69
- package/src/components/table/components/SearchForm.vue +56 -19
- package/src/components/table/components/SizeControl.vue +21 -1
- package/src/components/table/hooks/useTable.ts +1 -1
- package/src/components/table/index.ts +8 -3
- package/src/components/table/types/index.ts +15 -7
- package/src/index.ts +12 -5
- package/src/locale/index.ts +2 -0
- package/src/shared/core/index.ts +11 -0
- package/src/shared/ui/index.ts +22 -4
- package/tsconfig.json +0 -1
|
@@ -21,17 +21,26 @@ type _FormProps = Pick<
|
|
|
21
21
|
type ButtonProps = { onClick: () => void };
|
|
22
22
|
type ExpandButtonProps = ButtonProps & { expandStatus: boolean };
|
|
23
23
|
|
|
24
|
+
/** ProTable 搜索表单的属性面:表单实例、布局、展开与按钮自定义 */
|
|
24
25
|
export type SearchFormProps = {
|
|
26
|
+
/** 搜索表单实例,由 table.searchForm 提供 */
|
|
25
27
|
form: Form;
|
|
28
|
+
/** 布局形态,默认 'grid' */
|
|
26
29
|
layout?: 'grid' | 'inline';
|
|
30
|
+
/** 展开配置,默认 true */
|
|
27
31
|
expand?: boolean | Expand;
|
|
32
|
+
/** 自定义搜索按钮,false 时不渲染 */
|
|
28
33
|
searchButton?: Component<ButtonProps> | DefineComponent<ButtonProps> | false;
|
|
34
|
+
/** 自定义重置按钮,false 时不渲染 */
|
|
29
35
|
resetButton?: Component<ButtonProps> | DefineComponent<ButtonProps> | false;
|
|
36
|
+
/** 自定义展开/折叠按钮,false 时不渲染 */
|
|
30
37
|
expandButton?:
|
|
31
38
|
| Component<ExpandButtonProps>
|
|
32
39
|
| DefineComponent<ExpandButtonProps>
|
|
33
40
|
| false;
|
|
41
|
+
/** 行间距,默认 16 */
|
|
34
42
|
rowGap?: number;
|
|
43
|
+
/** 列间距,默认 24 */
|
|
35
44
|
columnGap?: number;
|
|
36
45
|
} & /* @vue-ignore */ _FormProps &
|
|
37
46
|
AllowedComponentProps;
|
|
@@ -39,30 +48,40 @@ export type SearchFormProps = {
|
|
|
39
48
|
|
|
40
49
|
<script lang="ts" setup>
|
|
41
50
|
/**
|
|
51
|
+
* ProTable 的搜索表单子组件
|
|
52
|
+
*
|
|
42
53
|
* @component SearchForm
|
|
43
|
-
* @description ProTable 的搜索表单子组件
|
|
44
54
|
*
|
|
45
55
|
* ## 核心功能
|
|
46
56
|
*
|
|
47
57
|
* 1. 内部渲染 ProForm,使用 table.searchForm 管理搜索条件
|
|
48
58
|
* 2. 支持 grid(网格)和 inline(行内)两种布局
|
|
49
|
-
* 3.
|
|
59
|
+
* 3. 网格布局下支持展开/折叠
|
|
50
60
|
* 4. 提供搜索、重置、展开/折叠按钮(支持自定义)
|
|
51
61
|
*
|
|
52
|
-
* ##
|
|
62
|
+
* ## 展开/折叠行为
|
|
63
|
+
*
|
|
64
|
+
* 1. 内容高度超出折叠高度(由 minExpandRows 决定,默认 2 行)时显示展开/折叠按钮
|
|
65
|
+
* 2. 隐藏区域存在搜索值时自动展开
|
|
66
|
+
* 3. 用户手动切换后保持手动状态,不随重新测量回退
|
|
53
67
|
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
68
|
+
* @param {Form} form - 搜索表单实例,由 table.searchForm 提供
|
|
69
|
+
* @param {'grid' | 'inline'} [layout] - 布局形态,默认 'grid'
|
|
70
|
+
* @param {boolean | Expand} [expand] - 展开配置,默认 true
|
|
71
|
+
* @param {Component<ButtonProps> | DefineComponent<ButtonProps> | false} [searchButton] - 自定义搜索按钮,false 时不渲染
|
|
72
|
+
* @param {Component<ButtonProps> | DefineComponent<ButtonProps> | false} [resetButton] - 自定义重置按钮,false 时不渲染
|
|
73
|
+
* @param {Component<ExpandButtonProps> | DefineComponent<ExpandButtonProps> | false} [expandButton] - 自定义展开/折叠按钮,false 时不渲染
|
|
74
|
+
* @param {number} [rowGap] - 行间距,默认 16
|
|
75
|
+
* @param {number} [columnGap] - 列间距,默认 24
|
|
76
|
+
*
|
|
77
|
+
* @slot reset-button - 重置按钮插槽,作用域参数 onReset
|
|
78
|
+
* @slot search-button - 搜索按钮插槽,作用域参数 onSearch
|
|
79
|
+
* @slot expand-button - 展开/折叠按钮插槽,作用域参数 expandStatus / changeExpandStatus
|
|
58
80
|
*/
|
|
59
|
-
import {
|
|
60
|
-
import {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
type Component,
|
|
64
|
-
type DefineComponent,
|
|
65
|
-
} from 'vue';
|
|
81
|
+
import type { FormProps } from '../../../shared/ui';
|
|
82
|
+
import { Space, Button } from '../../../shared/ui';
|
|
83
|
+
import type { AllowedComponentProps } from 'vue';
|
|
84
|
+
import { computed, nextTick, type Component, type DefineComponent } from 'vue';
|
|
66
85
|
import ProForm from '../../form/components/ProForm/index.vue';
|
|
67
86
|
import { type Form } from '../../form/hooks/useForm';
|
|
68
87
|
import DownOutlined from './icons/DownOutlined.vue';
|
|
@@ -81,7 +100,6 @@ const props = withDefaults(defineProps<SearchFormProps>(), {
|
|
|
81
100
|
expandButton: undefined,
|
|
82
101
|
rowGap: 16,
|
|
83
102
|
columnGap: 24,
|
|
84
|
-
form: undefined,
|
|
85
103
|
});
|
|
86
104
|
|
|
87
105
|
type Emits = {
|
|
@@ -117,9 +135,28 @@ const onReset = () => {
|
|
|
117
135
|
emit('reset');
|
|
118
136
|
};
|
|
119
137
|
|
|
120
|
-
|
|
138
|
+
// 同一 tick 内 click 与 submit 只放行首个触达者,下一 tick 释放标记
|
|
139
|
+
let searchTriggeredInTick = false;
|
|
140
|
+
|
|
141
|
+
const emitSearch = () => {
|
|
142
|
+
searchTriggeredInTick = true;
|
|
143
|
+
nextTick(() => {
|
|
144
|
+
searchTriggeredInTick = false;
|
|
145
|
+
});
|
|
121
146
|
emit('search');
|
|
122
147
|
};
|
|
148
|
+
|
|
149
|
+
// 默认查询按钮为 html-type=submit:点击与回车统一经表单 submit 事件触发
|
|
150
|
+
const onSearchSubmit = () => {
|
|
151
|
+
if (searchTriggeredInTick) return;
|
|
152
|
+
emitSearch();
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
// 自定义查询按钮与 search-button 插槽经 click 触发
|
|
156
|
+
const onSearchClick = () => {
|
|
157
|
+
if (searchTriggeredInTick) return;
|
|
158
|
+
emitSearch();
|
|
159
|
+
};
|
|
123
160
|
</script>
|
|
124
161
|
|
|
125
162
|
<template>
|
|
@@ -127,6 +164,7 @@ const onSearch = () => {
|
|
|
127
164
|
v-bind="layoutProps"
|
|
128
165
|
:form="props.form"
|
|
129
166
|
class="pro-table_search-form transition"
|
|
167
|
+
@submit.prevent="onSearchSubmit"
|
|
130
168
|
>
|
|
131
169
|
<Space align="start" class="pro-table_search-form_button-group">
|
|
132
170
|
<slot name="reset-button" :on-reset="onReset">
|
|
@@ -144,19 +182,18 @@ const onSearch = () => {
|
|
|
144
182
|
>
|
|
145
183
|
</template>
|
|
146
184
|
</slot>
|
|
147
|
-
<slot name="search-button" :on-search="
|
|
185
|
+
<slot name="search-button" :on-search="onSearchClick">
|
|
148
186
|
<template v-if="props.searchButton !== false">
|
|
149
187
|
<component
|
|
150
188
|
:is="props.searchButton"
|
|
151
189
|
v-if="props.searchButton"
|
|
152
|
-
@click="
|
|
190
|
+
@click="onSearchClick"
|
|
153
191
|
/>
|
|
154
192
|
<Button
|
|
155
193
|
v-else
|
|
156
194
|
class="pro-table_search-form_search-button"
|
|
157
195
|
type="primary"
|
|
158
196
|
html-type="submit"
|
|
159
|
-
@click="onSearch"
|
|
160
197
|
>{{ t('table.query') }}
|
|
161
198
|
</Button>
|
|
162
199
|
</template>
|
|
@@ -1,4 +1,12 @@
|
|
|
1
1
|
<script lang="ts" setup>
|
|
2
|
+
/**
|
|
3
|
+
* 表格尺寸切换控件,以图标按钮 + 下拉菜单呈现
|
|
4
|
+
*
|
|
5
|
+
* @component SizeControl
|
|
6
|
+
*
|
|
7
|
+
* @param {Size} [size] - 表格尺寸(`v-model:size`),仅用于回写选中结果
|
|
8
|
+
* @param {Size} [effectiveSize] - 表格实际使用的尺寸,用于高亮选中项;未提供时依次回退 `size`、宿主 ConfigProvider 的 componentSize
|
|
9
|
+
*/
|
|
2
10
|
import {
|
|
3
11
|
Dropdown,
|
|
4
12
|
Menu,
|
|
@@ -17,10 +25,22 @@ const { t } = useLocale();
|
|
|
17
25
|
|
|
18
26
|
const configContext = useConfigContextInject();
|
|
19
27
|
|
|
28
|
+
const props = withDefaults(
|
|
29
|
+
defineProps<{
|
|
30
|
+
effectiveSize?: Size;
|
|
31
|
+
}>(),
|
|
32
|
+
{ effectiveSize: undefined }
|
|
33
|
+
);
|
|
34
|
+
|
|
20
35
|
const size = defineModel<Size>('size');
|
|
21
36
|
|
|
37
|
+
// 高亮项:表格有效尺寸 > 本地绑定 > 宿主 ConfigProvider 的 componentSize
|
|
22
38
|
const currentSize = computed(
|
|
23
|
-
() =>
|
|
39
|
+
() =>
|
|
40
|
+
props.effectiveSize ??
|
|
41
|
+
size.value ??
|
|
42
|
+
configContext.componentSize?.value ??
|
|
43
|
+
'large'
|
|
24
44
|
);
|
|
25
45
|
|
|
26
46
|
const onSizeChange = (val: any) => {
|
|
@@ -1,14 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type {
|
|
2
|
+
ComponentExposed,
|
|
3
|
+
ComponentProps,
|
|
4
|
+
} from 'vue-component-type-helpers';
|
|
2
5
|
import ProTable from './components/ProTable.vue';
|
|
3
6
|
|
|
4
|
-
|
|
7
|
+
/** ProTable 的组件属性类型 */
|
|
5
8
|
export type ProTableProps = ComponentProps<typeof ProTable>;
|
|
9
|
+
/** ProTable 的组件实例类型,用于 `ref` 标注与 `defineExpose` 访问 */
|
|
6
10
|
export type ProTableInstance = ComponentExposed<typeof ProTable>;
|
|
7
11
|
|
|
8
12
|
// 仅导出核心列配置类型
|
|
9
|
-
export { type Column, type Columns } from './types';
|
|
13
|
+
export { type Column, type ColumnControlConfig, type Columns } from './types';
|
|
10
14
|
|
|
11
15
|
// 仅导出核心表格 Hook 与类型
|
|
12
16
|
export { useTable, type Table } from './hooks';
|
|
17
|
+
export { type PageParam } from '../../shared/core';
|
|
13
18
|
|
|
14
19
|
export default ProTable;
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type { ColumnType } from '../../../shared/ui';
|
|
2
|
-
import { Data, KeyExpandString, Paths, Path } from '../../../shared/core';
|
|
2
|
+
import type { Data, KeyExpandString, Paths, Path } from '../../../shared/core';
|
|
3
|
+
import type { ComputedRef, MaybeRef } from 'vue';
|
|
4
|
+
|
|
5
|
+
type MaybeRefOrComputedRef<T = any> = MaybeRef<T> | ComputedRef<T>;
|
|
3
6
|
|
|
4
7
|
/**
|
|
5
|
-
*
|
|
8
|
+
* 表格列配置类型
|
|
6
9
|
*
|
|
7
10
|
* @description 继承 Ant Design Vue 的 ColumnType 列类型,并添加:
|
|
8
11
|
* - 类型安全的 dataIndex(基于泛型 D 推导路径),优先使用
|
|
@@ -37,7 +40,7 @@ export type Column<D extends Data = Data> = Omit<
|
|
|
37
40
|
'dataIndex' | 'key'
|
|
38
41
|
> & {
|
|
39
42
|
/**
|
|
40
|
-
*
|
|
43
|
+
* 列数据路径(主要字段)
|
|
41
44
|
* 关联数据源中对应字段的路径,支持点号分隔的深层路径和数组路径。
|
|
42
45
|
* 优先使用 dataIndex 进行字段匹配。
|
|
43
46
|
*
|
|
@@ -45,20 +48,25 @@ export type Column<D extends Data = Data> = Omit<
|
|
|
45
48
|
*/
|
|
46
49
|
dataIndex?: KeyExpandString<Extract<keyof D, string>> | Paths<D>;
|
|
47
50
|
/**
|
|
48
|
-
*
|
|
51
|
+
* 列字段标识(辅助字段)
|
|
49
52
|
* 仅当 dataIndex 无法满足需求时使用,例如需要在自定义渲染中标识列时。
|
|
50
53
|
* 在字段匹配时的优先级低于 dataIndex。
|
|
51
54
|
*/
|
|
52
55
|
key?: Path<D>;
|
|
53
56
|
/**
|
|
54
|
-
*
|
|
57
|
+
* 列是否隐藏;支持布尔、Ref 与 ComputedRef 形式,渲染期按 `toValue` 取值。
|
|
58
|
+
* 分组列的子列同样参与过滤(递归生效)。
|
|
55
59
|
* @default false
|
|
56
60
|
*/
|
|
57
|
-
hidden?: boolean
|
|
61
|
+
hidden?: MaybeRefOrComputedRef<boolean>;
|
|
62
|
+
/**
|
|
63
|
+
* 分组子列;提供时该列作为分组表头渲染,子列沿用同一配置类型
|
|
64
|
+
*/
|
|
65
|
+
children?: Column<D>[];
|
|
58
66
|
};
|
|
59
67
|
|
|
60
68
|
/**
|
|
61
|
-
*
|
|
69
|
+
* 表格列配置数组类型
|
|
62
70
|
*
|
|
63
71
|
* @template D - 表格行数据类型
|
|
64
72
|
* @public
|
package/src/index.ts
CHANGED
|
@@ -26,7 +26,9 @@ export * from './locale';
|
|
|
26
26
|
* <ProForm :form="form" />
|
|
27
27
|
* </template>
|
|
28
28
|
* ```
|
|
29
|
-
|
|
29
|
+
*/
|
|
30
|
+
export { ProForm };
|
|
31
|
+
/**
|
|
30
32
|
* Schema 驱动的表格组件,基于 antd-vue Table 封装
|
|
31
33
|
*
|
|
32
34
|
* @description 通过声明式列配置即可生成功能完整的表格,
|
|
@@ -42,7 +44,9 @@ export * from './locale';
|
|
|
42
44
|
* <ProTable :table="table" />
|
|
43
45
|
* </template>
|
|
44
46
|
* ```
|
|
45
|
-
|
|
47
|
+
*/
|
|
48
|
+
export { ProTable };
|
|
49
|
+
/**
|
|
46
50
|
* 组件提供者,用于全局配置 ProForm 和 ProTable 的默认行为
|
|
47
51
|
*
|
|
48
52
|
* @description 通过 `ProComponentProvider` 包裹应用根组件,
|
|
@@ -57,10 +61,10 @@ export * from './locale';
|
|
|
57
61
|
* </template>
|
|
58
62
|
* ```
|
|
59
63
|
*/
|
|
60
|
-
export {
|
|
64
|
+
export { ProComponentProvider };
|
|
61
65
|
export default {
|
|
62
66
|
/**
|
|
63
|
-
*
|
|
67
|
+
* 安装方法
|
|
64
68
|
* @description 全局注册所有组件(ProForm、ProTable、ProComponentProvider)
|
|
65
69
|
*
|
|
66
70
|
* @param {App} app - Vue 应用实例
|
|
@@ -76,6 +80,9 @@ export default {
|
|
|
76
80
|
install(app: App) {
|
|
77
81
|
app.component(ProForm.name, ProForm);
|
|
78
82
|
app.component(ProTable.name, ProTable);
|
|
79
|
-
app.component(
|
|
83
|
+
app.component(
|
|
84
|
+
ProComponentProvider.name ?? 'ProComponentProvider',
|
|
85
|
+
ProComponentProvider
|
|
86
|
+
);
|
|
80
87
|
},
|
|
81
88
|
};
|
package/src/locale/index.ts
CHANGED
|
@@ -23,8 +23,10 @@ import {
|
|
|
23
23
|
} from '../shared/core';
|
|
24
24
|
import { useConfigContextInject } from '../shared/ui';
|
|
25
25
|
|
|
26
|
+
/** 内置语言包:简体中文 / 繁体中文 / 英文 */
|
|
26
27
|
export { zhCN, zhTW, enUS };
|
|
27
28
|
|
|
29
|
+
/** 文案表类型:键为内置文案 key,值为任意字符串 */
|
|
28
30
|
export type { ProLocale };
|
|
29
31
|
|
|
30
32
|
/** ProComponentProvider 通过该 key 注入局部覆盖文案 */
|
package/src/shared/core/index.ts
CHANGED
|
@@ -2,19 +2,28 @@
|
|
|
2
2
|
* 统一 re-export @qin-ui/pro-components-core,包内所有文件通过此文件引入 core 内容。
|
|
3
3
|
*/
|
|
4
4
|
export {
|
|
5
|
+
// types
|
|
6
|
+
type AdditionalMethods,
|
|
7
|
+
localePacks,
|
|
8
|
+
normalizeColumn,
|
|
9
|
+
normalizeColumns,
|
|
5
10
|
// hooks
|
|
6
11
|
useForm,
|
|
7
12
|
createFormProxy,
|
|
8
13
|
useTable,
|
|
9
14
|
useSearchFormExpand,
|
|
10
15
|
useFields,
|
|
16
|
+
resolveFieldIdentity,
|
|
17
|
+
DEFAULT_FIELD_IDENTITY_KEYS,
|
|
11
18
|
useFormData,
|
|
12
19
|
useFormRef,
|
|
20
|
+
useReactiveAttrs,
|
|
13
21
|
// injection keys
|
|
14
22
|
InjectionFormKey,
|
|
15
23
|
InjectionFormSlotsKey,
|
|
16
24
|
// utils
|
|
17
25
|
getObject,
|
|
26
|
+
omitBy,
|
|
18
27
|
get,
|
|
19
28
|
set,
|
|
20
29
|
normalizePathKey,
|
|
@@ -22,7 +31,9 @@ export {
|
|
|
22
31
|
camelizeProperties,
|
|
23
32
|
cloneDeep,
|
|
24
33
|
pick,
|
|
34
|
+
omit,
|
|
25
35
|
isPlainObject,
|
|
36
|
+
isObjectItem,
|
|
26
37
|
isPromise,
|
|
27
38
|
// locale
|
|
28
39
|
zhCN,
|
package/src/shared/ui/index.ts
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type {
|
|
2
|
+
FormProps as _FormProps,
|
|
3
|
+
Table,
|
|
4
|
+
TableProps as _TableProps,
|
|
5
|
+
} from 'ant-design-vue';
|
|
6
|
+
import type { ComponentProps } from 'vue-component-type-helpers';
|
|
2
7
|
import type { Options } from 'scroll-into-view-if-needed';
|
|
3
8
|
|
|
4
9
|
export {
|
|
@@ -36,7 +41,6 @@ export {
|
|
|
36
41
|
type RowProps as GridProps,
|
|
37
42
|
type ColProps as GridItemProps,
|
|
38
43
|
type FormItemProps,
|
|
39
|
-
type TableProps,
|
|
40
44
|
type PaginationProps,
|
|
41
45
|
} from 'ant-design-vue';
|
|
42
46
|
|
|
@@ -48,13 +52,27 @@ export {
|
|
|
48
52
|
useProviderDisabled,
|
|
49
53
|
} from 'ant-design-vue/es/config-provider/DisabledContext';
|
|
50
54
|
export { colProps as gridItemProps } from 'ant-design-vue/es/grid/Col';
|
|
55
|
+
export { formItemProps } from 'ant-design-vue/es/form';
|
|
51
56
|
export {
|
|
52
|
-
formItemProps,
|
|
53
57
|
useInjectFormItemContext,
|
|
54
|
-
|
|
58
|
+
useProvideFormItemContext,
|
|
59
|
+
} from 'ant-design-vue/es/form/FormItemContext';
|
|
55
60
|
export { type NamePath } from 'ant-design-vue/es/form/interface';
|
|
56
61
|
export { type MenuItemType } from 'ant-design-vue/es/menu/src/interface';
|
|
57
62
|
|
|
63
|
+
/** 宿主 Form 属性面;`scrollToFirstError` 放宽为布尔或滚动配置对象 */
|
|
58
64
|
export type FormProps = Omit<_FormProps, 'scrollToFirstError'> & {
|
|
59
65
|
scrollToFirstError?: boolean | Options<any>;
|
|
60
66
|
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* 表格完整属性面
|
|
70
|
+
*
|
|
71
|
+
* @description 由宿主 `TableProps` 与其未声明的 emit 型属性键组成;
|
|
72
|
+
* ant-design-vue 的 Table 未暴露 `scroll` 事件面,故不提供 `@scroll` 入口。
|
|
73
|
+
*/
|
|
74
|
+
export interface TableProps extends _TableProps {
|
|
75
|
+
'onUpdate:expandedRowKeys'?: ComponentProps<
|
|
76
|
+
typeof Table
|
|
77
|
+
>['onUpdate:expandedRowKeys'];
|
|
78
|
+
}
|