trithuc-mvc-react 1.5.0 → 1.5.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.
|
@@ -3,7 +3,7 @@ import { exportExcel } from "../../api";
|
|
|
3
3
|
import { Button } from "@mui/material";
|
|
4
4
|
import { Download } from "@mui/icons-material";
|
|
5
5
|
|
|
6
|
-
const ExportExcelButton = ({ tableName, data }) => {
|
|
6
|
+
const ExportExcelButton = ({ tableName, data, size = "small" }) => {
|
|
7
7
|
const handleExportExcel = async (tableName, data) => {
|
|
8
8
|
const _data = await exportExcel({ tableName, data });
|
|
9
9
|
if (_data.status) {
|
|
@@ -14,14 +14,15 @@ const ExportExcelButton = ({ tableName, data }) => {
|
|
|
14
14
|
};
|
|
15
15
|
return (
|
|
16
16
|
<Button
|
|
17
|
+
size={size}
|
|
17
18
|
variant="outlined"
|
|
18
19
|
startIcon={<Download />}
|
|
19
20
|
onClick={() => {
|
|
20
|
-
handleExportExcel(tableName,data);
|
|
21
|
+
handleExportExcel(tableName, data);
|
|
21
22
|
}}
|
|
22
23
|
>
|
|
23
24
|
Excel
|
|
24
25
|
</Button>
|
|
25
26
|
);
|
|
26
|
-
}
|
|
27
|
-
export default ExportExcelButton;
|
|
27
|
+
};
|
|
28
|
+
export default ExportExcelButton;
|
|
@@ -5,7 +5,7 @@ import DateRangePicker from "../date/DateRangePicker";
|
|
|
5
5
|
import { FilterElement } from "./FilterElement";
|
|
6
6
|
import { useDataTable } from "./hooks";
|
|
7
7
|
|
|
8
|
-
export const FilterGod = ({ filters, elementSize = "
|
|
8
|
+
export const FilterGod = ({ filters, elementSize = "small" }) => {
|
|
9
9
|
const { handleSubmit } = useFormContext();
|
|
10
10
|
const onSubmit = (data) => console.log(data);
|
|
11
11
|
const { setDataSearch, dataSearch } = useDataTable();
|
|
@@ -17,7 +17,7 @@ export const FilterGod = ({ filters, elementSize = "medium" }) => {
|
|
|
17
17
|
onSubmit={handleSubmit(onSubmit)}
|
|
18
18
|
sx={{
|
|
19
19
|
px: 1,
|
|
20
|
-
my: 2,
|
|
20
|
+
my: elementSize == "small" ? 0 : 2,
|
|
21
21
|
display: "flex",
|
|
22
22
|
alignItems: "center"
|
|
23
23
|
}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, Card, IconButton, Stack, Tooltip, Typography } from "@mui/material";
|
|
1
|
+
import { Button, Card, IconButton, Stack, Tooltip, Typography, useTheme, useMediaQuery } from "@mui/material";
|
|
2
2
|
|
|
3
3
|
import { useEffect, useMemo, useState } from "react";
|
|
4
4
|
|
|
@@ -12,6 +12,7 @@ import EditorDialog from "./EditorDialog";
|
|
|
12
12
|
|
|
13
13
|
import ExportExcelButton from "./ExportExcelButton";
|
|
14
14
|
import { FilterGod } from "./FilterGod";
|
|
15
|
+
import { useDataTable } from "./hooks";
|
|
15
16
|
|
|
16
17
|
DataManagement.propTypes = {
|
|
17
18
|
columns: PropTypes.array,
|
|
@@ -36,10 +37,10 @@ DataManagement.propTypes = {
|
|
|
36
37
|
disableEditor: PropTypes.bool,
|
|
37
38
|
onAddClick: PropTypes.func,
|
|
38
39
|
onEditClick: PropTypes.func,
|
|
39
|
-
tabPanel: PropTypes.node
|
|
40
|
-
filterSize: PropTypes.oneOf(["small", "medium"])
|
|
40
|
+
tabPanel: PropTypes.node
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
+
|
|
43
44
|
function DataManagement({
|
|
44
45
|
columns = [],
|
|
45
46
|
title,
|
|
@@ -55,7 +56,13 @@ function DataManagement({
|
|
|
55
56
|
onAddClick = () => {},
|
|
56
57
|
onEditClick = () => {},
|
|
57
58
|
tabPanel,
|
|
58
|
-
|
|
59
|
+
slotProps = {
|
|
60
|
+
header: {
|
|
61
|
+
sx: {
|
|
62
|
+
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
59
66
|
}) {
|
|
60
67
|
const [openEditorDialog, setOpenEditorDialog] = useState(false);
|
|
61
68
|
const [selectedEditItem, setSelectedEditItem] = useState(null);
|
|
@@ -73,6 +80,13 @@ function DataManagement({
|
|
|
73
80
|
return { defaults, filters };
|
|
74
81
|
}, [tableFilters]);
|
|
75
82
|
|
|
83
|
+
const theme = useTheme();
|
|
84
|
+
const upXL = useMediaQuery(theme.breakpoints.up("xl"));
|
|
85
|
+
const elementSize = useMemo(() => {
|
|
86
|
+
const elementSize = upXL ? "medium" : "small";
|
|
87
|
+
return elementSize;
|
|
88
|
+
}, [upXL]);
|
|
89
|
+
|
|
76
90
|
useEffect(() => {
|
|
77
91
|
if (selectedEditItem && disableEditor) {
|
|
78
92
|
onEditClick(selectedEditItem);
|
|
@@ -114,13 +128,14 @@ function DataManagement({
|
|
|
114
128
|
<DataTableContext.Provider value={values}>
|
|
115
129
|
<PermissionContext.Provider value={permissionValues}>
|
|
116
130
|
<FormProvider {...methods}>
|
|
117
|
-
<Stack direction="row" justifyContent={"space-between"} sx={{ mb: 4 }}>
|
|
131
|
+
<Stack direction="row" justifyContent={"space-between"} sx={{ mb: 4, ...slotProps?.header?.sx }}>
|
|
118
132
|
<Typography variant="h4">{title}</Typography>
|
|
119
133
|
<Stack direction="row" spacing={1}>
|
|
120
134
|
<Tooltip title="Làm mới">
|
|
121
135
|
<IconButton
|
|
122
136
|
variant="outlined"
|
|
123
137
|
color="primary"
|
|
138
|
+
size={elementSize}
|
|
124
139
|
onClick={() => {
|
|
125
140
|
setDataSearch({ ...defaults });
|
|
126
141
|
[...filters].forEach((filter) => {
|
|
@@ -134,9 +149,10 @@ function DataManagement({
|
|
|
134
149
|
</IconButton>
|
|
135
150
|
</Tooltip>
|
|
136
151
|
|
|
137
|
-
<ExportExcelButton tableName={tableName} data={dataSearch} />
|
|
152
|
+
<ExportExcelButton tableName={tableName} data={dataSearch} size={elementSize} />
|
|
138
153
|
{(!Permission || Permission.Create) && (
|
|
139
154
|
<Button
|
|
155
|
+
size={elementSize}
|
|
140
156
|
variant="contained"
|
|
141
157
|
startIcon={<Add />}
|
|
142
158
|
onClick={(e) => {
|
|
@@ -152,9 +168,10 @@ function DataManagement({
|
|
|
152
168
|
)}
|
|
153
169
|
</Stack>
|
|
154
170
|
</Stack>
|
|
171
|
+
|
|
155
172
|
<Card>
|
|
156
173
|
{tabPanel}
|
|
157
|
-
<FilterGod filters={filters} elementSize={
|
|
174
|
+
<FilterGod filters={filters} elementSize={elementSize} />
|
|
158
175
|
<DataTable />
|
|
159
176
|
</Card>
|
|
160
177
|
</FormProvider>
|