show time on edit dialog and remove time in tashih mamoriat

This commit is contained in:
2026-06-10 14:40:13 +03:30
parent 8753f23146
commit 5c05af0828
7 changed files with 72 additions and 72 deletions

View File

@@ -5,6 +5,7 @@ import { yupResolver } from "@hookform/resolvers/yup";
import { Button, DialogActions, DialogContent, Stack } from "@mui/material";
import { Controller, useForm } from "react-hook-form";
import * as yup from "yup";
import MissionDates from "@/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/MissionDates";
const schema = yup.object().shape({
machinesId: yup.object().required("کد خودرو الزامی است."),
km: yup.string(),
@@ -61,6 +62,9 @@ const CreateViolationForm = ({ setOpenMachinesDialog, defaultValues, onSubmitBas
)}
/>
</Stack>
<Stack spacing={2} sx={{ minWidth: "200px" }}>
<MissionDates control={control} />
</Stack>
</Stack>
</DialogContent>
<DialogActions sx={{ alignItems: "center", justifyContent: "end" }}>

View File

@@ -0,0 +1,55 @@
import MuiDatePicker from "@/core/components/MuiDatePicker";
import MuiTimePicker from "@/core/components/MuiTimePicker";
import { Grid } from "@mui/material";
import { Controller, useWatch } from "react-hook-form";
const MissionDates = ({ control }) => {
const start_date = useWatch({ control, name: "start_date" });
const now = new Date();
return (
<>
<Grid item xs={12} sm={6}>
<Controller
control={control}
name={"start_date"}
render={({ field, fieldState: { error } }) => {
return (
<MuiDatePicker
name="start_date"
error={error}
value={field.value}
disableFuture={false}
minDate={start_date ? start_date : now}
placeholder={"تاریخ شروع ماموریت را وارد کنید"}
label={"تاریخ شروع ماموریت"}
setFieldValue={(name, value) => field.onChange(value || [])}
helperText={error ? error.message : null}
/>
);
}}
/>
</Grid>
<Grid item xs={12} sm={6}>
<Controller
control={control}
name={"start_time"}
render={({ field, fieldState: { error } }) => {
return (
<MuiTimePicker
name="start_time"
error={error}
value={field.value}
placeholder={"زمان شروع ماموریت را وارد کنید"}
label={"زمان شروع ماموریت"}
setFieldValue={(name, value) => field.onChange(value || null)}
helperText={error ? error.message : null}
/>
);
}}
/>
</Grid>
</>
);
};
export default MissionDates;

View File

@@ -3,6 +3,7 @@ import { DialogHeader } from "next/dist/client/components/react-dev-overlay/inte
import useRequest from "@/lib/hooks/useRequest";
import { CREATE_VIOLATION } from "@/core/utils/routes";
import CreateViolationForm from "@/components/dashboard/roadMissions/violations/Actions/CreateViolation/Form/CreateForm";
import moment from "jalali-moment";
const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) => {
const requestServer = useRequest({ notificationSuccess: true });
@@ -10,6 +11,8 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) =>
const defaultValues = {
machinesId: null,
km: "",
start_date: null,
start_time: null,
};
const submitForm = async (result) => {
@@ -17,6 +20,7 @@ const ViolationForm = ({ setOpenMachinesDialog, mutate, openMachinesDialog }) =>
data: {
machine_code: result.machinesId.machine_code,
km: result.km,
exit_time: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
},
})
.then((response) => {

View File

@@ -59,10 +59,9 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
}}
>
<Tab icon={<InsertDriveFile />} label="مشخصات" />
<Tab disabled={tabState < 1} icon={<AccessTime />} label="زمانبندی" />
<Tab disabled={tabState < 2} icon={<Person />} label="راننده" />
<Tab disabled={tabState < 3} icon={<Engineering />} label="همراهان" />
<Tab disabled={tabState < 4} icon={<Verified />} label="بررسی نهایی" />
<Tab disabled={tabState < 1} icon={<Person />} label="راننده" />
<Tab disabled={tabState < 2} icon={<Engineering />} label="همراهان" />
<Tab disabled={tabState < 3} icon={<Verified />} label="بررسی نهایی" />
</Tabs>
<TabPanel value={tabState} index={0}>
<GetItemInfo
@@ -74,16 +73,6 @@ const CreateForm = ({ defaultValues, submitForm, setOpen, submitting }) => {
setTabState={setTabState}
/>
</TabPanel>
<TabPanel value={tabState} index={1}>
<GetDateTime
allData={allData}
setAllData={(data) => {
dispatch({ type: "changeData", data });
}}
handlePrev={handlePrev}
setTabState={setTabState}
/>
</TabPanel>
<TabPanel value={tabState} index={2}>
<MachineAndDriver
allData={allData}

View File

@@ -25,8 +25,6 @@ const CreateWithoutProcess = ({ row, mutate }) => {
...(result.rahdaran.length != 0 ? { rahdaran: result.rahdaran.map((r) => r.id) } : {}),
zone: result.region,
end_point: result.end_point,
start_date: `${result.start_date} ${moment(result.start_time).format("HH:mm")}`,
end_date: `${result.end_date} ${moment(result.end_time).format("HH:mm")}`,
driver: result.driver.id,
},
hasSidebarUpdate: true,
@@ -70,10 +68,6 @@ const CreateWithoutProcess = ({ row, mutate }) => {
category_id: "",
road_observed_id: "",
rahdaran: [],
start_date: "",
start_time: null,
end_date: "",
end_time: null,
end_point: "",
region: "",
driver: null,

View File

@@ -5,24 +5,19 @@ import { DialogHeader } from "next/dist/client/components/react-dev-overlay/inte
import EditViolationForm from "./EditViolationForm";
import moment from "jalali-moment";
const EditController = ({ rowId, mutate, setOpen }) => {
const EditController = ({ rowId, mutate, setOpen, row }) => {
const requestServer = useRequest({ notificationSuccess: true });
const [endDate] = row?.original?.enter_time?.split(" ") || [null];
const defaultData = {
start_date: null,
start_time: null,
end_date: null,
end_time: null,
end_date: endDate,
end_time: row?.original?.enter_time ? new Date(row.original.enter_time) : null,
};
const handleSubmit = async (result) => {
const payload = {};
if (result.start_date && result.start_time) {
payload.enter_time = `${result.start_date} ${moment(result.start_time).format("HH:mm")}`;
}
if (result.end_date && result.end_time) {
payload.exit_time = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
payload.enter_time = `${result.end_date} ${moment(result.end_time).format("HH:mm")}`;
}
await requestServer(`${EDIT_VIOLATION}/${rowId}`, "post", {

View File

@@ -5,52 +5,11 @@ import { Grid } from "@mui/material";
import { Controller, useWatch } from "react-hook-form";
const MissionDates = ({ control }) => {
const start_date = useWatch({ control, name: "start_date" });
const end_date = useWatch({ control, name: "end_date" });
const now = new Date();
return (
<>
<Grid item xs={12} sm={6}>
<Controller
control={control}
name={"start_date"}
render={({ field, fieldState: { error } }) => {
return (
<MuiDatePicker
name="start_date"
error={error}
value={field.value}
disableFuture={false}
maxDate={end_date ?? null}
placeholder={"تاریخ شروع ماموریت را وارد کنید"}
label={"تاریخ شروع ماموریت"}
setFieldValue={(name, value) => field.onChange(value || [])}
helperText={error ? error.message : null}
/>
);
}}
/>
</Grid>
<Grid item xs={12} sm={6}>
<Controller
control={control}
name={"start_time"}
render={({ field, fieldState: { error } }) => {
return (
<MuiTimePicker
name="start_time"
error={error}
value={field.value}
placeholder={"زمان شروع ماموریت را وارد کنید"}
label={"زمان شروع ماموریت"}
setFieldValue={(name, value) => field.onChange(value || null)}
helperText={error ? error.message : null}
/>
);
}}
/>
</Grid>
<Grid item xs={12} sm={6}>
<Controller
control={control}
@@ -62,7 +21,7 @@ const MissionDates = ({ control }) => {
error={error}
value={field.value}
disableFuture={false}
minDate={start_date ? start_date : now}
minDate={end_date ? end_date : now}
placeholder={"تاریخ پایان ماموریت را وارد کنید"}
label={"تاریخ پایان ماموریت"}
setFieldValue={(name, value) => field.onChange(value || [])}