@gx-design-vue/pro-table 0.2.0-beta.6 → 0.2.0-beta.60

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 (41) hide show
  1. package/dist/ProTable.d.ts +370 -596
  2. package/dist/_utils/ant-design-vue/index.d.ts +2 -0
  3. package/dist/_utils/ant-design-vue/input/typings.d.ts +1 -0
  4. package/dist/_utils/ant-design-vue/spin/typings.d.ts +1 -0
  5. package/dist/_utils/ant-design-vue/table/props.d.ts +183 -2
  6. package/dist/_utils/ant-design-vue/table/typings.d.ts +5 -4
  7. package/dist/_utils/ant-design-vue/tooltip/typings.d.ts +1 -0
  8. package/dist/_utils/index.d.ts +0 -1
  9. package/dist/components/ColumnSetting/index.d.ts +14 -14
  10. package/dist/components/ColumnSetting/style.d.ts +2 -5
  11. package/dist/components/Form/index.d.ts +14 -13
  12. package/dist/components/Form/style.d.ts +2 -5
  13. package/dist/components/ListToolBar/index.d.ts +18 -18
  14. package/dist/components/ListToolBar/style.d.ts +2 -5
  15. package/dist/components/ToolBar/FullscreenIcon.d.ts +1 -2
  16. package/dist/components/ToolBar/index.d.ts +18 -18
  17. package/dist/context/TableContext.d.ts +10 -11
  18. package/dist/hooks/useColums.d.ts +6 -6
  19. package/dist/hooks/useFetchData.d.ts +14 -12
  20. package/dist/hooks/useLoading.d.ts +3 -11
  21. package/dist/hooks/usePagination.d.ts +3 -2
  22. package/dist/hooks/useRowSelection.d.ts +2 -1
  23. package/dist/hooks/useTable.d.ts +26 -11
  24. package/dist/hooks/useTableForm.d.ts +4 -3
  25. package/dist/hooks/useTableScroll.d.ts +6 -6
  26. package/dist/hooks/useTableSize.d.ts +1 -1
  27. package/dist/index.d.ts +6 -4
  28. package/dist/pro-table.js +2767 -0
  29. package/dist/pro-table.umd.cjs +1 -0
  30. package/dist/props.d.ts +137 -266
  31. package/dist/style.d.ts +2 -6
  32. package/dist/types/ColumnTypings.d.ts +9 -7
  33. package/dist/types/SlotsTypings.d.ts +37 -8
  34. package/dist/types/TableTypings.d.ts +67 -51
  35. package/dist/utils/utils.d.ts +3 -1
  36. package/package.json +20 -42
  37. package/volar.d.ts +3 -3
  38. package/dist/_utils/typings.d.ts +0 -9
  39. package/dist/pro-table.mjs +0 -32740
  40. package/dist/pro-table.umd.js +0 -328
  41. package/dist/utils/config.d.ts +0 -1
package/dist/style.d.ts CHANGED
@@ -1,7 +1,3 @@
1
+ import type { GenerateStyle } from 'ant-design-vue/es/theme/internal';
1
2
  import type { ProAliasToken } from '@gx-design-vue/pro-provider';
2
- export interface ProToken extends ProAliasToken {
3
- antCls: string;
4
- componentCls: string;
5
- }
6
- declare const _default: (_prefixCls?: string | import("vue").Ref<string> | undefined) => import("ant-design-vue/es/theme/internal").UseComponentStyleResult;
7
- export default _default;
3
+ export declare const genProTabelStyle: GenerateStyle<ProAliasToken>;
@@ -28,8 +28,8 @@ export type ProSchemaValueEnumType = {
28
28
  disabled?: boolean;
29
29
  };
30
30
  type ProSchemaValueType<ValueType> = (ValueType | ProFieldValueType);
31
- export type ProSearchMap<ValueType = 'text'> = {
32
- name?: string;
31
+ export type ProSearchMap<ValueType = 'text', ParamsKey = string> = {
32
+ name?: ParamsKey;
33
33
  /** 选择如何渲染相应的模式 */
34
34
  valueType?: ProSchemaValueType<ValueType>;
35
35
  /** valueType为date|dateMonth|dateRange|time生效 */
@@ -55,7 +55,7 @@ export type ProSearchMap<ValueType = 'text'> = {
55
55
  initialValue?: any;
56
56
  /** 针对select、treeselect取值的key */
57
57
  valueKey?: string;
58
- /** 表单的属性值(ant-design)*/
58
+ /** 表单的属性值(ant-design) */
59
59
  field?: RecordType;
60
60
  /**
61
61
  * 支持 object 和Map,Map 是支持其他基础类型作为 key
@@ -64,24 +64,26 @@ export type ProSearchMap<ValueType = 'text'> = {
64
64
  */
65
65
  valueEnum?: ProSchemaValueEnumType[];
66
66
  };
67
- export type ProColumnType<RecordType = DefaultRecordType> = ColumnType<RecordType> & {
68
- children?: ProColumnsType<RecordType>;
67
+ export type ProColumnType<DataValue = DefaultRecordType, SearchParama = Record<string, any>> = Omit<ColumnType<DataValue>, 'key' | 'dataIndex'> & {
68
+ children?: ProColumnsType<DataValue, SearchParama>;
69
69
  uuid?: string | number;
70
70
  /** 不在列表中显示 */
71
71
  show?: boolean;
72
+ key?: keyof DataValue | string;
73
+ dataIndex?: keyof DataValue | string;
72
74
  /** 列表顺序值 */
73
75
  order?: number;
74
76
  /** 不在配置工具中显示 */
75
77
  hideInSetting?: boolean;
76
78
  /** 表单搜索配置 */
77
- searchConfig?: ProSearchMap;
79
+ searchConfig?: ProSearchMap<undefined, keyof DataValue | keyof SearchParama>;
78
80
  /** 是否拷贝 */
79
81
  copyable?: boolean;
80
82
  /** 值为空时,默认取值 */
81
83
  columnEmptyText?: string;
82
84
  valueType?: ProColumnsValueType;
83
85
  };
84
- export type ProColumnsType<RecordType = DefaultRecordType> = (ProColumnType<RecordType>)[];
86
+ export type ProColumnsType<DataValue = DefaultRecordType, SearchParama = Record<string, any>> = ProColumnType<DataValue, SearchParama>[];
85
87
  export type ProColumnsValueType = 'text' | 'link' | 'time' | 'dateMonth' | 'dateTime' | {
86
88
  node?: string;
87
89
  class?: string;
@@ -1,12 +1,41 @@
1
1
  import type { CustomRender, WithFalse } from '@gx-design-vue/pro-utils';
2
- export type HeaderTitleRender = WithFalse<CustomRender>;
3
- export type TitleTipRender = WithFalse<CustomRender>;
4
- export type ToolBarBtnRender = WithFalse<CustomRender>;
5
- export type OptionsExtraRender = WithFalse<CustomRender>;
6
- export type SettingExtraRender = WithFalse<CustomRender>;
7
- export type PageItemRender = WithFalse<(opt: {
2
+ import type { ProColumnType } from '../types/ColumnTypings';
3
+ import type { ColumnType, RenderExpandIconProps } from '../_utils';
4
+ export type ProTableBodyCellProps<T = Record<string, any>> = {
5
+ text: any;
6
+ value: any;
7
+ record: T;
8
+ index: number;
9
+ column: ProColumnType;
10
+ };
11
+ export type AntTabelSlotsType = {
12
+ emptyText?: any;
13
+ expandIcon?: RenderExpandIconProps<any>;
14
+ title?: any;
15
+ footer?: any;
16
+ summary?: any;
17
+ expandedRowRender?: any;
18
+ expandColumnTitle?: any;
19
+ bodyCell?: (props: ProTableBodyCellProps<any>) => void;
20
+ headerCell?: (props: {
21
+ title: any;
22
+ column: ColumnType;
23
+ }) => void;
24
+ customFilterIcon?: any;
25
+ customFilterDropdown?: any;
26
+ default: any;
27
+ };
28
+ export type ProTableSlotsKey = 'search' | 'headerTitle' | 'toolBarBtn' | 'titleTip' | 'settingExtra' | 'optionsExtra' | 'pageItemRender' | 'customRender';
29
+ export declare const proTableSlotsKey: ProTableSlotsKey[];
30
+ export type Slots = Readonly<Omit<Record<ProTableSlotsKey, () => void>, 'customRender'> & {
31
+ customRender: (currentData: any[], dataSource: any[]) => void;
32
+ }>;
33
+ export type PageItemFn = (opt: {
8
34
  page: number;
9
35
  type: 'page' | 'prev' | 'next' | 'jump-prev' | 'jump-next';
10
36
  originalElement: any;
11
- }) => CustomRender>;
12
- export type CustomizeRender = WithFalse<(dataSource: any[]) => CustomRender>;
37
+ }) => CustomRender;
38
+ export type CustomDataFn<T = any> = (currenData: T[], dataSource: T[]) => CustomRender;
39
+ export type DefaultRender = WithFalse<CustomRender>;
40
+ export type PageItemRender = WithFalse<PageItemFn>;
41
+ export type CustomDataRender = WithFalse<CustomDataFn>;
@@ -1,19 +1,20 @@
1
- import type { CSSProperties } from 'vue';
2
- import type { RecordType, WithFalse, CustomRender, VueNode, SizeType, Breakpoint } from '@gx-design-vue/pro-utils';
3
- import type { ProSearchMap, ProColumnType, ProColumnsType } from './ColumnTypings';
4
- import type { DefaultRecordType } from '../typing';
5
- import type { HeaderTitleRender, ToolBarBtnRender, CustomizeRender, TitleTipRender, OptionsExtraRender, SettingExtraRender, PageItemRender } from './SlotsTypings';
6
- import type { TableRowSelection, TablePaginationConfig, SpinProps, TableFilters, TableSorter, TableProps } from '../_utils';
1
+ import type { CSSProperties, ComputedRef } from 'vue';
2
+ import type { Breakpoint, CustomRender, RecordType, SizeType, VueNode, WithFalse } from '@gx-design-vue/pro-utils';
3
+ import type { ProColumnType, ProColumnsType, ProSearchMap } from './ColumnTypings';
4
+ import type { CustomDataRender, DefaultRender, PageItemRender } from './SlotsTypings';
5
+ import type { FilterValue, SorterResult, TableCurrentDataSource, TablePaginationConfig, TableProps, TableRowSelection } from '../_utils';
7
6
  import type { ColumnSettingProps } from '../components/ColumnSetting';
8
7
  import type { ColumnsState, ColumnsStateType } from '../hooks/useColumnSetting';
9
- export type ProTabelFeachParams = {
10
- params?: any;
11
- filters?: TableFilters;
12
- sorter?: TableSorter;
8
+ export type ProTabelFeachParams<R = RecordType> = {
9
+ params?: R;
10
+ filters?: Record<string, FilterValue | null>;
11
+ sorter?: SorterResult | SorterResult[];
13
12
  pagination?: ProTablePagination;
14
13
  removeKeys?: (string | number)[];
15
14
  immediate?: boolean;
16
15
  isPolling?: boolean;
16
+ showLoading?: boolean;
17
+ extra?: TableCurrentDataSource;
17
18
  };
18
19
  export type TablePaginationPosition = 'topLeft' | 'topCenter' | 'topRight' | 'bottomLeft' | 'bottomCenter' | 'bottomRight';
19
20
  export type ProFieldEmptyText = string | false;
@@ -25,20 +26,25 @@ export interface ProTablePaginationConfig extends Omit<TablePaginationConfig, 'p
25
26
  position?: TablePaginationPosition[];
26
27
  }
27
28
  export type ProTablePagination = ProTablePaginationConfig | false;
29
+ export type DefaultParams = {
30
+ pageSize: number;
31
+ pageNum: number;
32
+ };
28
33
  export type RequestData<T = any> = {
29
34
  data: T[] | undefined;
30
35
  success: boolean;
31
36
  total: number;
32
- } & RecordType;
33
- export type RequsetConfig = {
34
- params: {
35
- pageSize?: number;
36
- pageNum?: number;
37
- };
38
- sort: TableSorter;
39
- filter: TableFilters;
40
37
  };
41
- export type RequsetFunction<T = any> = (params: RequsetConfig['params'], sort: RequsetConfig['sort'], filter: RequsetConfig['filter']) => Promise<Partial<RequestData<T>>>;
38
+ export type RequsetConfig<T> = {
39
+ params: T extends undefined ? DefaultParams : {
40
+ pageSize: number;
41
+ pageNum: number;
42
+ } & Partial<T>;
43
+ sorter: SorterResult | SorterResult[];
44
+ filter: Record<string, FilterValue | null>;
45
+ extra: TableCurrentDataSource;
46
+ };
47
+ export type RequsetFunction<T = any, D = undefined> = (params: RequsetConfig<D>['params'], sort: RequsetConfig<D>['sorter'], filter: RequsetConfig<D>['filter']) => Promise<Partial<RequestData<T>> | undefined>;
42
48
  export type ColConfig = Partial<Record<Breakpoint, number>>;
43
49
  export type SearchConfig = {
44
50
  searchText?: string;
@@ -57,45 +63,55 @@ export interface OptionConfig {
57
63
  fullScreen?: (() => VueNode | JSX.Element) | boolean | (() => Promise<void>);
58
64
  }
59
65
  /** action表格实例 */
60
- export interface ProCoreActionType {
61
- pageParams?: RecordType | boolean;
62
- getLoadingStatus?: boolean | SpinProps | undefined;
66
+ export interface ProCoreActionType<T = RecordType, R = RecordType> {
67
+ /** @name loadingStatus */
68
+ getLoadingStatus: () => boolean;
69
+ pageParams: R | boolean;
70
+ selectedKey: (string | number)[];
71
+ selectedItem: T[];
63
72
  /** @name 刷新 */
64
- reload?: (info?: ProTabelFeachParams) => void;
73
+ reload: (info?: ProTabelFeachParams<R>) => void;
65
74
  /** @name 刷新并清空表单,重置为第一页 */
66
- reloadAndRest?: (callBack?: () => void) => void;
67
- /** @name 设置翻页、排序、筛选*/
68
- changePageInfo?: (pagination: ProTablePaginationConfig, filters: any, sorter: any) => void;
75
+ reloadAndRest: (callBack?: () => void) => void;
76
+ /** @name 设置翻页 */
77
+ setPagination: (pagination: ProTablePaginationConfig) => void;
78
+ /** @name 设置翻页、排序、筛选、并且reload */
79
+ setPageAndReload: (pagination: ProTablePaginationConfig, filters?: Record<string, FilterValue | null>, sorter?: SorterResult | SorterResult[], extra?: TableCurrentDataSource) => void;
69
80
  /** @name 更新TableData属性值 */
70
- reSetDataList?: (data: RecordType[]) => void;
81
+ reSetDataList: (data: T[]) => void;
71
82
  /** @name 更新TableData属性值 */
72
- changeDataValue?: ({ key, params }: {
73
- key?: string;
74
- params: RecordType;
83
+ setData: ({ key, record, type }: {
84
+ key?: keyof T;
85
+ record: Partial<T>;
86
+ type: 'update' | 'push' | 'delete' | 'unshift';
75
87
  }) => void;
76
88
  /** @name 改变loading状态 */
77
- loadingOperation?: (loading: boolean) => void;
89
+ setLoading: (loading: boolean) => void;
78
90
  }
79
91
  /** form查询表单实例 */
80
- export interface ProCoreFormType {
92
+ export interface ProCoreFormType<R = RecordType> {
81
93
  /** @name 获取表格-表单请求参数 */
82
- formParams?: RecordType;
94
+ getFormState?: () => R;
83
95
  /** @name 获取表格-内部表单参数 */
84
- getFormState?: () => RecordType;
96
+ getFormInnerState?: () => R;
85
97
  /** @name 重置内部表单组件参数 */
86
- restForm?: (callBack?: () => void) => void;
98
+ restFormState?: (callBack?: () => void) => void;
87
99
  }
88
- export interface ProTableRef {
100
+ export interface ProTableRef<T = RecordType> {
101
+ loading: ComputedRef<boolean>;
102
+ dataSource: ComputedRef<T[]>;
89
103
  formRef: () => ProCoreFormType;
90
104
  actionRef: () => ProCoreActionType;
91
105
  }
92
- export type ProTableProps<RecordType extends DefaultRecordType = DefaultRecordType> = Omit<TableProps<RecordType>, 'columns'> & Partial<{
106
+ export type ProTableProps<DataRecord extends object = Record<string, any>, ParamsType extends object = Record<string, any>> = Omit<TableProps, 'columns' | 'dataSource'> & Partial<{
107
+ dataSource: DataRecord[];
93
108
  tableClassName: string;
94
109
  tableStyle: CSSProperties;
95
110
  rowKey: string;
96
111
  titleTipText: string;
97
112
  autoScroll: boolean;
98
113
  columnEmptyText: ProFieldEmptyText;
114
+ showLoading: boolean;
99
115
  neverScroll: boolean;
100
116
  modalScroll: boolean;
101
117
  scrollBreakpoint: Breakpoint | number;
@@ -107,30 +123,30 @@ export type ProTableProps<RecordType extends DefaultRecordType = DefaultRecordTy
107
123
  align: ProColumnType['align'];
108
124
  options: OptionConfig | boolean;
109
125
  rowSelection: ProTableRowSelection;
110
- columns: ProColumnsType<RecordType>;
126
+ columns: ProColumnsType<DataRecord, ParamsType>;
111
127
  columnsState: ColumnsStateType;
112
128
  waitRequest: boolean;
113
129
  polling: number;
114
130
  debounceTime: number;
115
- request: RequsetFunction<RecordType>;
116
- params: Record<string, unknown>;
131
+ request: RequsetFunction<DataRecord, ParamsType>;
132
+ params: ParamsType;
117
133
  postData: (data: any[]) => any;
118
134
  pagination: ProTablePagination;
119
- search: SearchConfig;
120
- searchMap: ProSearchMap[];
121
- onReset: (params?: Partial<Record<string, any>>) => any;
122
- onReload: (params?: Partial<Record<string, any>>) => any;
123
- onSubmit: (params?: Partial<Record<string, any>>) => any;
135
+ search: SearchConfig | boolean;
136
+ searchMap: ProSearchMap<undefined, keyof ParamsType>[];
137
+ onReset: (params?: Partial<ParamsType>) => any;
138
+ onReload: (params?: Partial<ParamsType>) => any;
139
+ onSubmit: (params?: Partial<ParamsType>) => any;
124
140
  onSizeChange: (size: string) => any;
125
141
  onLoadingChange: (loading: boolean) => any;
126
142
  onRequestError: (e: Error) => void;
127
143
  onBeforeSearchSubmit: RequsetFunction<RecordType>;
128
144
  onColumnsStateChange: (data: ColumnsState[]) => void;
129
- titleTip: TitleTipRender;
130
- headerTitle: HeaderTitleRender;
131
- toolBarBtn: ToolBarBtnRender;
132
- customRender: CustomizeRender;
133
- optionsExtra: OptionsExtraRender;
134
- settingExtra: SettingExtraRender;
145
+ titleTip: DefaultRender;
146
+ headerTitle: DefaultRender;
147
+ toolBarBtn: DefaultRender;
148
+ customRender: CustomDataRender;
149
+ optionsExtra: DefaultRender;
150
+ settingExtra: DefaultRender;
135
151
  pageItemRender: PageItemRender;
136
152
  }>;
@@ -1,2 +1,4 @@
1
1
  import type { ProColumnsValueType } from '../types/ColumnTypings';
2
- export declare function valueFormat(value: any, format: ProColumnsValueType | undefined, className: string): any;
2
+ import type { ProTablePagination } from '../types/TableTypings';
3
+ export declare function valueFormat(value: any, format: ProColumnsValueType | undefined, className: string, hashId: string): any;
4
+ export declare function getCuurentData(data: any[], pageInfo: ProTablePagination): any[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gx-design-vue/pro-table",
3
- "version": "0.2.0-beta.6",
3
+ "version": "0.2.0-beta.60",
4
4
  "scripts": {
5
5
  "dev": "vite",
6
6
  "build": "vite build",
@@ -14,57 +14,35 @@
14
14
  "dist",
15
15
  "volar.d.ts"
16
16
  ],
17
+ "type": "module",
17
18
  "types": "./dist",
18
- "main": "./dist/pro-table.umd.js",
19
- "module": "./dist/pro-table.mjs",
19
+ "main": "./dist/pro-table.umd.cjs",
20
+ "module": "./dist/pro-table.js",
20
21
  "exports": {
21
22
  ".": {
22
- "import": "./dist/pro-table.mjs",
23
- "require": "./dist/pro-table.umd.js"
23
+ "import": "./dist/pro-table.js",
24
+ "require": "./dist/pro-table.umd.cjs"
24
25
  }
25
26
  },
26
27
  "dependencies": {
27
28
  "@vueuse/core": "^9.10.0",
28
- "@gx-design-vue/pro-utils": "^0.2.0-beta.6",
29
- "@gx-design-vue/pro-hooks": "^0.2.0-beta.6",
30
- "@gx-design-vue/pro-provider": "^0.1.0-beta.13",
31
- "ant-design-vue": "^4.0.0",
29
+ "@gx-design-vue/pro-utils": "^0.2.0-beta.42",
30
+ "@gx-design-vue/pro-hooks": "^0.2.0-beta.32",
31
+ "@gx-design-vue/pro-provider": "^0.1.0-beta.85",
32
+ "@gx-design-vue/pro-app": "^0.1.0-beta.17",
32
33
  "dayjs": "^1.11.0",
33
- "lodash-es": "^4.17.21",
34
- "vue": "^3.2.45",
35
- "vue-types": "^4.1.1"
34
+ "lodash-es": "^4.17.21"
36
35
  },
37
36
  "devDependencies": {
38
- "@rollup/plugin-typescript": "^8.3.0",
39
- "@rushstack/eslint-patch": "^1.1.0",
40
37
  "@types/lodash-es": "^4.17.6",
41
- "@types/jsdom": "^16.2.14",
42
- "@types/node": "^16.11.26",
43
- "@vitejs/plugin-vue": "^4.2.3",
44
- "@vitejs/plugin-vue-jsx": "^3.0.1",
45
- "@vue/eslint-config-prettier": "^7.0.0",
46
- "@vue/eslint-config-typescript": "^10.0.0",
47
- "@vue/tsconfig": "^0.1.3",
48
- "eslint": "^8.13.0",
49
- "eslint-plugin-prettier": "^4.0.0",
50
- "eslint-plugin-vue": "^8.6.0",
51
- "jsdom": "^19.0.0",
52
- "less": "^4.1.2",
53
- "postcss": "^8.4.12",
54
- "postcss-html": "^1.4.1",
55
- "postcss-less": "^6.0.0",
56
- "prettier": "^2.6.2",
57
- "rollup": "^2.70.2",
58
- "stylelint": "^14.7.1",
59
- "stylelint-config-prettier": "^9.0.3",
60
- "stylelint-config-recommended": "^7.0.0",
61
- "stylelint-config-recommended-vue": "^1.4.0",
62
- "stylelint-config-standard": "^25.0.0",
63
- "stylelint-order": "^5.0.0",
64
- "typescript": "^4.6.4",
65
- "vite": "^4.3.8",
66
- "vue-eslint-parser": "^9.0.3",
67
- "vue-tsc": "^1.0.24"
38
+ "typescript": "^5.3.3"
68
39
  },
69
- "description": "Gx Design"
40
+ "peerDependencies": {
41
+ "vue": ">=3.0.0",
42
+ "ant-design-vue": "^4.1.2"
43
+ },
44
+ "description": "Gx Design Pro Table",
45
+ "authors": [
46
+ "gx12358 <gx12358@gmail.com> (https://github.com/gx12358)"
47
+ ]
70
48
  }
package/volar.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  // Auto generated component declarations
2
- declare module "vue" {
2
+ declare module 'vue' {
3
3
  export interface GlobalComponents {
4
- GProTable: typeof import("@gx-design-vue/pro-table")["GProTable"];
4
+ GProTable: typeof import('@gx-design-vue/pro-table')['GProTable'];
5
5
  }
6
6
  }
7
7
 
8
- export {};
8
+ export {}
@@ -1,9 +0,0 @@
1
- export type SpinProps = {
2
- prefixCls?: string;
3
- spinning?: boolean;
4
- size?: 'small' | 'default' | 'large';
5
- wrapperClassName?: string;
6
- tip?: string;
7
- delay?: number;
8
- indicator?: any;
9
- };