Merge branch 'release/v1.7.8'
This commit is contained in:
@@ -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"
|
||||||
@@ -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: "وضعیت",
|
||||||
|
|||||||
@@ -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) => (
|
||||||
|
|||||||
@@ -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>;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
],
|
||||||
[]
|
[]
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -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>;
|
|
||||||
},
|
|
||||||
},
|
|
||||||
];
|
];
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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 }} />
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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",
|
||||||
|
|||||||
Reference in New Issue
Block a user