@spacego/fe-components 0.1.0 → 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 -68
- /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,6 @@
|
|
|
1
|
+
import { IEditTableHookProps, IUseEditTableRsp } from '../type/table.d';
|
|
2
|
+
/**
|
|
3
|
+
* 可编辑表格钩子
|
|
4
|
+
*/
|
|
5
|
+
declare const useEditTableHook: <DataType extends Record<string, any> = Record<string, any>>({ tableProps, onTableChange, editTable }: IEditTableHookProps<DataType>) => IUseEditTableRsp<DataType>;
|
|
6
|
+
export default useEditTableHook;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { Data, PaginationOptions, PaginationResult, Params, Service } from '../type/table.d';
|
|
2
|
+
declare const usePagination: <TData extends Data, TParams extends Params>(service: Service<TData, TParams>, options?: PaginationOptions<TData, TParams>) => PaginationResult<TData, TParams>;
|
|
3
|
+
export default usePagination;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ITableColumns, ITableParams } from '../type/table.d';
|
|
2
|
+
declare const useSubTable: (params: ITableParams<any>["subTableConfig"] & {
|
|
3
|
+
btnPermissionList?: string[];
|
|
4
|
+
}) => {
|
|
5
|
+
subColumns: ITableColumns<any>[];
|
|
6
|
+
expandableConfig: import('antd/es/table/interface').ExpandableConfig<import('antd/es/_util/type').AnyObject> | undefined;
|
|
7
|
+
};
|
|
8
|
+
export default useSubTable;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ITableColumns } from '../type/table.d';
|
|
2
|
+
export interface UseTableColumnsProps<T = any> {
|
|
3
|
+
/**
|
|
4
|
+
* 原始列配置
|
|
5
|
+
*/
|
|
6
|
+
columns: ITableColumns<T>[];
|
|
7
|
+
/**
|
|
8
|
+
* 是否启用列配置功能
|
|
9
|
+
*/
|
|
10
|
+
columnSetting?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* 缓存键
|
|
13
|
+
*/
|
|
14
|
+
tableKey?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface UseTableColumnsReturn<T = any> {
|
|
17
|
+
/**
|
|
18
|
+
* 处理后的列配置(包含排序和显示/隐藏)
|
|
19
|
+
*/
|
|
20
|
+
processedColumns: ITableColumns<T>[];
|
|
21
|
+
/**
|
|
22
|
+
* 原始列配置(用于配置组件)
|
|
23
|
+
*/
|
|
24
|
+
originalColumns: ITableColumns<T>[];
|
|
25
|
+
/**
|
|
26
|
+
* 当前隐藏的列
|
|
27
|
+
*/
|
|
28
|
+
hiddenColumns: string[];
|
|
29
|
+
/**
|
|
30
|
+
* 列顺序变化处理
|
|
31
|
+
*/
|
|
32
|
+
onColumnsChange: (newColumns: ITableColumns<T>[]) => void;
|
|
33
|
+
/**
|
|
34
|
+
* 列显示/隐藏变化处理
|
|
35
|
+
*/
|
|
36
|
+
onColumnVisibilityChange: (dataIndex: string, visible: boolean) => void;
|
|
37
|
+
/**
|
|
38
|
+
* 是否启用列配置
|
|
39
|
+
*/
|
|
40
|
+
columnSettingEnabled: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* 表格列管理Hook
|
|
44
|
+
* 处理列的排序、显示/隐藏等功能
|
|
45
|
+
*/
|
|
46
|
+
export declare const useTableColumns: <T extends Record<string, any> = any>(props: UseTableColumnsProps<T>) => UseTableColumnsReturn<T>;
|
|
47
|
+
export default useTableColumns;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 表格表单上下文Hook
|
|
3
|
+
* 为可编辑表格提供表单上下文处理能力
|
|
4
|
+
*/
|
|
5
|
+
export declare const useTableFormContext: () => {
|
|
6
|
+
formInstance: import('antd').FormInstance<any>;
|
|
7
|
+
enhanceRules: (rules: any[], record: any, rowKey: string) => any[];
|
|
8
|
+
enhanceFormProps: (formProps: any, record: any, rowKey: string) => any;
|
|
9
|
+
};
|
|
10
|
+
export default useTableFormContext;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { TableProps } from 'antd';
|
|
2
|
+
import { Key } from 'antd/es/table/interface';
|
|
3
|
+
export interface UseTableSelectionProps<T = any> {
|
|
4
|
+
/**
|
|
5
|
+
* 表格行选择配置
|
|
6
|
+
*/
|
|
7
|
+
rowSelection?: TableProps<T>['rowSelection'];
|
|
8
|
+
/**
|
|
9
|
+
* 表格数据源,用于根据selectedRowKeys获取selectedRows
|
|
10
|
+
*/
|
|
11
|
+
dataSource?: T[];
|
|
12
|
+
/**
|
|
13
|
+
* 行唯一标识键名,默认为 'id'
|
|
14
|
+
*/
|
|
15
|
+
rowKey?: string | ((record: T) => string);
|
|
16
|
+
}
|
|
17
|
+
export interface UseTableSelectionReturn<T = any> {
|
|
18
|
+
/**
|
|
19
|
+
* 当前选中的行keys
|
|
20
|
+
*/
|
|
21
|
+
selectedRowKeys: Key[];
|
|
22
|
+
/**
|
|
23
|
+
* 当前选中的行数据
|
|
24
|
+
*/
|
|
25
|
+
selectedRows: T[];
|
|
26
|
+
/**
|
|
27
|
+
* 处理后的rowSelection配置,传递给Table组件
|
|
28
|
+
*/
|
|
29
|
+
rowSelection: TableProps<T>['rowSelection'] | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* 清空选择
|
|
32
|
+
*/
|
|
33
|
+
onCleanSelected: () => void;
|
|
34
|
+
/**
|
|
35
|
+
* 是否为受控模式
|
|
36
|
+
*/
|
|
37
|
+
isControlled: boolean;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* 表格行选择逻辑Hook
|
|
41
|
+
* 支持受控和非受控模式
|
|
42
|
+
* - 受控模式:外部传入selectedRowKeys,组件不维护内部状态
|
|
43
|
+
* - 非受控模式:内部维护selectedRowKeys状态
|
|
44
|
+
*/
|
|
45
|
+
export declare const useTableSelection: <T extends Record<string, any> = any>(props: UseTableSelectionProps<T>) => UseTableSelectionReturn<T>;
|
|
46
|
+
export default useTableSelection;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { UploadFile } from 'antd';
|
|
2
|
+
import { UploadChangeParam } from 'antd/es/upload';
|
|
3
|
+
import { FeUploadAtomicProps } from '../fe-upload-atomic/index.d';
|
|
4
|
+
import { AcceptType } from './upload.constant';
|
|
5
|
+
export type TCropConfig = {
|
|
6
|
+
width?: number;
|
|
7
|
+
height?: number;
|
|
8
|
+
roate?: boolean;
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export interface IFeUploadProps extends Omit<FeUploadAtomicProps, 'accept' | 'onChange' | 'customRequest'> {
|
|
12
|
+
/**
|
|
13
|
+
* @name 自定义样式类型
|
|
14
|
+
* @params render 手动画children样式
|
|
15
|
+
* @params default 方形+加号上传框 - 默认样式
|
|
16
|
+
* @params card 卡片样式,可拖动上传,身份证场景
|
|
17
|
+
* @params btn 单个按钮样式,文件列表场景
|
|
18
|
+
*/
|
|
19
|
+
customType?: 'render' | 'default' | 'card' | 'btn' | 'drag';
|
|
20
|
+
/**
|
|
21
|
+
* @name 拖拽框/上传按钮内文案
|
|
22
|
+
*/
|
|
23
|
+
title?: string | string[];
|
|
24
|
+
/**
|
|
25
|
+
* @name 上传的fileList
|
|
26
|
+
*
|
|
27
|
+
* 当maxCount === 1时,value可为string类型
|
|
28
|
+
*/
|
|
29
|
+
value?: string | UploadFile[];
|
|
30
|
+
/**
|
|
31
|
+
* @name 底部提示
|
|
32
|
+
*/
|
|
33
|
+
tips?: string;
|
|
34
|
+
/**
|
|
35
|
+
* @name 可上传文件大小,单位:B,默认20M(1024*1024*20)
|
|
36
|
+
*/
|
|
37
|
+
fileSize?: number;
|
|
38
|
+
/**
|
|
39
|
+
* @name 上传图片是否支持裁剪
|
|
40
|
+
* @param isOpen 打开、关闭
|
|
41
|
+
*/
|
|
42
|
+
isCropImage?: boolean;
|
|
43
|
+
/**
|
|
44
|
+
* @name 图片裁剪参数设置
|
|
45
|
+
*/
|
|
46
|
+
cropCofig?: cropConfig;
|
|
47
|
+
/**
|
|
48
|
+
* @name 上传的文件类型限制
|
|
49
|
+
*/
|
|
50
|
+
accept?: AcceptType | AcceptType[];
|
|
51
|
+
/**
|
|
52
|
+
* @name 自定义accept格式,枚举accept不满足需求时使用,customAccept优先级大于accept
|
|
53
|
+
* @description 可以是预定义的类型(如IMAGE, PDF)或自定义MIME类型字符串(如'image/jpeg,image/png')
|
|
54
|
+
*/
|
|
55
|
+
customAccept?: string;
|
|
56
|
+
/**
|
|
57
|
+
* @name 上传文件限制类型格式,用于提示
|
|
58
|
+
* @description 会自动拼接为`上传文件类型只能为${acceptDesc}格式`
|
|
59
|
+
*/
|
|
60
|
+
acceptDesc?: string;
|
|
61
|
+
/**
|
|
62
|
+
* @name 是否手动处理类型校验
|
|
63
|
+
* @description 默认会根据accept或customAccept自动校验,当isManualValieType为true时,需要手动处理类型校验
|
|
64
|
+
*/
|
|
65
|
+
isManualValieType?: boolean;
|
|
66
|
+
/**
|
|
67
|
+
* @name 是否手动处理预览
|
|
68
|
+
* @description 默认会根据fileList自动处理预览,当isManualPreview为true时,需要手动处理预览
|
|
69
|
+
*/
|
|
70
|
+
isManualPreview?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* @name 是否在上传失败时删除文件
|
|
73
|
+
*/
|
|
74
|
+
isRemoveOnError?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* @name 自定义上传回调
|
|
77
|
+
*/
|
|
78
|
+
customRequest?: (file: File) => Promise<any>;
|
|
79
|
+
/**
|
|
80
|
+
* @name onchange事件
|
|
81
|
+
* @param fileList fileList列表
|
|
82
|
+
* @param files antd返回的上传进度和list
|
|
83
|
+
*/
|
|
84
|
+
onChange?: (fileList: UploadFile[], files: UploadChangeParam<UploadFile>) => void;
|
|
85
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/** 上传类型常量枚举 */
|
|
2
|
+
export declare const ACCEPT_TYPE: {
|
|
3
|
+
readonly IMAGE: "IMAGE";
|
|
4
|
+
readonly PDF: "PDF";
|
|
5
|
+
readonly WORD: "WORD";
|
|
6
|
+
readonly EXCEL: "EXCEL";
|
|
7
|
+
readonly PPT: "PPT";
|
|
8
|
+
readonly TXT: "TXT";
|
|
9
|
+
readonly ZIP: "ZIP";
|
|
10
|
+
readonly VIDEO: "VIDEO";
|
|
11
|
+
readonly AUDIO: "AUDIO";
|
|
12
|
+
};
|
|
13
|
+
export type AcceptType = keyof typeof ACCEPT_TYPE;
|
|
14
|
+
/** 各类型对应的 accept 字符串和 mime 类型集合 */
|
|
15
|
+
export declare const ACCEPT_TYPE_MAP: Record<AcceptType, {
|
|
16
|
+
accept: string;
|
|
17
|
+
mimeSet: Set<string>;
|
|
18
|
+
label: string;
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* 校验文件类型是否符合 accept 类型
|
|
22
|
+
* @param fileType 文件的 mime 类型
|
|
23
|
+
* @param accept 用户传入的 accept 类型(如 'image', 'pdf', 'word' 等)
|
|
24
|
+
* @returns boolean
|
|
25
|
+
*/
|
|
26
|
+
export declare function validateFileByAccept(fileType: string, accept?: AcceptType | AcceptType[]): boolean;
|
|
27
|
+
export declare function validateFileByCustomAccept(fileType: string, customAccept?: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 根据 AcceptType 或 AcceptType[] 获取 accept 字符串
|
|
30
|
+
* @param acceptType AcceptType 或 AcceptType[]
|
|
31
|
+
* @returns string
|
|
32
|
+
*/
|
|
33
|
+
export declare function getAccept(acceptType?: AcceptType | AcceptType[]): string;
|
|
34
|
+
/**
|
|
35
|
+
* 根据 AcceptType 或 AcceptType[] 获取 label/title 字符串
|
|
36
|
+
* @param acceptType AcceptType 或 AcceptType[]
|
|
37
|
+
* @returns string
|
|
38
|
+
*/
|
|
39
|
+
export declare function getAcceptLabel(acceptType?: AcceptType | AcceptType[]): string;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { RcFile } from 'antd/es/upload';
|
|
2
|
+
import { FunctionComponent } from 'react';
|
|
3
|
+
import { TCropConfig } from '../fe-upload/index.d';
|
|
4
|
+
interface ICropRenderProps {
|
|
5
|
+
file: RcFile;
|
|
6
|
+
onCrop?: (croppedImage: Blob) => void;
|
|
7
|
+
cropConfig?: TCropConfig;
|
|
8
|
+
}
|
|
9
|
+
declare const CropRender: FunctionComponent<ICropRenderProps>;
|
|
10
|
+
export default CropRender;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { IDescriptionsParams, IUseDescriptions } from './index.d';
|
|
2
|
+
declare const FeUseDescriptions: <DataType extends Record<string, any>>({ descriptionsItems, descriptionsData, bordered, size, rawKeyRef: externalKeyRef, className, styles, ...restProps }: IDescriptionsParams<DataType>) => IUseDescriptions;
|
|
3
|
+
export default FeUseDescriptions;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FormInstance } from 'antd';
|
|
2
|
+
import { default as React } from 'react';
|
|
3
|
+
import { FeFormProps } from '../../fe-form/fe-form/index.d';
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
export interface IFormParams<DataType = any>
|
|
7
|
+
extends FeFormProps<DataType> {
|
|
8
|
+
setFormData: (data: Partial<DataType> | DataType) => void;
|
|
9
|
+
key?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export interface IFormProps<DataType> {
|
|
13
|
+
formProps: FeFormProps<DataType>;
|
|
14
|
+
formRef: React.RefObject<FormInstance>;
|
|
15
|
+
validate: (key?: keyof DataType) => Promise<any> | undefined;
|
|
16
|
+
}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -9,8 +9,40 @@ export * from './router';
|
|
|
9
9
|
/**------------------------------------------- hooks ------------------------------------------- */
|
|
10
10
|
export * from './hooks';
|
|
11
11
|
/**------------------------------------------- components ------------------------------------------- */
|
|
12
|
+
export { default as FeAutoComplete } from './fe-auto-complete';
|
|
13
|
+
export { default as FeButton } from './fe-button';
|
|
14
|
+
export { default as FeCascader } from './fe-cascader';
|
|
15
|
+
export { default as FeCheckbox } from './fe-checkbox';
|
|
16
|
+
export { default as FeCheckboxGroup } from './fe-checkbox-group';
|
|
17
|
+
export { default as FeDatePicker } from './fe-date-picker';
|
|
18
|
+
export { default as FeDescriptionRender } from './fe-description-render';
|
|
19
|
+
export { default as FeDescriptions } from './fe-descriptions';
|
|
20
|
+
export { default as FeEmpty } from './fe-empty';
|
|
21
|
+
export { default as FeErrorBlock } from './fe-error-block';
|
|
22
|
+
export * from './fe-form';
|
|
23
|
+
export { default as FeInput } from './fe-input';
|
|
24
|
+
export { default as FeInputNumber } from './fe-input-number';
|
|
12
25
|
export * from './fe-layouts';
|
|
26
|
+
export { default as FeLink } from './fe-link';
|
|
13
27
|
export { default as FeLoading } from './fe-loading';
|
|
28
|
+
export { default as FeMap } from './fe-map';
|
|
29
|
+
export { default as FeModal } from './fe-modal';
|
|
30
|
+
export { default as FePagination } from './fe-pagination';
|
|
31
|
+
export { default as FePanel } from './fe-panel';
|
|
32
|
+
export { usePanelContext } from './fe-panel/use-panel-context';
|
|
33
|
+
export { default as FePermission } from './fe-permission';
|
|
34
|
+
export { default as FePermissionProvider } from './fe-permission-provider';
|
|
35
|
+
export { default as FeRadio } from './fe-radio';
|
|
36
|
+
export { default as FeRadioGroup } from './fe-radio-group';
|
|
37
|
+
export { default as FeRichText } from './fe-rich-text';
|
|
38
|
+
export { default as FeSelect } from './fe-select';
|
|
39
|
+
export { default as FeSwitch } from './fe-switch';
|
|
40
|
+
export * from './fe-table';
|
|
41
|
+
export { default as FeTextArea } from './fe-text-area';
|
|
42
|
+
export { default as FeTimePicker } from './fe-time-picker';
|
|
43
|
+
export { default as FeUpload } from './fe-upload';
|
|
44
|
+
export { default as FeUploadAtomic } from './fe-upload-atomic';
|
|
45
|
+
export { default as FeUploadCrop } from './fe-upload-crop';
|
|
14
46
|
/**------------------------------------------- typings ------------------------------------------- */
|
|
15
47
|
export * from './typings/index.d';
|
|
16
48
|
export { type IRecord, type IResponse } from './typings/shims-axios.d';
|
|
@@ -1,59 +1,98 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: dushuai
|
|
3
|
-
* @Date: 2026-01-13 20:55:57
|
|
4
|
-
* @LastEditors: dushuai
|
|
5
|
-
* @LastEditTime: 2026-01-26 23:49:50
|
|
6
|
-
* @description: 类型声明
|
|
7
|
-
*/
|
|
8
|
-
/// <reference types="vite-plugin-svgr/client" />
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* 菜单类型枚举
|
|
12
|
-
* @1 目录 - 仅用于菜单分组,不对应实际页面
|
|
13
|
-
* @2 菜单 - 对应实际页面路由
|
|
14
|
-
* @3 按钮 - 页面内的按钮权限
|
|
15
|
-
*/
|
|
16
|
-
export type MenuType = 1 | 2 | 3;
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* 路由类型
|
|
20
|
-
*/
|
|
21
|
-
export interface IRoute {
|
|
22
|
-
/** 数据库主键id */
|
|
23
|
-
id: number
|
|
24
|
-
/** 菜单类型:1目录、2菜单、3按钮 */
|
|
25
|
-
menuType: MenuType
|
|
26
|
-
/** 菜单唯一标识,必填且唯一 */
|
|
27
|
-
menuId: string
|
|
28
|
-
/** 路由路径 */
|
|
29
|
-
path?: string
|
|
30
|
-
/**
|
|
31
|
-
* 菜单标识
|
|
32
|
-
* - 菜单类型:对应 pages 目录下文件夹名称(如 home、system/user)
|
|
33
|
-
* - 按钮类型:权限标识(如 user:add、user:edit)
|
|
34
|
-
*/
|
|
35
|
-
menuCode?: string
|
|
36
|
-
/** 父级菜单的menuId */
|
|
37
|
-
parentId?: string
|
|
38
|
-
/** 是否受保护,默认true */
|
|
39
|
-
protected?: boolean
|
|
40
|
-
/** 是否是首页(仅菜单类型有效) */
|
|
41
|
-
index?: boolean
|
|
42
|
-
/** 路由/菜单标题 */
|
|
43
|
-
title?: string
|
|
44
|
-
/** 路由/菜单图标 */
|
|
45
|
-
icon?: string
|
|
46
|
-
/** 排序,数字越小越靠前 */
|
|
47
|
-
sort?: number
|
|
48
|
-
/** 是否在侧边栏菜单中显示,默认true(详情页等不需要显示在菜单中的页面设为false) */
|
|
49
|
-
isShowMenu?: boolean
|
|
50
|
-
/** 是否独立菜单 */
|
|
51
|
-
isIndependentMenu?: boolean
|
|
52
|
-
/** 激活路由的menuId */
|
|
53
|
-
activeRouteMenuId?: string
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* 更新store
|
|
58
|
-
*/
|
|
59
|
-
export type TUpdateStore<T> = T | Partial<T> | ((state: T) => T | Partial<T>);
|
|
1
|
+
/*
|
|
2
|
+
* @Author: dushuai
|
|
3
|
+
* @Date: 2026-01-13 20:55:57
|
|
4
|
+
* @LastEditors: dushuai
|
|
5
|
+
* @LastEditTime: 2026-01-26 23:49:50
|
|
6
|
+
* @description: 类型声明
|
|
7
|
+
*/
|
|
8
|
+
/// <reference types="vite-plugin-svgr/client" />
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* 菜单类型枚举
|
|
12
|
+
* @1 目录 - 仅用于菜单分组,不对应实际页面
|
|
13
|
+
* @2 菜单 - 对应实际页面路由
|
|
14
|
+
* @3 按钮 - 页面内的按钮权限
|
|
15
|
+
*/
|
|
16
|
+
export type MenuType = 1 | 2 | 3;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* 路由类型
|
|
20
|
+
*/
|
|
21
|
+
export interface IRoute {
|
|
22
|
+
/** 数据库主键id */
|
|
23
|
+
id: number
|
|
24
|
+
/** 菜单类型:1目录、2菜单、3按钮 */
|
|
25
|
+
menuType: MenuType
|
|
26
|
+
/** 菜单唯一标识,必填且唯一 */
|
|
27
|
+
menuId: string
|
|
28
|
+
/** 路由路径 */
|
|
29
|
+
path?: string
|
|
30
|
+
/**
|
|
31
|
+
* 菜单标识
|
|
32
|
+
* - 菜单类型:对应 pages 目录下文件夹名称(如 home、system/user)
|
|
33
|
+
* - 按钮类型:权限标识(如 user:add、user:edit)
|
|
34
|
+
*/
|
|
35
|
+
menuCode?: string
|
|
36
|
+
/** 父级菜单的menuId */
|
|
37
|
+
parentId?: string
|
|
38
|
+
/** 是否受保护,默认true */
|
|
39
|
+
protected?: boolean
|
|
40
|
+
/** 是否是首页(仅菜单类型有效) */
|
|
41
|
+
index?: boolean
|
|
42
|
+
/** 路由/菜单标题 */
|
|
43
|
+
title?: string
|
|
44
|
+
/** 路由/菜单图标 */
|
|
45
|
+
icon?: string
|
|
46
|
+
/** 排序,数字越小越靠前 */
|
|
47
|
+
sort?: number
|
|
48
|
+
/** 是否在侧边栏菜单中显示,默认true(详情页等不需要显示在菜单中的页面设为false) */
|
|
49
|
+
isShowMenu?: boolean
|
|
50
|
+
/** 是否独立菜单 */
|
|
51
|
+
isIndependentMenu?: boolean
|
|
52
|
+
/** 激活路由的menuId */
|
|
53
|
+
activeRouteMenuId?: string
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* 更新store
|
|
58
|
+
*/
|
|
59
|
+
export type TUpdateStore<T> = T | Partial<T> | ((state: T) => T | Partial<T>);
|
|
60
|
+
|
|
61
|
+
declare global {
|
|
62
|
+
interface Number {
|
|
63
|
+
toFixedNew: (len: number) => string;
|
|
64
|
+
countDecimals: () => number;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @name 基础属性
|
|
70
|
+
*/
|
|
71
|
+
export interface IBasicProps {
|
|
72
|
+
/**
|
|
73
|
+
* @name 样式
|
|
74
|
+
*/
|
|
75
|
+
style?: React.CSSProperties;
|
|
76
|
+
/**
|
|
77
|
+
* @name 类名
|
|
78
|
+
*/
|
|
79
|
+
className?: string;
|
|
80
|
+
/**
|
|
81
|
+
* @name children
|
|
82
|
+
*/
|
|
83
|
+
children?: React.ReactNode | string;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* @name 权限属性
|
|
88
|
+
*/
|
|
89
|
+
export interface IPermissionProps {
|
|
90
|
+
/**
|
|
91
|
+
* @name 按钮权限字符串
|
|
92
|
+
*/
|
|
93
|
+
btnPermission?: string;
|
|
94
|
+
/**
|
|
95
|
+
* @name 当无权限时展示的内容,默认为null不展示任何内容
|
|
96
|
+
*/
|
|
97
|
+
fallback?: React.ReactNode;
|
|
98
|
+
}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* @Author: dushuai
|
|
3
|
-
* @Date: 2025-12-07 16:31:57
|
|
4
|
-
* @LastEditors: dushuai
|
|
5
|
-
* @LastEditTime: 2026-01-13 22:14:53
|
|
6
|
-
* @description: 请求config配置
|
|
7
|
-
*/
|
|
8
|
-
declare module 'axios' {
|
|
9
|
-
export interface AxiosRequestConfig {
|
|
10
|
-
/**
|
|
11
|
-
* @name 是否单独处理请求数据,true:返回结构为Response类型(且不处理错误码),false:返回结构为data类型,默认false
|
|
12
|
-
*/
|
|
13
|
-
isCheck?: boolean;
|
|
14
|
-
/**
|
|
15
|
-
* @name 是否加载loading
|
|
16
|
-
* @default true
|
|
17
|
-
*/
|
|
18
|
-
showLoading?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* @name 加载loading的文本,最多七个字
|
|
21
|
-
*/
|
|
22
|
-
loadingText?: string;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export interface IResponse<T = unknown> {
|
|
27
|
-
code: number;
|
|
28
|
-
data: T;
|
|
29
|
-
msg: string;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export interface IRecord<T = unknown> {
|
|
33
|
-
pageNum: number;
|
|
34
|
-
pageSize: number;
|
|
35
|
-
records: T[];
|
|
36
|
-
total: number;
|
|
37
|
-
totalPage?: number;
|
|
38
|
-
}
|
|
1
|
+
/*
|
|
2
|
+
* @Author: dushuai
|
|
3
|
+
* @Date: 2025-12-07 16:31:57
|
|
4
|
+
* @LastEditors: dushuai
|
|
5
|
+
* @LastEditTime: 2026-01-13 22:14:53
|
|
6
|
+
* @description: 请求config配置
|
|
7
|
+
*/
|
|
8
|
+
declare module 'axios' {
|
|
9
|
+
export interface AxiosRequestConfig {
|
|
10
|
+
/**
|
|
11
|
+
* @name 是否单独处理请求数据,true:返回结构为Response类型(且不处理错误码),false:返回结构为data类型,默认false
|
|
12
|
+
*/
|
|
13
|
+
isCheck?: boolean;
|
|
14
|
+
/**
|
|
15
|
+
* @name 是否加载loading
|
|
16
|
+
* @default true
|
|
17
|
+
*/
|
|
18
|
+
showLoading?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* @name 加载loading的文本,最多七个字
|
|
21
|
+
*/
|
|
22
|
+
loadingText?: string;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export interface IResponse<T = unknown> {
|
|
27
|
+
code: number;
|
|
28
|
+
data: T;
|
|
29
|
+
msg: string;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export interface IRecord<T = unknown> {
|
|
33
|
+
pageNum: number;
|
|
34
|
+
pageSize: number;
|
|
35
|
+
records: T[];
|
|
36
|
+
total: number;
|
|
37
|
+
totalPage?: number;
|
|
38
|
+
}
|