employeeReport

This commit is contained in:
Mikola
2024-02-02 18:44:11 +03:00
parent 5825015706
commit 8a2876e30b
5 changed files with 100 additions and 89 deletions

View File

@ -1,20 +1,21 @@
import moment from "moment/moment";
import React, { useEffect, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { Navigate, useParams } from "react-router-dom";
import { Footer } from "@components/Common/Footer/Footer";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import { ProfileCalendarComponent } from "@components/ProfileCalendar/ProfileCalendarComponent";
import { getRequestDates, setRequestDate } from "@redux/reportSlice";
import { apiRequest } from "@api/request";
import "./partnerEmployeeReport.scss";
import moment from "moment/moment";
import { useDispatch, useSelector } from "react-redux";
import { getRequestDates, setRequestDate } from "@redux/reportSlice";
import { getReports } from "@components/Calendar/calendarHelper";
import { Footer } from "@components/Common/Footer/Footer";
import { Loader } from "@components/Common/Loader/Loader";
import { Navigation } from "@components/Navigation/Navigation";
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
import { ProfileCalendarComponent } from "@components/ProfileCalendar/ProfileCalendarComponent";
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
import "./partnerEmployeeReport.scss";
export const PartnerEmployeeReport = () => {
// if (
@ -25,7 +26,7 @@ export const PartnerEmployeeReport = () => {
const params = useParams();
const dispatch = useDispatch();
const [userInfo, setUserInfo] = useState({})
const [userInfo, setUserInfo] = useState({});
const [value, setValue] = useState(moment());
const [reports, setReports] = useState([]);
const [totalHours, setTotalHours] = useState(0);
@ -39,38 +40,36 @@ export const PartnerEmployeeReport = () => {
}, []);
useEffect(() => {
apiRequest(
`/resume?userId=${params.uuid}`
).then((res) => {
setUserInfo(res)
apiRequest(`/resume?userId=${params.uuid}`).then((res) => {
setUserInfo(res);
});
}, [])
}, []);
useEffect(() => {
setLoader(true);
if (!requestDates) {
return;
}
apiRequest(
`/reports/index?${requestDates}&user_id=${params.uuid}`
).then((reports) => {
let spendTime = 0;
apiRequest(`/reports/index?${requestDates}&user_id=${params.uuid}`).then(
(reports) => {
let spendTime = 0;
reports
.filter(
(item) => new Date(item.created_at).getMonth() === value.month()
)
.map((report) => {
spendTime += report.task.reduce(
(acc, task) => acc + task.hours_spent,
0
);
});
reports
.filter(
(item) => new Date(item.created_at).getMonth() === value.month()
)
.map((report) => {
spendTime += report.task.reduce(
(acc, task) => acc + task.hours_spent,
0
);
});
setTotalHours(Math.floor(spendTime));
setReports(reports);
setLoader(false);
});
setTotalHours(Math.floor(spendTime));
setReports(reports);
setLoader(false);
}
);
}, [requestDates]);
return (
@ -84,11 +83,11 @@ export const PartnerEmployeeReport = () => {
{ name: "Данные моего персонала", link: "/profile/employees" }
]}
/>
{!Object.keys(userInfo).length ?
{!Object.keys(userInfo).length ? (
<div className="employeeReport__loader">
<Loader style={'green'} height={80} width={80} />
<Loader style={"green"} height={80} width={80} />
</div>
:
) : (
<>
<div className="employeeReport__info">
<div className="employeeReport__name">
@ -96,15 +95,16 @@ export const PartnerEmployeeReport = () => {
<p>{userInfo.position}</p>
</div>
<div className="employeeReport__skills">
{userInfo?.stack && userInfo.stack.map((skill, index) => {
return <span key={index}>{skill}</span>
})}
{userInfo?.stack &&
userInfo.stack.map((skill, index) => {
return <span key={index}>{skill}</span>;
})}
</div>
</div>
<div className="employeeReport__wrapper">
{loader ? (
<div className="employeeReport__loader">
<Loader style={'green'} height={80} width={80} />
<Loader style={"green"} height={80} width={80} />
</div>
) : (
<div className="employeeReport__calendar ">
@ -123,7 +123,7 @@ export const PartnerEmployeeReport = () => {
)}
</div>
</>
}
)}
</div>
<Footer />
</div>