Merge branch 'feature/remove_addition_column' into 'develop'

remove addition columns

See merge request witel-front-end/rms!14
This commit is contained in:
AmirHossein Mahmoodi
2024-07-30 07:58:00 +00:00
6 changed files with 110 additions and 118 deletions

View File

@@ -1,12 +1,15 @@
"use client"; "use client";
import DialogTransition from "@/core/components/DialogTransition"; import DialogTransition from "@/core/components/DialogTransition";
import { AddCircle, Close } from "@mui/icons-material"; import { AddCircle, Close } from "@mui/icons-material";
import { Button, Dialog, DialogTitle, IconButton } from "@mui/material"; import { Button, Dialog, DialogTitle, IconButton, useMediaQuery } from "@mui/material";
import CreateOrUpdateForm from "../../Forms/CreateOrUpdate"; import CreateOrUpdateForm from "../../Forms/CreateOrUpdate";
import { SET_INQUIRE_PRIVACY_FENCING } from "@/core/utils/routes"; import { SET_INQUIRE_PRIVACY_FENCING } from "@/core/utils/routes";
import { useState } from "react"; import { useState } from "react";
import { useTheme } from "@emotion/react";
const InquiryPrivacyFencingCreate = ({ mutate }) => { const InquiryPrivacyFencingCreate = ({ mutate }) => {
const theme = useTheme();
const isMobile = useMediaQuery(theme.breakpoints.down("sm"));
const [open, setOpen] = useState(false); const [open, setOpen] = useState(false);
const handleOpen = () => { const handleOpen = () => {
@@ -19,11 +22,22 @@ const InquiryPrivacyFencingCreate = ({ mutate }) => {
return ( return (
<> <>
<Button variant="contained" color="primary2" startIcon={<AddCircle />} onClick={handleOpen}> {isMobile ? (
ایجاد پاسخ به استعلام <IconButton aria-label="ایجاد پاسخ به استعلام" color="primary" onClick={handleOpen}>
</Button> <AddCircle sx={{ fontSize: "25px" }} />
</IconButton>
) : (
<Button
variant="contained"
color="primary"
startIcon={<AddCircle />}
onClick={handleOpen}
>
ایجاد پاسخ به استعلام
</Button>
)}
<Dialog open={open} fullScreen TransitionComponent={DialogTransition}> <Dialog open={open} fullScreen TransitionComponent={DialogTransition}>
<DialogTitle sx={{ m: 0, p: 2, borderBottom: 1, borderColor: 'divider' }} id="create-dialog"> <DialogTitle sx={{ m: 0, p: 2, borderBottom: 1, borderColor: "divider" }} id="create-dialog">
ایجاد پاسخ به استعلام ایجاد پاسخ به استعلام
</DialogTitle> </DialogTitle>
<IconButton <IconButton

View File

@@ -4,80 +4,12 @@ import { useMemo } from "react";
import Toolbar from "@/components/dashboard/inquiryPrivacyFencing/Toolbar"; import Toolbar from "@/components/dashboard/inquiryPrivacyFencing/Toolbar";
import DataTable from "@/core/components/DataTable"; import DataTable from "@/core/components/DataTable";
import { GET_INQUIRY_PRIVACY_FENCING_ROUTE } from "@/core/utils/routes"; import { GET_INQUIRY_PRIVACY_FENCING_ROUTE } from "@/core/utils/routes";
import { Box } from "@mui/material";
import PageTitle from "@/core/components/PageTitle";
const InquiryPrivacyFencingPage = () => { const InquiryPrivacyFencingPage = () => {
const columns = useMemo( const columns = useMemo(
() => [ () => [
{
accessorKey: "fullname",
header: "نام کامل",
id: "fullname",
columns: [
{
accessorKey: "first_name",
header: "اسم",
id: "first_name",
columns: [
{
accessorKey: "part1",
header: "فامیل",
id: "part1",
enableColumnFilter: false,
datatype: "text",
columns: [
{
accessorKey: "part1_1",
header: "part1_1",
id: "part1_1",
enableColumnFilter: false,
datatype: "text",
},
{
accessorKey: "part1_2",
header: "part1_2",
id: "part1_2",
enableColumnFilter: false,
datatype: "text",
},
],
},
{
accessorKey: "part2",
header: "part2",
id: "part2",
enableColumnFilter: false,
datatype: "text",
},
],
},
{
accessorKey: "last_name",
header: "last_name",
id: "last_name",
enableColumnFilter: false,
datatype: "text",
},
],
},
{
accessorKey: "something",
header: "something",
id: "something",
columns: [
{
accessorKey: "something1",
header: "something1",
id: "something1",
},
{
accessorKey: "something2",
header: "something2",
id: "something2",
enableColumnFilter: false,
datatype: "text",
},
],
},
{ {
accessorKey: "dabirkhaneh_number", accessorKey: "dabirkhaneh_number",
header: "شماره دبیرخانه درخواست", header: "شماره دبیرخانه درخواست",
@@ -85,7 +17,6 @@ const InquiryPrivacyFencingPage = () => {
enableColumnFilter: false, enableColumnFilter: false,
datatype: "text", datatype: "text",
filterFn: "notEquals", filterFn: "notEquals",
columnFilterModeOptions: ["equals", "notEquals", "contains"],
}, },
{ {
accessorKey: "marjae_pasokh", accessorKey: "marjae_pasokh",
@@ -94,7 +25,6 @@ const InquiryPrivacyFencingPage = () => {
enableColumnFilter: false, enableColumnFilter: false,
datatype: "text", datatype: "text",
filterFn: "equals", filterFn: "equals",
columnFilterModeOptions: ["equals", "notEquals", "contains", "lessThan", "greaterThan", "fuzzy"],
}, },
{ {
accessorKey: "motaghazi_is_legal", accessorKey: "motaghazi_is_legal",
@@ -269,7 +199,6 @@ const InquiryPrivacyFencingPage = () => {
header: "ماه", header: "ماه",
id: "max_month", id: "max_month",
enableColumnFilter: false, enableColumnFilter: false,
columnFilterModeOptions: ["equals", "notEquals", "contains"],
}, },
{ {
accessorKey: "max_day", accessorKey: "max_day",
@@ -306,15 +235,21 @@ const InquiryPrivacyFencingPage = () => {
); );
return ( return (
<DataTable <>
need_filter={false} <PageTitle title={"احداث و بهره برداری دیوارکشی و مستحدثات"} />
columns={columns} <Box sx={{ p: 2, border: "1px solid #e1e1e1" }}>
table_url={GET_INQUIRY_PRIVACY_FENCING_ROUTE} <DataTable
user_id={0} table_title={"لیست استعلام ها"}
page_name={"inquiryPrivacyFencing"} need_filter={false}
table_name={"inquiryPrivacyFencingList"} columns={columns}
TableToolbar={Toolbar} table_url={GET_INQUIRY_PRIVACY_FENCING_ROUTE}
/> user_id={0}
page_name={"inquiryPrivacyFencing"}
table_name={"inquiryPrivacyFencingList"}
TableToolbar={Toolbar}
/>
</Box>
</>
); );
}; };
export default InquiryPrivacyFencingPage; export default InquiryPrivacyFencingPage;

View File

@@ -11,7 +11,17 @@ import { flattenObjectOfObjects } from "@/core/utils/flattenObjectOfObjects";
const DataTable_Main = (props) => { const DataTable_Main = (props) => {
const request = useRequest(); const request = useRequest();
const { filterData, sortData, setSortData, hideData } = useDataTable(); const { filterData, sortData, setSortData, hideData } = useDataTable();
const { need_filter, table_url, user_id, page_name, table_name, columns, initialStateProps, TableToolbar } = props; const {
need_filter,
table_url,
user_id,
page_name,
table_name,
columns,
initialStateProps,
TableToolbar,
table_title,
} = props;
const flatColumns = flattenArrayOfObjects(columns, "columns"); const flatColumns = flattenArrayOfObjects(columns, "columns");
const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 10 }); const [pagination, setPagination] = useState({ pageIndex: 0, pageSize: 10 });
const flattenHideData = flattenObjectOfObjects(hideData); const flattenHideData = flattenObjectOfObjects(hideData);
@@ -109,6 +119,7 @@ const DataTable_Main = (props) => {
return ( return (
<DataTable_Paper <DataTable_Paper
table={table} table={table}
table_title={table_title}
need_filter={need_filter} need_filter={need_filter}
mutate={mutate} mutate={mutate}
table_url={table_url} table_url={table_url}

View File

@@ -5,16 +5,17 @@ import DataTable_TopToolbar from "../toolbar/TopToolbar";
import DataTable_TableContainer from "./TableContainer"; import DataTable_TableContainer from "./TableContainer";
const DataTable_Paper = ({ const DataTable_Paper = ({
table, table,
table_name, table_name,
columns, columns,
user_id, user_id,
page_name, page_name,
mutate, mutate,
need_filter, need_filter,
table_url, table_url,
...rest table_title,
}) => { ...rest
}) => {
const { const {
getState, getState,
options: { options: {
@@ -49,19 +50,19 @@ const DataTable_Paper = ({
style={{ style={{
...(isFullScreen ...(isFullScreen
? { ? {
bottom: 0, bottom: 0,
height: "100dvh", height: "100dvh",
left: 0, left: 0,
margin: 0, margin: 0,
maxHeight: "100dvh", maxHeight: "100dvh",
maxWidth: "100dvw", maxWidth: "100dvw",
padding: 0, padding: 0,
position: "fixed", position: "fixed",
right: 0, right: 0,
top: 0, top: 0,
width: "100dvw", width: "100dvw",
zIndex: 999, zIndex: 999,
} }
: {}), : {}),
...paperProps?.style, ...paperProps?.style,
}} }}
@@ -84,6 +85,7 @@ const DataTable_Paper = ({
user_id={user_id} user_id={user_id}
page_name={page_name} page_name={page_name}
table_name={table_name} table_name={table_name}
table_title={table_title}
/> />
))} ))}
<DataTable_TableContainer table={table} /> <DataTable_TableContainer table={table} />

View File

@@ -1,5 +1,5 @@
import { getCommonToolbarStyles, parseFromValuesOrFunc } from "@/core/utils/utils"; import { getCommonToolbarStyles, parseFromValuesOrFunc } from "@/core/utils/utils";
import { Box, useMediaQuery } from "@mui/material"; import { Box, Typography, useMediaQuery } from "@mui/material";
import DataTable_LinearProgressBar from "./LinearProgressBar"; import DataTable_LinearProgressBar from "./LinearProgressBar";
import DataTable_TablePagination from "./TablePagination"; import DataTable_TablePagination from "./TablePagination";
import FilterColumn from "@/core/components/DataTable/filter"; import FilterColumn from "@/core/components/DataTable/filter";
@@ -7,7 +7,17 @@ import UpdateTable from "@/core/components/DataTable/update/UpdateTable";
import ResetStorage from "@/core/components/DataTable/reset/ResetStorage"; import ResetStorage from "@/core/components/DataTable/reset/ResetStorage";
import HideColumn from "@/core/components/DataTable/hide"; import HideColumn from "@/core/components/DataTable/hide";
const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url, user_id, page_name, table_name }) => { const DataTable_TopToolbar = ({
mutate,
need_filter,
table,
columns,
table_url,
user_id,
page_name,
table_name,
table_title,
}) => {
const { const {
getState, getState,
options: { options: {
@@ -47,11 +57,12 @@ const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url,
> >
<Box <Box
sx={{ sx={{
alignItems: "flex-start", flexWrap: { xs: "wrap", sm: "no-wrap" },
boxSizing: "border-box", boxSizing: "border-box",
display: "flex", display: "flex",
gap: "0.5rem", gap: "0.5rem",
justifyContent: "space-between", justifyContent: "space-between",
alignItems: "center",
py: "0.5rem", py: "0.5rem",
position: stackAlertBanner ? "relative" : "absolute", position: stackAlertBanner ? "relative" : "absolute",
right: 0, right: 0,
@@ -59,15 +70,22 @@ const DataTable_TopToolbar = ({ mutate, need_filter, table, columns, table_url,
width: "100%", width: "100%",
}} }}
> >
{renderTopToolbarCustomActions?.({ table }) ?? <span />} <Box sx={{
display: "flex",
alignItems: "center",
order: { xs: 2, sm: 1 },
}}>{renderTopToolbarCustomActions?.({ table })}</Box>
<Typography sx={{ textAlign: "center", order: { xs: 1, sm: 2 }, width: { xs: "100%", sm: "unset" } }}
fontWeight={600}>{table_title || ""}</Typography>
{enableToolbarInternalActions && ( {enableToolbarInternalActions && (
<Box <Box
sx={{ sx={{
alignItems: "center",
display: "flex",
flexWrap: "wrap-reverse",
gap: "0.5rem", gap: "0.5rem",
flexWrap: "wrap-reverse",
display: "flex",
alignItems: "center",
justifyContent: "flex-end", justifyContent: "flex-end",
order: 3,
}} }}
> >
<ResetStorage user_id={user_id} <ResetStorage user_id={user_id}

View File

@@ -0,0 +1,12 @@
"use client";
import { Chip, Divider, Typography } from "@mui/material";
const PageTitle = ({ title }) => {
return (
<Divider sx={{ mb: 2 }}><Chip
label={<Typography fontSize={14} fontWeight={500}>{title}</Typography>} /></Divider>
);
};
export default PageTitle;