add columns

This commit is contained in:
AmirHossein Mahmoodi
2025-03-09 16:41:52 +03:30
parent 7ad7324555
commit 6dbdb07dc7
6 changed files with 272 additions and 169 deletions

View File

@@ -115,8 +115,8 @@ const ComplaintListTable = ({ open, setOpen, mutate }) => {
props.dependencyFieldValue?.value === "" props.dependencyFieldValue?.value === ""
? "empty" ? "empty"
: loadingEdaratList : loadingEdaratList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }
columnSelectOption={getColumnSelectOptions} columnSelectOption={getColumnSelectOptions}
/> />

View File

@@ -32,10 +32,10 @@ const RegisterAction = ({ rowId, mutate, mutateParentTable }) => {
}) })
.then((res) => { .then((res) => {
mutate(); mutate();
mutateParentTable() mutateParentTable();
setOpenRegisterActionDialog(false); setOpenRegisterActionDialog(false);
}) })
.catch(() => { }); .catch(() => {});
}; };
return ( return (
<> <>

View File

@@ -9,7 +9,13 @@ const RowActions = ({ row, mutate, mutateParentTable }) => {
const hasActionPermission = userPermissions.includes("show-fast-react-edarate-shahri"); const hasActionPermission = userPermissions.includes("show-fast-react-edarate-shahri");
return ( return (
<Box sx={{ display: "flex", gap: 1 }}> <Box sx={{ display: "flex", gap: 1 }}>
{hasActionPermission && <RegisterAction mutate={mutate} mutateParentTable={mutateParentTable} rowId={row.getValue("road_observeds__id")} />} {hasActionPermission && (
<RegisterAction
mutate={mutate}
mutateParentTable={mutateParentTable}
rowId={row.getValue("road_observeds__id")}
/>
)}
<Refer rowId={row.getValue("road_observeds__id")} mutate={mutate} /> <Refer rowId={row.getValue("road_observeds__id")} mutate={mutate} />
<ReferList rowId={row.getValue("road_observeds__id")} /> <ReferList rowId={row.getValue("road_observeds__id")} />
</Box> </Box>

View File

@@ -128,44 +128,10 @@ const OperatorList = () => {
}, },
}, },
Cell: ({ row }) => { Cell: ({ row }) => {
if (!row.original.rms_start_latlng) return <>-</>; if (!row.original.lat) return <>-</>;
return ( return (
<Stack alignItems={"center"} justifyContent={"center"}> <Stack alignItems={"center"} justifyContent={"center"}>
<LocationForm <LocationForm start_lat={row.original.lat} start_lng={row.original.lng} />
start_lat={row.original.rms_start_latlng[0]}
start_lng={row.original.rms_start_latlng[1]}
/>
</Stack>
);
},
},
{
header: "تصاویر",
id: "images",
enableColumnFilter: false,
enableSorting: false,
datatype: "array",
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ row }) => {
if (!row.original?.image_before && !row.original?.image_after) return <>-ر</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
{row.original?.image_before && row.original?.image_after && (
<ImageDialog
image_before={row.original?.image_before}
image_after={row.original?.image_after}
/>
)}
</Stack> </Stack>
); );
}, },
@@ -198,53 +164,132 @@ const OperatorList = () => {
], ],
}, },
{ {
accessorFn: (row) => { header: "اطلاعات اقدام",
return row.rms_last_activity id: "rms_register",
? moment(row?.rms_last_activity).locale("fa").format("HH:mm | yyyy/MM/DD")
: "-";
},
header: "تاریخ اقدام",
id: "rms_last_activity",
enableColumnFilter: true,
datatype: "date",
filterMode: "between",
grow: false,
size: 100,
},
{
accessorKey: "rms_description",
header: "توضیح مامور",
id: "rms_description",
enableColumnFilter: false, enableColumnFilter: false,
datatype: "text", enableSorting: false,
filterMode: "equals",
sortDescFirst: false,
columnFilterModeOptions: ["equals", "contains"],
grow: false, grow: false,
size: 100, size: 50,
muiTableBodyCellProps: { columns: [
sx: { {
borderLeft: "1px solid #e1e1e1", accessorFn: (row) => (row.rms_status == 1 ? "اقدام انجام شد" : "اقدام انجام نشد"),
py: 0, header: "وضعیت اقدام",
"&:first-of-type": { id: "rms_register_status",
borderLeft: "unset", enableColumnFilter: false,
enableSorting: false,
grow: false,
size: 50,
},
{
accessorKey: "rms_description",
header: "توضیح مامور",
id: "rms_description",
enableColumnFilter: false,
datatype: "text",
filterMode: "equals",
sortDescFirst: false,
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ renderedCellValue }) => {
if (renderedCellValue) {
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<DescriptionForm
description={renderedCellValue}
title={"توضیحات مامور"}
icon={EngineeringIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
}, },
}, },
}, {
Cell: ({ renderedCellValue }) => { header: "تصاویر",
if (renderedCellValue) { id: "rms_images",
return ( enableColumnFilter: false,
<Stack alignItems={"center"} justifyContent={"center"}> enableSorting: false,
<DescriptionForm datatype: "array",
description={renderedCellValue} grow: false,
title={"توضیحات مامور"} size: 100,
icon={EngineeringIcon} muiTableBodyCellProps: {
/> sx: {
</Stack> borderLeft: "1px solid #e1e1e1",
); py: 0,
} "&:first-of-type": {
return <Typography variant="body2">-</Typography>; borderLeft: "unset",
}, },
},
},
Cell: ({ row }) => {
if (!row.original?.image_before && !row.original?.image_after) return <>-</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
{row.original?.image_before && row.original?.image_after && (
<ImageDialog
image_before={row.original?.image_before}
image_after={row.original?.image_after}
/>
)}
</Stack>
);
},
},
{
header: "موقعیت",
id: "rms_location",
enableColumnFilter: false,
enableSorting: false,
datatype: "array",
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ row }) => {
if (!row.original.rms_start_latlng) return <>-</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<LocationForm
start_lat={row.original.rms_start_latlng[0]}
start_lng={row.original.rms_start_latlng[1]}
/>
</Stack>
);
},
},
{
accessorFn: (row) => {
return row.rms_last_activity
? moment(row?.rms_last_activity).locale("fa").format("HH:mm | yyyy/MM/DD")
: "-";
},
header: "تاریخ اقدام",
id: "rms_last_activity",
enableColumnFilter: true,
datatype: "date",
filterMode: "between",
grow: false,
size: 100,
},
],
}, },
{ {
accessorKey: "status", accessorKey: "status",
@@ -311,7 +356,7 @@ const OperatorList = () => {
columns={columns} columns={columns}
sorting={[ sorting={[
{ id: "status", desc: true }, { id: "status", desc: true },
{ id: "id", desc: true }, { id: "road_observeds__id", desc: true },
]} ]}
table_url={GET_FAST_REACT_OPERATOR} table_url={GET_FAST_REACT_OPERATOR}
page_name={"fastReactOperator"} page_name={"fastReactOperator"}

View File

@@ -127,8 +127,8 @@ const SupervisorList = () => {
props.dependencyFieldValue?.value === "" props.dependencyFieldValue?.value === ""
? "empty" ? "empty"
: loadingEdaratList : loadingEdaratList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }
columnSelectOption={getColumnSelectOptions} columnSelectOption={getColumnSelectOptions}
/> />
@@ -229,44 +229,10 @@ const SupervisorList = () => {
}, },
}, },
Cell: ({ row }) => { Cell: ({ row }) => {
if (!row.original.rms_start_latlng) return <>-</>; if (!row.original.lat) return <>-</>;
return ( return (
<Stack alignItems={"center"} justifyContent={"center"}> <Stack alignItems={"center"} justifyContent={"center"}>
<LocationForm <LocationForm start_lat={row.original.lat} start_lng={row.original.lng} />
start_lat={row.original.rms_start_latlng[0]}
start_lng={row.original.rms_start_latlng[1]}
/>
</Stack>
);
},
},
{
header: "تصاویر",
id: "images",
enableColumnFilter: false,
enableSorting: false,
datatype: "array",
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ row }) => {
if (!row.original?.image_before && !row.original?.image_after) return <>-</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
{row.original?.image_before && row.original?.image_after && (
<ImageDialog
image_before={row.original?.image_before}
image_after={row.original?.image_after}
/>
)}
</Stack> </Stack>
); );
}, },
@@ -299,55 +265,133 @@ const SupervisorList = () => {
], ],
}, },
{ {
accessorFn: (row) => { header: "اطلاعات اقدام",
return row.rms_last_activity id: "rms_register",
? moment(row?.rms_last_activity).locale("fa").format("HH:mm | yyyy/MM/DD")
: "-";
},
header: "تاریخ اقدام",
id: "rms_last_activity",
enableColumnFilter: true,
datatype: "date",
filterMode: "between",
grow: false,
size: 100,
},
{
accessorKey: "rms_description",
header: "توضیح مامور",
id: "rms_description",
enableColumnFilter: false, enableColumnFilter: false,
datatype: "text", enableSorting: false,
filterMode: "equals",
sortDescFirst: false,
columnFilterModeOptions: ["equals", "contains"],
grow: false, grow: false,
size: 100, size: 50,
muiTableBodyCellProps: { columns: [
sx: { {
borderLeft: "1px solid #e1e1e1", accessorFn: (row) => (row.rms_status == 1 ? "اقدام انجام شد" : "اقدام انجام نشد"),
py: 0, header: "وضعیت اقدام",
"&:first-of-type": { id: "rms_register_status",
borderLeft: "unset", enableColumnFilter: false,
enableSorting: false,
grow: false,
size: 50,
},
{
accessorKey: "rms_description",
header: "توضیح مامور",
id: "rms_description",
enableColumnFilter: false,
datatype: "text",
filterMode: "equals",
sortDescFirst: false,
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ renderedCellValue }) => {
if (renderedCellValue) {
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<DescriptionForm
description={renderedCellValue}
title={"توضیحات مامور"}
icon={EngineeringIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
}, },
}, },
}, {
Cell: ({ renderedCellValue }) => { header: "تصاویر",
if (renderedCellValue) { id: "rms_images",
return ( enableColumnFilter: false,
<Stack alignItems={"center"} justifyContent={"center"}> enableSorting: false,
<DescriptionForm datatype: "array",
description={renderedCellValue} grow: false,
title={"توضیحات مامور"} size: 100,
icon={EngineeringIcon} muiTableBodyCellProps: {
/> sx: {
</Stack> borderLeft: "1px solid #e1e1e1",
); py: 0,
} "&:first-of-type": {
return <Typography variant="body2">-</Typography>; borderLeft: "unset",
}, },
},
},
Cell: ({ row }) => {
if (!row.original?.image_before && !row.original?.image_after) return <>-</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
{row.original?.image_before && row.original?.image_after && (
<ImageDialog
image_before={row.original?.image_before}
image_after={row.original?.image_after}
/>
)}
</Stack>
);
},
},
{
header: "موقعیت",
id: "rms_location",
enableColumnFilter: false,
enableSorting: false,
datatype: "array",
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ row }) => {
if (!row.original.rms_start_latlng) return <>-</>;
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<LocationForm
start_lat={row.original.rms_start_latlng[0]}
start_lng={row.original.rms_start_latlng[1]}
/>
</Stack>
);
},
},
{
accessorFn: (row) => {
return row.rms_last_activity
? moment(row?.rms_last_activity).locale("fa").format("HH:mm | yyyy/MM/DD")
: "-";
},
header: "تاریخ اقدام",
id: "rms_last_activity",
enableColumnFilter: true,
datatype: "date",
filterMode: "between",
grow: false,
size: 100,
},
],
}, },
{ {
accessorKey: "status", accessorKey: "status",
header: "وضعیت نظارت", header: "وضعیت نظارت",
@@ -412,7 +456,7 @@ const SupervisorList = () => {
columns={columns} columns={columns}
sorting={[ sorting={[
{ id: "status", desc: false }, { id: "status", desc: false },
{ id: "id", desc: true }, { id: "road_observeds__id", desc: true },
]} ]}
table_url={GET_FAST_REACT_SUPERVISOR} table_url={GET_FAST_REACT_SUPERVISOR}
page_name={"fastReactSupervisor"} page_name={"fastReactSupervisor"}

View File

@@ -60,7 +60,15 @@ const DataTable_Main = (props) => {
const filteredFilterData = DataTableFilterDataStructure(filterData, isArrayEmpty); const filteredFilterData = DataTableFilterDataStructure(filterData, isArrayEmpty);
params.set("filters", JSON.stringify(filteredFilterData.length === 0 ? [] : filteredFilterData)); params.set("filters", JSON.stringify(filteredFilterData.length === 0 ? [] : filteredFilterData));
} }
params.set("sorting", JSON.stringify(sortData)); params.set(
"sorting",
JSON.stringify(
Object.values(sortData).map(({ id, ...rest }) => ({
...rest,
id: id.replace(/__/g, "."),
}))
)
);
return `${table_url}?${params}`; return `${table_url}?${params}`;
}, [table_url, filterData, pagination, sortData, specialFilter]); }, [table_url, filterData, pagination, sortData, specialFilter]);