Merge branch 'main' of https://git.itguild.info/apuc/guild_front
debag-conflict
This commit is contained in:
@@ -39,7 +39,7 @@ export const PartnerCategories = () => {
|
||||
setLoader(true);
|
||||
apiRequest("/project/my-employee").then((el) => {
|
||||
setLoader(false);
|
||||
setStaff(el.managerEmployees);
|
||||
setStaff(el?.managerEmployees);
|
||||
});
|
||||
}, []);
|
||||
|
||||
@@ -161,16 +161,22 @@ export const PartnerCategories = () => {
|
||||
<Loader style={"green"} height={80} width={80} />
|
||||
) : (
|
||||
<div className="partner-categories__items">
|
||||
{staff.map((card) => {
|
||||
return (
|
||||
<PartnerPersonCard
|
||||
key={card.id}
|
||||
name={card.employee.fio}
|
||||
img={card.employee.avatar}
|
||||
userId={card.user_id}
|
||||
/>
|
||||
);
|
||||
})}
|
||||
{Boolean(staff) ? (
|
||||
staff.map((card) => {
|
||||
return (
|
||||
<PartnerPersonCard
|
||||
key={card.id}
|
||||
name={card.employee.fio}
|
||||
img={card.employee.avatar}
|
||||
userId={card.user_id}
|
||||
/>
|
||||
);
|
||||
})
|
||||
) : (
|
||||
<span className="partnerCategories__empty">
|
||||
У вас нет нанятого персонала
|
||||
</span>
|
||||
)}
|
||||
{/*{personalInfoItems.map((item, index) => {*/}
|
||||
{/* return (*/}
|
||||
{/* <Link*/}
|
||||
|
@@ -20,6 +20,11 @@
|
||||
//row-gap: 24px;
|
||||
//column-gap: 21px;
|
||||
}
|
||||
&__empty {
|
||||
font-size: 18px;
|
||||
font-weight: 500;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
|
@@ -70,7 +70,7 @@ export const ProfileCandidate = () => {
|
||||
<div className="profile-candidate__instructions instructions-candidate">
|
||||
<div className="instructions-candidate__container">
|
||||
<div className="instructions-candidate___row">
|
||||
<div className="instructions-candidate__title">Интсрукция:</div>
|
||||
<div className="instructions-candidate__title">Инструкция:</div>
|
||||
<div className="instructions-candidate__note">
|
||||
<img
|
||||
className="instructions-candidate__icon"
|
||||
@@ -93,7 +93,7 @@ export const ProfileCandidate = () => {
|
||||
alt=""
|
||||
/>
|
||||
<div className="instructions-candidate__text">
|
||||
Тесты itguild предназначены для того, чтобы подтверждать
|
||||
Тесты ITguild предназначены для того, чтобы подтверждать
|
||||
навыки, которые вы указали у себя.
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -43,6 +43,7 @@ import TrackerSelectColumn from "@components/TrackerSelectColumn/TrackerSelectCo
|
||||
|
||||
import arrow from "assets/icons/arrows/arrowCalendar.png";
|
||||
import arrowDown from "assets/icons/arrows/selectArrow.png";
|
||||
import calendarIcon from "assets/icons/calendar.svg";
|
||||
import close from "assets/icons/close.png";
|
||||
import commentsBoard from "assets/icons/commentsBoard.svg";
|
||||
import del from "assets/icons/delete.svg";
|
||||
@@ -528,7 +529,9 @@ export const ProjectTracker = () => {
|
||||
</div>
|
||||
)}
|
||||
{projectBoard.projectUsers?.length > 3 && (
|
||||
<span className="count-persons">+1</span>
|
||||
<span className="count-persons">
|
||||
+{projectBoard.projectUsers?.length - 3}
|
||||
</span>
|
||||
)}
|
||||
<span
|
||||
className="add-person"
|
||||
@@ -897,21 +900,18 @@ export const ProjectTracker = () => {
|
||||
className="tasks__board__item__description"
|
||||
></p>
|
||||
<div className="tasks__board__item__executor">
|
||||
<img
|
||||
src={
|
||||
task.executor?.avatar
|
||||
? urlForLocal(task.executor?.avatar)
|
||||
: avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
<span>
|
||||
{task.executor?.fio
|
||||
? task.executor?.fio
|
||||
: "Исполнитель не назначен"}
|
||||
{task.executor?.fio ||
|
||||
"Исполнитель не назначен"}
|
||||
</span>
|
||||
{task.executor?.avatar && (
|
||||
<img
|
||||
src={
|
||||
task.executor?.avatar
|
||||
? urlForLocal(task.executor?.avatar)
|
||||
: avatarMok
|
||||
}
|
||||
alt="avatar"
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
{Boolean(task.mark.length) && (
|
||||
<div className="tasks__board__item__tags">
|
||||
@@ -943,7 +943,7 @@ export const ProjectTracker = () => {
|
||||
)}
|
||||
{task.dead_line && (
|
||||
<div className="tasks__board__item__dead-line">
|
||||
<p>Срок исполнения:</p>
|
||||
<img src={calendarIcon} alt="calendar" />
|
||||
<span>
|
||||
{getCorrectDate(task.dead_line)}
|
||||
</span>
|
||||
@@ -1001,7 +1001,9 @@ export const ProjectTracker = () => {
|
||||
</div>
|
||||
{acceptModalOpen && (
|
||||
<AcceptModal
|
||||
title={"В колонке ещё есть задачи, Вы точно хотите удалить её ?"}
|
||||
title={
|
||||
"В колонке ещё есть задачи, Вы действительно хотите удалить её ?"
|
||||
}
|
||||
closeModal={closeAcceptModal}
|
||||
agreeHandler={() => deleteColumn(currentColumnDelete)}
|
||||
/>
|
||||
|
@@ -10,7 +10,6 @@ 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 { HeadBottom } from "@components/features/Candidate-lk/HeadBottom";
|
||||
import { BlockCompletedTest } from "@components/features/quiz/BlockCompletedTest";
|
||||
import { CardIntroduction } from "@components/features/quiz/Card-introduction";
|
||||
import { QuizPassingInformation } from "@components/features/quiz/Quiz-passing-information";
|
||||
@@ -43,12 +42,12 @@ export const PassingTests = () => {
|
||||
{
|
||||
title: "Зачем?",
|
||||
description:
|
||||
"Тесты itguild предназначены для того, чтобы подтверждать навыки, которые вы указали у себя."
|
||||
"Тесты ITguild предназначены для того, чтобы подтверждать навыки, которые вы указали у себя."
|
||||
},
|
||||
{
|
||||
title: "Почему именно тестирование?",
|
||||
description:
|
||||
"Тесты itguild заменяют первое техническое собеседование по любой вакансии."
|
||||
"Тесты ITguild заменяют первое техническое собеседование по любой вакансии."
|
||||
},
|
||||
{
|
||||
title: "Какие тесты нужно проходить?",
|
||||
@@ -138,11 +137,6 @@ export const PassingTests = () => {
|
||||
)}
|
||||
</div>
|
||||
<Footer />
|
||||
{/*<Prompt*/}
|
||||
{/* when={showPrompt}*/}
|
||||
{/* message="Unsaved changes detected, continue?"*/}
|
||||
{/* beforeUnload={true}*/}
|
||||
{/*/>*/}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
@@ -20,12 +20,12 @@
|
||||
|
||||
&__block {
|
||||
background: #e1fccf;
|
||||
border-radius: 12px 12px 0px 0px;
|
||||
border-radius: 12px;
|
||||
font-weight: 400;
|
||||
font-size: 18px;
|
||||
font-size: 23px;
|
||||
line-height: 178%;
|
||||
color: #000000;
|
||||
padding: 20px 51px;
|
||||
padding: 20px;
|
||||
margin: 0 0 16px 0;
|
||||
}
|
||||
|
||||
|
@@ -191,7 +191,7 @@ const Statistics = () => {
|
||||
</div>
|
||||
<div className="add-person">
|
||||
<span className="add-person__button">+</span>
|
||||
<p>Добавить участников</p>
|
||||
<p>Добавить участника</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -33,7 +33,7 @@ import project from "assets/icons/trackerProject.svg";
|
||||
import tasks from "assets/icons/trackerTasks.svg";
|
||||
import archive from "assets/images/archiveIcon.png";
|
||||
import mockAvatar from "assets/images/avatarMok.png";
|
||||
import downloadExel from "assets/images/downloadExel.svg";
|
||||
import downloadExcel from "assets/images/downloadExcel.svg";
|
||||
import noProjects from "assets/images/noProjects.png";
|
||||
import statusTimeTask from "assets/images/statusTimeTask.svg";
|
||||
|
||||
@@ -305,8 +305,8 @@ export const Tracker = () => {
|
||||
<p>Сверка пройдена</p>
|
||||
</div>
|
||||
<div>
|
||||
<img src={downloadExel} alt="#" />
|
||||
<p>Скачать Exel отчет</p>
|
||||
<img src={downloadExcel} alt="#" />
|
||||
<p>Скачать Excel-отчет</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@@ -43,7 +43,7 @@
|
||||
max-width: 1160px;
|
||||
width: 100%;
|
||||
background: #e1fccf;
|
||||
border-radius: 12px;
|
||||
border-radius: 12px 12px 0 0;
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
height: 60px;
|
||||
@@ -124,8 +124,7 @@
|
||||
&__content {
|
||||
width: 100%;
|
||||
background: #ffffff;
|
||||
padding: 30px 0;
|
||||
margin-bottom: 10px;
|
||||
padding: 20px 0;
|
||||
|
||||
&__wrapper {
|
||||
max-width: 1160px;
|
||||
@@ -354,7 +353,7 @@
|
||||
border: 1px solid #e3e2e2;
|
||||
padding: 2px 6px;
|
||||
position: relative;
|
||||
max-width: 220px;
|
||||
max-width: 190px;
|
||||
width: 100%;
|
||||
|
||||
@media (max-width: 915px) {
|
||||
@@ -830,9 +829,7 @@
|
||||
max-height: 100px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 3;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
span {
|
||||
@@ -868,6 +865,7 @@
|
||||
column-gap: 10px;
|
||||
align-items: center;
|
||||
pointer-events: none;
|
||||
margin-top: 5px;
|
||||
|
||||
&__more {
|
||||
cursor: pointer;
|
||||
@@ -898,7 +896,7 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 5px;
|
||||
margin-bottom: 8px;
|
||||
margin-top: 3px;
|
||||
|
||||
p {
|
||||
font-weight: 500;
|
||||
@@ -927,7 +925,6 @@
|
||||
display: flex;
|
||||
align-items: center;
|
||||
column-gap: 5px;
|
||||
margin-bottom: 8px;
|
||||
|
||||
p {
|
||||
font-weight: 500;
|
||||
@@ -939,12 +936,16 @@
|
||||
font-weight: 500;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
img {
|
||||
margin-top: -2px;
|
||||
width: 18px;
|
||||
}
|
||||
}
|
||||
|
||||
&__executor {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 2px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
column-gap: 5px;
|
||||
@@ -967,7 +968,7 @@
|
||||
flex-wrap: wrap;
|
||||
column-gap: 6px;
|
||||
row-gap: 3px;
|
||||
margin: 5px 0 8px;
|
||||
margin: 3px 0;
|
||||
|
||||
.tag-item {
|
||||
padding: 3px 10px;
|
||||
|
@@ -1,6 +1,9 @@
|
||||
import React, { useEffect, useState } from "react";
|
||||
import { useDispatch } from "react-redux";
|
||||
import { Link, useParams } from "react-router-dom";
|
||||
|
||||
import { setEditReport } from "@redux/reportSlice";
|
||||
|
||||
import { apiRequest } from "@api/request";
|
||||
|
||||
import {
|
||||
@@ -20,6 +23,7 @@ import arrow from "assets/icons/arrows/left-arrow.png";
|
||||
import "./viewReport.scss";
|
||||
|
||||
export const ViewReport = () => {
|
||||
const dispatch = useDispatch();
|
||||
const params = useParams();
|
||||
const [previousReportDay] = useState(new Date(params.date));
|
||||
const [nextReportDay] = useState(new Date(params.date));
|
||||
@@ -32,6 +36,7 @@ export const ViewReport = () => {
|
||||
const [currentDay] = useState(new Date());
|
||||
const [loader, setLoader] = useState(false);
|
||||
const [deleteLoader, setDeleteLoader] = useState(false);
|
||||
const [reportInfo, setReportInfo] = useState({});
|
||||
|
||||
function getReportFromDate(day) {
|
||||
setLoader(true);
|
||||
@@ -41,6 +46,7 @@ export const ViewReport = () => {
|
||||
apiRequest(`reports/find-by-date?user_id=${params.id}&date=${day}`).then(
|
||||
(res) => {
|
||||
let spendTime = 0;
|
||||
setReportInfo(res[0]);
|
||||
setTaskId(res[0]?.id);
|
||||
for (const item of res) {
|
||||
if (item.difficulties) {
|
||||
@@ -127,7 +133,17 @@ export const ViewReport = () => {
|
||||
</Link>
|
||||
{localStorage.getItem("role_status") !== "18" && (
|
||||
<div className="view-report__bar">
|
||||
<button className="view-report__bar__edit">Редактировать</button>
|
||||
<Link
|
||||
to="/profile/calendar/report"
|
||||
onClick={() => dispatch(setEditReport(reportInfo))}
|
||||
className={
|
||||
taskText.length
|
||||
? "view-report__bar__edit"
|
||||
: "view-report__bar__edit disable"
|
||||
}
|
||||
>
|
||||
Редактировать
|
||||
</Link>
|
||||
{deleteLoader ? (
|
||||
<Loader style={"green"} />
|
||||
) : (
|
||||
|
@@ -73,9 +73,18 @@
|
||||
}
|
||||
|
||||
&__edit {
|
||||
color: #000000;
|
||||
font-size: 15px;
|
||||
font-weight: 500;
|
||||
line-height: 32px;
|
||||
padding: 8px 24px;
|
||||
background: #e1fccf;
|
||||
border-radius: 44px;
|
||||
border: none;
|
||||
|
||||
&:hover {
|
||||
color: #000000;
|
||||
}
|
||||
}
|
||||
|
||||
&__delete {
|
||||
|
Reference in New Issue
Block a user