Merge branch 'release/v1.4.2'

This commit is contained in:
AmirHossein Mahmoodi
2025-07-08 10:59:26 +03:30
16 changed files with 67 additions and 45 deletions

View File

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

View File

@@ -1,4 +1,5 @@
import ControlPage from "@/components/dashboard/roadMissions/control";
import WithPermission from "@/core/middlewares/withPermission";
export const metadata = {
title: "کارتابل کنترل",
@@ -6,10 +7,10 @@ export const metadata = {
const Page = () => {
return (
<>
{/* <WithPermission permission_name={["create-road-item"]}> */}
<ControlPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
{/* </WithPermission> */}
<WithPermission permission_name={["manage-control-unit"]}>
<ControlPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
</WithPermission>
</>
);
};

View File

@@ -7,10 +7,10 @@ export const metadata = {
const Page = () => {
return (
<>
{/* <WithPermission permission_name={["create-road-item"]}> */}
<OperatorPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
{/* </WithPermission> */}
<WithPermission permission_name={["manage-request-portal-country", "manage-request-portal-province", "manage-request-portal-city"]}>
<OperatorPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
</WithPermission>
</>
);
};

View File

@@ -1,4 +1,5 @@
import TransportationPage from "@/components/dashboard/roadMissions/transportation";
import WithPermission from "@/core/middlewares/withPermission";
export const metadata = {
title: "کارتابل نقلیه",
@@ -6,10 +7,10 @@ export const metadata = {
const Page = () => {
return (
<>
{/* <WithPermission permission_name={["create-road-item"]}> */}
<TransportationPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
{/* </WithPermission> */}
<WithPermission permission_name={["manage-transportation-unit"]}>
<TransportationPage />
{/* <ActivityCodeLog activity_code={1152} /> */}
</WithPermission>
</>
);
};

View File

@@ -26,7 +26,7 @@ const MissionDates = ({ control }) => {
}}
/>
</Grid>
{type == 2 && (
{type == 1 && (
<Grid item xs={12} sm={6}>
<Controller
control={control}
@@ -66,7 +66,7 @@ const MissionDates = ({ control }) => {
}}
/>
</Grid>
{type == 2 && (
{type == 1 && (
<Grid item xs={12} sm={6}>
<Controller
control={control}

View File

@@ -13,13 +13,13 @@ const validationSchema = object({
type: string().required("نوع ماموریت را مشخص کنید!"),
start_date: string().required("تاریخ شروع ماموریت را مشخص کنید!"),
start_time: string().when("type", {
is: "2",
is: "1",
then: (schema) => schema.required("زمان شروع ماموریت را مشخص کنید!"),
otherwise: (schema) => schema.notRequired(),
}),
end_date: string().required("تاریخ پایان ماموریت را مشخص کنید!"),
end_time: string().when("type", {
is: "2",
is: "1",
then: (schema) => schema.required("زمان شروع ماموریت را مشخص کنید!"),
otherwise: (schema) => schema.notRequired(),
}),

View File

@@ -1,6 +1,7 @@
import RahdarCode from "@/core/components/RahdarCode";
import StyledForm from "@/core/components/StyledForm";
import { yupResolver } from "@hookform/resolvers/yup";
import { Add } from "@mui/icons-material";
import { Button, Stack } from "@mui/material";
import { Controller, useForm } from "react-hook-form";
import { object } from "yup";
@@ -53,6 +54,7 @@ const RahdaranForm = ({ setRahdaran }) => {
type="submit"
sx={{ textWrap: "nowrap", px: 3 }}
disabled={isSubmitting || !isValid}
startIcon={<Add />}
>
افزودن راهدار
</Button>

View File

@@ -54,7 +54,7 @@ const RequestMachinesForm = ({ requests, setRequests }) => {
)}
/>
</Grid>
<Grid item xs={12} sm={5}>
<Grid item xs={12} sm={4}>
<Controller
control={control}
name={"count"}
@@ -76,9 +76,9 @@ const RequestMachinesForm = ({ requests, setRequests }) => {
)}
/>
</Grid>
<Grid item xs={12} sm={2}>
<Grid item xs={12} sm={3}>
<Button variant="outlined" type="submit" fullWidth startIcon={<Add />}>
افزودن
افزودن خودرو
</Button>
</Grid>
</Grid>

View File

@@ -42,7 +42,7 @@ const Verify = ({ types, regions, allData, handlePrev, submitForm, submitting })
<Stack direction={"row"} alignItems={"center"} spacing={1}>
<Typography variant="body2">تاریخ شروع ماموریت</Typography>
<Divider sx={{ flex: 1 }} />
{allData.type == 2 ? (
{allData.type == 1 ? (
<Chip
size="small"
label={`${moment(allData.start_time).format("HH:mm")} | ${moment(allData.start_date).locale("fa").format("YYYY/MM/DD")}`}
@@ -57,7 +57,7 @@ const Verify = ({ types, regions, allData, handlePrev, submitForm, submitting })
<Stack direction={"row"} alignItems={"center"} spacing={1}>
<Typography variant="body2">تاریخ پایان ماموریت</Typography>
<Divider sx={{ flex: 1 }} />
{allData.type == 2 ? (
{allData.type == 1 ? (
<Chip
size="small"
label={`${moment(allData.end_time).format("HH:mm")} | ${moment(allData.end_date).locale("fa").format("YYYY/MM/DD")}`}

View File

@@ -8,8 +8,8 @@ import Area from "./Area";
import Verify from "./Verify";
const types = [
{ id: 1, name_fa: "روزانه" },
{ id: 2, name_fa: "ساعتی" },
{ id: 1, name_fa: "ساعتی" },
{ id: 2, name_fa: "روزانه" },
];
const regions = [

View File

@@ -30,15 +30,15 @@ const Create = ({ mutate }) => {
type: result.type,
zone: result.region,
end_point: result.end_point,
...(result.type == 2
...(result.type == 1
? {
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
}
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
}
: {
start_date: result.start_date,
end_date: result.end_date,
}),
start_date: result.start_date,
end_date: result.end_date,
}),
},
hasSidebarUpdate: true,
})
@@ -46,7 +46,7 @@ const Create = ({ mutate }) => {
mutate();
setOpen(false);
})
.catch((error) => {})
.catch((error) => { })
.finally(() => {
setSubmitting(false);
});

View File

@@ -38,15 +38,15 @@ const EditController = ({ row, mutate, openEditDialog, setOpenEditDialog }) => {
type: result.type,
zone: result.region,
end_point: result.end_point,
...(result.type == 2
...(result.type == 1
? {
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
}
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
}
: {
start_date: result.start_date,
end_date: result.end_date,
}),
start_date: result.start_date,
end_date: result.end_date,
}),
},
hasSidebarUpdate: true,
notificationSuccess: true,
@@ -55,7 +55,7 @@ const EditController = ({ row, mutate, openEditDialog, setOpenEditDialog }) => {
mutate();
setOpenEditDialog(false);
})
.catch((error) => {})
.catch((error) => { })
.finally(() => {
setSubmitting(false);
});

View File

@@ -38,6 +38,7 @@ const MachinesList = ({ request, dispatch, setOpenMachinesDialog }) => {
<Box sx={{ mt: 3, p: 1 }}>
<DataTableWithAuth
need_filter={true}
table_title="لیست خودرو ها"
columns={columns}
sorting={[{ id: "id", desc: true }]}
table_url={GET_MACHINES_TABLE_LIST}

View File

@@ -7,10 +7,27 @@ import { toast } from "react-toastify";
import useTableSetting from "@/lib/hooks/useTableSetting";
import { flattenObjectOfObjects } from "@/core/utils/flattenObjectOfObjects";
function filterFalseValues(obj) {
const result = {};
for (const [key, value] of Object.entries(obj)) {
if (value === false) {
result[key] = false;
} else if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
const nested = filterFalseValues(value);
if (Object.keys(nested).length > 0) {
result[key] = nested;
}
}
}
return result;
}
function AskForKeepData({ filterData, sortData, hideData, user_id, page_name, table_name, columns }) {
const { filterAction, sortAction, hideAction } = useTableSetting();
const filteredHideData = Object.fromEntries(Object.entries(hideData).filter(([key, value]) => value === false));
const filteredHideData = filterFalseValues(hideData);
const flattenHideData = flattenObjectOfObjects(filteredHideData);

View File

@@ -102,21 +102,21 @@ export const pageMenuDev = [
label: "کارتابل",
type: "page",
route: "/dashboard/road-missions/operator",
permissions: ["all"],
permissions: ["manage-request-portal-country", "manage-request-portal-province", "manage-request-portal-city"],
},
{
id: "roadMissionsManagemnetNaqlie",
label: "نقلیه",
type: "page",
route: "/dashboard/road-missions/transportation",
permissions: ["all"],
permissions: ["manage-transportation-unit"],
},
{
id: "roadMissionsManagemnetControl",
label: "کنترل",
type: "page",
route: "/dashboard/road-missions/control",
permissions: ["all"],
permissions: ["manage-control-unit"],
},
],
},

View File

@@ -85,7 +85,7 @@ const DataTableProvider = ({ children, user_id, page_name, table_name, columns,
} else {
acc[column.id] = {
id: column.id,
value: storeFilter?.value || "",
value: storeFilter?.value ?? "",
filterMode: storeFilter?.filterMode || column.filterMode,
datatype: column.datatype,
};