diff --git a/src/components/dashboard/damages/operator/Actions/create/Forms/CreateFormContent.jsx b/src/components/dashboard/damages/operator/Actions/create/Forms/CreateFormContent.jsx index 27422e4..026f16a 100644 --- a/src/components/dashboard/damages/operator/Actions/create/Forms/CreateFormContent.jsx +++ b/src/components/dashboard/damages/operator/Actions/create/Forms/CreateFormContent.jsx @@ -15,6 +15,7 @@ import KeyboardDoubleArrowLeftIcon from "@mui/icons-material/KeyboardDoubleArrow import DamageReport from "./DamageReport"; import DamageItem from "./DamageItem"; import validateNationalCode from "@/core/utils/nationalCodeValidation"; +import AssessmentIcon from "@mui/icons-material/Assessment"; function TabPanel(props) { const { children, value, index } = props; @@ -171,7 +172,7 @@ const CreateFormContent = ({ setOpen, SubmitDamage, defaultData }) => { }} > } label="اطلاعات تصادف" /> - } label="گزارش میزان خسارت" /> + } label="گزارش خسارت" /> } label="آیتم خسارت" /> diff --git a/src/components/dashboard/damages/operator/Form/EditForm/index.jsx b/src/components/dashboard/damages/operator/Form/EditForm/index.jsx index dcddc5f..e608b32 100644 --- a/src/components/dashboard/damages/operator/Form/EditForm/index.jsx +++ b/src/components/dashboard/damages/operator/Form/EditForm/index.jsx @@ -21,7 +21,7 @@ const EditForm = ({ row, mutate, rowId }) => { { const statusOptions = [ @@ -259,6 +260,31 @@ const OperatorList = () => { grow: false, size: 50, columns: [ + { + header: "گزارش خسارت", + id: "damageReport", + 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 }) => { + return ( + + + + ); + }, + }, { header: "آیتم های خسارت", id: "damageItems", diff --git a/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportContent.jsx b/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportContent.jsx new file mode 100644 index 0000000..2dfd3fb --- /dev/null +++ b/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportContent.jsx @@ -0,0 +1,103 @@ +import { Box, Button, Chip, DialogContent, Divider, Grid, Typography } from "@mui/material"; +import PaymentIcon from "@mui/icons-material/Payment"; +import moment from "jalali-moment"; +import DownloadIcon from "@mui/icons-material/Download"; +import FormatListNumberedIcon from "@mui/icons-material/FormatListNumbered"; +import EventNoteIcon from "@mui/icons-material/EventNote"; +import ImageIcon from "@mui/icons-material/Image"; + +const DamageReportContent = ({ damageReportDetails }) => { + return ( + <> + + + + + } + label={ + + گزارش دهنده + + } + /> + + + + {damageReportDetails?.report_base === 1 + ? "بازدید عوامل و کارشناسان راهداری" + : "کروکی یا نامه پلیس راه"} + + + {damageReportDetails?.report_base === 0 && ( + <> + + + } + label={ + + شماره کروکی یا نامه پلیس راه + + } + /> + + + + {damageReportDetails?.police_serial} + + + + + } + label={ + + تاریخ کروکی یا نامه پلیس راه + + } + /> + + + + {moment(damageReportDetails?.police_file_date, "YYYY-MM-DD HH:mm:ss") + .locale("fa") + .format("YYYY/MM/DD")} + + + + + } + label={ + + تصویر کروکی یا نامه پلیس راه + + } + /> + + + + + + )} + + + + ); +}; +export default DamageReportContent; diff --git a/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportController.jsx b/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportController.jsx new file mode 100644 index 0000000..402911f --- /dev/null +++ b/src/components/dashboard/damages/operator/RowActions/DamageReport/DamageReportController.jsx @@ -0,0 +1,34 @@ +import useRequest from "@/lib/hooks/useRequest"; +import { useEffect, useState } from "react"; +import { GET_DAMAGE_ITEM_DETAILS } from "@/core/utils/routes"; +import DialogLoading from "@/core/components/DialogLoading"; +import DamageReportContent from "./DamageReportContent"; + +const DamageReportController = ({ rowId }) => { + const requestServer = useRequest(); + const [damageReportDetails, setDamageReportDetails] = useState(null); + const [damageItemDetailsLoading, setDamageItemDetailsLoading] = useState(false); + + useEffect(() => { + setDamageItemDetailsLoading(true); + requestServer(`${GET_DAMAGE_ITEM_DETAILS}/${rowId}`, "get") + .then((response) => { + setDamageReportDetails(response.data.data); + setDamageItemDetailsLoading(false); + }) + .catch((e) => { + setDamageItemDetailsLoading(false); + }); + }, [rowId]); + + return ( + <> + {damageItemDetailsLoading ? ( + + ) : ( + + )} + + ); +}; +export default DamageReportController; diff --git a/src/components/dashboard/damages/operator/RowActions/DamageReport/index.jsx b/src/components/dashboard/damages/operator/RowActions/DamageReport/index.jsx new file mode 100644 index 0000000..be283ab --- /dev/null +++ b/src/components/dashboard/damages/operator/RowActions/DamageReport/index.jsx @@ -0,0 +1,38 @@ +import React, { useState } from "react"; +import { Tooltip, IconButton, Dialog, DialogTitle, DialogActions, Button } from "@mui/material"; +import AssessmentIcon from "@mui/icons-material/Assessment"; +import DamageReportController from "./DamageReportController"; +const DamageReportDialog = ({ rowId }) => { + const [openDamageReportDialog, setOpenDamageReportDialog] = useState(false); + + return ( + <> + + setOpenDamageReportDialog(true)}> + + + + setOpenDamageReportDialog(false)} + PaperProps={{ + sx: { + boxShadow: "rgba(60, 64, 67, 0.3) 0px 1px 16px 0px, rgba(60, 64, 67, 0.15) 0px 1px 10px 0px", + }, + }} + dir="rtl" + maxWidth={"sm"} + fullWidth + > + گزارش خسارت + {openDamageReportDialog && } + + + + + + ); +}; +export default DamageReportDialog;