@jswork/antd-components 1.0.99 → 1.0.101
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/main.cjs.js +1 -1
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.d.mts +15 -0
- package/dist/main.d.ts +15 -0
- package/dist/main.esm.js +1 -1
- package/dist/main.esm.js.map +1 -1
- package/package.json +3 -1
- package/src/lib/table.tsx +43 -1
- package/src/lib/use-table-command.ts +22 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jswork/antd-components",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.101",
|
|
4
4
|
"main": "dist/main.cjs.js",
|
|
5
5
|
"module": "dist/main.esm.js",
|
|
6
6
|
"types": "dist/main.d.ts",
|
|
@@ -41,6 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@jswork/antd-form-builder": "^1.1.27",
|
|
44
|
+
"@jswork/event-mitt": "^2.0.17",
|
|
45
|
+
"@jswork/harmony-events": "^1.2.11",
|
|
44
46
|
"@jswork/loadkit": "^1.0.6",
|
|
45
47
|
"@jswork/next-dom-event": "^1.0.8",
|
|
46
48
|
"@jswork/next-gpid": "^1.0.4",
|
package/src/lib/table.tsx
CHANGED
|
@@ -7,16 +7,24 @@
|
|
|
7
7
|
import React from 'react';
|
|
8
8
|
import { Table, TableProps } from 'antd';
|
|
9
9
|
import cx from 'classnames';
|
|
10
|
+
import type { EventMittNamespace } from '@jswork/event-mitt';
|
|
11
|
+
import { ReactHarmonyEvents } from '@jswork/harmony-events';
|
|
10
12
|
|
|
11
13
|
const CLASS_NAME = 'ac-table';
|
|
12
14
|
|
|
13
15
|
type AcTableProps = TableProps & {
|
|
16
|
+
/**
|
|
17
|
+
* The identity name.
|
|
18
|
+
* @default '@'
|
|
19
|
+
*/
|
|
20
|
+
name?: string;
|
|
14
21
|
/**
|
|
15
22
|
* 自定义数据获取函数
|
|
16
23
|
* @param params { current: number; pageSize: number }
|
|
17
24
|
* @returns Promise<{ data: any[]; total: number }>
|
|
18
25
|
*/
|
|
19
26
|
fetcher: (params: { current: number; pageSize: number }) => Promise<{ data: any[]; total: number }>;
|
|
27
|
+
onPageChange?: (current: number, size: number) => void;
|
|
20
28
|
rowKey?: string;
|
|
21
29
|
defaultCurrent?: number;
|
|
22
30
|
defaultPageSize?: number;
|
|
@@ -26,12 +34,22 @@ type AcTableProps = TableProps & {
|
|
|
26
34
|
export class AcTable extends React.Component<AcTableProps, any> {
|
|
27
35
|
static displayName = CLASS_NAME;
|
|
28
36
|
static formSchema = CLASS_NAME;
|
|
37
|
+
private harmonyEvents: ReactHarmonyEvents | null = null;
|
|
38
|
+
static event: EventMittNamespace.EventMitt;
|
|
39
|
+
static events = [
|
|
40
|
+
'refetch',
|
|
41
|
+
'reset',
|
|
42
|
+
];
|
|
43
|
+
|
|
29
44
|
static defaultProps = {
|
|
45
|
+
name: '@',
|
|
30
46
|
rowKey: 'id',
|
|
31
47
|
defaultCurrent: 1,
|
|
32
48
|
defaultPageSize: 10,
|
|
33
49
|
};
|
|
34
50
|
|
|
51
|
+
public eventBus: EventMittNamespace.EventMitt = AcTable.event;
|
|
52
|
+
|
|
35
53
|
constructor(props) {
|
|
36
54
|
super(props);
|
|
37
55
|
const { defaultCurrent, defaultPageSize } = this.props;
|
|
@@ -46,9 +64,15 @@ export class AcTable extends React.Component<AcTableProps, any> {
|
|
|
46
64
|
|
|
47
65
|
async componentDidMount() {
|
|
48
66
|
const { current, pageSize } = this.state;
|
|
67
|
+
this.harmonyEvents = ReactHarmonyEvents.create(this);
|
|
68
|
+
this.eventBus = AcTable.event;
|
|
49
69
|
await this.fetchData(current, pageSize);
|
|
50
70
|
}
|
|
51
71
|
|
|
72
|
+
componentWillUnmount() {
|
|
73
|
+
this.harmonyEvents?.destroy();
|
|
74
|
+
}
|
|
75
|
+
|
|
52
76
|
fetchData = async (page: number, size: number) => {
|
|
53
77
|
const abortController = new AbortController();
|
|
54
78
|
const { fetcher } = this.props;
|
|
@@ -75,8 +99,25 @@ export class AcTable extends React.Component<AcTableProps, any> {
|
|
|
75
99
|
}
|
|
76
100
|
};
|
|
77
101
|
|
|
102
|
+
/* ----- public eventBus methods start ----- */
|
|
103
|
+
refetch = async () => {
|
|
104
|
+
const { current, pageSize } = this.state;
|
|
105
|
+
await this.fetchData(current, pageSize);
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
reset = async () => {
|
|
109
|
+
const { defaultCurrent, defaultPageSize } = this.props;
|
|
110
|
+
this.setState({
|
|
111
|
+
current: defaultCurrent,
|
|
112
|
+
pageSize: defaultPageSize,
|
|
113
|
+
}, () => {
|
|
114
|
+
void this.fetchData(defaultCurrent!, defaultPageSize!);
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
/* ----- public eventBus methods end ----- */
|
|
118
|
+
|
|
78
119
|
render() {
|
|
79
|
-
const { className, pagination, ...rest } = this.props;
|
|
120
|
+
const { className, pagination, onPageChange, ...rest } = this.props;
|
|
80
121
|
const { dataSource, isLoading, current, pageSize, total } = this.state;
|
|
81
122
|
return (
|
|
82
123
|
<Table
|
|
@@ -87,6 +128,7 @@ export class AcTable extends React.Component<AcTableProps, any> {
|
|
|
87
128
|
current,
|
|
88
129
|
pageSize,
|
|
89
130
|
onChange: (page, size) => {
|
|
131
|
+
onPageChange?.(page, size);
|
|
90
132
|
this.setState({ current: page, pageSize: size }, () => {
|
|
91
133
|
void this.fetchData(page, size);
|
|
92
134
|
});
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { AcTable } from './table';
|
|
2
|
+
|
|
3
|
+
const useCommand = (inName?: string) => {
|
|
4
|
+
const name = inName || '@';
|
|
5
|
+
const execute = (command: string, ...args: any[]) =>
|
|
6
|
+
AcTable.event?.emit(`${name}:${command}`, ...args);
|
|
7
|
+
|
|
8
|
+
const listen = (cmd: string, callback: any) => AcTable.event?.on(`${name}:${cmd}`, callback);
|
|
9
|
+
|
|
10
|
+
// the command repository:
|
|
11
|
+
const refetch = () => execute('refetch');
|
|
12
|
+
const reset = () => execute('reset');
|
|
13
|
+
|
|
14
|
+
return {
|
|
15
|
+
listen,
|
|
16
|
+
execute,
|
|
17
|
+
refetch,
|
|
18
|
+
reset,
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default useCommand;
|