@cfmm/umi-plugins-ui-v2 0.0.9 → 0.0.10
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/cjs/components/CrudTable.tpl +39 -10
- package/dist/cjs/types/CrudTableTypes.d.ts +1 -1
- package/dist/cjs/types/CrudTableTypes.js +1 -1
- package/dist/esm/components/CrudTable.tpl +39 -10
- package/dist/esm/types/CrudTableTypes.d.ts +1 -1
- package/dist/esm/types/CrudTableTypes.js +1 -1
- package/package.json +1 -1
|
@@ -69,12 +69,15 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
69
69
|
updateConfig = {},
|
|
70
70
|
actionColumnConfig = {} as CrudTableConfig['actionColumnConfig'],
|
|
71
71
|
downloadTemplate = {},
|
|
72
|
+
|
|
72
73
|
onAdd,
|
|
73
74
|
onView,
|
|
74
75
|
onEdit,
|
|
75
76
|
onDelete,
|
|
76
77
|
onActionLog,
|
|
78
|
+
|
|
77
79
|
onAfterSearch,
|
|
80
|
+
onBeforeAdd,
|
|
78
81
|
onBeforeEdit,
|
|
79
82
|
onBeforeDelete,
|
|
80
83
|
onAfterDelete,
|
|
@@ -317,7 +320,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
317
320
|
processedResult = interceptors.query.response(result);
|
|
318
321
|
}
|
|
319
322
|
|
|
320
|
-
onAfterSearch?.(processedResult);
|
|
323
|
+
onAfterSearch?.(processedResult as API.Result_TableListType<T[]>);
|
|
321
324
|
setTableList(processedResult.data);
|
|
322
325
|
return processedResult;
|
|
323
326
|
});
|
|
@@ -363,12 +366,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
363
366
|
if (actionLoading) return;
|
|
364
367
|
|
|
365
368
|
// 自定义编辑前处理
|
|
366
|
-
let editData = record;
|
|
367
|
-
if (onBeforeEdit) {
|
|
368
|
-
const result = await onBeforeEdit(record);
|
|
369
|
-
if (!result) return;
|
|
370
|
-
editData = result;
|
|
371
|
-
}
|
|
369
|
+
let editData = { ...record };
|
|
372
370
|
|
|
373
371
|
// 如果有详情查询API,先查询详情
|
|
374
372
|
if (apis.queryById) {
|
|
@@ -393,12 +391,27 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
393
391
|
editData = processedData;
|
|
394
392
|
}
|
|
395
393
|
|
|
396
|
-
|
|
394
|
+
// 自定义编辑前处理
|
|
395
|
+
if (onBeforeEdit) {
|
|
396
|
+
const result = await onBeforeEdit(editData);
|
|
397
|
+
/** 编辑前回调函数,返回false则不进行编辑,无返回或者true则使用默认数据进行编辑,返回对象则使用返回的对象进行编辑 */
|
|
398
|
+
if (result === false) return;
|
|
397
399
|
|
|
400
|
+
if (result && typeof result === 'object' && !Array.isArray(result)) {
|
|
401
|
+
editData = result; // 使用返回的对象
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
// 设置编辑行
|
|
406
|
+
setEditRow(editData);
|
|
407
|
+
|
|
408
|
+
// 打开默认编辑弹窗
|
|
409
|
+
setUpdateModalOpen(true);
|
|
410
|
+
// 设置表单值
|
|
398
411
|
updateFormRef.current?.setFieldsValue(editData);
|
|
399
412
|
|
|
413
|
+
// 打开自定义编辑弹窗
|
|
400
414
|
updateDrawerRef.current?.show();
|
|
401
|
-
setEditRow(editData);
|
|
402
415
|
});
|
|
403
416
|
|
|
404
417
|
/**
|
|
@@ -722,7 +735,21 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
722
735
|
auth: getAuthorityFn(defaultAuthCodes.add),
|
|
723
736
|
key: 'add',
|
|
724
737
|
label: (
|
|
725
|
-
<a
|
|
738
|
+
<a
|
|
739
|
+
onClick={
|
|
740
|
+
onAdd
|
|
741
|
+
? onAdd
|
|
742
|
+
: async () => {
|
|
743
|
+
if (onBeforeAdd) {
|
|
744
|
+
const result = await onBeforeAdd();
|
|
745
|
+
/** 编辑前回调函数,返回false则不进行编辑,无返回或者true则进行新增 */
|
|
746
|
+
if (result === false) return;
|
|
747
|
+
}
|
|
748
|
+
setCreateModalOpen(true);
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
key="add"
|
|
752
|
+
>
|
|
726
753
|
<PlusOutlined style={{ marginRight: 6 }} />
|
|
727
754
|
{formatMessage({ id: 'cfmmUI.common.button.add', defaultMessage: '新增' })}
|
|
728
755
|
</a>
|
|
@@ -1051,6 +1078,8 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
1051
1078
|
* @param props.onDelete - 自定义删除按钮点击回调
|
|
1052
1079
|
* @param props.onActionLog - 自定义操作日志点击回调
|
|
1053
1080
|
* @param props.onBeforeEdit - 编辑前回调
|
|
1081
|
+
* @param props.onBeforeAdd - 新增前回调,无返回或者true则进行新增
|
|
1082
|
+
* @param props.onBeforeEdit - 编辑前回调,无返回或者true则使用默认数据进行编辑,返回对象则使用返回的对象进行编辑
|
|
1054
1083
|
* @param props.onBeforeDelete - 删除前回调
|
|
1055
1084
|
* @param props.onAfterDelete - 删除后回调
|
|
1056
1085
|
* @param props.onAfterAction - 操作后回调
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
1
|
+
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u65B0\u589E\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u65B0\u589E\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u8FDB\u884C\u65B0\u589E */\n onBeforeAdd?: () => Promise<null | boolean | void> | boolean | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E\u8FDB\u884C\u7F16\u8F91\uFF0C\u8FD4\u56DE\u5BF9\u8C61\u5219\u4F7F\u7528\u8FD4\u56DE\u7684\u5BF9\u8C61\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null | boolean | void> | T | boolean | void;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -4,4 +4,4 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.CrudTableTypes = void 0;
|
|
7
|
-
var CrudTableTypes = exports.CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
7
|
+
var CrudTableTypes = exports.CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u65B0\u589E\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u65B0\u589E\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u8FDB\u884C\u65B0\u589E */\n onBeforeAdd?: () => Promise<null | boolean | void> | boolean | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E\u8FDB\u884C\u7F16\u8F91\uFF0C\u8FD4\u56DE\u5BF9\u8C61\u5219\u4F7F\u7528\u8FD4\u56DE\u7684\u5BF9\u8C61\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null | boolean | void> | T | boolean | void;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -69,12 +69,15 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
69
69
|
updateConfig = {},
|
|
70
70
|
actionColumnConfig = {} as CrudTableConfig['actionColumnConfig'],
|
|
71
71
|
downloadTemplate = {},
|
|
72
|
+
|
|
72
73
|
onAdd,
|
|
73
74
|
onView,
|
|
74
75
|
onEdit,
|
|
75
76
|
onDelete,
|
|
76
77
|
onActionLog,
|
|
78
|
+
|
|
77
79
|
onAfterSearch,
|
|
80
|
+
onBeforeAdd,
|
|
78
81
|
onBeforeEdit,
|
|
79
82
|
onBeforeDelete,
|
|
80
83
|
onAfterDelete,
|
|
@@ -317,7 +320,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
317
320
|
processedResult = interceptors.query.response(result);
|
|
318
321
|
}
|
|
319
322
|
|
|
320
|
-
onAfterSearch?.(processedResult);
|
|
323
|
+
onAfterSearch?.(processedResult as API.Result_TableListType<T[]>);
|
|
321
324
|
setTableList(processedResult.data);
|
|
322
325
|
return processedResult;
|
|
323
326
|
});
|
|
@@ -363,12 +366,7 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
363
366
|
if (actionLoading) return;
|
|
364
367
|
|
|
365
368
|
// 自定义编辑前处理
|
|
366
|
-
let editData = record;
|
|
367
|
-
if (onBeforeEdit) {
|
|
368
|
-
const result = await onBeforeEdit(record);
|
|
369
|
-
if (!result) return;
|
|
370
|
-
editData = result;
|
|
371
|
-
}
|
|
369
|
+
let editData = { ...record };
|
|
372
370
|
|
|
373
371
|
// 如果有详情查询API,先查询详情
|
|
374
372
|
if (apis.queryById) {
|
|
@@ -393,12 +391,27 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
393
391
|
editData = processedData;
|
|
394
392
|
}
|
|
395
393
|
|
|
396
|
-
|
|
394
|
+
// 自定义编辑前处理
|
|
395
|
+
if (onBeforeEdit) {
|
|
396
|
+
const result = await onBeforeEdit(editData);
|
|
397
|
+
/** 编辑前回调函数,返回false则不进行编辑,无返回或者true则使用默认数据进行编辑,返回对象则使用返回的对象进行编辑 */
|
|
398
|
+
if (result === false) return;
|
|
397
399
|
|
|
400
|
+
if (result && typeof result === 'object' && !Array.isArray(result)) {
|
|
401
|
+
editData = result; // 使用返回的对象
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
|
|
405
|
+
// 设置编辑行
|
|
406
|
+
setEditRow(editData);
|
|
407
|
+
|
|
408
|
+
// 打开默认编辑弹窗
|
|
409
|
+
setUpdateModalOpen(true);
|
|
410
|
+
// 设置表单值
|
|
398
411
|
updateFormRef.current?.setFieldsValue(editData);
|
|
399
412
|
|
|
413
|
+
// 打开自定义编辑弹窗
|
|
400
414
|
updateDrawerRef.current?.show();
|
|
401
|
-
setEditRow(editData);
|
|
402
415
|
});
|
|
403
416
|
|
|
404
417
|
/**
|
|
@@ -722,7 +735,21 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
722
735
|
auth: getAuthorityFn(defaultAuthCodes.add),
|
|
723
736
|
key: 'add',
|
|
724
737
|
label: (
|
|
725
|
-
<a
|
|
738
|
+
<a
|
|
739
|
+
onClick={
|
|
740
|
+
onAdd
|
|
741
|
+
? onAdd
|
|
742
|
+
: async () => {
|
|
743
|
+
if (onBeforeAdd) {
|
|
744
|
+
const result = await onBeforeAdd();
|
|
745
|
+
/** 编辑前回调函数,返回false则不进行编辑,无返回或者true则进行新增 */
|
|
746
|
+
if (result === false) return;
|
|
747
|
+
}
|
|
748
|
+
setCreateModalOpen(true);
|
|
749
|
+
}
|
|
750
|
+
}
|
|
751
|
+
key="add"
|
|
752
|
+
>
|
|
726
753
|
<PlusOutlined style={{ marginRight: 6 }} />
|
|
727
754
|
{formatMessage({ id: 'cfmmUI.common.button.add', defaultMessage: '新增' })}
|
|
728
755
|
</a>
|
|
@@ -1051,6 +1078,8 @@ function CrudTable<T extends Record<string, any>, U = {}, C = {}>(
|
|
|
1051
1078
|
* @param props.onDelete - 自定义删除按钮点击回调
|
|
1052
1079
|
* @param props.onActionLog - 自定义操作日志点击回调
|
|
1053
1080
|
* @param props.onBeforeEdit - 编辑前回调
|
|
1081
|
+
* @param props.onBeforeAdd - 新增前回调,无返回或者true则进行新增
|
|
1082
|
+
* @param props.onBeforeEdit - 编辑前回调,无返回或者true则使用默认数据进行编辑,返回对象则使用返回的对象进行编辑
|
|
1054
1083
|
* @param props.onBeforeDelete - 删除前回调
|
|
1055
1084
|
* @param props.onAfterDelete - 删除后回调
|
|
1056
1085
|
* @param props.onAfterAction - 操作后回调
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
1
|
+
export declare const CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u65B0\u589E\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u65B0\u589E\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u8FDB\u884C\u65B0\u589E */\n onBeforeAdd?: () => Promise<null | boolean | void> | boolean | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E\u8FDB\u884C\u7F16\u8F91\uFF0C\u8FD4\u56DE\u5BF9\u8C61\u5219\u4F7F\u7528\u8FD4\u56DE\u7684\u5BF9\u8C61\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null | boolean | void> | T | boolean | void;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export var CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DET\uFF0C\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null>;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|
|
1
|
+
export var CrudTableTypes = "\nexport interface CrudTableConfig<T = any, U = {}, C = {}> {\n // \u57FA\u7840\u914D\u7F6E\n baseLocalCode?: string;\n baseLocalName?: string;\n rowKey: keyof T;\n\n /** \u591A\u8BED\u8A00\u7F16\u8F91\u914D\u7F6E */\n multiLang?: {\n /** \u591A\u8BED\u8A00\u8868\u6570\u636E */\n multiLangList?: ExportMultiLangListItem[];\n /** \u591A\u8BED\u8A00\u5B57\u6BB5\u914D\u7F6E */\n fields: {\n /** \u5B57\u6BB5\u540D */\n fieldName: keyof T;\n /** \u8868\u540D */\n tableName: string;\n /** \u5217\u540D */\n columnName: string;\n /** \u70B9\u51FB\u56DE\u8C03\uFF0C\u7528\u4E8E\u8BBE\u7F6ElangInfoItem */\n onClick?: (record: T) => LangInfoItem;\n }[];\n /** \u81EA\u5B9A\u4E49\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n exportMultiLangData?: () => Promise<boolean | void>;\n /** \u81EA\u5B9A\u4E49\u67E5\u8BE2\u5BFC\u51FA\u591A\u8BED\u8A00\u51FD\u6570 */\n queryExportMultiLangData?: (tableName: string, columnName: string) => Promise<ExportMultiLangListItem[]>;\n /** \u81EA\u5B9A\u4E49\u5BFC\u5165\u591A\u8BED\u8A00\u51FD\u6570 */\n importMultiLangData?: (list: ExportMultiLangListItem[], tableName: string, columnName: string) => Promise<{ success: boolean; failMsg?: string; data?: any } | void> | void;\n };\n \n /** \u6309\u94AE\u6743\u9650\u7F16\u7801\uFF0C\u9ED8\u8BA4\u4F1A\u6839\u636EbaseLocalCode\u751F\u6210 */\n authCodes?: {\n view?: string | boolean | ((record: T) => boolean | undefined);\n add?: string | boolean;\n edit?: string | boolean | ((record: T) => boolean | undefined);\n /** remove\u6743\u9650\u662F\u51FD\u6570\u65F6\uFF0C\u5982\u679C\u9700\u8981\u6279\u91CF\u5220\u9664\u8BF7\u8BBE\u7F6EbatchRemoveAuth\u4E3Atrue, \u5426\u5219\u4E0D\u4F1A\u663E\u793A\u6279\u91CF\u5220\u9664\u6309\u94AE */\n remove?: string | boolean | ((record: T) => boolean | undefined);\n /** \u6279\u91CF\u5220\u9664\u6743\u9650 */\n batchRemoveAuth?: string | boolean;\n record?: string | boolean | ((record: T) => boolean | undefined);\n };\n\n /** API\u65B9\u6CD5 */\n apis: {\n /** \u67E5\u8BE2\u65B9\u6CD5 */\n query: (params: any) => Promise<any>;\n /** \u64CD\u4F5C\u65B9\u6CD5 */\n handle: (method: API.MethodTypes, data: any) => Promise<any>;\n /** \u6839\u636Eid\u67E5\u8BE2\u8BE6\u60C5\u65B9\u6CD5\uFF0C\u6CA1\u4F20\u5219\u4F7F\u7528\u884C\u6570\u636E\u8FDB\u884C\u7F16\u8F91 */\n queryById?: (id: any) => Promise<any>;\n /** \u5BFC\u5165\u65B9\u6CD5 */\n importData?: (list: T[]) => Promise<any>;\n };\n\n /** API\u62E6\u622A\u5668 */\n interceptors?: {\n /** \u67E5\u8BE2\u62E6\u622A\u5668 */\n query?: {\n /** \u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (params: any) => any;\n /** \u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u64CD\u4F5C\u62E6\u622A\u5668 */\n handle?: {\n /** \u64CD\u4F5C\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (method: API.MethodTypes, data: any) => { method?: API.MethodTypes; data: any };\n /** \u64CD\u4F5C\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u64CD\u4F5C\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (method: API.MethodTypes, result: any) => any;\n };\n /** \u8BE6\u60C5\u67E5\u8BE2\u62E6\u622A\u5668 */\n queryById?: {\n /** \u8BE6\u60C5\u67E5\u8BE2\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (id: any) => any;\n /** \u8BE6\u60C5\u67E5\u8BE2\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u8BE6\u60C5\u67E5\u8BE2\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n };\n /** \u5BFC\u5165\u62E6\u622A\u5668 */\n importData?: {\n /** \u5BFC\u5165\u8BF7\u6C42\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u53C2\u6570\u8FDB\u884C\u5904\u7406 */\n request?: (list: T[]) => any;\n /** \u5BFC\u5165\u54CD\u5E94\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u7ED3\u679C\u8FDB\u884C\u5904\u7406 */\n response?: (result: any) => any;\n /** \u5BFC\u5165\u6821\u9A8C\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u6821\u9A8C */\n checkImportExecl?: (list: T[]) => ImportErrorType[];\n /** \u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6821\u9A8C\u63D0\u793A\u8FDB\u884C\u5904\u7406 */\n showCheckErrorTips?: (errorMessageList: ImportErrorType[]) => void;\n /** \u5BFC\u5165\u63D0\u4EA4\u62E6\u622A\u5668\uFF0C\u7528\u4E8E\u5BF9\u5BFC\u5165\u6570\u636E\u8FDB\u884C\u63D0\u4EA4 */\n submitImportListData?: (list: T[]) => Promise<{ success: boolean; data?: K | null; error?: AxiosError | null }>;\n };\n };\n\n /** \u8868\u683C\u5217\u914D\u7F6E */\n columns: ProColumns<T>[];\n /** \u8868\u683C\u5176\u4ED6\u914D\u7F6E */\n tableProps?: Partial<ProTableProps<T, any>> & {\n extraTableButtonList?: {\n /** \u6309\u94AE\u4F4D\u7F6E */\n position: 'start' | 'end' | number;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n icon?: React.ReactNode;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n /** \u6839\u636Ekey\u66FF\u6362\u8868\u683C\u6309\u94AE */\n replaceTableButtonItems?: {\n /** \u6309\u94AEkey */\n key: string;\n /** \u6309\u94AE\u8282\u70B9 */\n label: any;\n /** \u6309\u94AE\u6743\u9650 */\n auth?: string | boolean;\n }[];\n }\n\n /** \u64CD\u4F5C\u5217\u914D\u7F6E\uFF08\u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E\u3001\u64CD\u4F5C\u5217\u4E0B\u62C9\u6309\u94AE\u914D\u7F6E\uFF09 */\n actionColumnConfig?: {\n /** \u8868\u683C\u64CD\u4F5C\u5217\u914D\u7F6E */\n columnConfig?: ProColumns<T>;\n /** \u4E0B\u62C9\u5217\u8868\u5C5E\u6027 */\n getDropdownButtonProps?: (record: T) => Partial<DropdownButtonProps>;\n };\n\n /** \u65B0\u589E\u8868\u5355\u914D\u7F6E */\n createConfig?: {\n /** \u81EA\u5B9A\u4E49\u521B\u5EFA\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n open?: boolean;\n onOpenChange?: (visible: boolean) => void;\n onSubmit?: (values: any) => Promise<boolean | void>;\n loading?: boolean;\n } & C\n >;\n /** \u4F20\u9012\u7ED9CreateFormComponent\u7684\u989D\u5916props */\n props?: C;\n };\n\n /** \u7F16\u8F91\u8868\u5355\u914D\u7F6E */\n updateConfig?: {\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u8868\u5355\u7EC4\u4EF6 */\n Component?: React.ComponentType<\n {\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n values: Partial<T> | null;\n onSubmit: (values: any) => Promise<boolean | void>;\n } & U\n >;\n /** \u4F20\u9012\u7ED9UpdateFormComponent\u7684\u989D\u5916props */\n props?: U;\n };\n \n /** \u4E0B\u8F7D\u6A21\u677F\u53C2\u6570 */\n downloadTemplate?: {\n /** \u6A21\u677F\u7C7B\u578B\u7F16\u53F7\uFF0C\u5B57\u5178\u4E2D\u7684 TemplateCenterTemplateType */\n templateTypeCode?: string;\n /** \u6A21\u5757\u7F16\u53F7\uFF0C\u83DC\u5355\u4E2D\u7684\u76EE\u5F55\u7F16\u53F7 */\n moduleCode?: string;\n };\n\n /** \u81EA\u5B9A\u4E49\u65B0\u589E\u51FD\u6570 */\n onAdd?: () => void;\n /** \u81EA\u5B9A\u4E49\u7F16\u8F91\u51FD\u6570 */\n onEdit?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u5220\u9664\u51FD\u6570 */\n onDelete?: (keys: React.Key[]) => void;\n /** \u81EA\u5B9A\u4E49\u67E5\u770B\u51FD\u6570 */\n onView?: (record: T) => void;\n /** \u81EA\u5B9A\u4E49\u64CD\u4F5C\u65E5\u5FD7\u51FD\u6570 */\n onActionLog?: (record: T) => void;\n\n /** \u67E5\u8BE2\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterSearch?: (result: API.Result_TableListType<T[]>) => Promise<any> | void;\n /** \u65B0\u589E\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u65B0\u589E\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u8FDB\u884C\u65B0\u589E */\n onBeforeAdd?: () => Promise<null | boolean | void> | boolean | void;\n /** \u7F16\u8F91\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u8FD4\u56DEfalse\u5219\u4E0D\u8FDB\u884C\u7F16\u8F91\uFF0C\u65E0\u8FD4\u56DE\u6216\u8005true\u5219\u4F7F\u7528\u9ED8\u8BA4\u6570\u636E\u8FDB\u884C\u7F16\u8F91\uFF0C\u8FD4\u56DE\u5BF9\u8C61\u5219\u4F7F\u7528\u8FD4\u56DE\u7684\u5BF9\u8C61\u8FDB\u884C\u7F16\u8F91 */\n onBeforeEdit?: (record: T) => Promise<T | null | boolean | void> | T | boolean | void;\n /** \u5220\u9664\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeDelete?: (keys: React.Key[]) => Promise<boolean> | boolean | void;\n /** \u5220\u9664\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterDelete?: (keys: React.Key[], result: boolean) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u524D\u56DE\u8C03\u51FD\u6570\uFF0C\u5982\u679C\u51FD\u6570\u6CA1\u6709\u8FD4\u56DEtrue\uFF0C\u5219\u4E0D\u8FDB\u884C\u64CD\u4F5C */\n onBeforeAction?: (method: API.MethodTypes, fields: any) => Promise<boolean> | boolean | void;\n /** \u64CD\u4F5C\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterAction?: (method: API.MethodTypes, success: boolean) => void;\n /** \u5BFC\u5165\u540E\u56DE\u8C03\u51FD\u6570 */\n onAfterImport?: (result: { success: boolean; data?: K | null; error?: AxiosError | null }) => Promise<any> | void;\n}\n\nexport interface CrudTableRefType<T = any> {\n actionRef: React.MutableRefObject<ActionType | undefined>;\n updateDrawerRef: React.MutableRefObject<RefDrawerFormRefType | undefined>;\n tableList: T[];\n setTableList: (row: T[]) => void;\n viewRow: T | undefined;\n setViewRow: (row: T | undefined) => void;\n actionLogRow: T | undefined;\n setActionLogRow: (row: T | undefined) => void;\n editRow: Partial<T> | null;\n setEditRow: (row: Partial<T> | null) => void;\n selectedRows: T[];\n setSelectedRows: (rows: T[]) => void;\n selectedRowKeys: React.Key[];\n setSelectedRowKeys: (keys: React.Key[]) => void;\n createModalOpen: boolean;\n setCreateModalOpen: (open: boolean) => void;\n editLangModalOpen: boolean;\n setEditLangModalOpen: (open: boolean) => void;\n currentLangInfo?: LangInfoItem;\n setCurrentLangInfo: (open: LangInfoItem) => void;\n onDelete: (keys: React.Key[]) => void;\n updateModalOpen: () => void;\n updateModalClose: () => void;\n}\n";
|