vacancy #38
@ -1,11 +1,13 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
import { Link } from "react-router-dom";
|
import { Link } from "react-router-dom";
|
||||||
|
|
||||||
import titleImg from "assets/images/VacancyItemImg.svg";
|
import titleImg from "assets/images/VacancyItemImg.svg";
|
||||||
|
|
||||||
import "./vacancyItem.scss";
|
import "./vacancyItem.scss";
|
||||||
|
|
||||||
export const VacancyItem= ({ vacancy: { name, description, level, price, location, count } }) => {
|
export const VacancyItem = ({
|
||||||
|
vacancy: { name, description, level, price, location, count }
|
||||||
|
}) => {
|
||||||
return (
|
return (
|
||||||
<div className="vacancy__item">
|
<div className="vacancy__item">
|
||||||
<div className="vacancy__item__head">
|
<div className="vacancy__item__head">
|
||||||
@ -27,7 +29,12 @@ export const VacancyItem= ({ vacancy: { name, description, level, price, locatio
|
|||||||
<span>Ставка:</span>
|
<span>Ставка:</span>
|
||||||
<p>{price}</p>
|
<p>{price}</p>
|
||||||
</div>
|
</div>
|
||||||
<Link to={"/profile/open-requests/12"} className="vacancy__item__more">Все требования по вакансии</Link>
|
<Link
|
||||||
|
to={"/profile/open-requests/12"}
|
||||||
|
className="vacancy__item__more"
|
||||||
|
>
|
||||||
|
Все требования по вакансии
|
||||||
|
</Link>
|
||||||
</div>
|
</div>
|
||||||
<div className="vacancy__item__block--right">
|
<div className="vacancy__item__block--right">
|
||||||
<div className="vacancy__item__info">
|
<div className="vacancy__item__info">
|
||||||
|
@ -4,7 +4,12 @@ import "./vacancyTab.scss";
|
|||||||
|
|
||||||
export const VacancyTab = ({ title, active, count, setActive }) => {
|
export const VacancyTab = ({ title, active, count, setActive }) => {
|
||||||
return (
|
return (
|
||||||
<div className={active === title ? "vacancy__tab vacancy__tab--active" : "vacancy__tab"} onClick={setActive}>
|
<div
|
||||||
|
className={
|
||||||
|
active === title ? "vacancy__tab vacancy__tab--active" : "vacancy__tab"
|
||||||
|
}
|
||||||
|
onClick={setActive}
|
||||||
|
>
|
||||||
<p className="vacancy__tab__title">{title}</p>
|
<p className="vacancy__tab__title">{title}</p>
|
||||||
<span className="vacancy__tabtab__count">{count}</span>
|
<span className="vacancy__tabtab__count">{count}</span>
|
||||||
</div>
|
</div>
|
||||||
|
@ -4,286 +4,316 @@ import { Footer } from "@components/Common/Footer/Footer";
|
|||||||
import { Navigation } from "@components/Navigation/Navigation";
|
import { Navigation } from "@components/Navigation/Navigation";
|
||||||
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
import { ProfileBreadcrumbs } from "@components/ProfileBreadcrumbs/ProfileBreadcrumbs";
|
||||||
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
import { ProfileHeader } from "@components/ProfileHeader/ProfileHeader";
|
||||||
import { VacancyTab } from "@components/VacancyTab/VacancyTab";
|
|
||||||
import { VacancyItem } from "@components/VacancyItem/VacancyItem";
|
import { VacancyItem } from "@components/VacancyItem/VacancyItem";
|
||||||
|
import { VacancyTab } from "@components/VacancyTab/VacancyTab";
|
||||||
|
|
||||||
import "./OpenRequest.scss";
|
import "./OpenRequest.scss";
|
||||||
|
|
||||||
export const OpenRequest = () => {
|
export const OpenRequest = () => {
|
||||||
const vacancy = [
|
const vacancy = [
|
||||||
{
|
{
|
||||||
name: 'Frontend',
|
name: "Frontend",
|
||||||
count: 15,
|
count: 15,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 1',
|
name: "Laravel Middle+/Senior 1",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 2',
|
name: "Laravel Middle+/Senior 2",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 3',
|
name: "Laravel Middle+/Senior 3",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 4',
|
name: "Laravel Middle+/Senior 4",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 5',
|
name: "Laravel Middle+/Senior 5",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 6',
|
name: "Laravel Middle+/Senior 6",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Backend',
|
name: "Backend",
|
||||||
count: 8,
|
count: 8,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 7',
|
name: "Laravel Middle+/Senior 7",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 8',
|
name: "Laravel Middle+/Senior 8",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Дизайн',
|
name: "Дизайн",
|
||||||
count: 0,
|
count: 0,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 9',
|
name: "Laravel Middle+/Senior 9",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 10',
|
name: "Laravel Middle+/Senior 10",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Аналитика',
|
name: "Аналитика",
|
||||||
count: 0,
|
count: 0,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 11',
|
name: "Laravel Middle+/Senior 11",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 12',
|
name: "Laravel Middle+/Senior 12",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 13',
|
name: "Laravel Middle+/Senior 13",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Тестирование',
|
name: "Тестирование",
|
||||||
count: 0,
|
count: 0,
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 14',
|
name: "Laravel Middle+/Senior 14",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 15',
|
name: "Laravel Middle+/Senior 15",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior 16',
|
name: "Laravel Middle+/Senior 16",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Laravel Middle+/Senior',
|
name: "Laravel Middle+/Senior",
|
||||||
description: 'Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы',
|
description:
|
||||||
level: 'Middle+/Senior',
|
"Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы",
|
||||||
location: 'РФ, РБ',
|
level: "Middle+/Senior",
|
||||||
price: '1500 руб. час',
|
location: "РФ, РБ",
|
||||||
count: '1 сотрудник'
|
price: "1500 руб. час",
|
||||||
|
count: "1 сотрудник"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
];
|
||||||
|
|
||||||
const [activeTab, setActiveTab] = useState('Frontend')
|
const [activeTab, setActiveTab] = useState("Frontend");
|
||||||
return (
|
return (
|
||||||
<div className="open-request">
|
<div className="open-request">
|
||||||
<ProfileHeader />
|
<ProfileHeader />
|
||||||
@ -302,19 +332,25 @@ export const OpenRequest = () => {
|
|||||||
<h2 className="summary__title">Работа в IT открытые запросы</h2>
|
<h2 className="summary__title">Работа в IT открытые запросы</h2>
|
||||||
<div className="vacancy__tabs">
|
<div className="vacancy__tabs">
|
||||||
{vacancy.map((item, index) => {
|
{vacancy.map((item, index) => {
|
||||||
return <VacancyTab title={item.name} count={item.count} active={activeTab}
|
return (
|
||||||
setActive={() => setActiveTab(item.name)} key={index} />
|
<VacancyTab
|
||||||
})
|
title={item.name}
|
||||||
}
|
count={item.count}
|
||||||
|
active={activeTab}
|
||||||
|
setActive={() => setActiveTab(item.name)}
|
||||||
|
key={index}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
})}
|
||||||
</div>
|
</div>
|
||||||
<div className="vacancy__items">
|
<div className="vacancy__items">
|
||||||
{vacancy.map((item) => {
|
{vacancy.map((item) => {
|
||||||
if (item.name === activeTab) {
|
if (item.name === activeTab) {
|
||||||
return item.items.map((vacancy, index) => {
|
return item.items.map((vacancy, index) => {
|
||||||
return <VacancyItem key={index} vacancy={vacancy}/>
|
return <VacancyItem key={index} vacancy={vacancy} />;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return null
|
return null;
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
|
|
||||||
import { Footer } from "@components/Common/Footer/Footer";
|
import { Footer } from "@components/Common/Footer/Footer";
|
||||||
@ -11,7 +10,6 @@ import titleImg from "assets/images/VacancyItemImg.svg";
|
|||||||
import "./vacancy.scss";
|
import "./vacancy.scss";
|
||||||
|
|
||||||
export const Vacancy = () => {
|
export const Vacancy = () => {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="vacancy">
|
<div className="vacancy">
|
||||||
<ProfileHeader />
|
<ProfileHeader />
|
||||||
@ -31,23 +29,46 @@ export const Vacancy = () => {
|
|||||||
<div className="opening">
|
<div className="opening">
|
||||||
<div className="opening__head">
|
<div className="opening__head">
|
||||||
<span className="opening__img">
|
<span className="opening__img">
|
||||||
<img src={titleImg} alt='img' />
|
<img src={titleImg} alt="img" />
|
||||||
</span>
|
</span>
|
||||||
<h4 className="opening__name">Проект представляет из себя монолит с большим техдолгом, нужен php разработчик с опытом распила монолита на модули/микросервисы</h4>
|
<h4 className="opening__name">
|
||||||
|
Проект представляет из себя монолит с большим техдолгом, нужен
|
||||||
|
php разработчик с опытом распила монолита на модули/микросервисы
|
||||||
|
</h4>
|
||||||
</div>
|
</div>
|
||||||
<div className="opening__info">
|
<div className="opening__info">
|
||||||
<div className="opening__description">
|
<div className="opening__description">
|
||||||
<span>Требования :</span>
|
<span>Требования :</span>
|
||||||
<ul>
|
<ul>
|
||||||
<li>Опыт разработки на Golang 2+ года и общий опыт разработки 3+ года;</li>
|
<li>
|
||||||
<li>Понимание устройства языка Go (многопоточность, шедулер, кодогенерация);</li>
|
Опыт разработки на Golang 2+ года и общий опыт разработки 3+
|
||||||
<li>Опыт работы с брокерами сообщений (Kafka, RabbitMQ, Nuts и etc);</li>
|
года;
|
||||||
<li>Опыт работы с реляционными БД (PostgreSQL, ClickHouse и etc);</li>
|
</li>
|
||||||
<li>Знание сетевого стека и основных сетевых протоколов на высоком уровне;</li>
|
<li>
|
||||||
<li>Опыт работы с различными средствами автоматизации для процессов разработки (Nexus, Gitlab registry
|
Понимание устройства языка Go (многопоточность, шедулер,
|
||||||
etc) (необходимо для понимания предметной области);
|
кодогенерация);
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Опыт работы с брокерами сообщений (Kafka, RabbitMQ, Nuts и
|
||||||
|
etc);
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Опыт работы с реляционными БД (PostgreSQL, ClickHouse и
|
||||||
|
etc);
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Знание сетевого стека и основных сетевых протоколов на
|
||||||
|
высоком уровне;
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Опыт работы с различными средствами автоматизации для
|
||||||
|
процессов разработки (Nexus, Gitlab registry etc)
|
||||||
|
(необходимо для понимания предметной области);
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Понимание работы прокси и опыт работы с различными решениями
|
||||||
|
(Nginx, Haproxy, Squid).
|
||||||
</li>
|
</li>
|
||||||
<li>Понимание работы прокси и опыт работы с различными решениями (Nginx, Haproxy, Squid).</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
<div className="opening__blocks">
|
<div className="opening__blocks">
|
||||||
|
@ -2,7 +2,6 @@ import React from "react";
|
|||||||
import { Route, Routes } from "react-router-dom";
|
import { Route, Routes } from "react-router-dom";
|
||||||
|
|
||||||
import { OpenRequest } from "@pages/OpenRequests/OpenRequest";
|
import { OpenRequest } from "@pages/OpenRequests/OpenRequest";
|
||||||
import { Vacancy } from "@pages/Vacancy/Vacancy"
|
|
||||||
import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
|
import { PartnerSettings } from "@pages/PartnerSettings/PartnerSettings";
|
||||||
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
import { PartnerTreaties } from "@pages/PartnerTreaties/PartnerTreaties";
|
||||||
import { Payouts } from "@pages/Payouts/Payouts";
|
import { Payouts } from "@pages/Payouts/Payouts";
|
||||||
@ -14,6 +13,7 @@ import { QuizReportPage } from "@pages/Quiz/QuizReportPage";
|
|||||||
import Statistics from "@pages/Statistics/Statistics";
|
import Statistics from "@pages/Statistics/Statistics";
|
||||||
import { Summary } from "@pages/Summary/Summary";
|
import { Summary } from "@pages/Summary/Summary";
|
||||||
import { Tracker } from "@pages/Tracker/Tracker";
|
import { Tracker } from "@pages/Tracker/Tracker";
|
||||||
|
import { Vacancy } from "@pages/Vacancy/Vacancy";
|
||||||
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
import { ViewReport } from "@pages/ViewReport/ViewReport";
|
||||||
|
|
||||||
import TicketFullScreen from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
|
import TicketFullScreen from "@components/Modal/Tracker/TicketFullScreen/TicketFullScreen";
|
||||||
|
Loading…
Reference in New Issue
Block a user