@nokecy/qc-ui 1.0.59 → 1.0.61
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/deleteConfirm/index.d.ts +31 -0
- package/dist/cjs/deleteConfirm/index.js +64 -0
- package/dist/cjs/fullScreenAlert/index.d.ts +25 -4
- package/dist/cjs/fullScreenAlert/index.js +50 -17
- package/dist/cjs/generatedListPage/ConfigurableToolbar.d.ts +35 -0
- package/dist/cjs/generatedListPage/ConfigurableToolbar.js +179 -0
- package/dist/cjs/generatedListPage/GeneratedListPage.d.ts +8 -0
- package/dist/cjs/generatedListPage/GeneratedListPage.js +545 -0
- package/dist/cjs/generatedListPage/OptionsColumn.d.ts +9 -0
- package/dist/cjs/generatedListPage/OptionsColumn.js +135 -0
- package/dist/cjs/generatedListPage/PerformanceMonitor.d.ts +55 -0
- package/dist/cjs/generatedListPage/PerformanceMonitor.js +277 -0
- package/dist/cjs/generatedListPage/RequestManager.d.ts +97 -0
- package/dist/cjs/generatedListPage/RequestManager.js +404 -0
- package/dist/cjs/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
- package/dist/cjs/generatedListPage/_utils/AccessWrapper.js +26 -0
- package/dist/cjs/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
- package/dist/cjs/generatedListPage/_utils/defaultHandlers.js +127 -0
- package/dist/cjs/generatedListPage/index.d.ts +20 -0
- package/dist/cjs/generatedListPage/index.js +92 -0
- package/dist/cjs/generatedListPage/types.d.ts +221 -0
- package/dist/cjs/generatedListPage/types.js +5 -0
- package/dist/cjs/generatedListPage/usePermissionCheck.d.ts +66 -0
- package/dist/cjs/generatedListPage/usePermissionCheck.js +150 -0
- package/dist/cjs/generatedListPage/useRequestManager.d.ts +35 -0
- package/dist/cjs/generatedListPage/useRequestManager.js +121 -0
- package/dist/cjs/importModal/index.d.ts +21 -3
- package/dist/cjs/importModal/index.js +30 -10
- package/dist/cjs/index.d.ts +9 -1
- package/dist/cjs/index.js +45 -0
- package/dist/cjs/standardFormDialog/FormValidation.d.ts +150 -0
- package/dist/cjs/standardFormDialog/FormValidation.js +229 -0
- package/dist/cjs/standardFormDialog/PortalManager.d.ts +94 -0
- package/dist/cjs/standardFormDialog/PortalManager.js +259 -0
- package/dist/cjs/standardFormDialog/StandardFormDialog.d.ts +10 -0
- package/dist/cjs/standardFormDialog/StandardFormDialog.js +516 -0
- package/dist/cjs/standardFormDialog/index.d.ts +7 -0
- package/dist/cjs/standardFormDialog/index.js +83 -0
- package/dist/cjs/standardFormDialog/types.d.ts +109 -0
- package/dist/cjs/standardFormDialog/types.js +5 -0
- package/dist/cjs/standardFormDialog/useStandardFormSchema.d.ts +68 -0
- package/dist/cjs/standardFormDialog/useStandardFormSchema.js +197 -0
- package/dist/cjs/standardFormDialog/withStandardForm.d.ts +193 -0
- package/dist/cjs/standardFormDialog/withStandardForm.js +412 -0
- package/dist/esm/deleteConfirm/index.d.ts +31 -0
- package/dist/esm/deleteConfirm/index.js +57 -0
- package/dist/esm/fullScreenAlert/index.d.ts +25 -4
- package/dist/esm/fullScreenAlert/index.js +50 -18
- package/dist/esm/generatedListPage/ConfigurableToolbar.d.ts +35 -0
- package/dist/esm/generatedListPage/ConfigurableToolbar.js +171 -0
- package/dist/esm/generatedListPage/GeneratedListPage.d.ts +8 -0
- package/dist/esm/generatedListPage/GeneratedListPage.js +535 -0
- package/dist/esm/generatedListPage/OptionsColumn.d.ts +9 -0
- package/dist/esm/generatedListPage/OptionsColumn.js +127 -0
- package/dist/esm/generatedListPage/PerformanceMonitor.d.ts +55 -0
- package/dist/esm/generatedListPage/PerformanceMonitor.js +272 -0
- package/dist/esm/generatedListPage/RequestManager.d.ts +97 -0
- package/dist/esm/generatedListPage/RequestManager.js +398 -0
- package/dist/esm/generatedListPage/_utils/AccessWrapper.d.ts +16 -0
- package/dist/esm/generatedListPage/_utils/AccessWrapper.js +20 -0
- package/dist/esm/generatedListPage/_utils/defaultHandlers.d.ts +22 -0
- package/dist/esm/generatedListPage/_utils/defaultHandlers.js +122 -0
- package/dist/esm/generatedListPage/index.d.ts +20 -0
- package/dist/esm/generatedListPage/index.js +26 -0
- package/dist/esm/generatedListPage/types.d.ts +221 -0
- package/dist/esm/generatedListPage/types.js +1 -0
- package/dist/esm/generatedListPage/usePermissionCheck.d.ts +66 -0
- package/dist/esm/generatedListPage/usePermissionCheck.js +145 -0
- package/dist/esm/generatedListPage/useRequestManager.d.ts +35 -0
- package/dist/esm/generatedListPage/useRequestManager.js +116 -0
- package/dist/esm/importModal/index.d.ts +21 -3
- package/dist/esm/importModal/index.js +29 -10
- package/dist/esm/index.d.ts +9 -1
- package/dist/esm/index.js +6 -1
- package/dist/esm/standardFormDialog/FormValidation.d.ts +150 -0
- package/dist/esm/standardFormDialog/FormValidation.js +223 -0
- package/dist/esm/standardFormDialog/PortalManager.d.ts +94 -0
- package/dist/esm/standardFormDialog/PortalManager.js +253 -0
- package/dist/esm/standardFormDialog/StandardFormDialog.d.ts +10 -0
- package/dist/esm/standardFormDialog/StandardFormDialog.js +508 -0
- package/dist/esm/standardFormDialog/index.d.ts +7 -0
- package/dist/esm/standardFormDialog/index.js +6 -0
- package/dist/esm/standardFormDialog/types.d.ts +109 -0
- package/dist/esm/standardFormDialog/types.js +1 -0
- package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +68 -0
- package/dist/esm/standardFormDialog/useStandardFormSchema.js +191 -0
- package/dist/esm/standardFormDialog/withStandardForm.d.ts +193 -0
- package/dist/esm/standardFormDialog/withStandardForm.js +404 -0
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
- package/dist/esm/ConfirmPro/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/boolSelect.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/customGroupCellRenderer.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processColumnGroups.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/_utils/processFormColumnState.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/ag-gridPlus.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/context/gridContext.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/gridManager/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/interface.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/locale.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/diySetting/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/setting/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/settingItem/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/index.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/toolBar/style.d.ts.map +0 -1
- package/dist/esm/ag-grid-plus/utils.d.ts.map +0 -1
- package/dist/esm/array-table/arrayAddBtn.d.ts.map +0 -1
- package/dist/esm/array-table/arrayBase.d.ts.map +0 -1
- package/dist/esm/array-table/index.d.ts.map +0 -1
- package/dist/esm/array-table/interface.d.ts.map +0 -1
- package/dist/esm/array-table/preview.d.ts.map +0 -1
- package/dist/esm/array-table/utils.d.ts.map +0 -1
- package/dist/esm/array-table-index/index.d.ts.map +0 -1
- package/dist/esm/card/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/modal/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/components/toolbar/style/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/service.d.ts.map +0 -1
- package/dist/esm/dashboard/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/index.d.ts.map +0 -1
- package/dist/esm/dashboard/utils.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/selector/index.d.ts.map +0 -1
- package/dist/esm/dashboard/widget/utils.d.ts.map +0 -1
- package/dist/esm/dialogSelect/index.d.ts.map +0 -1
- package/dist/esm/draggableModal/index.d.ts.map +0 -1
- package/dist/esm/editable/index.d.ts.map +0 -1
- package/dist/esm/editable/style.d.ts.map +0 -1
- package/dist/esm/extensible-grid/index.d.ts.map +0 -1
- package/dist/esm/extensible-grid/interface.d.ts.map +0 -1
- package/dist/esm/formDesigner/FormDesigner.d.ts.map +0 -1
- package/dist/esm/formDesigner/ProCard/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/arrayTableSchema.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/arrayTable/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/arrayTableIndex/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/card/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty1/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty10/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty2/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty3/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty4/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty5/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty6/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty7/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty8/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/index.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/preDefineProperty9/preview.d.ts.map +0 -1
- package/dist/esm/formDesigner/preWidgets/utils.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/ActionsWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/LogoWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/PreviewWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/SchemaEditorWidget.d.ts.map +0 -1
- package/dist/esm/formDesigner/widgets/index.d.ts.map +0 -1
- package/dist/esm/formPro/context/formProContext.d.ts.map +0 -1
- package/dist/esm/formPro/formLayoutPro.d.ts.map +0 -1
- package/dist/esm/formPro/index.d.ts.map +0 -1
- package/dist/esm/fullScreenAlert/index.d.ts.map +0 -1
- package/dist/esm/importModal/index.d.ts.map +0 -1
- package/dist/esm/index.d.ts.map +0 -1
- package/dist/esm/queryBuilder/index.d.ts.map +0 -1
- package/dist/esm/toolBar/index.d.ts.map +0 -1
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "AccessWrapper", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _AccessWrapper.default;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "ConfigurableToolbar", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _ConfigurableToolbar.default;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "GeneratedListPage", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _GeneratedListPage.default;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "OptionsColumn", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _OptionsColumn.default;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "PerformanceDevTools", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _PerformanceMonitor.PerformanceDevTools;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "PermissionChecker", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _usePermissionCheck.PermissionChecker;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "default", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _GeneratedListPage.default;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "defaultHandleDelete", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _defaultHandlers.defaultHandleDelete;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "defaultHandleExport", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _defaultHandlers.defaultHandleExport;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "downloadFile", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _defaultHandlers.downloadFile;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
Object.defineProperty(exports, "usePerformanceMonitor", {
|
|
67
|
+
enumerable: true,
|
|
68
|
+
get: function get() {
|
|
69
|
+
return _PerformanceMonitor.usePerformanceMonitor;
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
Object.defineProperty(exports, "usePermissionCheck", {
|
|
73
|
+
enumerable: true,
|
|
74
|
+
get: function get() {
|
|
75
|
+
return _usePermissionCheck.usePermissionCheck;
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
Object.defineProperty(exports, "useRequestManager", {
|
|
79
|
+
enumerable: true,
|
|
80
|
+
get: function get() {
|
|
81
|
+
return _useRequestManager.useRequestManager;
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
var _GeneratedListPage = _interopRequireDefault(require("./GeneratedListPage"));
|
|
85
|
+
var _ConfigurableToolbar = _interopRequireDefault(require("./ConfigurableToolbar"));
|
|
86
|
+
var _OptionsColumn = _interopRequireDefault(require("./OptionsColumn"));
|
|
87
|
+
var _usePermissionCheck = require("./usePermissionCheck");
|
|
88
|
+
var _PerformanceMonitor = require("./PerformanceMonitor");
|
|
89
|
+
var _useRequestManager = require("./useRequestManager");
|
|
90
|
+
var _AccessWrapper = _interopRequireDefault(require("./_utils/AccessWrapper"));
|
|
91
|
+
var _defaultHandlers = require("./_utils/defaultHandlers");
|
|
92
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
@@ -0,0 +1,221 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { GridRef } from "../ag-grid-plus/interface";
|
|
3
|
+
import { ColDef } from "ag-grid-community";
|
|
4
|
+
import { ButtonProps } from "antd";
|
|
5
|
+
/**
|
|
6
|
+
* 权限配置接口
|
|
7
|
+
*/
|
|
8
|
+
export interface PermissionConfig {
|
|
9
|
+
/** 查看权限 */
|
|
10
|
+
view?: string;
|
|
11
|
+
/** 创建权限 */
|
|
12
|
+
create?: string;
|
|
13
|
+
/** 更新权限 */
|
|
14
|
+
update?: string;
|
|
15
|
+
/** 删除权限 */
|
|
16
|
+
delete?: string;
|
|
17
|
+
/** 导入权限 */
|
|
18
|
+
import?: string;
|
|
19
|
+
/** 导出权限 */
|
|
20
|
+
export?: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 列表查询参数接口
|
|
24
|
+
*/
|
|
25
|
+
export interface ListParams {
|
|
26
|
+
/** 筛选条件 */
|
|
27
|
+
filter?: string;
|
|
28
|
+
/** 跳过数量 */
|
|
29
|
+
skipCount?: number;
|
|
30
|
+
/** 最大结果数 */
|
|
31
|
+
maxResultCount?: number;
|
|
32
|
+
/** 排序字段 */
|
|
33
|
+
sorting?: string;
|
|
34
|
+
/** 分页大小 */
|
|
35
|
+
PageSize?: number;
|
|
36
|
+
/** 跳过数量(兼容) */
|
|
37
|
+
SkipCount?: number;
|
|
38
|
+
/** 最大结果数(兼容) */
|
|
39
|
+
MaxResultCount?: number;
|
|
40
|
+
/** 排序(兼容) */
|
|
41
|
+
Sorting?: string;
|
|
42
|
+
/** 筛选(兼容) */
|
|
43
|
+
Filter?: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 分页结果接口
|
|
47
|
+
*/
|
|
48
|
+
export interface PagedResult<T> {
|
|
49
|
+
/** 数据项列表 */
|
|
50
|
+
items?: T[];
|
|
51
|
+
/** 总数量 */
|
|
52
|
+
totalCount?: number;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* 删除参数接口
|
|
56
|
+
*/
|
|
57
|
+
export interface DeleteParams {
|
|
58
|
+
/** 记录ID */
|
|
59
|
+
id: string | number;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* 导出参数接口
|
|
63
|
+
*/
|
|
64
|
+
export interface ExportParams {
|
|
65
|
+
/** 筛选条件 */
|
|
66
|
+
filter?: string;
|
|
67
|
+
/** 其他参数 */
|
|
68
|
+
[key: string]: any;
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* API配置接口
|
|
72
|
+
* @template T 数据项类型
|
|
73
|
+
*/
|
|
74
|
+
export interface ApiConfig<T = any> {
|
|
75
|
+
/** 列表查询API */
|
|
76
|
+
list: (params: ListParams) => Promise<PagedResult<T>>;
|
|
77
|
+
/** 删除API */
|
|
78
|
+
delete?: (params: DeleteParams) => Promise<void>;
|
|
79
|
+
/** 导出API */
|
|
80
|
+
export?: (params: ExportParams) => Promise<Blob>;
|
|
81
|
+
/** 获取导入模板API */
|
|
82
|
+
getImportTemplate?: () => Promise<Blob>;
|
|
83
|
+
/** 导入API */
|
|
84
|
+
import?: (file: FormData) => Promise<void>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 工具栏按钮配置
|
|
88
|
+
*/
|
|
89
|
+
export interface ToolbarActionConfig {
|
|
90
|
+
/** 按钮类型 */
|
|
91
|
+
type: 'create' | 'import' | 'export' | 'downloadTemplate' | 'custom';
|
|
92
|
+
/** 权限键 */
|
|
93
|
+
permission?: string;
|
|
94
|
+
/** 按钮文本 */
|
|
95
|
+
label?: string;
|
|
96
|
+
/** 按钮属性 */
|
|
97
|
+
buttonProps?: ButtonProps;
|
|
98
|
+
/** 自定义组件(当type为custom时) */
|
|
99
|
+
component?: React.ComponentType<any>;
|
|
100
|
+
/** 组件属性 */
|
|
101
|
+
componentProps?: Record<string, any>;
|
|
102
|
+
/** 点击处理函数(当type为custom时) */
|
|
103
|
+
onClick?: () => void;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* 表单对话框组件配置
|
|
107
|
+
*/
|
|
108
|
+
export interface FormDialogConfig {
|
|
109
|
+
/** 表单组件 */
|
|
110
|
+
component: React.ComponentType<any>;
|
|
111
|
+
/** 标题 */
|
|
112
|
+
title?: string;
|
|
113
|
+
/** 新建标题 */
|
|
114
|
+
createTitle?: string;
|
|
115
|
+
/** 编辑标题 */
|
|
116
|
+
editTitle?: string;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 树形数据配置
|
|
120
|
+
*/
|
|
121
|
+
export interface TreeDataConfig {
|
|
122
|
+
/** 是否为树形数据 */
|
|
123
|
+
enabled: boolean;
|
|
124
|
+
/** 获取数据路径的函数 */
|
|
125
|
+
getDataPath?: (data: any) => string[];
|
|
126
|
+
/** 父节点字段名 */
|
|
127
|
+
parentFieldName?: string;
|
|
128
|
+
/** 主键字段名 */
|
|
129
|
+
keyFieldName?: string;
|
|
130
|
+
/** 自动分组列配置 */
|
|
131
|
+
autoGroupColumnDef?: ColDef;
|
|
132
|
+
/** 默认展开层级 */
|
|
133
|
+
groupDefaultExpanded?: number;
|
|
134
|
+
/** 树形数据API - 已包含树形结构(items字段) */
|
|
135
|
+
treeApi?: () => Promise<any[]>;
|
|
136
|
+
/** 子节点字段名 */
|
|
137
|
+
childrenFieldName?: string;
|
|
138
|
+
/**
|
|
139
|
+
* 自动模式:从扁平数据构建树形结构
|
|
140
|
+
* 当设置为 true 时,将自动从 list API 的扁平数据构建树形结构
|
|
141
|
+
* 需要配合 parentFieldName 和 keyFieldName 使用
|
|
142
|
+
*/
|
|
143
|
+
autoMode?: boolean;
|
|
144
|
+
/**
|
|
145
|
+
* 树形路径显示字段
|
|
146
|
+
* 用于构建树形路径时显示的字段名,默认使用 'name'
|
|
147
|
+
* 可以是单个字段名或字段名数组(按优先级尝试)
|
|
148
|
+
*/
|
|
149
|
+
pathDisplayField?: string | string[];
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* 通用列表页面配置接口
|
|
153
|
+
* @template T 数据项类型
|
|
154
|
+
*/
|
|
155
|
+
export interface GeneratedListPageConfig<T = any> {
|
|
156
|
+
/** 页面标题 */
|
|
157
|
+
title: string;
|
|
158
|
+
/** Grid Key */
|
|
159
|
+
gridKey: string;
|
|
160
|
+
/** API配置 */
|
|
161
|
+
apiConfig: ApiConfig<T>;
|
|
162
|
+
/** 权限配置 */
|
|
163
|
+
permissions: PermissionConfig;
|
|
164
|
+
/** 列定义 */
|
|
165
|
+
columnDefs: ColDef[];
|
|
166
|
+
/** 表单对话框配置 */
|
|
167
|
+
formDialog?: FormDialogConfig;
|
|
168
|
+
/** 工具栏配置 */
|
|
169
|
+
toolbarActions?: ToolbarActionConfig[];
|
|
170
|
+
/** 是否启用导入导出模板下载 */
|
|
171
|
+
enableImportExport?: boolean;
|
|
172
|
+
/** 导入配置 */
|
|
173
|
+
importConfig?: {
|
|
174
|
+
/** 标题 */
|
|
175
|
+
title?: string;
|
|
176
|
+
/** 下载模板URL */
|
|
177
|
+
downUrl?: string;
|
|
178
|
+
/** 上传URL */
|
|
179
|
+
uploadUrl?: string;
|
|
180
|
+
};
|
|
181
|
+
/** 导出文件名 */
|
|
182
|
+
exportFileName?: string;
|
|
183
|
+
/** 树形数据配置 */
|
|
184
|
+
treeConfig?: TreeDataConfig;
|
|
185
|
+
/** 自定义操作列组件 */
|
|
186
|
+
customOptionsComponent?: React.ComponentType<OptionsComponentProps<T>>;
|
|
187
|
+
/** 错误处理配置 */
|
|
188
|
+
errorConfig?: {
|
|
189
|
+
/** 是否使用统一错误处理 */
|
|
190
|
+
useErrorHandler?: boolean;
|
|
191
|
+
};
|
|
192
|
+
/** 分页配置 */
|
|
193
|
+
paginationConfig?: {
|
|
194
|
+
/** 默认页大小 */
|
|
195
|
+
defaultPageSize?: number;
|
|
196
|
+
/** 是否启用分页 */
|
|
197
|
+
enabled?: boolean;
|
|
198
|
+
};
|
|
199
|
+
/** Grid引用 */
|
|
200
|
+
gridRef?: React.RefObject<GridRef>;
|
|
201
|
+
/** 刷新回调 */
|
|
202
|
+
onRefresh?: () => void;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* 操作列组件属性接口
|
|
206
|
+
* @template T 行数据类型
|
|
207
|
+
*/
|
|
208
|
+
export interface OptionsComponentProps<T = any> {
|
|
209
|
+
/** 行数据 */
|
|
210
|
+
data: T;
|
|
211
|
+
/** 刷新函数 */
|
|
212
|
+
onRefresh: () => void;
|
|
213
|
+
/** 权限配置 */
|
|
214
|
+
permissions: PermissionConfig;
|
|
215
|
+
/** 表单对话框配置 */
|
|
216
|
+
formDialog?: FormDialogConfig;
|
|
217
|
+
/** 删除API */
|
|
218
|
+
deleteApi?: (params: DeleteParams) => Promise<void>;
|
|
219
|
+
/** 是否使用统一错误处理 */
|
|
220
|
+
useErrorHandler?: boolean;
|
|
221
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* usePermissionCheck Hook
|
|
3
|
+
*
|
|
4
|
+
* 提供统一的权限检查功能,避免重复的权限检查逻辑
|
|
5
|
+
* 适配版:支持外部传入 access 对象或使用默认的全部允许策略
|
|
6
|
+
*/
|
|
7
|
+
import { PermissionConfig } from './types';
|
|
8
|
+
interface PermissionCheckResult {
|
|
9
|
+
/** 是否有查看权限 */
|
|
10
|
+
canView: boolean;
|
|
11
|
+
/** 是否有创建权限 */
|
|
12
|
+
canCreate: boolean;
|
|
13
|
+
/** 是否有更新权限 */
|
|
14
|
+
canUpdate: boolean;
|
|
15
|
+
/** 是否有删除权限 */
|
|
16
|
+
canDelete: boolean;
|
|
17
|
+
/** 是否有导入权限 */
|
|
18
|
+
canImport: boolean;
|
|
19
|
+
/** 是否有导出权限 */
|
|
20
|
+
canExport: boolean;
|
|
21
|
+
/** 检查特定权限 */
|
|
22
|
+
hasPermission: (permission?: string) => boolean;
|
|
23
|
+
/** 检查多个权限(需要全部满足) */
|
|
24
|
+
hasAllPermissions: (...permissions: (string | undefined)[]) => boolean;
|
|
25
|
+
/** 检查多个权限(满足任一即可) */
|
|
26
|
+
hasAnyPermission: (...permissions: (string | undefined)[]) => boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* 权限检查 Hook
|
|
30
|
+
* @param permissions 权限配置对象
|
|
31
|
+
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
32
|
+
* @returns 权限检查结果
|
|
33
|
+
*/
|
|
34
|
+
export declare function usePermissionCheck(permissions: PermissionConfig, access?: Record<string, boolean>): PermissionCheckResult;
|
|
35
|
+
/**
|
|
36
|
+
* 权限检查工具类
|
|
37
|
+
* 用于非 Hook 场景下的权限检查
|
|
38
|
+
*/
|
|
39
|
+
export declare class PermissionChecker {
|
|
40
|
+
private access;
|
|
41
|
+
constructor(access: Record<string, boolean>);
|
|
42
|
+
/**
|
|
43
|
+
* 检查单个权限
|
|
44
|
+
*/
|
|
45
|
+
hasPermission(permission?: string): boolean;
|
|
46
|
+
/**
|
|
47
|
+
* 检查多个权限(需要全部满足)
|
|
48
|
+
*/
|
|
49
|
+
hasAllPermissions(...permissions: (string | undefined)[]): boolean;
|
|
50
|
+
/**
|
|
51
|
+
* 检查多个权限(满足任一即可)
|
|
52
|
+
*/
|
|
53
|
+
hasAnyPermission(...permissions: (string | undefined)[]): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* 检查权限配置对象
|
|
56
|
+
*/
|
|
57
|
+
checkConfig(config: PermissionConfig): {
|
|
58
|
+
canView: boolean;
|
|
59
|
+
canCreate: boolean;
|
|
60
|
+
canUpdate: boolean;
|
|
61
|
+
canDelete: boolean;
|
|
62
|
+
canImport: boolean;
|
|
63
|
+
canExport: boolean;
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
export default usePermissionCheck;
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.PermissionChecker = void 0;
|
|
7
|
+
exports.usePermissionCheck = usePermissionCheck;
|
|
8
|
+
var _react = require("react");
|
|
9
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
10
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
11
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
12
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
13
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
14
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
|
|
15
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); } /**
|
|
16
|
+
* usePermissionCheck Hook
|
|
17
|
+
*
|
|
18
|
+
* 提供统一的权限检查功能,避免重复的权限检查逻辑
|
|
19
|
+
* 适配版:支持外部传入 access 对象或使用默认的全部允许策略
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* 权限检查 Hook
|
|
23
|
+
* @param permissions 权限配置对象
|
|
24
|
+
* @param access 可选的 access 对象(如果不传入,默认全部允许)
|
|
25
|
+
* @returns 权限检查结果
|
|
26
|
+
*/
|
|
27
|
+
function usePermissionCheck(permissions, access) {
|
|
28
|
+
// 缓存权限检查结果
|
|
29
|
+
var permissionResult = (0, _react.useMemo)(function () {
|
|
30
|
+
/**
|
|
31
|
+
* 检查单个权限
|
|
32
|
+
*/
|
|
33
|
+
var hasPermission = function hasPermission(permission) {
|
|
34
|
+
if (!permission) return true; // 未配置权限则默认有权限
|
|
35
|
+
if (!access) return true; // 未传入 access 对象,默认全部允许
|
|
36
|
+
return !!access[permission];
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 检查多个权限(需要全部满足)
|
|
41
|
+
*/
|
|
42
|
+
var hasAllPermissions = function hasAllPermissions() {
|
|
43
|
+
for (var _len = arguments.length, perms = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
44
|
+
perms[_key] = arguments[_key];
|
|
45
|
+
}
|
|
46
|
+
if (perms.length === 0) return true;
|
|
47
|
+
return perms.every(function (perm) {
|
|
48
|
+
return hasPermission(perm);
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 检查多个权限(满足任一即可)
|
|
54
|
+
*/
|
|
55
|
+
var hasAnyPermission = function hasAnyPermission() {
|
|
56
|
+
for (var _len2 = arguments.length, perms = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
|
|
57
|
+
perms[_key2] = arguments[_key2];
|
|
58
|
+
}
|
|
59
|
+
if (perms.length === 0) return true;
|
|
60
|
+
return perms.some(function (perm) {
|
|
61
|
+
return hasPermission(perm);
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
canView: hasPermission(permissions.view),
|
|
66
|
+
canCreate: hasPermission(permissions.create),
|
|
67
|
+
canUpdate: hasPermission(permissions.update),
|
|
68
|
+
canDelete: hasPermission(permissions.delete),
|
|
69
|
+
canImport: hasPermission(permissions.import),
|
|
70
|
+
canExport: hasPermission(permissions.export),
|
|
71
|
+
hasPermission: hasPermission,
|
|
72
|
+
hasAllPermissions: hasAllPermissions,
|
|
73
|
+
hasAnyPermission: hasAnyPermission
|
|
74
|
+
};
|
|
75
|
+
}, [access, permissions]);
|
|
76
|
+
return permissionResult;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 权限检查工具类
|
|
81
|
+
* 用于非 Hook 场景下的权限检查
|
|
82
|
+
*/
|
|
83
|
+
var PermissionChecker = exports.PermissionChecker = /*#__PURE__*/function () {
|
|
84
|
+
function PermissionChecker(access) {
|
|
85
|
+
_classCallCheck(this, PermissionChecker);
|
|
86
|
+
_defineProperty(this, "access", void 0);
|
|
87
|
+
this.access = access;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* 检查单个权限
|
|
92
|
+
*/
|
|
93
|
+
_createClass(PermissionChecker, [{
|
|
94
|
+
key: "hasPermission",
|
|
95
|
+
value: function hasPermission(permission) {
|
|
96
|
+
if (!permission) return true;
|
|
97
|
+
return !!this.access[permission];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* 检查多个权限(需要全部满足)
|
|
102
|
+
*/
|
|
103
|
+
}, {
|
|
104
|
+
key: "hasAllPermissions",
|
|
105
|
+
value: function hasAllPermissions() {
|
|
106
|
+
var _this = this;
|
|
107
|
+
for (var _len3 = arguments.length, permissions = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
|
|
108
|
+
permissions[_key3] = arguments[_key3];
|
|
109
|
+
}
|
|
110
|
+
if (permissions.length === 0) return true;
|
|
111
|
+
return permissions.every(function (perm) {
|
|
112
|
+
return _this.hasPermission(perm);
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* 检查多个权限(满足任一即可)
|
|
118
|
+
*/
|
|
119
|
+
}, {
|
|
120
|
+
key: "hasAnyPermission",
|
|
121
|
+
value: function hasAnyPermission() {
|
|
122
|
+
var _this2 = this;
|
|
123
|
+
for (var _len4 = arguments.length, permissions = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
|
|
124
|
+
permissions[_key4] = arguments[_key4];
|
|
125
|
+
}
|
|
126
|
+
if (permissions.length === 0) return true;
|
|
127
|
+
return permissions.some(function (perm) {
|
|
128
|
+
return _this2.hasPermission(perm);
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* 检查权限配置对象
|
|
134
|
+
*/
|
|
135
|
+
}, {
|
|
136
|
+
key: "checkConfig",
|
|
137
|
+
value: function checkConfig(config) {
|
|
138
|
+
return {
|
|
139
|
+
canView: this.hasPermission(config.view),
|
|
140
|
+
canCreate: this.hasPermission(config.create),
|
|
141
|
+
canUpdate: this.hasPermission(config.update),
|
|
142
|
+
canDelete: this.hasPermission(config.delete),
|
|
143
|
+
canImport: this.hasPermission(config.import),
|
|
144
|
+
canExport: this.hasPermission(config.export)
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
}]);
|
|
148
|
+
return PermissionChecker;
|
|
149
|
+
}();
|
|
150
|
+
var _default = exports.default = usePermissionCheck;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* useRequestManager Hook
|
|
3
|
+
*
|
|
4
|
+
* 为组件提供请求管理功能的 React Hook
|
|
5
|
+
*/
|
|
6
|
+
interface UseRequestManagerOptions {
|
|
7
|
+
/** 防抖延迟时间(ms) */
|
|
8
|
+
debounceDelay?: number;
|
|
9
|
+
/** 是否启用缓存 */
|
|
10
|
+
enableCache?: boolean;
|
|
11
|
+
/** 缓存有效期(ms) */
|
|
12
|
+
cacheTTL?: number;
|
|
13
|
+
/** 是否启用请求去重 */
|
|
14
|
+
enableDedup?: boolean;
|
|
15
|
+
/** 最大并发数 */
|
|
16
|
+
maxConcurrent?: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 使用请求管理器的 Hook
|
|
20
|
+
*/
|
|
21
|
+
export declare function useRequestManager<T = any>(options?: UseRequestManagerOptions): {
|
|
22
|
+
request: (params: any, requestFn: (params: any, signal: AbortSignal) => Promise<T>) => Promise<T>;
|
|
23
|
+
debouncedRequest: (key: string, params: any, requestFn: (params: any, signal: AbortSignal) => Promise<T>) => Promise<T>;
|
|
24
|
+
cancelRequest: (params: any) => void;
|
|
25
|
+
cancelAllRequests: () => void;
|
|
26
|
+
clearCache: () => void;
|
|
27
|
+
cleanupCache: () => void;
|
|
28
|
+
getStats: () => {
|
|
29
|
+
cacheSize: number;
|
|
30
|
+
pendingRequests: number;
|
|
31
|
+
activeRequests: number;
|
|
32
|
+
queueSize: number;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export default useRequestManager;
|