Merge branch 'release/v1.7.8'

This commit is contained in:
AmirHossein Mahmoodi
2025-09-20 11:30:34 +03:30
13 changed files with 235 additions and 289 deletions

View File

@@ -1,4 +1,4 @@
HOST="rms.witel.ir" HOST="rms.witel.ir"
NEXT_PUBLIC_VERSION="1.7.5" NEXT_PUBLIC_VERSION="1.7.8"
NEXT_PUBLIC_API_URL="https://rms.witel.ir" NEXT_PUBLIC_API_URL="https://rms.witel.ir"
NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map" NEXT_PUBLIC_MAPTILE_ENDPOINT="https://rmsmap.rmto.ir/141map"

View File

@@ -1,10 +1,11 @@
"use client"; "use client";
import DataTableWithAuth from "@/core/components/DataTableWithAuth"; import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import { GET_RECEIPT_DAMAGE_ITEMS_LIST } from "@/core/utils/routes"; import { GET_RECEIPT_DAMAGE_ITEMS_LIST } from "@/core/utils/routes";
import { Box } from "@mui/material"; import { Box, Typography } from "@mui/material";
import { useMemo } from "react"; import { useMemo } from "react";
import Toolbar from "./Toolbar"; import Toolbar from "./Toolbar";
import RowActions from "./RowActions"; import RowActions from "./RowActions";
import moment from "jalali-moment";
const DamagesList = () => { const DamagesList = () => {
const columns = useMemo( const columns = useMemo(
@@ -49,6 +50,19 @@ const DamagesList = () => {
size: 100, size: 100,
Cell: ({ renderedCellValue }) => (renderedCellValue / 1).toLocaleString(), Cell: ({ renderedCellValue }) => (renderedCellValue / 1).toLocaleString(),
}, },
{
accessorKey: "update_time",
header: "تاریخ بروزرسانی",
id: "update_time",
enableColumnFilter: false,
datatype: "date",
filterMode: "equals",
Cell: ({ renderedCellValue }) => (
<Typography variant="body2">
{renderedCellValue ? moment(renderedCellValue).locale("fa").format("YYYY/MM/DD") : "-"}
</Typography>
),
},
{ {
accessorKey: "status", accessorKey: "status",
header: "وضعیت", header: "وضعیت",

View File

@@ -19,6 +19,7 @@ import { number, object } from "yup";
import useDamageItemList from "@/lib/hooks/useDamageItemList"; import useDamageItemList from "@/lib/hooks/useDamageItemList";
import DamagePrice from "./DamagePrice"; import DamagePrice from "./DamagePrice";
import { yupResolver } from "@hookform/resolvers/yup"; import { yupResolver } from "@hookform/resolvers/yup";
import moment from "jalali-moment";
const schema = object({ const schema = object({
id: number().required("لطفا نوع خسارت را وارد کنید!!!"), id: number().required("لطفا نوع خسارت را وارد کنید!!!"),
@@ -86,7 +87,7 @@ const DamageItem = ({ baseOnChange, baseDamageItems }) => {
<Autocomplete <Autocomplete
options={damageItemList || []} options={damageItemList || []}
size={"small"} size={"small"}
getOptionLabel={(option) => option.title} getOptionLabel={(option) => `${option.title} - بروزرسانی: ${option.update_time ? moment(option.update_time).locale("fa").format("YYYY/MM/DD") : ""}` }
isOptionEqualToValue={(option, value) => option.id === value.id} isOptionEqualToValue={(option, value) => option.id === value.id}
loading={loadingDamageItemList} loading={loadingDamageItemList}
renderInput={(params) => ( renderInput={(params) => (

View File

@@ -35,6 +35,59 @@ const OperatorList = () => {
size: 100, size: 100,
Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 2} />, Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 2} />,
}, },
{
accessorKey: "status",
header: "وضعیت نظارت",
id: "status",
enableColumnFilter: true,
datatype: "numeric",
filterMode: "equals",
sortDescFirst: true,
grow: false,
size: 100,
columnSelectOption: () => {
return statusOptions.map((status) => ({
value: status.value,
label: status.label,
}));
},
Cell: ({ row }) => <>{row.original.status_fa}</>,
},
{
accessorKey: "supervisor_description",
header: "توضیح ناظر",
id: "supervisor_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={ThreePIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
},
},
{ {
header: "اطلاعات ثبت‌ شده در سامانه سوانح", header: "اطلاعات ثبت‌ شده در سامانه سوانح",
id: "fkInfo", id: "fkInfo",
@@ -288,59 +341,6 @@ const OperatorList = () => {
}, },
], ],
}, },
{
accessorKey: "status",
header: "وضعیت نظارت",
id: "status",
enableColumnFilter: true,
datatype: "numeric",
filterMode: "equals",
sortDescFirst: true,
grow: false,
size: 100,
columnSelectOption: () => {
return statusOptions.map((status) => ({
value: status.value,
label: status.label,
}));
},
Cell: ({ row }) => <>{row.original.status_fa}</>,
},
{
accessorKey: "supervisor_description",
header: "توضیح ناظر",
id: "supervisor_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={ThreePIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
},
},
], ],
[] []
); );

View File

@@ -136,6 +136,59 @@ const SupervisorList = () => {
}, },
Cell: ({ renderedCellValue, row }) => <>{row.original.name_fa}</>, Cell: ({ renderedCellValue, row }) => <>{row.original.name_fa}</>,
}, },
{
accessorKey: "status",
header: "وضعیت نظارت",
id: "status",
enableColumnFilter: true,
datatype: "numeric",
filterMode: "equals",
sortDescFirst: true,
grow: false,
size: 100,
columnSelectOption: () => {
return statusOptions.map((status) => ({
value: status.value,
label: status.label,
}));
},
Cell: ({ row }) => <>{row.original.status_fa}</>,
},
{
accessorKey: "supervisor_description",
header: "توضیح ناظر",
id: "supervisor_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={ThreePIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
},
},
{ {
header: "اطلاعات ثبت‌ شده در سامانه سوانح", header: "اطلاعات ثبت‌ شده در سامانه سوانح",
id: "fkInfo", id: "fkInfo",
@@ -389,59 +442,6 @@ const SupervisorList = () => {
}, },
], ],
}, },
{
accessorKey: "status",
header: "وضعیت نظارت",
id: "status",
enableColumnFilter: true,
datatype: "numeric",
filterMode: "equals",
sortDescFirst: true,
grow: false,
size: 100,
columnSelectOption: () => {
return statusOptions.map((status) => ({
value: status.value,
label: status.label,
}));
},
Cell: ({ row }) => <>{row.original.status_fa}</>,
},
{
accessorKey: "supervisor_description",
header: "توضیح ناظر",
id: "supervisor_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={ThreePIcon}
/>
</Stack>
);
}
return <Typography variant="body2">-</Typography>;
},
},
]; ];
}, []); }, []);

View File

@@ -48,12 +48,9 @@ const MissionList = ({ setMission, setOpenDialog }) => {
Cell: ({ row }) => row.original.zone_fa, Cell: ({ row }) => row.original.zone_fa,
}, },
{ {
accessorFn: (row) => accessorFn: (row) => moment(row.start_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
row.type == 1 header: "تاریخ خروج",
? moment(row.start_date).locale("fa").format("HH:mm | yyyy/MM/DD") id: "start_time",
: moment(row.start_date).locale("fa").format("yyyy/MM/DD"),
header: "تاریخ شروع",
id: "start_date",
enableColumnFilter: true, enableColumnFilter: true,
datatype: "date", datatype: "date",
filterMode: "between", filterMode: "between",
@@ -61,12 +58,9 @@ const MissionList = ({ setMission, setOpenDialog }) => {
size: 100, size: 100,
}, },
{ {
accessorFn: (row) => accessorFn: (row) => moment(row.finish_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
row.type == 1 header: "تاریخ ورود",
? moment(row.end_date).locale("fa").format("HH:mm | yyyy/MM/DD") id: "finish_time",
: moment(row.end_date).locale("fa").format("yyyy/MM/DD"),
header: "تاریخ پایان",
id: "end_date",
enableColumnFilter: true, enableColumnFilter: true,
datatype: "date", datatype: "date",
filterMode: "between", filterMode: "between",

View File

@@ -12,8 +12,6 @@ import RowActions from "./RowActions";
import DescriptionForm from "./RowActions/DescriptionForm"; import DescriptionForm from "./RowActions/DescriptionForm";
import ImageDialog from "./RowActions/ImageForm"; import ImageDialog from "./RowActions/ImageForm";
import LocationForm from "./RowActions/LocationForm"; import LocationForm from "./RowActions/LocationForm";
import MachinesCodeDialog from "./RowActions/MachinesCodeForm";
import RahdaranDialog from "./RowActions/RahdaranForm";
import Toolbar from "./Toolbar"; import Toolbar from "./Toolbar";
const OperatorList = () => { const OperatorList = () => {
@@ -36,6 +34,17 @@ const OperatorList = () => {
size: 100, size: 100,
Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 2} />, Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 2} />,
}, },
{
accessorKey: "mission_id",
header: "کد یکتا ماموریت",
id: "mission_id",
enableColumnFilter: true,
datatype: "text",
filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
},
{ {
header: "اطلاعات فعالیت", header: "اطلاعات فعالیت",
id: "info", id: "info",
@@ -129,8 +138,8 @@ const OperatorList = () => {
props.dependencyFieldValue.value === "" props.dependencyFieldValue.value === ""
? "empty" ? "empty"
: loadingSubItemsList : loadingSubItemsList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }
columnSelectOption={getColumnSelectOptions} columnSelectOption={getColumnSelectOptions}
/> />
@@ -309,7 +318,7 @@ const OperatorList = () => {
table_name={"roadItemsOperatorList"} table_name={"roadItemsOperatorList"}
TableToolbar={Toolbar} TableToolbar={Toolbar}
enableRowActions enableRowActions
positionActionsColumn={"last"} positionActionsColumn={"first"}
RowActions={RowActions} RowActions={RowActions}
/> />
</Box> </Box>

View File

@@ -10,6 +10,11 @@ const ContentInfoItem = ({ data }) => {
<Divider sx={{ flex: 1, mx: 2 }} /> <Divider sx={{ flex: 1, mx: 2 }} />
<Typography sx={{ fontSize: "13px", fontWeight: 400 }}>{data.id !== "" && data.id}</Typography> <Typography sx={{ fontSize: "13px", fontWeight: 400 }}>{data.id !== "" && data.id}</Typography>
</Stack> </Stack>
<Stack direction={"row"} alignItems={"center"}>
<Chip size="small" label="کد یکتا ماموریت" />
<Divider sx={{ flex: 1, mx: 2 }} />
<Typography sx={{ fontSize: "13px", fontWeight: 400 }}>{data.mission_id && data.mission_id}</Typography>
</Stack>
<Stack direction={"row"} alignItems={"center"}> <Stack direction={"row"} alignItems={"center"}>
<Chip size="small" label="استان" /> <Chip size="small" label="استان" />
<Divider sx={{ flex: 1, mx: 2 }} /> <Divider sx={{ flex: 1, mx: 2 }} />

View File

@@ -78,6 +78,17 @@ const SupervisorList = () => {
size: 100, size: 100,
Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 0} />, Cell: ({ row }) => <BlinkingCell value={row.original.id} visible={row.original.status == 0} />,
}, },
{
accessorKey: "mission_id",
header: "کد یکتا ماموریت",
id: "mission_id",
enableColumnFilter: true,
datatype: "text",
filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
},
...(hasCountryPermission ? [dynamicColumns] : []), ...(hasCountryPermission ? [dynamicColumns] : []),
{ {
header: "اداره", header: "اداره",
@@ -127,8 +138,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}
/> />
@@ -227,8 +238,8 @@ const SupervisorList = () => {
props.dependencyFieldValue.value === "" props.dependencyFieldValue.value === ""
? "empty" ? "empty"
: loadingSubItemsList : loadingSubItemsList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }
columnSelectOption={getColumnSelectOptions} columnSelectOption={getColumnSelectOptions}
/> />
@@ -325,7 +336,7 @@ const SupervisorList = () => {
filterMode: "between", filterMode: "between",
grow: false, grow: false,
size: 100, size: 100,
}, }
], ],
}, },
{ {
@@ -373,7 +384,7 @@ const SupervisorList = () => {
table_name={"roadItemsSupervisorList"} table_name={"roadItemsSupervisorList"}
TableToolbar={Toolbar} TableToolbar={Toolbar}
enableRowActions enableRowActions
positionActionsColumn={"last"} positionActionsColumn={"first"}
RowActions={RowActions} RowActions={RowActions}
/> />
</Box> </Box>

View File

@@ -1,5 +1,5 @@
import { Done } from "@mui/icons-material"; import { Done } from "@mui/icons-material";
import { IconButton, Tooltip } from "@mui/material"; import { Button, IconButton, Tooltip } from "@mui/material";
const Allocate = ({ row, setMachine, setOpenMachinesDialog }) => { const Allocate = ({ row, setMachine, setOpenMachinesDialog }) => {
const handleClick = () => { const handleClick = () => {
@@ -9,11 +9,9 @@ const Allocate = ({ row, setMachine, setOpenMachinesDialog }) => {
return ( return (
<> <>
<Tooltip title="تخصیص" arrow placement="right"> <Button startIcon={<Done />} color="primary" sx={{ textTransform: "unset", alignSelf: "center" }} onClick={handleClick}>
<IconButton color="primary" sx={{ textTransform: "unset", alignSelf: "center" }} onClick={handleClick}> تخصیص
<Done /> </Button>
</IconButton>
</Tooltip>
</> </>
); );
}; };

View File

@@ -1,14 +1,12 @@
"use client"; "use client";
import { useMemo } from "react";
import { Box, Stack, Typography } from "@mui/material";
import DataTableWithAuth from "@/core/components/DataTableWithAuth"; import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import Toolbar from "./Toolbar";
import { GET_ROAD_PATROL_OPERATOR_LIST } from "@/core/utils/routes"; import { GET_ROAD_PATROL_OPERATOR_LIST } from "@/core/utils/routes";
import { Box, Stack } from "@mui/material";
import moment from "jalali-moment"; import moment from "jalali-moment";
import { useMemo } from "react";
import RowActions from "./RowActions"; import RowActions from "./RowActions";
import ReportForm from "./RowActions/ReportForm"; import ReportForm from "./RowActions/ReportForm";
import RahdaranDialog from "./RowActions/RahdaranForm"; import Toolbar from "./Toolbar";
import MachinePerformanceForm from "./RowActions/MachinePerformanceForm";
const OperatorList = () => { const OperatorList = () => {
const columns = useMemo( const columns = useMemo(
@@ -25,59 +23,15 @@ const OperatorList = () => {
size: 100, size: 100,
}, },
{ {
header: "عملکرد خودرو", // Car ID accessorKey: "mission_id",
header: "کد یکتا ماموریت",
id: "mission_id",
enableColumnFilter: true, enableColumnFilter: true,
id: "cmmsMachines__machine_code",
datatype: "text", datatype: "text",
filterMode: "contains", filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
enableSorting: false,
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ renderedCellValue, row }) => {
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<MachinePerformanceForm row={row} />
</Stack>
);
},
},
{
accessorKey: "rahdaran",
header: "راهداران",
id: "rahdaran__code",
enableColumnFilter: true,
enableSorting: false,
datatype: "text",
filterMode: "contains",
columnFilterModeOptions: ["equals", "contains"], columnFilterModeOptions: ["equals", "contains"],
grow: false, grow: false,
size: 100, size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ renderedCellValue, row }) => {
return (
<Stack alignItems={"center"} justifyContent={"center"}>
<RahdaranDialog rowId={row.original.id} />
</Stack>
);
},
}, },
{ {
accessorFn: (row) => moment(row.start_time).locale("fa").format("HH:mm | yyyy/MM/DD"), accessorFn: (row) => moment(row.start_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
@@ -148,7 +102,7 @@ const OperatorList = () => {
table_name={"roadPatrolOperatorList"} table_name={"roadPatrolOperatorList"}
TableToolbar={Toolbar} TableToolbar={Toolbar}
enableRowActions enableRowActions
positionActionsColumn={"last"} positionActionsColumn={"first"}
RowActions={RowActions} RowActions={RowActions}
/> />
</Box> </Box>

View File

@@ -1,20 +1,18 @@
"use client"; "use client";
import { useEffect, useMemo, useState } from "react";
import { Box, Stack, Typography } from "@mui/material";
import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import Toolbar from "./Toolbar";
import { GET_ROAD_PATROL_SUPERVISOR_LIST } from "@/core/utils/routes";
import moment from "jalali-moment";
import RowActions from "./RowActions";
import useProvinces from "@/lib/hooks/useProvince";
import CustomSelectByDependency from "@/core/components/DataTable/filter/fieldsType/CustomSelectByDependency"; import CustomSelectByDependency from "@/core/components/DataTable/filter/fieldsType/CustomSelectByDependency";
import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import { GET_ROAD_PATROL_SUPERVISOR_LIST } from "@/core/utils/routes";
import { useAuth } from "@/lib/contexts/auth";
import useEdaratLists from "@/lib/hooks/useEdaratLists"; import useEdaratLists from "@/lib/hooks/useEdaratLists";
import { usePermissions } from "@/lib/hooks/usePermissions";
import useProvinces from "@/lib/hooks/useProvince";
import { Box, Stack } from "@mui/material";
import moment from "jalali-moment";
import { useEffect, useMemo, useState } from "react";
import RowActions from "./RowActions";
import OfficerDescriptionForm from "./RowActions/OfficerDescription"; import OfficerDescriptionForm from "./RowActions/OfficerDescription";
import ReportForm from "./RowActions/ReportForm"; import ReportForm from "./RowActions/ReportForm";
import RahdaranDialog from "./RowActions/RahdaranForm"; import Toolbar from "./Toolbar";
import { usePermissions } from "@/lib/hooks/usePermissions";
import { useAuth } from "@/lib/contexts/auth";
import MachinePerformanceForm from "./RowActions/MachinePerformanceForm";
const SupervisorList = () => { const SupervisorList = () => {
const { data: userPermissions } = usePermissions(); const { data: userPermissions } = usePermissions();
@@ -69,6 +67,17 @@ const SupervisorList = () => {
grow: false, grow: false,
size: 100, size: 100,
}, },
{
accessorKey: "mission_id",
header: "کد یکتا ماموریت",
id: "mission_id",
enableColumnFilter: true,
datatype: "text",
filterMode: "equals",
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
},
...(hasCountryPermission ? [dynamicColumns] : []), ...(hasCountryPermission ? [dynamicColumns] : []),
{ {
accessorKey: "edare_id", accessorKey: "edare_id",
@@ -119,8 +128,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}
/> />
@@ -128,60 +137,6 @@ const SupervisorList = () => {
}, },
Cell: ({ renderedCellValue, row }) => <>{row.original.edare_name}</>, Cell: ({ renderedCellValue, row }) => <>{row.original.edare_name}</>,
}, },
{
header: "عملکرد خودرو",
enableColumnFilter: true,
id: "cmmsMachines__machine_code",
datatype: "text",
filterMode: "contains",
columnFilterModeOptions: ["equals", "contains"],
enableSorting: false,
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ row }) => (
<Stack alignItems={"center"} justifyContent={"center"}>
<MachinePerformanceForm row={row} />
</Stack>
),
},
{
accessorKey: "rahdaran",
header: "راهداران",
id: "rahdaran__code",
enableColumnFilter: true,
enableSorting: false,
datatype: "text",
filterMode: "contains",
columnFilterModeOptions: ["equals", "contains"],
grow: false,
size: 100,
muiTableBodyCellProps: {
sx: {
borderLeft: "1px solid #e1e1e1",
py: 0,
"&:first-of-type": {
borderLeft: "unset",
},
},
},
Cell: ({ renderedCellValue }) =>
renderedCellValue ? (
<Stack alignItems={"center"} justifyContent={"center"}>
<RahdaranDialog rahdarLists={renderedCellValue} />
</Stack>
) : (
<Typography variant="body2">-</Typography>
),
},
{ {
accessorFn: (row) => moment(row.start_time).locale("fa").format("HH:mm | yyyy/MM/DD"), accessorFn: (row) => moment(row.start_time).locale("fa").format("HH:mm | yyyy/MM/DD"),
header: "تاریخ شروع", header: "تاریخ شروع",
@@ -271,7 +226,7 @@ const SupervisorList = () => {
table_name={"roadPatrolSupervisorList"} table_name={"roadPatrolSupervisorList"}
TableToolbar={Toolbar} TableToolbar={Toolbar}
enableRowActions enableRowActions
positionActionsColumn={"last"} positionActionsColumn={"first"}
RowActions={RowActions} RowActions={RowActions}
/> />
</Box> </Box>

View File

@@ -150,7 +150,7 @@ export const pageMenu = [
id: "roadItemManagmentSupervisorCartable", id: "roadItemManagmentSupervisorCartable",
label: "کارتابل", label: "کارتابل",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/supervisor/cartable", route: "/dashboard/road-items/supervisor",
permissions: [ permissions: [
"show-road-item-supervise-cartable", "show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province", "show-road-item-supervise-cartable-province",
@@ -166,18 +166,11 @@ export const pageMenu = [
hasSubitems: true, hasSubitems: true,
badges: [{ key: "roadItem.operation_cnt" }], badges: [{ key: "roadItem.operation_cnt" }],
Subitems: [ Subitems: [
{
id: "roadItemManagmentOparationCreate",
label: "ثبت فعالیت",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/operator/create",
permissions: ["create-road-item"],
},
{ {
id: "roadItemManagmentOparationCartable", id: "roadItemManagmentOparationCartable",
label: "کارتابل", label: "کارتابل",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/operator/cartable", route: "/dashboard/road-items/operator",
permissions: ["create-road-item"], permissions: ["create-road-item"],
}, },
], ],
@@ -186,7 +179,7 @@ export const pageMenu = [
id: "roadItemManagmentMap", id: "roadItemManagmentMap",
label: "پراکندگی بر روی نقشه", label: "پراکندگی بر روی نقشه",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/map?type=road_items", route: "/dashboard/road-items/reports/map",
icon: <MapIcon sx={{ width: "inherit", height: "inherit" }} />, icon: <MapIcon sx={{ width: "inherit", height: "inherit" }} />,
permissions: [ permissions: [
"show-road-item-supervise-cartable", "show-road-item-supervise-cartable",
@@ -197,13 +190,32 @@ export const pageMenu = [
{ {
id: "roadItemManagmentReport", id: "roadItemManagmentReport",
label: "گزارش ها", label: "گزارش ها",
type: "page", type: "menu",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_items/report", icon: <AssessmentIcon sx={{ width: "inherit", height: "inherit" }} />,
icon: <ReportIcon sx={{ width: "inherit", height: "inherit" }} />, hasSubitems: true,
permissions: [ Subitems: [
"show-road-item-supervise-cartable", {
"show-road-item-supervise-cartable-province", id: "roadItemManagmentReportProvince",
"create-road-item", label: "تعداد فعالیت ها به تفکیک آیتم",
type: "page",
route: "/dashboard/road-items/reports/items-report",
permissions: [
"show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province",
"create-road-item",
],
},
{
id: "roadItemManagmentReportItems",
label: "تعداد و حجم فعالیت ها به تفکیک موارد اقدام شده",
type: "page",
route: "/dashboard/road-items/reports/sub-items-report",
permissions: [
"show-road-item-supervise-cartable",
"show-road-item-supervise-cartable-province",
"create-road-item",
],
},
], ],
}, },
], ],
@@ -226,7 +238,7 @@ export const pageMenu = [
id: "roadPatrolManagmentSupervisorCartable", id: "roadPatrolManagmentSupervisorCartable",
label: "کارتابل", label: "کارتابل",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/supervisor/cartable", route: "/dashboard/road-patrols/supervisor",
permissions: [ permissions: [
"show-road-patrol-supervise-cartable", "show-road-patrol-supervise-cartable",
"show-road-patrol-supervise-cartable-province", "show-road-patrol-supervise-cartable-province",
@@ -241,18 +253,11 @@ export const pageMenu = [
icon: <EngineeringIcon sx={{ width: "inherit", height: "inherit" }} />, icon: <EngineeringIcon sx={{ width: "inherit", height: "inherit" }} />,
hasSubitems: true, hasSubitems: true,
Subitems: [ Subitems: [
{
id: "roadPatrolManagmentOparationCreate",
label: "ثبت اقدام",
type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/operator/create",
permissions: ["add-road-patrol"],
},
{ {
id: "roadPatrolManagmentOparationCartable", id: "roadPatrolManagmentOparationCartable",
label: "کارتابل", label: "کارتابل",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/operator/cartable", route: "/dashboard/road-patrols/operator",
permissions: ["add-road-patrol"], permissions: ["add-road-patrol"],
}, },
], ],
@@ -273,8 +278,8 @@ export const pageMenu = [
id: "roadPatrolManagmentReport", id: "roadPatrolManagmentReport",
label: "گزارش ها", label: "گزارش ها",
type: "page", type: "page",
route: process.env.NEXT_PUBLIC_API_URL + "/v2/road_patrols/report", route: "/dashboard/road-patrols/reports",
icon: <ReportIcon sx={{ width: "inherit", height: "inherit" }} />, icon: <AssessmentIcon sx={{ width: "inherit", height: "inherit" }} />,
permissions: [ permissions: [
"add-road-patrol", "add-road-patrol",
"show-road-patrol-supervise-cartable", "show-road-patrol-supervise-cartable",