170 lines
6.7 KiB
JavaScript
170 lines
6.7 KiB
JavaScript
import React, {useState} from 'react';
|
||
import {Link} from "react-router-dom";
|
||
import {Navigate} from "react-router-dom";
|
||
import {useDispatch} from "react-redux";
|
||
|
||
import {ProfileHeader} from "../../components/ProfileHeader/ProfileHeader";
|
||
import {ProfileBreadcrumbs} from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs"
|
||
import {Footer} from "../../components/Footer/Footer";
|
||
|
||
import {setPartnerEmployees} from "../../redux/outstaffingSlice";
|
||
|
||
import BackEndImg from "./images/personalBackEnd.png"
|
||
import FrontendImg from "./images/PersonalFrontend.png"
|
||
import ArchitectureImg from "./images/PersonalArchitecture.png"
|
||
import DesignImg from "./images/PersonalDesign.png"
|
||
import TestImg from "./images/PersonalTesters.png"
|
||
import AdminImg from "./images/PersonalAdmin.png"
|
||
import ManageImg from "./images/PersonalMng.png"
|
||
import CopyImg from "./images/PersonalCopy.png"
|
||
import SmmImg from "./images/PersonalSMM.png"
|
||
import rightArrow from "../../images/arrowRight.png"
|
||
import avatarImg from "../PartnerEmployees/avatarMok.png";
|
||
|
||
import "./partnerСategories.scss"
|
||
|
||
export const PartnerCategories = () => {
|
||
const dispatch = useDispatch();
|
||
if(localStorage.getItem('role_status') !== '18') {
|
||
return <Navigate to="/profile" replace/>
|
||
}
|
||
|
||
const [personalInfoItems] = useState([
|
||
{
|
||
title: 'Backend разработчики',
|
||
link: '/profile/categories/employees',
|
||
description: 'Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript',
|
||
available: true,
|
||
img: BackEndImg
|
||
},
|
||
{
|
||
title: 'Frontend разработчики',
|
||
link: '/profile/categories/employees',
|
||
description: 'Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript',
|
||
available: true,
|
||
img: FrontendImg
|
||
},
|
||
{
|
||
title: 'Архитектура проектов',
|
||
link: '/profile/categories/employees',
|
||
description: 'Потоки данных ER ERP CRM CQRS UML BPMN',
|
||
available: true,
|
||
img: ArchitectureImg
|
||
},
|
||
{
|
||
title: 'Дизайн проектов',
|
||
link: '/profile/categories/employees',
|
||
description: 'Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript',
|
||
available: true,
|
||
img: DesignImg
|
||
},
|
||
{
|
||
title: 'Тестирование проектов',
|
||
link: '/profile/add-request',
|
||
description: 'SQL Postman TestRail Kibana Ручное тестирование',
|
||
available: false,
|
||
img: TestImg
|
||
},
|
||
{
|
||
title: 'Администрирование проектов',
|
||
link: '/profile/add-request',
|
||
description: 'DevOps ELK Kubernetes Docker Bash Apache Oracle Git',
|
||
available: false,
|
||
img: AdminImg
|
||
},
|
||
{
|
||
title: 'Управление проектом',
|
||
link: '/profile/add-request',
|
||
description: 'Scrum Kanban Agile Miro CustDev',
|
||
available: false,
|
||
img: ManageImg
|
||
},
|
||
{
|
||
title: 'Копирайтинг проектов',
|
||
link: '/profile/add-request',
|
||
description: 'Теги Заголовок H1 Дескриптор Абзац Сценарий',
|
||
available: false,
|
||
img: CopyImg
|
||
},
|
||
{
|
||
title: 'Реклама и SMM',
|
||
link: '/profile/add-request',
|
||
description: 'Java PHP Python C# React Vue.js NodeJs Golang Ruby JavaScript',
|
||
available: false,
|
||
img: SmmImg
|
||
},
|
||
])
|
||
|
||
const [mokPersons] = useState([
|
||
{
|
||
personAvatar: avatarImg,
|
||
name: "Макаренко Дмитрий",
|
||
qualification: "PHP Backend - разработчик",
|
||
level: "Middle",
|
||
project: "Админка НВД Консалтинг",
|
||
tasks_in_progress: 5,
|
||
month_hours: 140,
|
||
id: 1
|
||
},
|
||
{
|
||
personAvatar: avatarImg,
|
||
name: "Макаренко Дмитрий",
|
||
qualification: "PHP Backend - разработчик",
|
||
level: "Middle",
|
||
project: "Админка НВД Консалтинг",
|
||
tasks_in_progress: 5,
|
||
month_hours: 140,
|
||
id: 2
|
||
},
|
||
{
|
||
personAvatar: avatarImg,
|
||
name: "Макаренко Дмитрий",
|
||
qualification: "PHP Backend - разработчик",
|
||
level: "Middle",
|
||
project: "Админка НВД Консалтинг",
|
||
tasks_in_progress: 5,
|
||
month_hours: 140,
|
||
id: 3
|
||
},
|
||
])
|
||
return (
|
||
<div className="partnerCategories">
|
||
<ProfileHeader />
|
||
<div className="container">
|
||
<ProfileBreadcrumbs links={[
|
||
{name: 'Главная', link: '/profile'},
|
||
{name: 'Данные моего персонала', link: '/profile/categories'},
|
||
]}
|
||
/>
|
||
<h2 className="partnerCategories__title">Данные персонала</h2>
|
||
<div className="partnerCategories__items">
|
||
{personalInfoItems.map((item, index) => {
|
||
return <Link to={item.link} key={index} className={item.available ? "partnerCategories__item item" : "partnerCategories__item item item__disable"}
|
||
onClick={() => {
|
||
dispatch(setPartnerEmployees(mokPersons))
|
||
}}>
|
||
<div className="item__title">
|
||
<img src={item.img} alt={item.title} />
|
||
<h4>{item.title}</h4>
|
||
</div>
|
||
<div className="item__info">
|
||
<p>{item.description}</p>
|
||
<div className='more'>
|
||
<img src={rightArrow} alt="arrow" />
|
||
</div>
|
||
</div>
|
||
{!item.available &&
|
||
<div className="item__disableHover">
|
||
<p>У вас нет персонала из категории</p>
|
||
<button>Подобрать</button>
|
||
</div>
|
||
}
|
||
</Link>
|
||
})}
|
||
</div>
|
||
</div>
|
||
<Footer/>
|
||
</div>
|
||
)
|
||
}
|