@hw-component/table 0.0.4-beta-v3 → 0.0.4-beta-v7
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/es/HTableFooter/index.d.ts +1 -1
- package/es/ModalTable/hooks.d.ts +26 -0
- package/es/ModalTable/hooks.js +70 -0
- package/es/ModalTable/index.d.ts +3 -0
- package/es/ModalTable/index.js +91 -0
- package/es/Table.js +1 -1
- package/es/hooks/useReq.d.ts +1 -1
- package/es/index.d.ts +2 -0
- package/es/index.js +2 -0
- package/es/modal.d.ts +24 -0
- package/lib/HTableFooter/index.d.ts +1 -1
- package/lib/ModalTable/hooks.d.ts +26 -0
- package/lib/ModalTable/hooks.js +74 -0
- package/lib/ModalTable/index.d.ts +3 -0
- package/lib/ModalTable/index.js +94 -0
- package/lib/Table.js +1 -1
- package/lib/hooks/useReq.d.ts +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +4 -0
- package/lib/modal.d.ts +24 -0
- package/package.json +1 -1
- package/src/components/HTableBody/index.tsx +28 -12
- package/src/components/HTableFooter/index.tsx +27 -16
- package/src/components/HTableHeader/utils.ts +3 -3
- package/src/components/ModalTable/hooks.ts +58 -0
- package/src/components/ModalTable/index.tsx +71 -0
- package/src/components/Table.tsx +22 -21
- package/src/components/TableCustomize.tsx +6 -5
- package/src/components/context.ts +1 -1
- package/src/components/hooks/useCurrentTable.ts +1 -1
- package/src/components/hooks/useHTable.tsx +1 -1
- package/src/components/hooks/useReq.ts +36 -27
- package/src/components/hooks/useRowObj.ts +2 -2
- package/src/components/index.tsx +2 -0
- package/src/components/modal.ts +28 -4
- package/src/pages/ModalTable/index.tsx +93 -0
- package/src/pages/Table/index.tsx +14 -14
- package/src/pages/TableCustomize/index.tsx +28 -25
- package/src/routes.tsx +6 -1
|
@@ -4,7 +4,7 @@ import type { ActionRenderFn } from "../modal";
|
|
|
4
4
|
import { useHTableContext } from "../context";
|
|
5
5
|
import React from "react";
|
|
6
6
|
import type { HTableInstance, ResultModal, RowObj } from "../modal";
|
|
7
|
-
import type {FooterBtnRenderFn} from "../modal";
|
|
7
|
+
import type { FooterBtnRenderFn } from "../modal";
|
|
8
8
|
|
|
9
9
|
const { Text, Link } = Typography;
|
|
10
10
|
interface IFooterProps {
|
|
@@ -15,15 +15,20 @@ interface IFooterProps {
|
|
|
15
15
|
data?: ResultModal
|
|
16
16
|
) => React.ReactNode;
|
|
17
17
|
footerStyle?: React.CSSProperties;
|
|
18
|
-
footerBtnRender?: FooterBtnRenderFn
|
|
18
|
+
footerBtnRender?: FooterBtnRenderFn;
|
|
19
19
|
}
|
|
20
|
-
export default ({
|
|
20
|
+
export default ({
|
|
21
|
+
actionRender,
|
|
22
|
+
footerRender,
|
|
23
|
+
footerStyle,
|
|
24
|
+
footerBtnRender,
|
|
25
|
+
}: IFooterProps) => {
|
|
21
26
|
const {
|
|
22
27
|
data,
|
|
23
28
|
selectedRowData = {},
|
|
24
29
|
allSelectChange,
|
|
25
30
|
tableInstance,
|
|
26
|
-
setSelectedRowData
|
|
31
|
+
setSelectedRowData,
|
|
27
32
|
} = useHTableContext();
|
|
28
33
|
const { total = "0" } = data || {};
|
|
29
34
|
const totalNum = Number.parseInt(total, 10);
|
|
@@ -33,21 +38,25 @@ export default ({ actionRender, footerRender, footerStyle ,footerBtnRender}: IFo
|
|
|
33
38
|
if (footerRender) {
|
|
34
39
|
return <>{footerRender(tableInstance, selectedRowData, data)}</>;
|
|
35
40
|
}
|
|
36
|
-
const btnDom=
|
|
37
|
-
<
|
|
41
|
+
const btnDom = (
|
|
42
|
+
<Space size={20}>
|
|
43
|
+
<Button
|
|
38
44
|
type={"primary"}
|
|
39
45
|
ghost
|
|
40
46
|
disabled={showTotalNum == 0}
|
|
41
47
|
style={{ padding: "4px 24px", borderRadius: "4px" }}
|
|
42
|
-
onClick={()=>{
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
48
|
+
onClick={() => {
|
|
49
|
+
allSelectChange?.();
|
|
50
|
+
}}
|
|
51
|
+
>
|
|
52
|
+
{!selectAll ? "选择全部" : "取消选择"}
|
|
53
|
+
</Button>
|
|
54
|
+
<Text type={"secondary"}>共{total}条</Text>
|
|
55
|
+
<Text type={"secondary"}>
|
|
56
|
+
已选择<Link>{num}</Link>条
|
|
57
|
+
</Text>
|
|
58
|
+
</Space>
|
|
59
|
+
);
|
|
51
60
|
const dom = (
|
|
52
61
|
<Card
|
|
53
62
|
style={{ borderRadius: 4, ...footerStyle }}
|
|
@@ -55,7 +64,9 @@ export default ({ actionRender, footerRender, footerStyle ,footerBtnRender}: IFo
|
|
|
55
64
|
className="hw_table_footer"
|
|
56
65
|
>
|
|
57
66
|
<Row justify="space-between" align="middle">
|
|
58
|
-
{footerBtnRender
|
|
67
|
+
{footerBtnRender
|
|
68
|
+
? footerBtnRender(btnDom, total, selectedRowData, setSelectedRowData)
|
|
69
|
+
: btnDom}
|
|
59
70
|
{actionRender?.(selectedRowData, tableInstance)}
|
|
60
71
|
</Row>
|
|
61
72
|
</Card>
|
|
@@ -45,12 +45,12 @@ function formConfigDataItemProvider({
|
|
|
45
45
|
title,
|
|
46
46
|
name,
|
|
47
47
|
dataIndex,
|
|
48
|
-
itemProps={},
|
|
48
|
+
itemProps = {},
|
|
49
49
|
searchRender,
|
|
50
50
|
}: ConfigItemModal): HItemProps {
|
|
51
|
-
const {allowClear=true}=
|
|
51
|
+
const { allowClear = true } = itemProps as any;
|
|
52
52
|
return {
|
|
53
|
-
itemProps:{
|
|
53
|
+
itemProps: {
|
|
54
54
|
...itemProps,
|
|
55
55
|
allowClear,
|
|
56
56
|
},
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import useHTable from "../hooks/useHTable";
|
|
2
|
+
import type {
|
|
3
|
+
HDiaLogTableInstance,
|
|
4
|
+
HOnDiaLogTableInstance,
|
|
5
|
+
ModalTableProps,
|
|
6
|
+
} from "../modal";
|
|
7
|
+
import { useEffect, useState } from "react";
|
|
8
|
+
import type { DialogParamsModal } from "../modal";
|
|
9
|
+
|
|
10
|
+
export const useHDialogTable = () => {
|
|
11
|
+
const tableInstance = useHTable();
|
|
12
|
+
return {
|
|
13
|
+
...tableInstance,
|
|
14
|
+
show: (params: DialogParamsModal) => {},
|
|
15
|
+
hide: () => {},
|
|
16
|
+
} as HDiaLogTableInstance;
|
|
17
|
+
};
|
|
18
|
+
interface ParamsModal extends HOnDiaLogTableInstance {
|
|
19
|
+
dialogTable?: HDiaLogTableInstance;
|
|
20
|
+
}
|
|
21
|
+
export const useTableProps = ({
|
|
22
|
+
configData,
|
|
23
|
+
params,
|
|
24
|
+
title,
|
|
25
|
+
request,
|
|
26
|
+
}: Omit<ModalTableProps, "tableProps">) => {
|
|
27
|
+
const [modalTableParams, setModalTableParams] = useState({
|
|
28
|
+
params,
|
|
29
|
+
title,
|
|
30
|
+
configData,
|
|
31
|
+
request
|
|
32
|
+
});
|
|
33
|
+
return {
|
|
34
|
+
modalTableParams,
|
|
35
|
+
setModalTableParams,
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
export const useCurrentTable = ({ show, hide, dialogTable }: ParamsModal) => {
|
|
39
|
+
const cuDialogTableInstance = useHDialogTable();
|
|
40
|
+
const dialogTableInstance = dialogTable || cuDialogTableInstance;
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
dialogTableInstance.show = show;
|
|
43
|
+
dialogTableInstance.hide = hide;
|
|
44
|
+
}, []);
|
|
45
|
+
return dialogTableInstance;
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export const useVisible = (visible: boolean) => {
|
|
49
|
+
const [modalVisible, setModalVisible] = useState(visible);
|
|
50
|
+
useEffect(() => {
|
|
51
|
+
setModalVisible(visible);
|
|
52
|
+
}, [visible]);
|
|
53
|
+
|
|
54
|
+
return {
|
|
55
|
+
modalVisible,
|
|
56
|
+
setModalVisible,
|
|
57
|
+
};
|
|
58
|
+
};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Modal } from "antd";
|
|
2
|
+
import Table from "../Table";
|
|
3
|
+
import type { ModalTableProps } from "../modal";
|
|
4
|
+
import { useCurrentTable, useTableProps, useVisible } from "./hooks";
|
|
5
|
+
export default ({
|
|
6
|
+
configData:configDataProps,
|
|
7
|
+
request:requestProps,
|
|
8
|
+
tableProps,
|
|
9
|
+
dialogTable,
|
|
10
|
+
visible = false,
|
|
11
|
+
onCancel,
|
|
12
|
+
...props
|
|
13
|
+
}: ModalTableProps) => {
|
|
14
|
+
const { modalVisible, setModalVisible } = useVisible(visible);
|
|
15
|
+
const { modalTableParams, setModalTableParams } = useTableProps({
|
|
16
|
+
...props,
|
|
17
|
+
configData:configDataProps,
|
|
18
|
+
request:requestProps
|
|
19
|
+
});
|
|
20
|
+
const currentTable = useCurrentTable({
|
|
21
|
+
show: (showParams) => {
|
|
22
|
+
if (showParams) {
|
|
23
|
+
setModalTableParams((oldParams) => {
|
|
24
|
+
const { configData, request, title } = oldParams;
|
|
25
|
+
const {
|
|
26
|
+
title: showTitle = title,
|
|
27
|
+
configData: showConfigData = configData,
|
|
28
|
+
request: showReq,
|
|
29
|
+
params = request,
|
|
30
|
+
} = showParams;
|
|
31
|
+
return {
|
|
32
|
+
title: showTitle,
|
|
33
|
+
request: showReq,
|
|
34
|
+
configData: showConfigData,
|
|
35
|
+
params,
|
|
36
|
+
};
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
setModalVisible(true);
|
|
40
|
+
},
|
|
41
|
+
hide: () => {
|
|
42
|
+
setModalVisible(false);
|
|
43
|
+
},
|
|
44
|
+
dialogTable,
|
|
45
|
+
});
|
|
46
|
+
const { configData, request, title, params } = modalTableParams;
|
|
47
|
+
const req = request
|
|
48
|
+
? (reqParams) => {
|
|
49
|
+
return request({ ...params, ...reqParams });
|
|
50
|
+
}
|
|
51
|
+
: undefined;
|
|
52
|
+
return (
|
|
53
|
+
<Modal
|
|
54
|
+
{...props}
|
|
55
|
+
visible={modalVisible}
|
|
56
|
+
onCancel={(e) => {
|
|
57
|
+
setModalVisible(false);
|
|
58
|
+
onCancel?.(e);
|
|
59
|
+
}}
|
|
60
|
+
destroyOnClose
|
|
61
|
+
title={title}
|
|
62
|
+
>
|
|
63
|
+
<Table
|
|
64
|
+
{...tableProps}
|
|
65
|
+
configData={configData||[]}
|
|
66
|
+
table={currentTable}
|
|
67
|
+
request={req}
|
|
68
|
+
/>
|
|
69
|
+
</Modal>
|
|
70
|
+
);
|
|
71
|
+
};
|
package/src/components/Table.tsx
CHANGED
|
@@ -23,12 +23,13 @@ export default ({
|
|
|
23
23
|
spaceSize = 15,
|
|
24
24
|
className,
|
|
25
25
|
paginationStyle,
|
|
26
|
-
|
|
26
|
+
footerBtnRender,
|
|
27
27
|
...props
|
|
28
28
|
}: HTableProps) => {
|
|
29
29
|
const { run, loading, data, error, saveParams } = useReq({ request });
|
|
30
30
|
const dispatch = useDispatch(action);
|
|
31
|
-
const { selectedRowData, rowOnChange, allSelectChange
|
|
31
|
+
const { selectedRowData, rowOnChange, allSelectChange, setSelectedRowData } =
|
|
32
|
+
useRowObj();
|
|
32
33
|
const tableInstance = useCurrentTable({
|
|
33
34
|
table,
|
|
34
35
|
reload: (params) => {
|
|
@@ -62,27 +63,27 @@ export default ({
|
|
|
62
63
|
return run(value);
|
|
63
64
|
},
|
|
64
65
|
onPageChange: tableInstance.table.reloadWithParams,
|
|
65
|
-
setSelectedRowData
|
|
66
|
+
setSelectedRowData,
|
|
66
67
|
}}
|
|
67
68
|
>
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
69
|
+
<Space direction={"vertical"} size={spaceSize} style={{ width: "100%" }}>
|
|
70
|
+
{!hideHeader && (
|
|
71
|
+
<Header searchSpan={searchSpan} headerStyle={headerStyle} />
|
|
72
|
+
)}
|
|
73
|
+
<Body
|
|
74
|
+
tableStyle={tableStyle}
|
|
75
|
+
paginationStyle={paginationStyle}
|
|
76
|
+
{...props}
|
|
77
|
+
/>
|
|
78
|
+
{footerRender !== false && (
|
|
79
|
+
<Footer
|
|
80
|
+
actionRender={actionRender}
|
|
81
|
+
footerRender={footerRender}
|
|
82
|
+
footerStyle={footerStyle}
|
|
83
|
+
footerBtnRender={footerBtnRender}
|
|
84
|
+
/>
|
|
85
|
+
)}
|
|
86
|
+
</Space>
|
|
86
87
|
</HTableContext.Provider>
|
|
87
88
|
);
|
|
88
89
|
};
|
|
@@ -19,7 +19,8 @@ const Index: React.FC<HTableProps> = ({
|
|
|
19
19
|
...props,
|
|
20
20
|
} as IParamsModal);
|
|
21
21
|
const dispatch = useDispatch(action);
|
|
22
|
-
const { selectedRowData, rowOnChange, allSelectChange
|
|
22
|
+
const { selectedRowData, rowOnChange, allSelectChange, setSelectedRowData } =
|
|
23
|
+
useRowObj();
|
|
23
24
|
const tableInstance = useCurrentTable({
|
|
24
25
|
table,
|
|
25
26
|
reload: (params) => {
|
|
@@ -32,9 +33,9 @@ const Index: React.FC<HTableProps> = ({
|
|
|
32
33
|
rowOnChange([], []);
|
|
33
34
|
return run({ ...saveParams.old, ...reloadParams });
|
|
34
35
|
},
|
|
35
|
-
getTableParams:()=>{
|
|
36
|
-
|
|
37
|
-
}
|
|
36
|
+
getTableParams: () => {
|
|
37
|
+
return saveParams.old;
|
|
38
|
+
},
|
|
38
39
|
});
|
|
39
40
|
return (
|
|
40
41
|
<HTableContext.Provider
|
|
@@ -54,7 +55,7 @@ const Index: React.FC<HTableProps> = ({
|
|
|
54
55
|
return run(value);
|
|
55
56
|
},
|
|
56
57
|
onPageChange: tableInstance.table.reloadWithParams,
|
|
57
|
-
|
|
58
|
+
setSelectedRowData,
|
|
58
59
|
}}
|
|
59
60
|
>
|
|
60
61
|
{children}
|
|
@@ -13,7 +13,7 @@ interface HContextModal extends Omit<HTableProps, "request"> {
|
|
|
13
13
|
params?: any;
|
|
14
14
|
onFinish: (value: Record<string, any>) => Promise<any>;
|
|
15
15
|
onPageChange: (value: Record<string, any>) => Promise<any>;
|
|
16
|
-
setSelectedRowData:(row:RowObj)=>void;
|
|
16
|
+
setSelectedRowData: (row: RowObj) => void;
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
export const HTableContext = React.createContext<HContextModal | null>(null);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useEffect, useMemo} from "react";
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
2
|
import { useRequest } from "ahooks";
|
|
3
3
|
import type { ParamsModal, ResultModal } from "@/components/modal";
|
|
4
4
|
export interface IParamsModal {
|
|
@@ -7,50 +7,59 @@ export interface IParamsModal {
|
|
|
7
7
|
error?: Error;
|
|
8
8
|
reload?: (params: any) => Promise<any>;
|
|
9
9
|
dataSource?: any;
|
|
10
|
-
manual?: boolean
|
|
10
|
+
manual?: boolean;
|
|
11
11
|
}
|
|
12
|
-
export default ({
|
|
12
|
+
export default ({
|
|
13
|
+
request,
|
|
14
|
+
loading,
|
|
15
|
+
error,
|
|
16
|
+
reload,
|
|
17
|
+
dataSource,
|
|
18
|
+
manual = false,
|
|
19
|
+
}: IParamsModal) => {
|
|
13
20
|
const saveParams = useMemo(() => {
|
|
14
21
|
return {
|
|
15
22
|
old: {},
|
|
16
23
|
};
|
|
17
24
|
}, []);
|
|
18
|
-
const reloadFn=async (params: Record<string, any
|
|
25
|
+
const reloadFn = async (params: Record<string, any> = {}) => {
|
|
19
26
|
const { size = "10", current = "1", ...oParams } = params;
|
|
20
27
|
const reqParams = { size, current, ...oParams };
|
|
21
28
|
saveParams.old = reqParams;
|
|
22
29
|
return reload?.(reqParams);
|
|
23
|
-
}
|
|
24
|
-
const resultAction = useRequest(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
+
};
|
|
31
|
+
const resultAction = useRequest(
|
|
32
|
+
(params = {}) => {
|
|
33
|
+
const { size = "10", current = "1", ...oParams } = params;
|
|
34
|
+
const reqParams = { size, current, ...oParams };
|
|
35
|
+
saveParams.old = reqParams;
|
|
36
|
+
return request?.(reqParams);
|
|
37
|
+
},
|
|
38
|
+
{ manual: true }
|
|
39
|
+
);
|
|
30
40
|
|
|
31
|
-
useEffect(()=>{
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
},[]);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
if (manual) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
if (request) {
|
|
46
|
+
resultAction.run();
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
reloadFn();
|
|
50
|
+
}, []);
|
|
41
51
|
|
|
42
|
-
if (request){
|
|
52
|
+
if (request) {
|
|
43
53
|
return {
|
|
44
54
|
...resultAction,
|
|
45
55
|
saveParams,
|
|
46
56
|
};
|
|
47
57
|
}
|
|
48
|
-
return
|
|
58
|
+
return {
|
|
49
59
|
loading,
|
|
50
60
|
error,
|
|
51
|
-
data:dataSource,
|
|
52
|
-
run:reloadFn,
|
|
61
|
+
data: dataSource,
|
|
62
|
+
run: reloadFn,
|
|
53
63
|
saveParams,
|
|
54
|
-
|
|
55
|
-
}
|
|
64
|
+
};
|
|
56
65
|
};
|
|
@@ -12,7 +12,7 @@ export default () => {
|
|
|
12
12
|
});
|
|
13
13
|
};
|
|
14
14
|
const allSelectChange = (checked?: boolean) => {
|
|
15
|
-
const newChecked=typeof checked==="undefined"
|
|
15
|
+
const newChecked = typeof checked === "undefined" ? !selectAll : checked;
|
|
16
16
|
setSelectedRowData({
|
|
17
17
|
selectAll: newChecked,
|
|
18
18
|
});
|
|
@@ -22,6 +22,6 @@ export default () => {
|
|
|
22
22
|
rowOnChange,
|
|
23
23
|
selectedRowData,
|
|
24
24
|
allSelectChange,
|
|
25
|
-
setSelectedRowData
|
|
25
|
+
setSelectedRowData,
|
|
26
26
|
};
|
|
27
27
|
};
|
package/src/components/index.tsx
CHANGED
|
@@ -7,3 +7,5 @@ export { default as HTableBody } from "./HTableBody";
|
|
|
7
7
|
export { default as HTableFooter } from "./HTableFooter";
|
|
8
8
|
export { default as HTableHeader } from "./HTableHeader";
|
|
9
9
|
export { default as HTablePagination } from "./HTablePagination";
|
|
10
|
+
export { default as HModalTable } from "./ModalTable";
|
|
11
|
+
export { useHDialogTable } from "./ModalTable/hooks";
|
package/src/components/modal.ts
CHANGED
|
@@ -6,6 +6,7 @@ import type {
|
|
|
6
6
|
} from "@hw-component/form/es/Form/modal";
|
|
7
7
|
import type { ColProps } from "antd";
|
|
8
8
|
import type React from "react";
|
|
9
|
+
import type { ModalProps } from "antd";
|
|
9
10
|
|
|
10
11
|
export interface RowObj {
|
|
11
12
|
keys?: React.Key[];
|
|
@@ -40,10 +41,10 @@ export type ActionRenderFn = (
|
|
|
40
41
|
tableInstance: HTableInstance
|
|
41
42
|
) => React.ReactNode;
|
|
42
43
|
export type FooterBtnRenderFn = (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
dom: React.ReactNode,
|
|
45
|
+
total: string,
|
|
46
|
+
selectedRowKeys: RowObj,
|
|
47
|
+
setAllCheck: (row: RowObj) => void
|
|
47
48
|
) => React.ReactNode;
|
|
48
49
|
export type actionFn = (...arg) => void;
|
|
49
50
|
type FooterRenderFn = (
|
|
@@ -89,3 +90,26 @@ export interface HTableInstance {
|
|
|
89
90
|
form: HFormInstance;
|
|
90
91
|
table: TableInstance;
|
|
91
92
|
}
|
|
93
|
+
export interface DialogParamsModal {
|
|
94
|
+
configData?: HTableProps["configData"];
|
|
95
|
+
request?: HTableProps["request"];
|
|
96
|
+
params?: Record<string, any>;
|
|
97
|
+
title?: string;
|
|
98
|
+
}
|
|
99
|
+
export interface HOnDiaLogTableInstance {
|
|
100
|
+
show: (params?: DialogParamsModal) => void;
|
|
101
|
+
hide: () => void;
|
|
102
|
+
}
|
|
103
|
+
export interface HDiaLogTableInstance {
|
|
104
|
+
form: HFormInstance;
|
|
105
|
+
table: TableInstance;
|
|
106
|
+
show: (params?: DialogParamsModal) => void;
|
|
107
|
+
hide: () => void;
|
|
108
|
+
}
|
|
109
|
+
export interface ModalTableProps extends ModalProps {
|
|
110
|
+
tableProps: HTableProps;
|
|
111
|
+
dialogTable?: HDiaLogTableInstance;
|
|
112
|
+
params?: Record<string, any>;
|
|
113
|
+
configData?: HTableProps["configData"];
|
|
114
|
+
request?: HTableProps["request"];
|
|
115
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { Button } from "antd";
|
|
2
|
+
import { HModalTable, useHDialogTable } from "../../components";
|
|
3
|
+
const configData = [
|
|
4
|
+
{
|
|
5
|
+
title: "座位",
|
|
6
|
+
showSearch: true,
|
|
7
|
+
searchType: "select",
|
|
8
|
+
dataIndex: "name",
|
|
9
|
+
itemProps: {
|
|
10
|
+
options: [{ label: "1", value: 1 }],
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: "操作",
|
|
15
|
+
name: "aaa",
|
|
16
|
+
fixed: "right",
|
|
17
|
+
width: 200,
|
|
18
|
+
showSearch: true,
|
|
19
|
+
render: () => {
|
|
20
|
+
return <div>fff</div>;
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
const req1 = (params) => {
|
|
25
|
+
console.log(params, "req1");
|
|
26
|
+
const { current = 1 } = params;
|
|
27
|
+
return new Promise((resolve, reject) => {
|
|
28
|
+
setTimeout(() => {
|
|
29
|
+
// reject(new Error("错误"));
|
|
30
|
+
resolve({
|
|
31
|
+
size: "10",
|
|
32
|
+
current: current.toString(10),
|
|
33
|
+
total: "100",
|
|
34
|
+
records: [
|
|
35
|
+
{
|
|
36
|
+
id: 1,
|
|
37
|
+
name: "111",
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
});
|
|
41
|
+
}, 2000);
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const req2 = (params) => {
|
|
46
|
+
console.log(params, "req2");
|
|
47
|
+
const { current = 1 } = params;
|
|
48
|
+
return new Promise((resolve, reject) => {
|
|
49
|
+
setTimeout(() => {
|
|
50
|
+
// reject(new Error("错误"));
|
|
51
|
+
resolve({
|
|
52
|
+
size: "10",
|
|
53
|
+
current: current.toString(10),
|
|
54
|
+
total: "100",
|
|
55
|
+
records: [
|
|
56
|
+
{
|
|
57
|
+
id: 1,
|
|
58
|
+
name: "111",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
});
|
|
62
|
+
}, 2000);
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
export default () => {
|
|
66
|
+
const dialogTable = useHDialogTable();
|
|
67
|
+
return (
|
|
68
|
+
<>
|
|
69
|
+
<Button
|
|
70
|
+
onClick={() => {
|
|
71
|
+
dialogTable.show({
|
|
72
|
+
title: "12312",
|
|
73
|
+
request: req1,
|
|
74
|
+
params: { name: 23123 },
|
|
75
|
+
});
|
|
76
|
+
}}
|
|
77
|
+
>
|
|
78
|
+
点我
|
|
79
|
+
</Button>
|
|
80
|
+
<Button
|
|
81
|
+
onClick={() => {
|
|
82
|
+
dialogTable.show({ title: "3333", request: req2 });
|
|
83
|
+
}}
|
|
84
|
+
>
|
|
85
|
+
点我333
|
|
86
|
+
</Button>
|
|
87
|
+
<HModalTable
|
|
88
|
+
dialogTable={dialogTable}
|
|
89
|
+
configData={configData}
|
|
90
|
+
/>
|
|
91
|
+
</>
|
|
92
|
+
);
|
|
93
|
+
};
|
|
@@ -8,25 +8,25 @@ const configData = [
|
|
|
8
8
|
showSearch: true,
|
|
9
9
|
searchType: "select",
|
|
10
10
|
dataIndex: "name",
|
|
11
|
-
itemProps:{
|
|
12
|
-
options:[{label:"1",value:1}]
|
|
13
|
-
}
|
|
11
|
+
itemProps: {
|
|
12
|
+
options: [{ label: "1", value: 1 }],
|
|
13
|
+
},
|
|
14
14
|
},
|
|
15
15
|
{
|
|
16
16
|
title: "操作",
|
|
17
17
|
name: "aaa",
|
|
18
|
-
fixed:"right",
|
|
19
|
-
width:200,
|
|
18
|
+
fixed: "right",
|
|
19
|
+
width: 200,
|
|
20
20
|
showSearch: true,
|
|
21
|
-
render:()=>{
|
|
22
|
-
return <div>fff</div
|
|
23
|
-
}
|
|
21
|
+
render: () => {
|
|
22
|
+
return <div>fff</div>;
|
|
23
|
+
},
|
|
24
24
|
},
|
|
25
25
|
];
|
|
26
|
-
const Test=({name,selectedRowData})=>{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
26
|
+
const Test = ({ name, selectedRowData }) => {
|
|
27
|
+
console.log(selectedRowData);
|
|
28
|
+
return <div>{name}</div>;
|
|
29
|
+
};
|
|
30
30
|
export default () => {
|
|
31
31
|
const hTable = useHTable();
|
|
32
32
|
return (
|
|
@@ -35,9 +35,9 @@ export default () => {
|
|
|
35
35
|
configData={configData}
|
|
36
36
|
rowKey={"id"}
|
|
37
37
|
table={hTable}
|
|
38
|
-
scroll={{x:1000,y:100}}
|
|
38
|
+
scroll={{ x: 1000, y: 100 }}
|
|
39
39
|
rowSelection={false}
|
|
40
|
-
headerTitle={<Test name="321321"/>}
|
|
40
|
+
headerTitle={<Test name="321321" />}
|
|
41
41
|
actionRender={(allCheck, selectedRowKeys, xjTable) => {
|
|
42
42
|
console.log(allCheck, selectedRowKeys, xjTable);
|
|
43
43
|
return <Button>点我</Button>;
|