@spacego/fe-components 0.1.1 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/lib/_virtual/Resizable.js +4 -0
  2. package/lib/_virtual/ResizableBox.js +4 -0
  3. package/lib/_virtual/index.js +5 -0
  4. package/lib/_virtual/index2.js +4 -0
  5. package/lib/_virtual/index3.js +4 -0
  6. package/lib/_virtual/index4.js +4 -0
  7. package/lib/_virtual/propTypes.js +4 -0
  8. package/lib/_virtual/react-is.development.js +4 -0
  9. package/lib/_virtual/react-is.production.min.js +4 -0
  10. package/lib/_virtual/utils.js +4 -0
  11. package/lib/fe-auto-complete/index.js +6 -0
  12. package/lib/fe-button/index.js +27 -0
  13. package/lib/fe-cascader/index.js +19 -0
  14. package/lib/fe-checkbox/index.js +6 -0
  15. package/lib/fe-checkbox-group/index.js +6 -0
  16. package/lib/fe-date-picker/index.js +19 -0
  17. package/lib/fe-description-render/index.js +43 -0
  18. package/lib/fe-descriptions/index.js +6 -0
  19. package/lib/fe-empty/index.js +6 -0
  20. package/lib/fe-error-block/index.js +6 -0
  21. package/lib/fe-form/fe-form/index.js +133 -0
  22. package/lib/fe-form/fe-form-auto-complete/index.js +57 -0
  23. package/lib/fe-form/fe-form-btn-group/index.js +29 -0
  24. package/lib/fe-form/fe-form-cascader/index.js +25 -0
  25. package/lib/fe-form/fe-form-checkbox-group/index.js +21 -0
  26. package/lib/fe-form/fe-form-date-picker/index.js +75 -0
  27. package/lib/fe-form/fe-form-date-range-picker/index.js +99 -0
  28. package/lib/fe-form/fe-form-input/index.js +53 -0
  29. package/lib/fe-form/fe-form-input-input/index.js +63 -0
  30. package/lib/fe-form/fe-form-input-number/index.js +43 -0
  31. package/lib/fe-form/fe-form-item/index.js +46 -0
  32. package/lib/fe-form/fe-form-label/index.js +20 -0
  33. package/lib/fe-form/fe-form-radio/index.js +21 -0
  34. package/lib/fe-form/fe-form-render/index.js +33 -0
  35. package/lib/fe-form/fe-form-rich-text/index.js +25 -0
  36. package/lib/fe-form/fe-form-select/index.js +93 -0
  37. package/lib/fe-form/fe-form-switch/index.js +21 -0
  38. package/lib/fe-form/fe-form-text/index.js +20 -0
  39. package/lib/fe-form/fe-form-text-area/index.js +24 -0
  40. package/lib/fe-form/fe-form-time-picker/index.js +21 -0
  41. package/lib/fe-form/fe-form-upload/index.js +63 -0
  42. package/lib/fe-form/utils/index.js +28 -0
  43. package/lib/fe-input/index.js +32 -0
  44. package/lib/fe-input-number/index.js +19 -0
  45. package/lib/fe-layouts/auth-layout/index.js +35 -17
  46. package/lib/fe-layouts/basics-layout/index.js +2 -2
  47. package/lib/fe-layouts/layout.js +34 -16
  48. package/lib/fe-link/index.js +23 -0
  49. package/lib/fe-map/index.js +263 -0
  50. package/lib/fe-modal/index.js +85 -0
  51. package/lib/fe-pagination/index.js +6 -0
  52. package/lib/fe-panel/fe-panel-toolbar.js +40 -0
  53. package/lib/fe-panel/index.js +49 -0
  54. package/lib/fe-panel/use-panel-context.js +9 -0
  55. package/lib/fe-permission/index.js +12 -0
  56. package/lib/fe-permission-provider/index.js +29 -0
  57. package/lib/fe-radio/index.js +11 -0
  58. package/lib/fe-radio-group/index.js +6 -0
  59. package/lib/fe-rich-text/index.js +293 -0
  60. package/lib/fe-select/index.js +24 -0
  61. package/lib/fe-switch/index.js +6 -0
  62. package/lib/fe-table/fe-edit-table/index.js +39 -0
  63. package/lib/fe-table/fe-edit-table-cell/index.js +63 -0
  64. package/lib/fe-table/fe-head-title/index.js +9 -0
  65. package/lib/fe-table/fe-normal-table/index.js +192 -0
  66. package/lib/fe-table/fe-sub-table/index.js +74 -0
  67. package/lib/fe-table/fe-table/index.js +7 -0
  68. package/lib/fe-table/fe-table-alert/index.js +42 -0
  69. package/lib/fe-table/fe-table-link/index.js +87 -0
  70. package/lib/fe-table/fe-table-render/index.js +56 -0
  71. package/lib/fe-table/fe-table-setting/index.js +165 -0
  72. package/lib/fe-table/fe-table-toolbar/index.js +63 -0
  73. package/lib/fe-table/fe-table-utils/index.js +157 -0
  74. package/lib/fe-table/type/table.d.js +4 -0
  75. package/lib/fe-table/use-edit-table/index.js +151 -0
  76. package/lib/fe-table/use-pagination/index.js +59 -0
  77. package/lib/fe-table/use-sub-table/index.js +23 -0
  78. package/lib/fe-table/use-table/index.js +177 -0
  79. package/lib/fe-table/use-table-columns/index.js +53 -0
  80. package/lib/fe-table/use-table-form-context/index.js +14 -0
  81. package/lib/fe-table/use-table-selection/index.js +53 -0
  82. package/lib/fe-text-area/index.js +21 -0
  83. package/lib/fe-time-picker/index.js +19 -0
  84. package/lib/fe-upload/index.js +182 -0
  85. package/lib/fe-upload/upload.constant.js +91 -0
  86. package/lib/fe-upload-atomic/index.js +6 -0
  87. package/lib/fe-upload-crop/index.js +207 -0
  88. package/lib/hooks/{use-auth.hook.js → use-auth.hook/index.js} +3 -3
  89. package/lib/hooks/use-form/index.js +38 -0
  90. package/lib/hooks/use-permission.hook/index.js +9 -0
  91. package/lib/index.css +7 -1
  92. package/lib/index.js +161 -42
  93. 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
  94. package/lib/node_modules/.pnpm/@dnd-kit_core@6.3.1_nnrd3gsncyragczmpvfhocinkq/node_modules/@dnd-kit/core/dist/core.esm.js +2344 -0
  95. package/lib/node_modules/.pnpm/@dnd-kit_modifiers@9.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/modifiers/dist/modifiers.esm.js +13 -0
  96. package/lib/node_modules/.pnpm/@dnd-kit_sortable@10.0.0_55ztycxty3xzw7t4rzpvix55vq/node_modules/@dnd-kit/sortable/dist/sortable.esm.js +439 -0
  97. 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
  98. package/lib/node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js +54 -0
  99. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js +54 -0
  100. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithThrowingShims.js +52 -0
  101. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js +329 -0
  102. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js +17 -0
  103. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
  104. package/lib/node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js +7 -0
  105. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js +95 -0
  106. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.production.min.js +78 -0
  107. package/lib/node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js +10 -0
  108. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/Resizable.js +233 -0
  109. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/ResizableBox.js +164 -0
  110. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/propTypes.js +113 -0
  111. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/build/utils.js +56 -0
  112. package/lib/node_modules/.pnpm/react-resizable@3.1.3_nnrd3gsncyragczmpvfhocinkq/node_modules/react-resizable/index.js +12 -0
  113. package/lib/store/modules/layout-config.store.js +83 -65
  114. package/lib/store/modules/theme.store.js +36 -18
  115. package/lib/types/fe-auto-complete/index.d.ts +2 -0
  116. package/lib/types/fe-button/index.d.ts +16 -0
  117. package/lib/types/fe-cascader/index.d.ts +7 -0
  118. package/lib/types/fe-checkbox/index.d.ts +6 -0
  119. package/lib/types/fe-checkbox-group/index.d.ts +5 -0
  120. package/lib/types/fe-date-picker/index.d.ts +3 -0
  121. package/lib/types/fe-description-render/index.d.ts +31 -0
  122. package/lib/types/fe-descriptions/index.d.ts +2 -0
  123. package/lib/types/fe-empty/index.d.ts +2 -0
  124. package/lib/types/fe-error-block/index.d.ts +6 -0
  125. package/lib/types/fe-form/fe-form/index.d.ts +354 -0
  126. package/lib/types/fe-form/fe-form-auto-complete/index.d.ts +3 -0
  127. package/lib/types/fe-form/fe-form-btn-group/index.d.ts +3 -0
  128. package/lib/types/fe-form/fe-form-cascader/index.d.ts +3 -0
  129. package/lib/types/fe-form/fe-form-checkbox-group/index.d.ts +3 -0
  130. package/lib/types/fe-form/fe-form-date-picker/index.d.ts +3 -0
  131. package/lib/types/fe-form/fe-form-date-range-picker/index.d.ts +3 -0
  132. package/lib/types/fe-form/fe-form-input/index.d.ts +3 -0
  133. package/lib/types/fe-form/fe-form-input-input/index.d.ts +3 -0
  134. package/lib/types/fe-form/fe-form-input-number/index.d.ts +3 -0
  135. package/lib/types/fe-form/fe-form-item/index.d.ts +68 -0
  136. package/lib/types/fe-form/fe-form-label/index.d.ts +43 -0
  137. package/lib/types/fe-form/fe-form-radio/index.d.ts +3 -0
  138. package/lib/types/fe-form/fe-form-render/index.d.ts +3 -0
  139. package/lib/types/fe-form/fe-form-rich-text/index.d.ts +3 -0
  140. package/lib/types/fe-form/fe-form-select/index.d.ts +3 -0
  141. package/lib/types/fe-form/fe-form-switch/index.d.ts +3 -0
  142. package/lib/types/fe-form/fe-form-text/index.d.ts +3 -0
  143. package/lib/types/fe-form/fe-form-text-area/index.d.ts +3 -0
  144. package/lib/types/fe-form/fe-form-time-picker/index.d.ts +3 -0
  145. package/lib/types/fe-form/fe-form-upload/index.d.ts +3 -0
  146. package/lib/types/fe-form/index.d.ts +26 -0
  147. package/lib/types/fe-form/utils/index.d.ts +24 -0
  148. package/lib/types/fe-input/index.d.ts +12 -0
  149. package/lib/types/fe-input-number/index.d.ts +2 -0
  150. package/lib/types/fe-link/index.d.ts +6 -0
  151. package/lib/types/fe-map/index.d.ts +73 -0
  152. package/lib/types/fe-modal/index.d.ts +20 -0
  153. package/lib/types/fe-pagination/index.d.ts +2 -0
  154. package/lib/types/fe-panel/fe-panel-toolbar.d.ts +3 -0
  155. package/lib/types/fe-panel/index.d.ts +61 -0
  156. package/lib/types/fe-panel/panel-toolbar.d.ts +4 -0
  157. package/lib/types/fe-panel/use-panel-context.d.ts +6 -0
  158. package/lib/types/fe-permission/index.d.ts +10 -0
  159. package/lib/types/fe-permission-provider/index.d.ts +8 -0
  160. package/lib/types/fe-radio/index.d.ts +2 -0
  161. package/lib/types/fe-radio-group/index.d.ts +2 -0
  162. package/lib/types/fe-rich-text/index.d.ts +167 -0
  163. package/lib/types/fe-select/index.d.ts +8 -0
  164. package/lib/types/fe-switch/index.d.ts +2 -0
  165. package/lib/types/fe-table/fe-edit-table/index.d.ts +3 -0
  166. package/lib/types/fe-table/fe-edit-table-cell/index.d.ts +16 -0
  167. package/lib/types/fe-table/fe-head-title/index.d.ts +6 -0
  168. package/lib/types/fe-table/fe-normal-table/index.d.ts +3 -0
  169. package/lib/types/fe-table/fe-sub-table/index.d.ts +3 -0
  170. package/lib/types/fe-table/fe-table/index.d.ts +3 -0
  171. package/lib/types/fe-table/fe-table-alert/index.d.ts +13 -0
  172. package/lib/types/fe-table/fe-table-link/index.d.ts +10 -0
  173. package/lib/types/fe-table/fe-table-render/index.d.ts +11 -0
  174. package/lib/types/fe-table/fe-table-setting/index.d.ts +22 -0
  175. package/lib/types/fe-table/fe-table-toolbar/index.d.ts +16 -0
  176. package/lib/types/fe-table/fe-table-utils/index.d.ts +193 -0
  177. package/lib/types/fe-table/index.d.ts +6 -0
  178. package/lib/types/fe-table/type/table-context.d.ts +60 -0
  179. package/lib/types/fe-table/type/table.d.ts +795 -0
  180. package/lib/types/fe-table/use-edit-table/index.d.ts +6 -0
  181. package/lib/types/fe-table/use-pagination/index.d.ts +3 -0
  182. package/lib/types/fe-table/use-sub-table/index.d.ts +8 -0
  183. package/lib/types/fe-table/use-table/index.d.ts +3 -0
  184. package/lib/types/fe-table/use-table-columns/index.d.ts +47 -0
  185. package/lib/types/fe-table/use-table-form-context/index.d.ts +10 -0
  186. package/lib/types/fe-table/use-table-selection/index.d.ts +46 -0
  187. package/lib/types/fe-text-area/index.d.ts +4 -0
  188. package/lib/types/fe-time-picker/index.d.ts +3 -0
  189. package/lib/types/fe-upload/index.d.ts +85 -0
  190. package/lib/types/fe-upload/upload.constant.d.ts +39 -0
  191. package/lib/types/fe-upload-atomic/index.d.ts +2 -0
  192. package/lib/types/fe-upload-crop/index.d.ts +10 -0
  193. package/lib/types/hooks/index.d.ts +1 -0
  194. package/lib/types/hooks/use-descriptions/index.d.ts +3 -0
  195. package/lib/types/hooks/use-form/index.d.ts +14 -0
  196. package/lib/types/hooks/use-permission.hook/index.d.ts +10 -0
  197. package/lib/types/index.d.ts +32 -0
  198. package/lib/types/typings/index.d.ts +39 -0
  199. package/package.json +18 -8
  200. /package/lib/hooks/{use-nprogress.hook.js → use-nprogress.hook/index.js} +0 -0
  201. /package/lib/types/hooks/{use-auth.hook.d.ts → use-auth.hook/index.d.ts} +0 -0
  202. /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,3 @@
1
+ import { ITableParams, IUseTableRsp } from '../type/table.d';
2
+ declare const useTable: <DataType extends Record<string, any> = Record<string, any>>(params: ITableParams<DataType>) => IUseTableRsp;
3
+ export default useTable;
@@ -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,4 @@
1
+ import { Input } from 'antd';
2
+ type TextAreaProps = Parameters<typeof Input.TextArea>[0];
3
+
4
+ export interface FeTextAreaProps extends TextAreaProps {}
@@ -0,0 +1,3 @@
1
+ import { TimePickerProps } from 'antd';
2
+ export interface FeTimePickerProps extends TimePickerProps {
3
+ }
@@ -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,2 @@
1
+ import { UploadProps } from 'antd';
2
+ export interface FeUploadAtomicProps extends UploadProps {}
@@ -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;
@@ -1,2 +1,3 @@
1
1
  export * from './use-auth.hook';
2
2
  export * from './use-nprogress.hook';
3
+ export * from './use-permission.hook';
@@ -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,14 @@
1
+ import { FormInstance } from 'antd';
2
+ import { default as React } from 'react';
3
+ import { FeFormProps } from '../../fe-form/fe-form/index.d';
4
+ export interface IFormParams<DataType = any>
5
+ extends FeFormProps<DataType> {
6
+ setFormData: (data: Partial<DataType> | DataType) => void;
7
+ key?: string;
8
+ }
9
+
10
+ export interface IFormProps<DataType> {
11
+ formProps: FeFormProps<DataType>;
12
+ formRef: React.RefObject<FormInstance>;
13
+ validate: (key?: keyof DataType) => Promise<any> | undefined;
14
+ }
@@ -0,0 +1,10 @@
1
+ export interface IPermissionStore {
2
+ /**
3
+ * @name 按钮权限字符串
4
+ */
5
+ btnPermissionList: string[];
6
+ /**
7
+ * @name 判断是否有权限
8
+ */
9
+ hasPermission: (permission: string | string[]) => boolean;
10
+ }
@@ -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';
@@ -57,3 +57,42 @@ export interface IRoute {
57
57
  * 更新store
58
58
  */
59
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
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spacego/fe-components",
3
- "version": "0.1.1",
3
+ "version": "0.2.1",
4
4
  "description": "🚀 A component library for fe to use.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",
@@ -26,9 +26,6 @@
26
26
  "files": [
27
27
  "lib"
28
28
  ],
29
- "scripts": {
30
- "build": "vite build"
31
- },
32
29
  "keywords": [
33
30
  "components",
34
31
  "react",
@@ -44,18 +41,26 @@
44
41
  "packageManager": "pnpm@10.8.0",
45
42
  "devDependencies": {
46
43
  "@ant-design/icons": "^6.1.0",
47
- "@spacego/turbo-utils": "workspace:^",
48
- "@spacego/zustand": "workspace:^",
44
+ "@dnd-kit/core": "^6.3.1",
45
+ "@dnd-kit/modifiers": "^9.0.0",
46
+ "@dnd-kit/sortable": "^10.0.0",
49
47
  "@tailwindcss/vite": "^4.1.18",
48
+ "@types/lodash-es": "^4.17.12",
50
49
  "@types/nprogress": "^0.2.3",
51
50
  "@types/react": "^18.2.66",
51
+ "@types/react-resizable": "^3.0.8",
52
52
  "@vitejs/plugin-react-swc": "3.5.0",
53
+ "ahooks": "^3.9.6",
53
54
  "antd": "^6.2.1",
54
55
  "axios": "^1.13.4",
56
+ "lodash-es": "^4.17.21",
55
57
  "nprogress": "^0.2.0",
58
+ "quill": "^2.0.3",
56
59
  "react": "^18.2.0",
57
60
  "react-dom": "^18.2.0",
61
+ "react-draggable": "^4.5.0",
58
62
  "react-icons": "^5.5.0",
63
+ "react-resizable": "^3.1.3",
59
64
  "react-router-dom": "^7.12.0",
60
65
  "rollup-plugin-clear": "^2.0.7",
61
66
  "sass": "^1.97.3",
@@ -64,6 +69,11 @@
64
69
  "vite": "^6.3.3",
65
70
  "vite-plugin-dts": "^4.5.3",
66
71
  "vite-plugin-svgr": "^4.5.0",
67
- "zustand": "^5.0.10"
72
+ "zustand": "^5.0.10",
73
+ "@spacego/turbo-utils": "^0.1.0",
74
+ "@spacego/zustand": "^1.0.1"
75
+ },
76
+ "scripts": {
77
+ "build": "vite build"
68
78
  }
69
- }
79
+ }