Merge branch 'feature/change_edare_to_city_in_damages' into 'develop'

Feature/change edare to city in damages

See merge request witel-front-end/rms!95
This commit is contained in:
AmirHossein Mahmoodi
2025-04-15 07:21:32 +00:00
7 changed files with 37 additions and 43 deletions

View File

@@ -1,9 +1,9 @@
import SelectBox from "@/core/components/SelectBox"; import SelectBox from "@/core/components/SelectBox";
import useEdaratLists from "@/lib/hooks/useEdaratLists"; import useCities from "@/lib/hooks/useCities";
import { useEffect, useState } from "react"; import { useEffect, useState } from "react";
const CityContent = ({ provinceID, field, fieldState: { error } }) => { const CityContent = ({ provinceID, field, fieldState: { error } }) => {
const { edaratList, loadingEdaratList, errorEdaratList } = useEdaratLists(provinceID); const { cityList, loadingCityList, errorCityList } = useCities(provinceID);
const [prevDependency, setPrevDependency] = useState(provinceID); const [prevDependency, setPrevDependency] = useState(provinceID);
useEffect(() => { useEffect(() => {
@@ -15,22 +15,16 @@ const CityContent = ({ provinceID, field, fieldState: { error } }) => {
return ( return (
<SelectBox <SelectBox
value={ value={
!provinceID !provinceID ? "dependency" : errorCityList ? "error" : loadingCityList ? "loading" : field.value || ""
? "dependency"
: errorEdaratList
? "error"
: loadingEdaratList
? "loading"
: field.value || ""
} }
label={"شهرستان"} label={"شهرستان"}
selectors={edaratList} selectors={cityList}
schema={{ name: "name_fa", value: "id" }} schema={{ name: "name_fa", value: "id" }}
error={error} error={error}
onChange={field.onChange} onChange={field.onChange}
helperText={error?.message} helperText={error?.message}
isLoading={loadingEdaratList} isLoading={loadingCityList}
errorEcured={errorEdaratList} errorEcured={errorCityList}
isDependency={!provinceID} isDependency={!provinceID}
dependencyLabel={"ابتدا استان را انتخاب کنید"} dependencyLabel={"ابتدا استان را انتخاب کنید"}
/> />

View File

@@ -1,19 +1,19 @@
"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_TECHNICAL_DAMAGE_OPERATOR_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 useEdaratLists from "@/lib/hooks/useEdaratLists"; import DataTableWithAuth from "@/core/components/DataTableWithAuth";
import { GET_TECHNICAL_DAMAGE_OPERATOR_LIST } from "@/core/utils/routes";
import useCities from "@/lib/hooks/useCities";
import useProvinces from "@/lib/hooks/useProvince";
import { Box, Stack, Typography } from "@mui/material";
import moment from "jalali-moment";
import { useEffect, useMemo, useState } from "react";
import RowActions from "./RowActions";
import DamageItemDialog from "./RowActions/DamageItemDialog";
import DamageReportDialog from "./RowActions/DamageReport";
import ImageDialog from "./RowActions/ImageDialog"; import ImageDialog from "./RowActions/ImageDialog";
import LocationForm from "./RowActions/LocationForm"; import LocationForm from "./RowActions/LocationForm";
import ShowPlate from "./RowActions/ShowPlate"; import ShowPlate from "./RowActions/ShowPlate";
import DamageItemDialog from "./RowActions/DamageItemDialog"; import Toolbar from "./Toolbar";
import DamageReportDialog from "./RowActions/DamageReport";
const OperatorList = () => { const OperatorList = () => {
const statusOptions = [ const statusOptions = [
@@ -94,7 +94,7 @@ const OperatorList = () => {
grow: false, grow: false,
size: 120, size: 120,
ColumnSelectComponent: (props) => { ColumnSelectComponent: (props) => {
const { edaratList, loadingEdaratList, errorEdaratList } = useEdaratLists( const { cityList, loadingCityList, errorCityList } = useCities(
props.dependencyFieldValue.value props.dependencyFieldValue.value
); );
const [prevDependency, setPrevDependency] = useState(props.dependencyFieldValue.value); const [prevDependency, setPrevDependency] = useState(props.dependencyFieldValue.value);
@@ -103,20 +103,20 @@ const OperatorList = () => {
if (props.dependencyFieldValue.value === "") { if (props.dependencyFieldValue.value === "") {
return [{ value: "empty", label: "ابتدا استان را انتخاب کنید" }]; return [{ value: "empty", label: "ابتدا استان را انتخاب کنید" }];
} }
if (loadingEdaratList) { if (loadingCityList) {
return [{ value: "loading", label: "در حال بارگذاری..." }]; return [{ value: "loading", label: "در حال بارگذاری..." }];
} }
if (errorEdaratList) { if (errorCityList) {
return [{ value: "error", label: "خطا در بارگذاری" }]; return [{ value: "error", label: "خطا در بارگذاری" }];
} }
return [ return [
{ value: "", label: "کل شهر ها" }, { value: "", label: "کل شهر ها" },
...edaratList.map((edare) => ({ ...cityList.map((city) => ({
value: edare.id, value: city.id,
label: edare.name_fa, label: city.name_fa,
})), })),
]; ];
}, [edaratList, loadingEdaratList, errorEdaratList]); }, [cityList, loadingCityList, errorCityList]);
useEffect(() => { useEffect(() => {
if (prevDependency === props.dependencyFieldValue?.value) return; if (prevDependency === props.dependencyFieldValue?.value) return;
props.handleChange({ ...props.filterParameters, value: "" }); props.handleChange({ ...props.filterParameters, value: "" });
@@ -128,7 +128,7 @@ const OperatorList = () => {
value={ value={
props.dependencyFieldValue?.value === "" props.dependencyFieldValue?.value === ""
? "empty" ? "empty"
: loadingEdaratList : loadingCityList
? "loading" ? "loading"
: props.filterParameters.value : props.filterParameters.value
} }

View File

@@ -82,10 +82,10 @@ const DamagesReportPage = () => {
setData({ setData({
data: [ data: [
nationalReport, nationalReport,
...result.cities.map((edare) => { ...result.cities.map((city) => {
const filteredReports = result.activities.find((report) => report.city_id == edare.id); const filteredReports = result.activities.find((report) => report.city_id == city.id);
return { return {
edare_name: edare.name_fa, edare_name: city.name_fa,
...filteredReports, ...filteredReports,
}; };
}), }),

View File

@@ -198,7 +198,7 @@ const ReportPage = () => {
}; };
}), }),
]); ]);
} catch (e) { } } catch (e) {}
} else { } else {
try { try {
const response = await requestServer(`${GET_ROAD_SAFETY_CITY_ACTIVITY_REPORT}?${params}`); const response = await requestServer(`${GET_ROAD_SAFETY_CITY_ACTIVITY_REPORT}?${params}`);
@@ -222,7 +222,7 @@ const ReportPage = () => {
}; };
}), }),
]); ]);
} catch (e) { } } catch (e) {}
} }
} catch (error) { } catch (error) {
console.log(error); console.log(error);

View File

@@ -9,7 +9,7 @@ const useDamageItemList = () => {
const [errorDamageItemList, setErrorDamageItemList] = useState(null); const [errorDamageItemList, setErrorDamageItemList] = useState(null);
useEffect(() => { useEffect(() => {
const fetchCities = async () => { const fetchDamageItem = async () => {
try { try {
const response = await requestServer(`${GET_DAMAGE_ITEM_LIST}`); const response = await requestServer(`${GET_DAMAGE_ITEM_LIST}`);
setDamageItemList(response.data.data); setDamageItemList(response.data.data);
@@ -20,7 +20,7 @@ const useDamageItemList = () => {
} }
}; };
fetchCities(); fetchDamageItem();
}, []); }, []);
return { damageItemList, loadingDamageItemList, errorDamageItemList }; return { damageItemList, loadingDamageItemList, errorDamageItemList };

View File

@@ -10,19 +10,19 @@ const usePrevStateOpinion = () => {
const [errorMessage, setErrorMessage] = useState(null); const [errorMessage, setErrorMessage] = useState(null);
useEffect(() => { useEffect(() => {
const fetchCities = async () => { const fetchStateOpnion = async () => {
try { try {
const response = await requestServer(`${GET_PREV_STATE_OPINION}`); const response = await requestServer(`${GET_PREV_STATE_OPINION}`);
setMessage(response.data.message); setMessage(response.data.message);
setLoadingMessage(false); setLoadingMessage(false);
} catch (e) { } catch (e) {
console.error("Error fetching cities:", e); console.error("Error fetching state:", e);
setErrorMessage(e); setErrorMessage(e);
setLoadingMessage(false); setLoadingMessage(false);
} }
}; };
fetchCities(); fetchStateOpnion();
}, []); }, []);
return { message, loadingMessage, errorMessage }; return { message, loadingMessage, errorMessage };

View File

@@ -9,7 +9,7 @@ const useProvinces = () => {
const [errorProvinces, setErrorProvinces] = useState(null); const [errorProvinces, setErrorProvinces] = useState(null);
useEffect(() => { useEffect(() => {
const fetchCities = async () => { const fetchProvinces = async () => {
try { try {
const response = await requestServer(`${GET_PROVINCE_LISTS}`); const response = await requestServer(`${GET_PROVINCE_LISTS}`);
setProvinces(response.data.data); setProvinces(response.data.data);
@@ -20,7 +20,7 @@ const useProvinces = () => {
} }
}; };
fetchCities(); fetchProvinces();
}, []); }, []);
return { provinces, loadingProvinces, errorProvinces }; return { provinces, loadingProvinces, errorProvinces };