villianjs-pro 1.0.0 → 1.0.1
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/dist/{ProTable3 → Beyond}/index.d.ts +1 -1
- package/dist/Beyond/index.js +1 -0
- package/dist/Beyond/list.d.ts +5 -0
- package/dist/Beyond/list.js +1 -0
- package/dist/Beyond/styles/index.d.ts +8 -0
- package/dist/Beyond/styles/index.js +1 -0
- package/dist/Beyond/types.d.ts +26 -0
- package/dist/Button/types.d.ts +1 -1
- package/dist/ButtonGroup/styles.js +1 -1
- package/dist/Exports/exports.d.ts +3 -0
- package/dist/Exports/exports.js +1 -0
- package/dist/Exports/index.d.ts +2 -0
- package/dist/Exports/index.js +1 -0
- package/dist/Exports/types.d.ts +61 -0
- package/dist/List/index.d.ts +8 -0
- package/dist/List/index.js +1 -0
- package/dist/List/list-container.d.ts +37 -0
- package/dist/List/list-container.js +1 -0
- package/dist/ProTable2/components/Container.d.ts +27 -0
- package/dist/ProTable2/components/Container.js +1 -0
- package/dist/ProTable2/components/form-content.d.ts +34 -0
- package/dist/{ProTable/update/update.js → ProTable2/components/form-content.js} +1 -1
- package/dist/ProTable2/components/form-footer.d.ts +32 -0
- package/dist/ProTable2/components/form-footer.js +1 -0
- package/dist/ProTable2/components/grid-view.d.ts +35 -0
- package/dist/ProTable2/components/grid-view.js +1 -0
- package/dist/ProTable2/components/header-buttons-wrapper.d.ts +10 -0
- package/dist/ProTable2/components/header-buttons-wrapper.js +1 -0
- package/dist/ProTable2/components/list/index.d.ts +19 -0
- package/dist/ProTable2/components/list/index.js +1 -0
- package/dist/ProTable2/components/operation-container.d.ts +39 -0
- package/dist/ProTable2/components/operation-container.js +1 -0
- package/dist/ProTable2/components/operation-content-router.d.ts +37 -0
- package/dist/ProTable2/components/operation-content-router.js +1 -0
- package/dist/ProTable2/components/operation-content.d.ts +35 -0
- package/dist/ProTable2/components/operation-content.js +1 -0
- package/dist/ProTable2/components/row-actions-router.d.ts +8 -0
- package/dist/{ProTable3/hooks/utils.js → ProTable2/components/row-actions-router.js} +1 -1
- package/dist/ProTable2/components/row-actions.d.ts +59 -0
- package/dist/ProTable2/components/row-actions.js +1 -0
- package/dist/ProTable2/components/search.d.ts +2 -1
- package/dist/ProTable2/components/search.js +1 -1
- package/dist/ProTable2/context.d.ts +21 -0
- package/dist/ProTable2/context.js +1 -0
- package/dist/ProTable2/hooks/usePagination.js +1 -0
- package/dist/ProTable2/hooks/useRouterNavigation.d.ts +10 -0
- package/dist/ProTable2/hooks/useRouterNavigation.js +1 -0
- package/dist/ProTable2/table.js +1 -1
- package/dist/ProTable2/types.d.ts +382 -2
- package/dist/TabSelector/TabSelector.d.ts +3 -0
- package/dist/TabSelector/TabSelector.js +1 -0
- package/dist/TabSelector/index.d.ts +2 -0
- package/dist/TabSelector/index.js +1 -0
- package/dist/TabSelector/modal.d.ts +16 -0
- package/dist/TabSelector/modal.js +1 -0
- package/dist/TabSelector/selected-items-display.d.ts +11 -0
- package/dist/TabSelector/selected-items-display.js +1 -0
- package/dist/TabSelector/styles.d.ts +2 -0
- package/dist/TabSelector/styles.js +1 -0
- package/dist/TabSelector/types.d.ts +24 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +1 -1
- package/dist/locale/langs/zh-cn/index.js +1 -1
- package/package.json +1 -1
- package/dist/ProTable/context.d.ts +0 -59
- package/dist/ProTable/context.js +0 -1
- package/dist/ProTable/form-footer.d.ts +0 -26
- package/dist/ProTable/form-footer.js +0 -1
- package/dist/ProTable/index.d.ts +0 -2
- package/dist/ProTable/index.js +0 -1
- package/dist/ProTable/list.d.ts +0 -5
- package/dist/ProTable/list.js +0 -1
- package/dist/ProTable/styles.d.ts +0 -7
- package/dist/ProTable/styles.js +0 -1
- package/dist/ProTable/table.d.ts +0 -3
- package/dist/ProTable/table.js +0 -1
- package/dist/ProTable/types.d.ts +0 -121
- package/dist/ProTable/update/index.d.ts +0 -1
- package/dist/ProTable/update/index.js +0 -1
- package/dist/ProTable/update/update.d.ts +0 -3
- package/dist/ProTable3/components/index.d.ts +0 -2
- package/dist/ProTable3/components/index.js +0 -1
- package/dist/ProTable3/components/list/index.d.ts +0 -19
- package/dist/ProTable3/components/list/index.js +0 -1
- package/dist/ProTable3/components/search/index.d.ts +0 -2
- package/dist/ProTable3/components/search/index.js +0 -1
- package/dist/ProTable3/container.d.ts +0 -3
- package/dist/ProTable3/container.js +0 -1
- package/dist/ProTable3/context.d.ts +0 -13
- package/dist/ProTable3/context.js +0 -1
- package/dist/ProTable3/hooks/types.d.ts +0 -72
- package/dist/ProTable3/hooks/useBatchRemoveButton.d.ts +0 -38
- package/dist/ProTable3/hooks/useBatchRemoveButton.js +0 -1
- package/dist/ProTable3/hooks/useCreateButton.d.ts +0 -34
- package/dist/ProTable3/hooks/useCreateButton.js +0 -1
- package/dist/ProTable3/hooks/useExtraButtons.d.ts +0 -26
- package/dist/ProTable3/hooks/useExtraButtons.js +0 -1
- package/dist/ProTable3/hooks/useOptionRender.d.ts +0 -30
- package/dist/ProTable3/hooks/useOptionRender.js +0 -1
- package/dist/ProTable3/hooks/usePagination.js +0 -1
- package/dist/ProTable3/hooks/utils.d.ts +0 -12
- package/dist/ProTable3/index.js +0 -1
- package/dist/ProTable3/styles.d.ts +0 -7
- package/dist/ProTable3/styles.js +0 -1
- package/dist/ProTable3/table.d.ts +0 -2
- package/dist/ProTable3/table.js +0 -1
- package/dist/ProTable3/types.d.ts +0 -106
- /package/dist/{ProTable → Beyond}/types.js +0 -0
- /package/dist/{ProTable3/hooks → Exports}/types.js +0 -0
- /package/dist/{ProTable3 → ProTable2}/hooks/usePagination.d.ts +0 -0
- /package/dist/{ProTable3 → TabSelector}/types.js +0 -0
|
@@ -1,11 +1,239 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import type { SizeType } from "antd/es/config-provider/SizeContext";
|
|
3
|
-
import { type ProTableProps as AntdProTableProps } from "@ant-design/pro-components";
|
|
3
|
+
import { type ProTableProps as AntdProTableProps, type ProColumns } from "@ant-design/pro-components";
|
|
4
|
+
import type { Key } from "react";
|
|
5
|
+
import type { ButtonGroupItem } from "../ButtonGroup";
|
|
6
|
+
import type { DrawerProps } from "antd";
|
|
4
7
|
import type { FormSchema } from "@ant-design/pro-form/es/components/SchemaForm/typing";
|
|
8
|
+
import type { ProFormColumnsType } from "../Form/types";
|
|
9
|
+
import type { ModalProps } from "../Modal/components/antd";
|
|
10
|
+
/**
|
|
11
|
+
* 表格操作模式
|
|
12
|
+
*/
|
|
13
|
+
export type VlianTableMode = "modal" | "drawer" | "router";
|
|
14
|
+
/**
|
|
15
|
+
* 操作类型
|
|
16
|
+
*/
|
|
17
|
+
export type OperationType = "list" | "create" | "update" | "view";
|
|
18
|
+
/**
|
|
19
|
+
* 视图显示模式
|
|
20
|
+
*/
|
|
21
|
+
export type ViewMode = "table" | "grid";
|
|
22
|
+
/**
|
|
23
|
+
* 网格卡片渲染函数
|
|
24
|
+
*/
|
|
25
|
+
export type GridCardRender<T = any> = (record: T, index: number) => React.ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* 提取 FormSchema 的 submitter 类型
|
|
28
|
+
*/
|
|
29
|
+
type FormSchemaSubmitter<T, ValueType extends string = 'text'> = FormSchema<T, ValueType>['submitter'];
|
|
5
30
|
/**
|
|
6
31
|
* 搜索表单类型
|
|
7
32
|
*/
|
|
8
33
|
export type SearchType = Extract<FormSchema["layoutType"], "QueryFilter" | "Form">;
|
|
34
|
+
/**
|
|
35
|
+
* ProTableSearch 组件属性
|
|
36
|
+
* 继承 FormSchema 的所有属性,并扩展自定义属性
|
|
37
|
+
*/
|
|
38
|
+
export type ProTableSearchProps<T = Record<string, any>, ValueType extends string = 'text'> = Omit<FormSchema<T, ValueType>, 'layoutType' | 'submitter' | 'columns'> & {
|
|
39
|
+
/**
|
|
40
|
+
* @description 布局类型
|
|
41
|
+
* @default Form
|
|
42
|
+
*/
|
|
43
|
+
layoutType?: SearchType;
|
|
44
|
+
/**
|
|
45
|
+
* @description 表单列配置(支持 ProColumns 和 ProFormColumnsType)
|
|
46
|
+
* @default []
|
|
47
|
+
*/
|
|
48
|
+
columns?: ProColumns<T, ValueType>[] | ProFormColumnsType<T, ValueType>[];
|
|
49
|
+
/**
|
|
50
|
+
* @description 标签宽度
|
|
51
|
+
* @default auto
|
|
52
|
+
*/
|
|
53
|
+
labelWidth?: string | number;
|
|
54
|
+
/**
|
|
55
|
+
* @description 标签布局属性
|
|
56
|
+
*/
|
|
57
|
+
labelCol?: React.CSSProperties;
|
|
58
|
+
/**
|
|
59
|
+
* @description 提交按钮配置,设置为 false 时隐藏提交按钮
|
|
60
|
+
*/
|
|
61
|
+
submitter?: FormSchemaSubmitter<T, ValueType> | {
|
|
62
|
+
/**
|
|
63
|
+
* @description 自定义渲染提交按钮
|
|
64
|
+
*/
|
|
65
|
+
render?: false | ((props: any, doms: React.ReactNode[]) => React.ReactNode);
|
|
66
|
+
/**
|
|
67
|
+
* @description 搜索配置
|
|
68
|
+
*/
|
|
69
|
+
searchConfig?: {
|
|
70
|
+
/**
|
|
71
|
+
* @description 提交按钮文本
|
|
72
|
+
*/
|
|
73
|
+
submitText?: string;
|
|
74
|
+
/**
|
|
75
|
+
* @description 重置按钮文本
|
|
76
|
+
*/
|
|
77
|
+
resetText?: string;
|
|
78
|
+
};
|
|
79
|
+
[key: string]: any;
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* 搜索配置
|
|
84
|
+
*/
|
|
85
|
+
export type SearchConfig<T = Record<string, any>, ValueType = "text"> = {
|
|
86
|
+
/**
|
|
87
|
+
* @description 布局类型
|
|
88
|
+
* @default Form
|
|
89
|
+
*/
|
|
90
|
+
layoutType?: SearchType;
|
|
91
|
+
/**
|
|
92
|
+
* @description 表单布局
|
|
93
|
+
* @default inline
|
|
94
|
+
*/
|
|
95
|
+
layout?: "horizontal" | "vertical" | "inline";
|
|
96
|
+
/**
|
|
97
|
+
* @description 搜索表单其他属性(排除 columns,因为 columns 由表格 columns 自动生成)
|
|
98
|
+
*/
|
|
99
|
+
searchProps?: Omit<ProTableSearchProps<T, ValueType extends string ? ValueType : "text">, "columns" | "layoutType" | "layout">;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* 操作按钮配置
|
|
103
|
+
*/
|
|
104
|
+
export interface HeaderButtonItem extends Omit<ButtonGroupItem, 'key' | 'onClick' | 'disabled'> {
|
|
105
|
+
/**
|
|
106
|
+
* @description 按钮 key
|
|
107
|
+
*/
|
|
108
|
+
key?: string;
|
|
109
|
+
/**
|
|
110
|
+
* @description 按钮是否可见(支持函数形式,根据 selectedRowKeys 动态判断)
|
|
111
|
+
*/
|
|
112
|
+
visible?: boolean | ((selectKeys: Key[]) => boolean);
|
|
113
|
+
/**
|
|
114
|
+
* @description 按钮是否禁用(支持函数形式,根据 selectedRowKeys 动态判断)
|
|
115
|
+
*/
|
|
116
|
+
disabled?: boolean | ((selectKeys: Key[]) => boolean);
|
|
117
|
+
/**
|
|
118
|
+
* @description 点击回调
|
|
119
|
+
*/
|
|
120
|
+
onClick?: (selectKeys: Key[]) => void | Promise<void>;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* 操作行按钮配置
|
|
124
|
+
*/
|
|
125
|
+
export interface RowButtonItem<T = any> extends Omit<ButtonGroupItem, 'key' | 'onClick' | 'disabled'> {
|
|
126
|
+
/**
|
|
127
|
+
* @description 按钮 key
|
|
128
|
+
*/
|
|
129
|
+
key?: string;
|
|
130
|
+
/**
|
|
131
|
+
* @description 按钮是否可见
|
|
132
|
+
*/
|
|
133
|
+
visible?: boolean | ((record: T, index: number) => boolean);
|
|
134
|
+
/**
|
|
135
|
+
* @description 按钮是否禁用
|
|
136
|
+
*/
|
|
137
|
+
disabled?: boolean | ((record: T, index: number) => boolean);
|
|
138
|
+
/**
|
|
139
|
+
* @description 点击回调
|
|
140
|
+
*/
|
|
141
|
+
onClick?: (record: T, index: number) => void | Promise<void>;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* 操作内容渲染函数
|
|
145
|
+
*/
|
|
146
|
+
export type OperationContentRender<T = any> = (params: {
|
|
147
|
+
type: OperationType;
|
|
148
|
+
record?: T;
|
|
149
|
+
onClose: () => void;
|
|
150
|
+
onSuccess?: () => void;
|
|
151
|
+
}) => React.ReactNode;
|
|
152
|
+
/**
|
|
153
|
+
* 表单底部渲染函数
|
|
154
|
+
*/
|
|
155
|
+
export type FormFooterRender<T = any> = (params: {
|
|
156
|
+
/**
|
|
157
|
+
* @description 操作类型
|
|
158
|
+
*/
|
|
159
|
+
type: OperationType;
|
|
160
|
+
/**
|
|
161
|
+
* @description 当前记录
|
|
162
|
+
*/
|
|
163
|
+
record?: T;
|
|
164
|
+
/**
|
|
165
|
+
* @description 表单实例
|
|
166
|
+
*/
|
|
167
|
+
form: any;
|
|
168
|
+
/**
|
|
169
|
+
* @description 提交处理
|
|
170
|
+
*/
|
|
171
|
+
onSubmit: () => void;
|
|
172
|
+
/**
|
|
173
|
+
* @description 取消处理
|
|
174
|
+
*/
|
|
175
|
+
onCancel: () => void;
|
|
176
|
+
/**
|
|
177
|
+
* @description 提交中状态
|
|
178
|
+
*/
|
|
179
|
+
loading?: boolean;
|
|
180
|
+
}) => React.ReactNode;
|
|
181
|
+
/**
|
|
182
|
+
* 表单提交回调
|
|
183
|
+
* @returns 返回 false 时不关闭弹窗和刷新数据;返回 void 或 true 时正常关闭和刷新
|
|
184
|
+
*/
|
|
185
|
+
export type FormSubmitCallback<T = any> = (values: T, type: OperationType, record?: T) => Promise<void | false> | void | false;
|
|
186
|
+
/**
|
|
187
|
+
* 内置表单配置
|
|
188
|
+
*/
|
|
189
|
+
export interface FormConfig<T = any, ValueType extends string = 'text'> {
|
|
190
|
+
/**
|
|
191
|
+
* @description 是否启用内置表单(设置为 false 时使用 operationContent 自定义)
|
|
192
|
+
* @default true
|
|
193
|
+
*/
|
|
194
|
+
enabled?: boolean;
|
|
195
|
+
/**
|
|
196
|
+
* @description 表单列配置(不传则从表格 columns 自动生成)
|
|
197
|
+
*/
|
|
198
|
+
columns?: ProFormColumnsType<T, ValueType>[];
|
|
199
|
+
/**
|
|
200
|
+
* @description 表单属性(透传给 Form 组件)
|
|
201
|
+
*/
|
|
202
|
+
formProps?: Omit<FormSchema<T, ValueType>, 'columns' | 'onFinish' | 'submitter'>;
|
|
203
|
+
/**
|
|
204
|
+
* @description 自定义表单底部渲染(返回 false 则隐藏底部)
|
|
205
|
+
*/
|
|
206
|
+
footerRender?: false | FormFooterRender<T>;
|
|
207
|
+
/**
|
|
208
|
+
* @description 表单提交回调
|
|
209
|
+
*/
|
|
210
|
+
onSubmit?: FormSubmitCallback<T>;
|
|
211
|
+
/**
|
|
212
|
+
* @description 新增时的提交按钮文本
|
|
213
|
+
*/
|
|
214
|
+
createSubmitText?: string;
|
|
215
|
+
/**
|
|
216
|
+
* @description 编辑时的提交按钮文本
|
|
217
|
+
*/
|
|
218
|
+
updateSubmitText?: string;
|
|
219
|
+
/**
|
|
220
|
+
* @description 取消按钮文本
|
|
221
|
+
*/
|
|
222
|
+
cancelText?: string;
|
|
223
|
+
/**
|
|
224
|
+
* @description 表单布局
|
|
225
|
+
* @default horizontal
|
|
226
|
+
*/
|
|
227
|
+
layout?: "horizontal" | "vertical" | "inline";
|
|
228
|
+
/**
|
|
229
|
+
* @description 标签宽度
|
|
230
|
+
*/
|
|
231
|
+
labelCol?: any;
|
|
232
|
+
/**
|
|
233
|
+
* @description 控件宽度
|
|
234
|
+
*/
|
|
235
|
+
wrapperCol?: any;
|
|
236
|
+
}
|
|
9
237
|
/**
|
|
10
238
|
* 公共属性
|
|
11
239
|
*/
|
|
@@ -16,8 +244,160 @@ export type ProTableProps<DataSource = Record<string, any>, ParamsType = Record<
|
|
|
16
244
|
size?: SizeType;
|
|
17
245
|
tableKey?: string;
|
|
18
246
|
/**
|
|
19
|
-
* @description
|
|
247
|
+
* @description Table action 的引用,便于自定义触发
|
|
248
|
+
*/
|
|
249
|
+
actionRef?: AntdProTableProps<DataSource, ParamsType, ValueType>['actionRef'];
|
|
250
|
+
/**
|
|
251
|
+
* @description 搜索表单类型(已废弃,请使用 search.layoutType)
|
|
20
252
|
* @default QueryFilter
|
|
253
|
+
* @deprecated 请使用 search.layoutType
|
|
21
254
|
*/
|
|
22
255
|
searchType?: SearchType;
|
|
256
|
+
/**
|
|
257
|
+
* @description 搜索表单配置
|
|
258
|
+
*/
|
|
259
|
+
search?: false | SearchConfig<DataSource, ValueType>;
|
|
260
|
+
/**
|
|
261
|
+
* @description 是否显示新增按钮
|
|
262
|
+
* @default true
|
|
263
|
+
*/
|
|
264
|
+
showCreateBtn?: boolean;
|
|
265
|
+
/**
|
|
266
|
+
* @description 新增按钮配置,设置为 false 时不显示
|
|
267
|
+
*/
|
|
268
|
+
createBtnProps?: HeaderButtonItem | false;
|
|
269
|
+
/**
|
|
270
|
+
* @description 新增按钮点击回调
|
|
271
|
+
*/
|
|
272
|
+
onCreate?: (selectKeys: Key[]) => void | Promise<void>;
|
|
273
|
+
/**
|
|
274
|
+
* @description 是否显示批量删除按钮
|
|
275
|
+
* @default true
|
|
276
|
+
*/
|
|
277
|
+
showBatchRemoveBtn?: boolean;
|
|
278
|
+
/**
|
|
279
|
+
* @description 批量删除按钮配置,设置为 false 时不显示
|
|
280
|
+
*/
|
|
281
|
+
batchRemoveBtnProps?: HeaderButtonItem | false;
|
|
282
|
+
/**
|
|
283
|
+
* @description 批量删除点击回调
|
|
284
|
+
* @returns 返回 false 时不刷新数据;返回 void 或 true 时正常刷新
|
|
285
|
+
*/
|
|
286
|
+
onBatchRemove?: (selectKeys: Key[]) => void | false | Promise<void | false>;
|
|
287
|
+
/**
|
|
288
|
+
* @description 自定义操作按钮列表
|
|
289
|
+
*/
|
|
290
|
+
headerButtonItems?: HeaderButtonItem[];
|
|
291
|
+
/**
|
|
292
|
+
* @description ButtonGroup 最大显示按钮数量
|
|
293
|
+
* @default 3
|
|
294
|
+
*/
|
|
295
|
+
headerButtonMaxCount?: number;
|
|
296
|
+
/**
|
|
297
|
+
* @description 是否开启页面大小缓存
|
|
298
|
+
* @default false
|
|
299
|
+
*/
|
|
300
|
+
openPageSizeCache?: boolean;
|
|
301
|
+
/**
|
|
302
|
+
* @description 默认页面大小
|
|
303
|
+
* @default 10
|
|
304
|
+
*/
|
|
305
|
+
defaultPageSize?: number;
|
|
306
|
+
/**
|
|
307
|
+
* @description 操作模式
|
|
308
|
+
* @default modal
|
|
309
|
+
*/
|
|
310
|
+
mode?: VlianTableMode;
|
|
311
|
+
/**
|
|
312
|
+
* @description 是否显示查看按钮
|
|
313
|
+
* @default true
|
|
314
|
+
*/
|
|
315
|
+
showViewBtn?: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* @description 查看按钮配置
|
|
318
|
+
*/
|
|
319
|
+
viewBtnProps?: RowButtonItem<DataSource> | false;
|
|
320
|
+
/**
|
|
321
|
+
* @description 是否显示编辑按钮
|
|
322
|
+
* @default true
|
|
323
|
+
*/
|
|
324
|
+
showUpdateBtn?: boolean;
|
|
325
|
+
/**
|
|
326
|
+
* @description 编辑按钮配置
|
|
327
|
+
*/
|
|
328
|
+
updateBtnProps?: RowButtonItem<DataSource> | false;
|
|
329
|
+
/**
|
|
330
|
+
* @description 是否显示删除按钮
|
|
331
|
+
* @default true
|
|
332
|
+
*/
|
|
333
|
+
showRemoveBtn?: boolean;
|
|
334
|
+
/**
|
|
335
|
+
* @description 删除按钮配置
|
|
336
|
+
*/
|
|
337
|
+
removeBtnProps?: RowButtonItem<DataSource> | false;
|
|
338
|
+
/**
|
|
339
|
+
* @description 自定义行操作按钮列表
|
|
340
|
+
*/
|
|
341
|
+
rowButtonItems?: RowButtonItem<DataSource>[];
|
|
342
|
+
/**
|
|
343
|
+
* @description 行操作按钮最大显示数量
|
|
344
|
+
* @default 3
|
|
345
|
+
*/
|
|
346
|
+
rowButtonMaxCount?: number;
|
|
347
|
+
/**
|
|
348
|
+
* @description Modal 配置
|
|
349
|
+
*/
|
|
350
|
+
modalProps?: Omit<ModalProps, 'open' | 'onCancel' | 'children'>;
|
|
351
|
+
/**
|
|
352
|
+
* @description Drawer 配置
|
|
353
|
+
*/
|
|
354
|
+
drawerProps?: Omit<DrawerProps, 'open' | 'onClose' | 'children'>;
|
|
355
|
+
/**
|
|
356
|
+
* @description 路由基础路径(router 模式下使用)
|
|
357
|
+
*/
|
|
358
|
+
routerBasePath?: string;
|
|
359
|
+
/**
|
|
360
|
+
* @description 操作内容渲染函数
|
|
361
|
+
*/
|
|
362
|
+
operationContent?: OperationContentRender<DataSource>;
|
|
363
|
+
/**
|
|
364
|
+
* @description 获取详情数据(用于编辑和查看)
|
|
365
|
+
*/
|
|
366
|
+
onGetDetail?: (record: DataSource, index: number) => Promise<DataSource>;
|
|
367
|
+
/**
|
|
368
|
+
* @description 删除回调
|
|
369
|
+
* @returns 返回 false 时不刷新数据;返回 void 或 true 时正常刷新
|
|
370
|
+
*/
|
|
371
|
+
onRemove?: (record: DataSource, index: number) => void | false | Promise<void | false>;
|
|
372
|
+
/**
|
|
373
|
+
* @description 内置表单配置
|
|
374
|
+
*/
|
|
375
|
+
formConfig?: FormConfig<DataSource, ValueType extends string ? ValueType : 'text'>;
|
|
376
|
+
/**
|
|
377
|
+
* @description 默认视图模式
|
|
378
|
+
* @default table
|
|
379
|
+
*/
|
|
380
|
+
defaultViewMode?: ViewMode;
|
|
381
|
+
/**
|
|
382
|
+
* @description 网格卡片渲染函数(网格模式下必需)
|
|
383
|
+
*/
|
|
384
|
+
gridCardRender?: GridCardRender<DataSource>;
|
|
385
|
+
/**
|
|
386
|
+
* @description 网格列数配置
|
|
387
|
+
* @default { xs: 1, sm: 2, md: 3, lg: 4, xl: 4, xxl: 6 }
|
|
388
|
+
*/
|
|
389
|
+
gridColumns?: {
|
|
390
|
+
xs?: number;
|
|
391
|
+
sm?: number;
|
|
392
|
+
md?: number;
|
|
393
|
+
lg?: number;
|
|
394
|
+
xl?: number;
|
|
395
|
+
xxl?: number;
|
|
396
|
+
};
|
|
397
|
+
/**
|
|
398
|
+
* @description 网格卡片中每行显示的字段数量
|
|
399
|
+
* @default 3
|
|
400
|
+
*/
|
|
401
|
+
gridCardFieldsPerRow?: number;
|
|
23
402
|
};
|
|
403
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import{useState}from"react";import*as React from"react";import{theme}from"antd";import classNames from"classnames";import{Typography}from"../Text";import{useStyles}from"./styles";import{SelectedItemsDisplay}from"./selected-items-display";import{SelectorModal}from"./modal";export var TabSelector=function(param){var tabs=param.tabs,_param_value=param.value,value=_param_value===void 0?{}:_param_value,onChange=param.onChange,_param_placeholder=param.placeholder,placeholder=_param_placeholder===void 0?"点击选择项目...":_param_placeholder,_param_disabled=param.disabled,disabled=_param_disabled===void 0?false:_param_disabled,_param_readonly=param.readonly,readonly=_param_readonly===void 0?false:_param_readonly,columns=param.columns;var hashId=theme.useToken().hashId;var modalRef=React.useRef(null);var _useState=_sliced_to_array(useState(value),2),selectedData=_useState[0],setSelectedData=_useState[1];useStyles();var handleClick=function(){var _modalRef_current;if(disabled||readonly){return}if(!tabs||tabs&&tabs.length===0){console.error("未配置tabs");return}console.info("a");(_modalRef_current=modalRef.current)===null||_modalRef_current===void 0?void 0:_modalRef_current.open()};var handleConfirm=function(data){setSelectedData(data);onChange===null||onChange===void 0?void 0:onChange(data)};var handleRemoveItem=function(item){var newData=_object_spread({},selectedData);var _iteratorNormalCompletion=true,_didIteratorError=false,_iteratorError=undefined;try{for(var _iterator=Object.keys(newData)[Symbol.iterator](),_step;!(_iteratorNormalCompletion=(_step=_iterator.next()).done);_iteratorNormalCompletion=true){var tabKey=_step.value;var tabItems=newData[tabKey]||[];var itemIndex=tabItems.findIndex(function(selected){return selected.id===item.id});if(itemIndex!==-1){newData[tabKey]=tabItems.filter(function(selected){return selected.id!==item.id});break}}}catch(err){_didIteratorError=true;_iteratorError=err}finally{try{if(!_iteratorNormalCompletion&&_iterator.return!=null){_iterator.return()}}finally{if(_didIteratorError){throw _iteratorError}}}setSelectedData(newData);onChange===null||onChange===void 0?void 0:onChange(newData)};var getAllSelectedItems=function(){return Object.values(selectedData).flat()};var getTotalCount=function(){return getAllSelectedItems().length};return React.createElement("div",{className:classNames(hashId,"vlian-tab-modal"),onClick:handleClick},getTotalCount()>0?React.createElement(SelectedItemsDisplay,{items:getAllSelectedItems(),onRemove:handleRemoveItem,compact:true}):React.createElement(Typography.Text,{type:"secondary"},placeholder),React.createElement(SelectorModal,{tabs:tabs,ref:modalRef,onConfirm:handleConfirm,initialValue:selectedData,columns:columns}))};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export*from"./types";export*from"./TabSelector";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { TabConfig, TableItem } from "./types";
|
|
3
|
+
import type { ProColumns } from '@ant-design/pro-components';
|
|
4
|
+
export type ModalProps = {
|
|
5
|
+
tabs: TabConfig[];
|
|
6
|
+
initialValue: Record<string, TableItem[]>;
|
|
7
|
+
onConfirm: (value: Record<string, TableItem[]>) => void;
|
|
8
|
+
columns?: ProColumns<Record<string, any>>[];
|
|
9
|
+
rowKey?: string;
|
|
10
|
+
width?: string;
|
|
11
|
+
};
|
|
12
|
+
export type ModalInst = {
|
|
13
|
+
open: () => void;
|
|
14
|
+
close: () => void;
|
|
15
|
+
};
|
|
16
|
+
export declare const SelectorModal: (props: ModalProps & React.RefAttributes<ModalInst>) => React.ReactElement | null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import{forwardRef,useImperativeHandle,useState,useEffect}from"react";import*as React from"react";import{Modal}from"../Modal";import{Tabs,Badge}from"antd";import{ProTable}from"@ant-design/pro-components";import{Typography}from"../Text";export var SelectorModal=forwardRef(function(param,ref){var _param_tabs=param.tabs,tabs=_param_tabs===void 0?[]:_param_tabs,initialValue=param.initialValue,onConfirm=param.onConfirm,columns=param.columns,_param_rowKey=param.rowKey,rowKey=_param_rowKey===void 0?"id":_param_rowKey,_param_width=param.width,width=_param_width===void 0?"800px":_param_width;var _tabs_;var _useState=_sliced_to_array(useState(false),2),open=_useState[0],setOpen=_useState[1];var _useState1=_sliced_to_array(useState(initialValue),2),selectedData=_useState1[0],setSelectedData=_useState1[1];var _useState2=_sliced_to_array(useState(((_tabs_=tabs[0])===null||_tabs_===void 0?void 0:_tabs_.key)||""),2),activeTab=_useState2[0],setActiveTab=_useState2[1];useEffect(function(){if(open){var _tabs_;setSelectedData(initialValue);setActiveTab(((_tabs_=tabs[0])===null||_tabs_===void 0?void 0:_tabs_.key)||"")}},[open,initialValue,tabs]);var handleSelectionChange=function(tabKey,items){setSelectedData(function(prev){return _object_spread_props(_object_spread({},prev),_define_property({},tabKey,items))})};var handleCancel=function(e){e===null||e===void 0?void 0:e.stopPropagation();e===null||e===void 0?void 0:e.preventDefault();setOpen(false)};var handleConfirm=function(e){e.stopPropagation();e.preventDefault();onConfirm===null||onConfirm===void 0?void 0:onConfirm(selectedData);handleCancel(e)};var getTotalSelectedCount=function(){return Object.values(selectedData).reduce(function(total,items){return total+items.length},0)};var getTabSelectedCount=function(tabKey){var _selectedData_tabKey;return((_selectedData_tabKey=selectedData[tabKey])===null||_selectedData_tabKey===void 0?void 0:_selectedData_tabKey.length)||0};useImperativeHandle(ref,function(){return{open:function(){setOpen(true)},close:function(){return handleCancel()}}});return React.createElement(Modal.CustomModal,{width:width,maxHeight:"80vh",title:React.createElement(Tabs,{activeKey:activeTab,items:tabs,onChange:setActiveTab}),open:open,maskClosable:false,keyboard:false,destroyOnHidden:true,okText:"确认选择 (".concat(getTotalSelectedCount()>0?getTotalSelectedCount():0,")"),onCancel:handleCancel,onOk:handleConfirm,getContainer:false,styles:{body:{padding:0}}},tabs.map(function(tab){return React.createElement(ProTable,{style:{display:activeTab!==tab.key?"none":"block"},cardProps:{bodyStyle:{padding:0}},key:tab.key,columns:columns,dataSource:tab.data,headerTitle:React.createElement(Typography,null,tab.label,React.createElement(Badge,null,getTabSelectedCount(tab.key)," ")),search:false,toolbar:{search:(tab===null||tab===void 0?void 0:tab.onSearch)?{onSearch:tab===null||tab===void 0?void 0:tab.onSearch,placeholder:"请输入关键字"}:undefined},options:false,rowKey:rowKey,rowSelection:{type:tab.selectionType,defaultSelectedRowKeys:(selectedData[tab.key]||[]).map(function(item){console.info("ad",item,item[rowKey]);return item[rowKey]}),onChange:function(_,selectedRows){handleSelectionChange(tab.key,selectedRows)}}})}))});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import type { TableItem } from "./types";
|
|
3
|
+
interface SelectedItemsDisplayProps {
|
|
4
|
+
items: TableItem[];
|
|
5
|
+
onRemove?: (item: TableItem) => void;
|
|
6
|
+
readonly?: boolean;
|
|
7
|
+
compact?: boolean;
|
|
8
|
+
renderItem?: (item: TableItem) => React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export declare function SelectedItemsDisplay({ items, onRemove, readonly, compact, renderItem, }: SelectedItemsDisplayProps): import("react/jsx-runtime").JSX.Element | null;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function _array_like_to_array(arr,len){if(len==null||len>arr.length)len=arr.length;for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function _array_with_holes(arr){if(Array.isArray(arr))return arr}function _iterable_to_array_limit(arr,i){var _i=arr==null?null:typeof Symbol!=="undefined"&&arr[Symbol.iterator]||arr["@@iterator"];if(_i==null)return;var _arr=[];var _n=true;var _d=false;var _s,_e;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done);_n=true){_arr.push(_s.value);if(i&&_arr.length===i)break}}catch(err){_d=true;_e=err}finally{try{if(!_n&&_i["return"]!=null)_i["return"]()}finally{if(_d)throw _e}}return _arr}function _non_iterable_rest(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _sliced_to_array(arr,i){return _array_with_holes(arr)||_iterable_to_array_limit(arr,i)||_unsupported_iterable_to_array(arr,i)||_non_iterable_rest()}function _unsupported_iterable_to_array(o,minLen){if(!o)return;if(typeof o==="string")return _array_like_to_array(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if(n==="Object"&&o.constructor)n=o.constructor.name;if(n==="Map"||n==="Set")return Array.from(n);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _array_like_to_array(o,minLen)}import{useState,useRef,useEffect}from"react";import*as React from"react";import{useSelectedItemStyles}from"./styles";import classNames from"classnames";import{Tag,theme,Popover}from"antd";import{PlusOutlined}from"@ant-design/icons";export function SelectedItemsDisplay(param){var items=param.items,onRemove=param.onRemove,_param_readonly=param.readonly,readonly=_param_readonly===void 0?false:_param_readonly,_param_compact=param.compact,compact=_param_compact===void 0?false:_param_compact,renderItem=param.renderItem;var hashId=theme.useToken().hashId;var _useState=_sliced_to_array(useState(items.length),2),visibleCount=_useState[0],setVisibleCount=_useState[1];var containerRef=useRef(null);var itemRefs=useRef([]);useSelectedItemStyles();useEffect(function(){var calculateVisibleItems=function(){if(!containerRef.current||items.length===0)return;var container=containerRef.current;var containerWidth=container.offsetWidth;var reservedWidth=80;var currentWidth=0;var visibleItems=0;for(var i=0;i<items.length;i++){var itemRef=itemRefs.current[i];if(!itemRef)continue;var itemWidth=itemRef.offsetWidth+(compact?4:8);if(currentWidth+itemWidth>containerWidth){break}if(i<items.length-1&¤tWidth+itemWidth+reservedWidth>containerWidth){break}currentWidth+=itemWidth;visibleItems=i+1}setVisibleCount(Math.max(1,visibleItems))};var timer=setTimeout(calculateVisibleItems,100);window.addEventListener("resize",calculateVisibleItems);return function(){clearTimeout(timer);window.removeEventListener("resize",calculateVisibleItems)}},[items,compact]);if(items.length===0){return null}var visibleItems=items.slice(0,visibleCount);var hiddenItems=items.slice(visibleCount);var hasHiddenItems=hiddenItems.length>0;return React.createElement("div",{ref:containerRef,className:classNames(hashId,"vlian-tab-modal__slected-items")},visibleItems.map(function(item,index){return React.createElement(Tag,{key:item.id,ref:function(el){return itemRefs.current[index]=el},closable:!readonly,onClose:function(e){e.preventDefault();e.stopPropagation();onRemove===null||onRemove===void 0?void 0:onRemove(item)}},renderItem?renderItem(item):item.name)}),hasHiddenItems&&React.createElement(Popover,{content:React.createElement("div",{className:classNames(hashId,"vlian-tab-modal__slected-items-hidden")},hiddenItems.map(function(item){return React.createElement(Tag,{key:item.id,closable:!readonly,onClose:function(e){e.preventDefault();e.stopPropagation();onRemove===null||onRemove===void 0?void 0:onRemove(item)}},renderItem?renderItem(item):item.name)})),title:"title"},React.createElement(PlusOutlined,null),hiddenItems.length))}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{theme}from"antd";import{useStyleRegister}from"@ant-design/cssinjs";export var useStyles=function(){var _theme_useToken=theme.useToken(),hashId=_theme_useToken.hashId,token=_theme_useToken.token,GlobalToken=_theme_useToken.theme;useStyleRegister({theme:GlobalToken,token:token,path:["VlianTabModal"],hashId:hashId},function(){return{".vlian-tab-modal":{width:"100%",padding:token.paddingXS,borderRadius:token.borderRadiusSM,border:"1px solid ".concat(token.colorBorderSecondary),cursor:"pointer","& .ant-tabs-nav":{marginBottom:0}}}})};export var useSelectedItemStyles=function(){var _theme_useToken=theme.useToken(),hashId=_theme_useToken.hashId,token=_theme_useToken.token,GlobalToken=_theme_useToken.theme;useStyleRegister({theme:GlobalToken,token:token,path:["VlianTabModalSelectedItems"],hashId:hashId},function(){return{".vlian-tab-modal__slected-items":{display:"flex",flexWrap:"wrap",gap:"5px",alignItems:"center",width:"100%"},".vlian-tab-modal__slected-items-hidden":{display:"flex",flexWrap:"wrap",gap:"5px",alignItems:"center"}}})};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { ProColumns } from "@ant-design/pro-components";
|
|
2
|
+
export interface TableItem {
|
|
3
|
+
id: number;
|
|
4
|
+
name: string;
|
|
5
|
+
code: string;
|
|
6
|
+
category: string;
|
|
7
|
+
[key: string]: any;
|
|
8
|
+
}
|
|
9
|
+
export interface TabConfig {
|
|
10
|
+
key: string;
|
|
11
|
+
label: string;
|
|
12
|
+
selectionType: 'checkbox' | 'radio';
|
|
13
|
+
data: TableItem[];
|
|
14
|
+
onSearch?: (value: string) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface TabSelectorProps {
|
|
17
|
+
tabs: TabConfig[];
|
|
18
|
+
value?: Record<string, TableItem[]>;
|
|
19
|
+
onChange?: (value: Record<string, TableItem[]>) => void;
|
|
20
|
+
placeholder?: string;
|
|
21
|
+
disabled?: boolean;
|
|
22
|
+
readonly?: boolean;
|
|
23
|
+
columns?: ProColumns<Record<string, any>>[];
|
|
24
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -6,6 +6,10 @@ export { VaSwitch, type VASwitchProps } from "./Switch";
|
|
|
6
6
|
export { CheckCard, type CheckCardProps } from "./CheckCard";
|
|
7
7
|
export { Typography } from "./Text";
|
|
8
8
|
export { Image } from "./images";
|
|
9
|
-
export * from "./
|
|
9
|
+
export * from "./ProTable2";
|
|
10
10
|
export { ButtonGroup, type ButtonGroupProps, type ButtonGroupItem } from './ButtonGroup';
|
|
11
11
|
export { ConfirmButton, type ConfirmButtonProps } from './ConfirmButton';
|
|
12
|
+
export * from "./TabSelector";
|
|
13
|
+
export * from "./Beyond";
|
|
14
|
+
export * from "./List";
|
|
15
|
+
export * from "./Exports";
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export{Card}from"./Card";export*from"./Card";export{Modal}from"./Modal";export*from"./Modal";export{VaSwitch}from"./Switch";export{CheckCard}from"./CheckCard";export{Typography}from"./Text";export{Image}from"./images";export*from"./
|
|
1
|
+
export{Card}from"./Card";export*from"./Card";export{Modal}from"./Modal";export*from"./Modal";export{VaSwitch}from"./Switch";export{CheckCard}from"./CheckCard";export{Typography}from"./Text";export{Image}from"./images";export*from"./ProTable2";export{ButtonGroup}from"./ButtonGroup";export{ConfirmButton}from"./ConfirmButton";export*from"./TabSelector";export*from"./Beyond";export*from"./List";export*from"./Exports";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
var local={switch:{activeText:"启用",inactiveText:"禁用"},form:{text:"请输入",select:"请选择",start:"开始",ended:"结束",reset:"重置",submit:"提交",query:"查询"},table:{createBtnText:"新增",batchRemoveBtnText:"批量删除",batchRemoveModalTitle:"警告",batchRemoveModalContent:"即将删除{count}项数据,删除后无法恢复,是否继续?",createTitle:"新增",updateTitle:"更新",viewTitle:"详情",operateColumnTitle:"操作",viewBtnText:"查看",updateBtnText:"编辑",removeBtnText:"删除",moreBtnText:"更多",removeConfirm:"确定要删除这项吗?",removeTip:"警告?",backText:"返回",pagePt:"请输入添加项",pageAddText:"保存"},upload:{btnText:"上传",limitSize:"文件大小不能超过 {limit}MB!",uploadFail:"上传失败"},adminTransfer:{unSelectText:"取消选择",selectText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除"},treeTable:{triggerText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除",waitSelectListText:"待选列表",selectedListText:"已选列表",searchTextPt:"请输入关键字",selectedText:"已选",unselectedText:"未选",treeTitle:"树型列表"},exports:{text:"导出",progressResText:"正在导出",successResText:"导出成功",errorResText:"导出失败",cancelBtnText:"取消",exportTitle:"导出",retryText:"重试"},treePanel:{selectedText:"已选",clearText:"清空",rootText:"全部",limitText:"最多选择${maxCount}项。",searchPlaceholder:"请输入关键字"}};export default local;
|
|
1
|
+
var local={switch:{activeText:"启用",inactiveText:"禁用"},form:{text:"请输入",select:"请选择",start:"开始",ended:"结束",reset:"重置",submit:"提交",query:"查询"},table:{createBtnText:"新增",batchRemoveBtnText:"批量删除",batchRemoveModalTitle:"警告",batchRemoveModalContent:"即将删除{count}项数据,删除后无法恢复,是否继续?",createTitle:"新增",updateTitle:"更新",viewTitle:"详情",operateColumnTitle:"操作",viewBtnText:"查看",updateBtnText:"编辑",removeBtnText:"删除",moreBtnText:"更多",removeConfirm:"确定要删除这项吗?",removeTip:"警告?",backText:"返回",pagePt:"请输入添加项",pageAddText:"保存",createSubmitText:"创建",updateSubmitText:"保存",submitText:"提交",cancelText:"取消",closeText:"关闭"},upload:{btnText:"上传",limitSize:"文件大小不能超过 {limit}MB!",uploadFail:"上传失败"},adminTransfer:{unSelectText:"取消选择",selectText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除"},treeTable:{triggerText:"选择",selectedOption:"已选{length}项",clear:"清空",removeBtnText:"删除",waitSelectListText:"待选列表",selectedListText:"已选列表",searchTextPt:"请输入关键字",selectedText:"已选",unselectedText:"未选",treeTitle:"树型列表"},exports:{text:"导出",progressResText:"正在导出",successResText:"导出成功",errorResText:"导出失败",cancelBtnText:"取消",exportTitle:"导出",retryText:"重试"},treePanel:{selectedText:"已选",clearText:"清空",rootText:"全部",limitText:"最多选择${maxCount}项。",searchPlaceholder:"请输入关键字"}};export default local;
|
package/package.json
CHANGED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { type Dispatch, type SetStateAction } from "react";
|
|
2
|
-
import type { VlianTableMode, OperateType, TablePermissionMap, HasPermissionFn } from "./types";
|
|
3
|
-
import type { ConfirmMode } from "../ConfirmButton";
|
|
4
|
-
import type { SizeType } from "antd/es/config-provider/SizeContext";
|
|
5
|
-
export interface VlianTableContextType {
|
|
6
|
-
size?: SizeType;
|
|
7
|
-
baseUrl: string;
|
|
8
|
-
/**
|
|
9
|
-
* @description 模式
|
|
10
|
-
*/
|
|
11
|
-
mode: VlianTableMode;
|
|
12
|
-
/**
|
|
13
|
-
* @description 是否显示搜索
|
|
14
|
-
*/
|
|
15
|
-
visibleSearch: boolean;
|
|
16
|
-
/**
|
|
17
|
-
* @description 设置是否显示搜索
|
|
18
|
-
*/
|
|
19
|
-
setVisibleSearch: Dispatch<SetStateAction<boolean>>;
|
|
20
|
-
/**
|
|
21
|
-
* @description 当前操作
|
|
22
|
-
*/
|
|
23
|
-
operateType: OperateType;
|
|
24
|
-
/**
|
|
25
|
-
* @description 设置当前操作
|
|
26
|
-
*/
|
|
27
|
-
setOperateType: Dispatch<SetStateAction<OperateType>>;
|
|
28
|
-
/**
|
|
29
|
-
* @description 当前记录
|
|
30
|
-
*/
|
|
31
|
-
currentRecord?: any;
|
|
32
|
-
/**
|
|
33
|
-
* @description 设置当前记录
|
|
34
|
-
*/
|
|
35
|
-
setCurrentRecord: Dispatch<SetStateAction<any>>;
|
|
36
|
-
removeMode: ConfirmMode;
|
|
37
|
-
currentIndex: number;
|
|
38
|
-
onViewClick: (record: any, index: number, action: any) => Promise<any>;
|
|
39
|
-
onUpdateClick: (record: any, index: number, action: any) => Promise<any>;
|
|
40
|
-
onRemoveClick: (record: any, index: number, action: any) => Promise<any>;
|
|
41
|
-
handleOpenPopup: () => Promise<any>;
|
|
42
|
-
/**
|
|
43
|
-
* @description 权限
|
|
44
|
-
*/
|
|
45
|
-
permission?: TablePermissionMap;
|
|
46
|
-
/**
|
|
47
|
-
* @description 判断权限
|
|
48
|
-
*/
|
|
49
|
-
hasPermission?: HasPermissionFn;
|
|
50
|
-
/**
|
|
51
|
-
* 设置当前信息
|
|
52
|
-
* @param type
|
|
53
|
-
* @param record
|
|
54
|
-
* @param index
|
|
55
|
-
*/
|
|
56
|
-
setCurrentInfo: (type: OperateType, record: any, index: number) => Promise<void>;
|
|
57
|
-
closePopup: () => Promise<void>;
|
|
58
|
-
}
|
|
59
|
-
export declare const VlianTableContext: import("react").Context<VlianTableContextType | undefined>;
|
package/dist/ProTable/context.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{createContext}from"react";export var VlianTableContext=createContext(undefined);
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { type ButtonProps } from "../Button";
|
|
3
|
-
export type FormFooterConfig = {
|
|
4
|
-
cancelText?: React.ReactNode;
|
|
5
|
-
confirmText?: React.ReactNode;
|
|
6
|
-
};
|
|
7
|
-
export type FormFooterProps = {
|
|
8
|
-
config?: FormFooterConfig;
|
|
9
|
-
/** @name 提交按钮的 props */
|
|
10
|
-
submitButtonProps?: false | (ButtonProps & {
|
|
11
|
-
preventDefault?: boolean;
|
|
12
|
-
});
|
|
13
|
-
/** @name 重置按钮的 props */
|
|
14
|
-
resetButtonProps?: false | (ButtonProps & {
|
|
15
|
-
preventDefault?: boolean;
|
|
16
|
-
});
|
|
17
|
-
render?: ((props: FormFooterProps & Record<string, any> & {
|
|
18
|
-
submit: () => void;
|
|
19
|
-
reset: () => void;
|
|
20
|
-
}, dom: React.JSX.Element[]) => React.ReactNode[] | React.ReactNode | false) | false;
|
|
21
|
-
onSubmit?: () => void;
|
|
22
|
-
onReset?: () => void;
|
|
23
|
-
submitterPosition?: React.CSSProperties['justifyContent'];
|
|
24
|
-
submitLoading?: boolean;
|
|
25
|
-
};
|
|
26
|
-
export declare const FormFooter: React.FC<FormFooterProps>;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg);var value=info.value}catch(error){reject(error);return}if(info.done){resolve(value)}else{Promise.resolve(value).then(_next,_throw)}}function _async_to_generator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(undefined)})}}function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true})}else{obj[key]=value}return obj}function _object_spread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};var ownKeys=Object.keys(source);if(typeof Object.getOwnPropertySymbols==="function"){ownKeys=ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym){return Object.getOwnPropertyDescriptor(source,sym).enumerable}))}ownKeys.forEach(function(key){_define_property(target,key,source[key])})}return target}function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly){symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable})}keys.push.apply(keys,symbols)}return keys}function _object_spread_props(target,source){source=source!=null?source:{};if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source))}else{ownKeys(Object(source)).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key))})}return target}function _ts_generator(thisArg,body){var f,y,t,_={label:0,sent:function(){if(t[0]&1)throw t[1];return t[1]},trys:[],ops:[]},g=Object.create((typeof Iterator==="function"?Iterator:Object).prototype);return g.next=verb(0),g["throw"]=verb(1),g["return"]=verb(2),typeof Symbol==="function"&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return step([n,v])}}function step(op){if(f)throw new TypeError("Generator is already executing.");while(g&&(g=0,op[0]&&(_=0)),_)try{if(f=1,y&&(t=op[0]&2?y["return"]:op[0]?y["throw"]||((t=y["return"])&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;if(y=0,t)op=[op[0]&2,t.value];switch(op[0]){case 0:case 1:t=op;break;case 4:_.label++;return{value:op[1],done:false};case 5:_.label++;y=op[1];op=[0];continue;case 7:op=_.ops.pop();_.trys.pop();continue;default:if(!(t=_.trys,t=t.length>0&&t[t.length-1])&&(op[0]===6||op[0]===2)){_=0;continue}if(op[0]===3&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(op[0]===6&&_.label<t[1]){_.label=t[1];t=op;break}if(t&&_.label<t[2]){_.label=t[2];_.ops.push(op);break}if(t[2])_.ops.pop();_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e];y=0}finally{f=t=0}if(op[0]&5)throw op[1];return{value:op[0]?op[1]:void 0,done:true}}}import*as React from"react";import{Flex}from"antd";import{Button}from"../Button";import{useLocale}from"../locale";import{useContext}from"react";import{VlianTableContext}from"./context.ts";export var FormFooter=function(props){var tmp=props.config,_ref=tmp===void 0?{}:tmp,cancelText=_ref.cancelText,confirmText=_ref.confirmText,resetButtonProps=props.resetButtonProps,submitButtonProps=props.submitButtonProps,onSubmit=props.onSubmit,onReset=props.onReset,render=props.render,submitLoading=props.submitLoading,submitterPosition=props.submitterPosition;var context=useContext(VlianTableContext);var size=(context||{}).size;var messages=useLocale().messages;var handleSubmitClick=function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){onSubmit===null||onSubmit===void 0?void 0:onSubmit();return[2]})})()};var handleCancelClick=function(){return _async_to_generator(function(){return _ts_generator(this,function(_state){onReset===null||onReset===void 0?void 0:onReset();return[2]})})()};var ResetButton=React.useMemo(function(){if(resetButtonProps===false){return null}var _$props=_object_spread_props(_object_spread({size:size},resetButtonProps),{onClick:handleCancelClick});return React.createElement(Button,_object_spread({key:"cancel"},_$props),cancelText!==null&&cancelText!==void 0?cancelText:messages.form.reset)},[cancelText,resetButtonProps]);var SubmitButton=React.useMemo(function(){if(resetButtonProps===false){return null}var _$props=_object_spread_props(_object_spread({type:"primary",size:size,loading:submitLoading},submitButtonProps),{onClick:handleSubmitClick});return React.createElement(Button,_object_spread({key:"submit"},_$props),confirmText!==null&&confirmText!==void 0?confirmText:messages.form.submit)},[confirmText,submitButtonProps,handleSubmitClick]);var currentRender=React.useCallback(function(){if(render===false){return null}if(render){return render(_object_spread_props(_object_spread({},props),{submit:handleSubmitClick,reset:handleCancelClick}),[ResetButton,SubmitButton].filter(Boolean))}return[ResetButton,SubmitButton]},[ResetButton,SubmitButton]);return React.createElement(Flex,{justify:submitterPosition,align:"center",gap:8},currentRender())};
|
package/dist/ProTable/index.d.ts
DELETED