@spacego/fe-components 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +37 -37
- package/lib/_virtual/Resizable.js +4 -0
- package/lib/_virtual/ResizableBox.js +4 -0
- package/lib/_virtual/index.js +5 -0
- package/lib/_virtual/index2.js +4 -0
- package/lib/_virtual/index3.js +4 -0
- package/lib/_virtual/index4.js +4 -0
- package/lib/_virtual/propTypes.js +4 -0
- package/lib/_virtual/react-is.development.js +4 -0
- package/lib/_virtual/react-is.production.min.js +4 -0
- package/lib/_virtual/utils.js +4 -0
- package/lib/fe-auto-complete/index.js +6 -0
- package/lib/fe-button/index.js +27 -0
- package/lib/fe-cascader/index.js +19 -0
- package/lib/fe-checkbox/index.js +6 -0
- package/lib/fe-checkbox-group/index.js +6 -0
- package/lib/fe-date-picker/index.js +19 -0
- package/lib/fe-description-render/index.js +43 -0
- package/lib/fe-descriptions/index.js +6 -0
- package/lib/fe-empty/index.js +6 -0
- package/lib/fe-error-block/index.js +6 -0
- package/lib/fe-form/fe-form/index.js +133 -0
- package/lib/fe-form/fe-form-auto-complete/index.js +57 -0
- package/lib/fe-form/fe-form-btn-group/index.js +29 -0
- package/lib/fe-form/fe-form-cascader/index.js +25 -0
- package/lib/fe-form/fe-form-checkbox-group/index.js +21 -0
- package/lib/fe-form/fe-form-date-picker/index.js +75 -0
- package/lib/fe-form/fe-form-date-range-picker/index.js +99 -0
- package/lib/fe-form/fe-form-input/index.js +53 -0
- package/lib/fe-form/fe-form-input-input/index.js +63 -0
- package/lib/fe-form/fe-form-input-number/index.js +43 -0
- package/lib/fe-form/fe-form-item/index.js +46 -0
- package/lib/fe-form/fe-form-label/index.js +20 -0
- package/lib/fe-form/fe-form-radio/index.js +21 -0
- package/lib/fe-form/fe-form-render/index.js +33 -0
- package/lib/fe-form/fe-form-rich-text/index.js +25 -0
- package/lib/fe-form/fe-form-select/index.js +93 -0
- package/lib/fe-form/fe-form-switch/index.js +21 -0
- package/lib/fe-form/fe-form-text/index.js +20 -0
- package/lib/fe-form/fe-form-text-area/index.js +24 -0
- package/lib/fe-form/fe-form-time-picker/index.js +21 -0
- package/lib/fe-form/fe-form-upload/index.js +63 -0
- package/lib/fe-form/utils/index.js +28 -0
- package/lib/fe-input/index.js +32 -0
- package/lib/fe-input-number/index.js +19 -0
- package/lib/fe-layouts/auth-layout/index.js +35 -17
- package/lib/fe-layouts/basics-layout/index.js +2 -2
- package/lib/fe-layouts/layout.js +34 -16
- package/lib/fe-link/index.js +23 -0
- package/lib/fe-map/index.js +263 -0
- package/lib/fe-modal/index.js +85 -0
- package/lib/fe-pagination/index.js +6 -0
- package/lib/fe-panel/fe-panel-toolbar.js +40 -0
- package/lib/fe-panel/index.js +49 -0
- package/lib/fe-panel/use-panel-context.js +9 -0
- package/lib/fe-permission/index.js +12 -0
- package/lib/fe-permission-provider/index.js +29 -0
- package/lib/fe-radio/index.js +11 -0
- package/lib/fe-radio-group/index.js +6 -0
- package/lib/fe-rich-text/index.js +293 -0
- package/lib/fe-select/index.js +24 -0
- package/lib/fe-switch/index.js +6 -0
- package/lib/fe-table/fe-edit-table/index.js +39 -0
- package/lib/fe-table/fe-edit-table-cell/index.js +63 -0
- package/lib/fe-table/fe-head-title/index.js +9 -0
- package/lib/fe-table/fe-normal-table/index.js +192 -0
- package/lib/fe-table/fe-sub-table/index.js +74 -0
- package/lib/fe-table/fe-table/index.js +7 -0
- package/lib/fe-table/fe-table-alert/index.js +42 -0
- package/lib/fe-table/fe-table-link/index.js +87 -0
- package/lib/fe-table/fe-table-render/index.js +56 -0
- package/lib/fe-table/fe-table-setting/index.js +165 -0
- package/lib/fe-table/fe-table-toolbar/index.js +63 -0
- package/lib/fe-table/fe-table-utils/index.js +157 -0
- package/lib/fe-table/type/table.d.js +4 -0
- package/lib/fe-table/use-edit-table/index.js +151 -0
- package/lib/fe-table/use-pagination/index.js +59 -0
- package/lib/fe-table/use-sub-table/index.js +23 -0
- package/lib/fe-table/use-table/index.js +177 -0
- package/lib/fe-table/use-table-columns/index.js +53 -0
- package/lib/fe-table/use-table-form-context/index.js +14 -0
- package/lib/fe-table/use-table-selection/index.js +53 -0
- package/lib/fe-text-area/index.js +21 -0
- package/lib/fe-time-picker/index.js +19 -0
- package/lib/fe-upload/index.js +182 -0
- package/lib/fe-upload/upload.constant.js +91 -0
- package/lib/fe-upload-atomic/index.js +6 -0
- package/lib/fe-upload-crop/index.js +207 -0
- package/lib/hooks/{use-auth.hook.js → use-auth.hook/index.js} +3 -3
- package/lib/hooks/use-form/index.js +38 -0
- package/lib/hooks/use-permission.hook/index.js +9 -0
- package/lib/index.css +7 -1
- package/lib/index.js +161 -42
- package/lib/node_modules/.pnpm/@dnd-kit_accessibility@3.1.1_react@18.3.1/node_modules/@dnd-kit/accessibility/dist/accessibility.esm.js +56 -0
- package/lib/node_modules/.pnpm/@dnd-kit_core@6.3.1_nnrd3gsncyragczmpvfhocinkq/node_modules/@dnd-kit/core/dist/core.esm.js +2344 -0
- package/lib/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js +13 -0
- package/lib/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +439 -0
- package/lib/node_modules/.pnpm/@dnd-kit_utilities@3.2.2_react@18.3.1/node_modules/@dnd-kit/utilities/dist/utilities.esm.js +235 -0
- package/lib/node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js +54 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js +54 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js +52 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js +329 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +17 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
- package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js +7 -0
- package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js +95 -0
- package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js +78 -0
- package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +10 -0
- package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/Resizable.js +233 -0
- package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/ResizableBox.js +164 -0
- package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/propTypes.js +113 -0
- package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/utils.js +56 -0
- package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/index.js +12 -0
- package/lib/store/modules/layout-config.store.js +83 -65
- package/lib/store/modules/theme.store.js +36 -18
- package/lib/types/fe-auto-complete/index.d.ts +2 -0
- package/lib/types/fe-button/index.d.ts +16 -0
- package/lib/types/fe-cascader/index.d.ts +7 -0
- package/lib/types/fe-checkbox/index.d.ts +6 -0
- package/lib/types/fe-checkbox-group/index.d.ts +7 -0
- package/lib/types/fe-date-picker/index.d.ts +3 -0
- package/lib/types/fe-description-render/index.d.ts +31 -0
- package/lib/types/fe-descriptions/index.d.ts +2 -0
- package/lib/types/fe-empty/index.d.ts +2 -0
- package/lib/types/fe-error-block/index.d.ts +6 -0
- package/lib/types/fe-form/fe-form/index.d.ts +356 -0
- package/lib/types/fe-form/fe-form-auto-complete/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-btn-group/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-cascader/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-checkbox-group/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-date-picker/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-date-range-picker/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-input/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-input-input/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-input-number/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-item/index.d.ts +70 -0
- package/lib/types/fe-form/fe-form-label/index.d.ts +45 -0
- package/lib/types/fe-form/fe-form-radio/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-render/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-rich-text/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-select/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-switch/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-text/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-text-area/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-time-picker/index.d.ts +3 -0
- package/lib/types/fe-form/fe-form-upload/index.d.ts +3 -0
- package/lib/types/fe-form/index.d.ts +26 -0
- package/lib/types/fe-form/utils/index.d.ts +24 -0
- package/lib/types/fe-input/index.d.ts +12 -0
- package/lib/types/fe-input-number/index.d.ts +2 -0
- package/lib/types/fe-layouts/context/global-context.d.ts +240 -238
- package/lib/types/fe-link/index.d.ts +6 -0
- package/lib/types/fe-map/index.d.ts +73 -0
- package/lib/types/fe-modal/index.d.ts +20 -0
- package/lib/types/fe-pagination/index.d.ts +2 -0
- package/lib/types/fe-panel/fe-panel-toolbar.d.ts +3 -0
- package/lib/types/fe-panel/index.d.ts +61 -0
- package/lib/types/fe-panel/panel-toolbar.d.ts +4 -0
- package/lib/types/fe-panel/use-panel-context.d.ts +6 -0
- package/lib/types/fe-permission/index.d.ts +10 -0
- package/lib/types/fe-permission-provider/index.d.ts +8 -0
- package/lib/types/fe-radio/index.d.ts +2 -0
- package/lib/types/fe-radio-group/index.d.ts +2 -0
- package/lib/types/fe-rich-text/index.d.ts +167 -0
- package/lib/types/fe-select/index.d.ts +8 -0
- package/lib/types/fe-switch/index.d.ts +2 -0
- package/lib/types/fe-table/fe-edit-table/index.d.ts +3 -0
- package/lib/types/fe-table/fe-edit-table-cell/index.d.ts +16 -0
- package/lib/types/fe-table/fe-head-title/index.d.ts +6 -0
- package/lib/types/fe-table/fe-normal-table/index.d.ts +3 -0
- package/lib/types/fe-table/fe-sub-table/index.d.ts +3 -0
- package/lib/types/fe-table/fe-table/index.d.ts +3 -0
- package/lib/types/fe-table/fe-table-alert/index.d.ts +13 -0
- package/lib/types/fe-table/fe-table-link/index.d.ts +12 -0
- package/lib/types/fe-table/fe-table-render/index.d.ts +13 -0
- package/lib/types/fe-table/fe-table-setting/index.d.ts +22 -0
- package/lib/types/fe-table/fe-table-toolbar/index.d.ts +18 -0
- package/lib/types/fe-table/fe-table-utils/index.d.ts +193 -0
- package/lib/types/fe-table/index.d.ts +6 -0
- package/lib/types/fe-table/type/table-context.d.ts +60 -0
- package/lib/types/fe-table/type/table.d.ts +797 -0
- package/lib/types/fe-table/use-edit-table/index.d.ts +6 -0
- package/lib/types/fe-table/use-pagination/index.d.ts +3 -0
- package/lib/types/fe-table/use-sub-table/index.d.ts +8 -0
- package/lib/types/fe-table/use-table/index.d.ts +3 -0
- package/lib/types/fe-table/use-table-columns/index.d.ts +47 -0
- package/lib/types/fe-table/use-table-form-context/index.d.ts +10 -0
- package/lib/types/fe-table/use-table-selection/index.d.ts +46 -0
- package/lib/types/fe-text-area/index.d.ts +4 -0
- package/lib/types/fe-time-picker/index.d.ts +3 -0
- package/lib/types/fe-upload/index.d.ts +85 -0
- package/lib/types/fe-upload/upload.constant.d.ts +39 -0
- package/lib/types/fe-upload-atomic/index.d.ts +2 -0
- package/lib/types/fe-upload-crop/index.d.ts +10 -0
- package/lib/types/hooks/index.d.ts +1 -0
- package/lib/types/hooks/use-descriptions/index.d.ts +3 -0
- package/lib/types/hooks/use-form/index.d.ts +16 -0
- package/lib/types/hooks/use-permission.hook/index.d.ts +10 -0
- package/lib/types/index.d.ts +32 -0
- package/lib/types/typings/index.d.ts +98 -59
- package/lib/types/typings/shims-axios.d.ts +38 -38
- package/package.json +79 -69
- /package/lib/hooks/{use-nprogress.hook.js → use-nprogress.hook/index.js} +0 -0
- /package/lib/types/hooks/{use-auth.hook.d.ts → use-auth.hook/index.d.ts} +0 -0
- /package/lib/types/hooks/{use-nprogress.hook.d.ts → use-nprogress.hook/index.d.ts} +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { IPermissionStore } from '../hooks/use-permission.hook/index.d';
|
|
2
|
+
import { IBasicProps } from '../typings';
|
|
3
|
+
export interface FePermissionProviderProps extends Pick<IBasicProps, 'children'> {
|
|
4
|
+
/**
|
|
5
|
+
* @name 按钮权限字符串
|
|
6
|
+
*/
|
|
7
|
+
btnPermissionList?: IPermissionStore['btnPermissionList'];
|
|
8
|
+
}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { default as Quill, BoundsStatic, DeltaStatic, RangeStatic, Sources } from 'quill';
|
|
2
|
+
import { CSSProperties, ReactElement } from 'react';
|
|
3
|
+
export type Value = string | DeltaStatic;
|
|
4
|
+
export type Range = RangeStatic | null;
|
|
5
|
+
|
|
6
|
+
export interface FeRichTextRef {
|
|
7
|
+
focus: () => void;
|
|
8
|
+
blur: () => void;
|
|
9
|
+
getEditor: () => Quill | null;
|
|
10
|
+
getUnprivilegedEditor: () => UnprivilegedEditor | null;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface UnprivilegedEditor {
|
|
14
|
+
getLength(): number;
|
|
15
|
+
getText(index?: number, length?: number): string;
|
|
16
|
+
getHTML(): string;
|
|
17
|
+
getDisplayHTML(): string;
|
|
18
|
+
getBounds(index: number, length?: number): BoundsStatic;
|
|
19
|
+
getSelection(focus?: boolean): RangeStatic;
|
|
20
|
+
getContents(index?: number, length?: number): DeltaStatic;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
type uploadToolConfig = {
|
|
24
|
+
imageConfig?: any;
|
|
25
|
+
uploadFn: any;
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
export interface FeRichTextProps {
|
|
29
|
+
/**
|
|
30
|
+
* 编辑器的内容
|
|
31
|
+
*/
|
|
32
|
+
value?: Value;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 非受控模式的默认值
|
|
36
|
+
*/
|
|
37
|
+
defaultValue?: Value;
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 内容变化时的回调函数
|
|
41
|
+
*/
|
|
42
|
+
onChange?: (value: string, delta: DeltaStatic, source: Sources, editor: UnprivilegedEditor) => void;
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* 选择变化时的回调函数
|
|
46
|
+
*/
|
|
47
|
+
onChangeSelection?: (selection: Range, source: Sources, editor: UnprivilegedEditor) => void;
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* 编辑器获取焦点回调
|
|
51
|
+
*/
|
|
52
|
+
onFocus?: (selection: Range, source: Sources, editor: UnprivilegedEditor) => void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* 编辑器失去焦点回调
|
|
56
|
+
*/
|
|
57
|
+
onBlur?: (previousSelection: Range, source: Sources, editor: UnprivilegedEditor) => void;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 编辑器高度
|
|
61
|
+
*/
|
|
62
|
+
height?: number | string;
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* 是否只读
|
|
66
|
+
*/
|
|
67
|
+
readOnly?: boolean;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* 占位符文本
|
|
71
|
+
*/
|
|
72
|
+
placeholder?: string;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* 编辑区域边界
|
|
76
|
+
*/
|
|
77
|
+
bounds?: string | HTMLElement;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* 格式白名单
|
|
81
|
+
*/
|
|
82
|
+
formats?: string[];
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* 自定义模块配置
|
|
86
|
+
*/
|
|
87
|
+
modules?: Record<string, any>;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* 自定义样式
|
|
91
|
+
*/
|
|
92
|
+
style?: CSSProperties;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* 自定义类名
|
|
96
|
+
*/
|
|
97
|
+
className?: string;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* HTML ID
|
|
101
|
+
*/
|
|
102
|
+
id?: string;
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Tab索引
|
|
106
|
+
*/
|
|
107
|
+
tabIndex?: number;
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* Tab键对应的空格数量
|
|
111
|
+
*/
|
|
112
|
+
tabSize?: number;
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* 自定义主题
|
|
116
|
+
*/
|
|
117
|
+
theme?: 'snow' | 'bubble' | string;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* 滚动容器
|
|
121
|
+
*/
|
|
122
|
+
scrollingContainer?: string | HTMLElement;
|
|
123
|
+
|
|
124
|
+
/**
|
|
125
|
+
* 键盘事件
|
|
126
|
+
*/
|
|
127
|
+
onKeyPress?: React.KeyboardEventHandler;
|
|
128
|
+
onKeyDown?: React.KeyboardEventHandler;
|
|
129
|
+
onKeyUp?: React.KeyboardEventHandler;
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* 保留空白符
|
|
133
|
+
*/
|
|
134
|
+
preserveWhitespace?: boolean;
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* 自定义子元素
|
|
138
|
+
*/
|
|
139
|
+
children?: ReactElement;
|
|
140
|
+
|
|
141
|
+
/**
|
|
142
|
+
* 上传配置
|
|
143
|
+
*/
|
|
144
|
+
uploadToolConfig?: uploadToolConfig;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* Quill Delta格式类型
|
|
149
|
+
*/
|
|
150
|
+
export interface Delta {
|
|
151
|
+
ops?: {
|
|
152
|
+
insert?: any;
|
|
153
|
+
delete?: number;
|
|
154
|
+
retain?: number;
|
|
155
|
+
attributes?: Record<string, any>;
|
|
156
|
+
}[];
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* 工具栏配置选项
|
|
161
|
+
*/
|
|
162
|
+
export interface ToolbarOptions {
|
|
163
|
+
container?: string | string[][] | HTMLElement;
|
|
164
|
+
handlers?: Record<string, any>;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
declare const FeRichText: React.FC<FeRichTextProps>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ITableColumns } from '../type/table.d';
|
|
2
|
+
interface EditableCellProps extends ITableColumns {
|
|
3
|
+
dataIndex: string;
|
|
4
|
+
label: string;
|
|
5
|
+
editing: boolean;
|
|
6
|
+
record: any;
|
|
7
|
+
rowKey: string;
|
|
8
|
+
index: number;
|
|
9
|
+
children: React.ReactNode;
|
|
10
|
+
formRef: React.RefObject<any>;
|
|
11
|
+
onTableValueChange: (values: any) => void;
|
|
12
|
+
errorKey: Array<string>;
|
|
13
|
+
[key: string]: any;
|
|
14
|
+
}
|
|
15
|
+
declare const FeEditableCell: import('react').MemoExoticComponent<(props: EditableCellProps) => import("react/jsx-runtime").JSX.Element>;
|
|
16
|
+
export default FeEditableCell;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { Key } from 'antd/es/table/interface';
|
|
2
|
+
export interface FeTableAlertProps<T = any> {
|
|
3
|
+
selectedRowKeys: Key[];
|
|
4
|
+
selectedRows: T[];
|
|
5
|
+
onCleanSelected: () => void;
|
|
6
|
+
tableAlertRender?: ((params: {
|
|
7
|
+
selectedRowKeys: Key[];
|
|
8
|
+
selectedRows: T[];
|
|
9
|
+
onCleanSelected: () => void;
|
|
10
|
+
}) => React.ReactNode) | false;
|
|
11
|
+
}
|
|
12
|
+
declare const FeTableAlert: <T extends Record<string, any> = any>(props: FeTableAlertProps<T>) => import("react/jsx-runtime").JSX.Element | null;
|
|
13
|
+
export default FeTableAlert;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { IColumnsHandleConfig } from '../type/table.d';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export type TFeTableLinkConfig<T> = IColumnsHandleConfig & { record: T; index: number };
|
|
6
|
+
|
|
7
|
+
export interface FeTableLinkProps<T> {
|
|
8
|
+
config: Array<TFeTableLinkConfig<T>>;
|
|
9
|
+
modal?: {
|
|
10
|
+
confirm: (config: { title?: string; content?: React.ReactNode; onOk?: () => void; onCancel?: () => void }) => void;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ITableColumns, TRenderType } from '../type/table.d';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
export interface FeTableRenderProps<DataType extends Record<string, any>> {
|
|
5
|
+
value: any;
|
|
6
|
+
width: ITableColumns<DataType>['width'];
|
|
7
|
+
record: DataType;
|
|
8
|
+
column: ITableColumns<DataType>;
|
|
9
|
+
renderType: TRenderType;
|
|
10
|
+
renderParams: ITableColumns<DataType>['renderParams'];
|
|
11
|
+
tagRenderParams: ITableColumns<DataType>['tagRenderParams'];
|
|
12
|
+
thousandsParams?: ITableColumns<DataType>['thousandsParams'];
|
|
13
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ITableColumns } from '../type/table.d';
|
|
2
|
+
export interface FeTableSettingProps<T = any> {
|
|
3
|
+
/**
|
|
4
|
+
* 表格列配置
|
|
5
|
+
*/
|
|
6
|
+
columns: ITableColumns<T>[];
|
|
7
|
+
/**
|
|
8
|
+
* 列顺序变化回调
|
|
9
|
+
*/
|
|
10
|
+
onColumnsChange?: (columns: ITableColumns<T>[]) => void;
|
|
11
|
+
/**
|
|
12
|
+
* 列显示/隐藏变化回调
|
|
13
|
+
*/
|
|
14
|
+
onColumnVisibilityChange?: (dataIndex: string, visible: boolean) => void;
|
|
15
|
+
/**
|
|
16
|
+
* 隐藏的列的dataIndex数组
|
|
17
|
+
*/
|
|
18
|
+
hiddenColumns?: string[];
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
declare const FeTableSetting: <T extends Record<string, any> = any>(props: FeTableSettingProps<T>) => import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export default FeTableSetting;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { IToolBarBtnConfig } from '../type/table.d';
|
|
3
|
+
|
|
4
|
+
|
|
5
|
+
export interface FeTableToolbarProps {
|
|
6
|
+
config: IToolBarBtnConfig[];
|
|
7
|
+
btnPermissionList?: string[];
|
|
8
|
+
modal?: {
|
|
9
|
+
confirm: (config: {
|
|
10
|
+
title?: string;
|
|
11
|
+
content?: React.ReactNode;
|
|
12
|
+
onOk?: () => void;
|
|
13
|
+
onCancel?: () => void;
|
|
14
|
+
}) => void;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
declare const FeTableToolbar: React.ForwardRefExoticComponent<FeTableToolbarProps>;
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
|
+
import { ITableColumns, ITableParams } from '../type/table.d';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* 判断是否需要重新请求前一页数据
|
|
6
|
+
* @param record 当前数据记录
|
|
7
|
+
* @param pageNo 当前页码
|
|
8
|
+
* @returns 是否需要重新请求前一页
|
|
9
|
+
*/
|
|
10
|
+
export declare const shouldRequestPreviousPage: (record: any[], pageNo: number) => boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 渲染操作按钮
|
|
13
|
+
*/
|
|
14
|
+
export declare const renderActionButtons: <T extends Record<string, any>>(record: T, index: number, columnsHandleConfig: any[], btnPermissionList: string[] | undefined, modal: any) => import("react/jsx-runtime").JSX.Element | never[];
|
|
15
|
+
/**
|
|
16
|
+
* 创建单元格渲染器
|
|
17
|
+
*/
|
|
18
|
+
export declare const createCellRenderer: (column: ITableColumns<any>) => ((text: any, record: any, index: number) => React.ReactNode) | ((_: any, record: any) => import("react/jsx-runtime").JSX.Element);
|
|
19
|
+
/**
|
|
20
|
+
* 添加序号列
|
|
21
|
+
*/
|
|
22
|
+
export declare const addIndexColumn: (columns: ITableColumns<any>[], showIndex?: boolean, pageNo?: number, pageSize?: number) => ITableColumns<any>[];
|
|
23
|
+
/**
|
|
24
|
+
* 添加操作列并处理所有列的渲染函数
|
|
25
|
+
*/
|
|
26
|
+
export declare const processTableColumns: (columns: ITableColumns<any>[], columnsHandleConfig: any[] | undefined, btnPermissionList: string[] | undefined, columnsHandleAttr: ITableParams<any>["columnsHandleAttr"], modal: any) => {
|
|
27
|
+
render: ((text: any, record: any, index: number) => React.ReactNode) | ((_: any, record: any) => import("react/jsx-runtime").JSX.Element);
|
|
28
|
+
dataIndex: string | number | symbol;
|
|
29
|
+
key?: React.Key;
|
|
30
|
+
title: string | React.ReactNode;
|
|
31
|
+
titleRender?: React.ReactNode;
|
|
32
|
+
showHint?: boolean;
|
|
33
|
+
hintText?: string | React.ReactNode;
|
|
34
|
+
ellipsis?: boolean | {
|
|
35
|
+
showTitle: boolean;
|
|
36
|
+
};
|
|
37
|
+
align?: "left" | "center" | "right";
|
|
38
|
+
fixed?: false | "left" | "right";
|
|
39
|
+
width?: number;
|
|
40
|
+
dataType?: "string" | "integer" | "double" | "dict";
|
|
41
|
+
renderType?: import('../type/table.d').TRenderType;
|
|
42
|
+
renderParams?: {
|
|
43
|
+
tooltip: boolean;
|
|
44
|
+
ellipsis: boolean;
|
|
45
|
+
maxLines?: number;
|
|
46
|
+
};
|
|
47
|
+
defaultRenderParams?: {
|
|
48
|
+
filter?: any;
|
|
49
|
+
dictfilterParams?: {
|
|
50
|
+
dictList: Array<{
|
|
51
|
+
dataIndex: string;
|
|
52
|
+
label: string;
|
|
53
|
+
}>;
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
tagRenderParams?: {
|
|
57
|
+
filter?: any;
|
|
58
|
+
dictfilterParams?: {
|
|
59
|
+
dictList: Array<{
|
|
60
|
+
dataIndex: string;
|
|
61
|
+
label: string;
|
|
62
|
+
}>;
|
|
63
|
+
};
|
|
64
|
+
separator?: string;
|
|
65
|
+
themeEnums?: Record<string, "processing" | "success" | "error" | "default" | "warning">;
|
|
66
|
+
};
|
|
67
|
+
editRenderParams?: import('../type/table.d').IEditRenderParams;
|
|
68
|
+
thousandsParams?: {
|
|
69
|
+
precision?: number;
|
|
70
|
+
fillZero?: boolean;
|
|
71
|
+
separator?: string;
|
|
72
|
+
};
|
|
73
|
+
hideInSetting?: boolean;
|
|
74
|
+
}[];
|
|
75
|
+
/**
|
|
76
|
+
* 应用列样式
|
|
77
|
+
*/
|
|
78
|
+
export declare const applyColumnStyles: (columns: ITableColumns<any>[]) => {
|
|
79
|
+
ellipsis: boolean | {
|
|
80
|
+
showTitle: boolean;
|
|
81
|
+
};
|
|
82
|
+
align: "center" | "left" | "right";
|
|
83
|
+
dataIndex: string | number | symbol;
|
|
84
|
+
key?: React.Key;
|
|
85
|
+
title: string | React.ReactNode;
|
|
86
|
+
titleRender?: React.ReactNode;
|
|
87
|
+
showHint?: boolean;
|
|
88
|
+
hintText?: string | React.ReactNode;
|
|
89
|
+
render?: (text: any, record: any, index: number) => React.ReactNode;
|
|
90
|
+
fixed?: false | "left" | "right";
|
|
91
|
+
width?: number;
|
|
92
|
+
dataType?: "string" | "integer" | "double" | "dict";
|
|
93
|
+
renderType?: import('../type/table.d').TRenderType;
|
|
94
|
+
renderParams?: {
|
|
95
|
+
tooltip: boolean;
|
|
96
|
+
ellipsis: boolean;
|
|
97
|
+
maxLines?: number;
|
|
98
|
+
};
|
|
99
|
+
defaultRenderParams?: {
|
|
100
|
+
filter?: any;
|
|
101
|
+
dictfilterParams?: {
|
|
102
|
+
dictList: Array<{
|
|
103
|
+
dataIndex: string;
|
|
104
|
+
label: string;
|
|
105
|
+
}>;
|
|
106
|
+
};
|
|
107
|
+
};
|
|
108
|
+
tagRenderParams?: {
|
|
109
|
+
filter?: any;
|
|
110
|
+
dictfilterParams?: {
|
|
111
|
+
dictList: Array<{
|
|
112
|
+
dataIndex: string;
|
|
113
|
+
label: string;
|
|
114
|
+
}>;
|
|
115
|
+
};
|
|
116
|
+
separator?: string;
|
|
117
|
+
themeEnums?: Record<string, "processing" | "success" | "error" | "default" | "warning">;
|
|
118
|
+
};
|
|
119
|
+
editRenderParams?: import('../type/table.d').IEditRenderParams;
|
|
120
|
+
thousandsParams?: {
|
|
121
|
+
precision?: number;
|
|
122
|
+
fillZero?: boolean;
|
|
123
|
+
separator?: string;
|
|
124
|
+
};
|
|
125
|
+
hideInSetting?: boolean;
|
|
126
|
+
}[];
|
|
127
|
+
/**
|
|
128
|
+
* 解析表单数据,将带行ID后缀的字段名转换为按行分组的数据
|
|
129
|
+
* @param formData 原始表单数据 (如 {name_1: 'John', age_1: 25, name_2: 'Jane'})
|
|
130
|
+
* @param rowKey 行标识字段名
|
|
131
|
+
* @returns 按行分组的数据 (如 {'1': {name: 'John', age: 25}, '2': {name: 'Jane'}})
|
|
132
|
+
*/
|
|
133
|
+
export declare const parseTableFormData: (formData: Record<string, any>, rowKey?: string) => Record<string, any>;
|
|
134
|
+
/**
|
|
135
|
+
* 从当前行数据中提取行ID
|
|
136
|
+
* @param record 当前行记录
|
|
137
|
+
* @param rowKey 行标识字段名
|
|
138
|
+
* @returns 行ID
|
|
139
|
+
*/
|
|
140
|
+
export declare const getRowIdFromRecord: (record: any, rowKey?: string) => string;
|
|
141
|
+
/**
|
|
142
|
+
* 根据字段名和行ID构建表单字段名
|
|
143
|
+
* @param fieldName 字段名
|
|
144
|
+
* @param rowId 行ID
|
|
145
|
+
* @returns 表单字段名 (如 'name_1')
|
|
146
|
+
*/
|
|
147
|
+
export declare const buildFormFieldName: (fieldName: string, rowId: string) => string;
|
|
148
|
+
/**
|
|
149
|
+
* 处理表格校验规则,注入表格上下文
|
|
150
|
+
* @param rules 原始校验规则数组
|
|
151
|
+
* @param record 当前行记录
|
|
152
|
+
* @param rowKey 行标识字段名
|
|
153
|
+
* @param formInstance 表单实例
|
|
154
|
+
* @returns 处理后的校验规则数组
|
|
155
|
+
*/
|
|
156
|
+
export declare const processTableRules: (rules: any[] | undefined, record: any, rowKey: string, formInstance: any) => any[];
|
|
157
|
+
/**
|
|
158
|
+
* 表格上下文类型定义
|
|
159
|
+
*/
|
|
160
|
+
export interface TableContext {
|
|
161
|
+
/** 当前行记录(包含最新表单数据) */
|
|
162
|
+
currentRecord: Record<string, any>;
|
|
163
|
+
/** 所有表格行数据 */
|
|
164
|
+
allTableData: Record<string, any>;
|
|
165
|
+
/** 表单实例 */
|
|
166
|
+
form: FormInstance;
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* 创建表格校验上下文
|
|
170
|
+
* @param record 当前行记录
|
|
171
|
+
* @param rowKey 行标识字段名
|
|
172
|
+
* @param formInstance 表单实例
|
|
173
|
+
* @returns 表格校验上下文对象
|
|
174
|
+
*/
|
|
175
|
+
export declare const createTableContext: (record: any, rowKey: string, formInstance: any) => TableContext;
|
|
176
|
+
/**
|
|
177
|
+
* 处理对象中的事件处理器,注入表格上下文
|
|
178
|
+
* @param obj 包含事件处理器的对象
|
|
179
|
+
* @param record 当前行记录
|
|
180
|
+
* @param rowKey 行标识字段名
|
|
181
|
+
* @param formInstance 表单实例
|
|
182
|
+
* @returns 处理后的对象
|
|
183
|
+
*/
|
|
184
|
+
export declare const processEventHandlers: (obj: Record<string, any> | undefined, record: any, rowKey: string, formInstance: any) => Record<string, any>;
|
|
185
|
+
/**
|
|
186
|
+
* 深度处理表单属性中所有 *Attributes 对象的事件处理器
|
|
187
|
+
* @param formProps 表单属性配置
|
|
188
|
+
* @param record 当前行记录
|
|
189
|
+
* @param rowKey 行标识字段名
|
|
190
|
+
* @param formInstance 表单实例
|
|
191
|
+
* @returns 处理后的表单属性配置
|
|
192
|
+
*/
|
|
193
|
+
export declare const enhanceFormPropsWithContext: (formProps: any, record: any, rowKey: string, formInstance: any) => any;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { default as FeTable } from './fe-table';
|
|
2
|
+
export { shouldRequestPreviousPage } from './fe-table-utils';
|
|
3
|
+
export * from './type/table.d';
|
|
4
|
+
export * from './type/table-context.d';
|
|
5
|
+
export { default as UseEditTable } from './use-edit-table';
|
|
6
|
+
export { default as UseTable } from './use-table';
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 可编辑表格上下文类型定义
|
|
3
|
+
*/
|
|
4
|
+
export interface TableContext {
|
|
5
|
+
/**
|
|
6
|
+
* 当前行记录(包含最新表单数据)
|
|
7
|
+
* 注意:这里的字段值是已经从表单中获取的最新值
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
currentRecord: Record<string, any>;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 所有表格行数据
|
|
14
|
+
* 格式: { rowId: rowData }
|
|
15
|
+
* 例如: { '1': { id: 1, name: '张三' }, '2': { id: 2, name: '李四' } }
|
|
16
|
+
*/
|
|
17
|
+
allTableData: Record<string, Record<string, any>>;
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Ant Design Form 表单实例
|
|
21
|
+
* 可以使用所有表单方法,如:
|
|
22
|
+
* - getFieldValue(name)
|
|
23
|
+
* - setFieldValue(name, value)
|
|
24
|
+
* - getFieldsValue()
|
|
25
|
+
* - setFieldsValue(values)
|
|
26
|
+
* - validateFields()
|
|
27
|
+
*/
|
|
28
|
+
form: any;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* 带表格上下文的事件处理器类型
|
|
33
|
+
* 用于为事件处理器提供类型提示
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* import type { TableEventHandler } from '@orchid/fe-table';
|
|
38
|
+
*
|
|
39
|
+
* const handleBlur: TableEventHandler<[React.FocusEvent]> = (event, tableContext) => {
|
|
40
|
+
* const { currentRecord, form } = tableContext;
|
|
41
|
+
* // ...
|
|
42
|
+
* };
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export type TableEventHandler<T extends any[] = any[]> = (...args: [...T, TableContext]) => void | Promise<void>;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* 表格值变更事件处理器
|
|
49
|
+
*/
|
|
50
|
+
export type TableValueChangeHandler = TableEventHandler<[any]>;
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* 表格点击事件处理器
|
|
54
|
+
*/
|
|
55
|
+
export type TableClickHandler = TableEventHandler<[React.MouseEvent]>;
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* 表格焦点事件处理器
|
|
59
|
+
*/
|
|
60
|
+
export type TableFocusHandler = TableEventHandler<[React.FocusEvent]>;
|