diff --git a/src/components/Candidate/Candidate.js b/src/components/Candidate/Candidate.js index f0c31be6..fe960887 100644 --- a/src/components/Candidate/Candidate.js +++ b/src/components/Candidate/Candidate.js @@ -4,6 +4,8 @@ import {useSelector, useDispatch} from 'react-redux' import SkillSection from '../SkillSection/SkillSection' import Sidebar from '../CandidateSidebar/CandidateSidebar' +import {ProfileHeader} from "../ProfileHeader/ProfileHeader"; +import {ProfileBreadcrumbs} from "../ProfileBreadcrumbs/ProfileBreadcrumbs"; import {Footer} from '../Footer/Footer' import {currentCandidate, selectCurrentCandidate,} from '../../redux/outstaffingSlice' @@ -11,15 +13,16 @@ import {currentCandidate, selectCurrentCandidate,} from '../../redux/outstaffing import {apiRequest} from "../../api/request"; import {createMarkup} from "../../helper"; -import arrow from '../../images/right-arrow.png' +import gitImgItem from "../../images/gitItemImg.png" import rectangle from '../../images/rectangle_secondPage.png' import front from '../Outstaffing/images/front_end.png' import back from '../Outstaffing/images/back_end.png' import design from '../Outstaffing/images/design.png' +import rightArrow from "../../images/arrowRight.png" + +import {LEVELS, SKILLS} from '../../constants/constants' import './candidate.scss' -import {LogoutButton} from "../LogoutButton/LogoutButton"; -import {Header} from "../Header/Header"; const Candidate = () => { @@ -87,19 +90,28 @@ const Candidate = () => { const {header, img, classes} = setStyles(); return ( - <> -
+
+
+
-
navigate('/')}> -
- -
-
- Вернуться к списку +
+

{currentCandidateObj.specification}{SKILLS[currentCandidateObj.position_id]} {LEVELS[currentCandidateObj.level]}

+
navigate('/profile/catalog')}> +
+ +
+
+ Вернуться к списку +
@@ -145,35 +157,59 @@ const Candidate = () => {
-
-
- Vuetifyis.com -
Forked from - peluprvi/vuetifyjs.com
Vuetifyjs.com - documentation -
-
Angular
-
+
+

Страница портфолио кода разработчика

-
- Vuetifyis.com -
Forked from - peluprvi/vuetifyjs.com
Vuetifyjs.com - documentation + +
+
+ img +
+
cybershop-api
+

Реактивная социальная сеть

+
+
+
+ arrow +
-
Angular
-
+ JavaScript +
-
- Vuetifyis.com -
Forked from - peluprvi/vuetifyjs.com
Vuetifyjs.com - documentation + +
+
+ img +
+
cybershop-api
+

Реактивная социальная сеть

+
+
+
+ arrow +
-
Laravel
-
+ JavaScript + +
+
+ +
+
+ img +
+
cybershop-api
+

Реактивная социальная сеть

+
+
+
+ arrow +
+
+ JavaScript +
@@ -185,7 +221,7 @@ const Candidate = () => {
- +
) }; diff --git a/src/components/Candidate/candidate.scss b/src/components/Candidate/candidate.scss index fb96f566..413a9006 100644 --- a/src/components/Candidate/candidate.scss +++ b/src/components/Candidate/candidate.scss @@ -1,12 +1,22 @@ -@use 'sass:math'; +@use 'sass:math'; .candidate { + padding-top: 23px; + + &__wrapper { + background: #F1F1F1; + min-height: 100vh; + } &__header { display: flex; - align-items: center; justify-content: space-between; - margin-top: 120px; + + &__left { + h3 { + margin-bottom: 30px; + } + } } &__main { @@ -86,14 +96,26 @@ &__arrow { display: flex; - justify-content: space-between; align-items: center; cursor: pointer; &-img { - margin-right: 10px; + width: 48px; + height: 48px; + display: flex; + justify-content: center; + align-items: center; + background: #D3E4BC; + border-radius: 50px; + margin-right: 20px; + + img { + transform: rotate(180deg); + } } &-sp { - font-size: 14px; + font-size: 12px; + color: #5B6871; + max-width: 75px; } } @@ -279,7 +301,7 @@ } -.candidate__works{ +.candidate__works{ @media (min-width: 576px) { padding: 0 0 45px 0; } @@ -288,13 +310,26 @@ display: flex; flex-wrap: wrap; margin: 0 -15px -30px; + column-gap: 10px; + row-gap: 15px; + + &__info { + width: 100%; + background: #E1FCCF; + border-radius: 12px 12px 0px 0px; + padding: 20px 0 20px 50px; + + p { + font-weight: 400; + font-size: 18px; + line-height: 32px; + } + } } .item-works{ display: flex; flex-direction: column; - padding: 0 15px; - margin: 0 0 30px 0; - flex: 0 1 50%; + flex: 0 1 49%; position: relative; @media (max-width: 761px) { @@ -302,60 +337,79 @@ } &__body{ - padding: 17px; - border: 2px solid #54b611; - border-radius: 10px; - - &::before{ - content: ""; - position: absolute; - top: -2px; - left: 25px; - height: 5px; - width: 29px; - border-radius: 3px; - background-color: #54b611; - } - } - - &__link{ - color: #0350dc; - font-family: "GT Eesti Pro Display", sans-serif; - font-size: 16px; - font-weight: 400; - letter-spacing: normal; - line-height: math.div(36,16); - text-decoration: underline; - display: block; - margin-bottom: 17px; - } - &__text{ - margin-bottom: 37px; - color: #000000; - font-family: "GT Eesti Pro Display - Thin", sans-serif; - font-size: 12px; - font-weight: 400; - line-height: math.div(18,12); - } - &__mark{ - font-size: 13px; display: flex; - align-items: center; - column-gap: 7px; - line-height: math.div(36,13); + flex-direction: column; + background: #FFFFFF; + height: 170px; + padding: 25px 40px 25px 25px; + border-radius: 12px; + justify-content: space-between; - &::before{ - border-radius: 50%; - content: ""; - width: 13px; - height: 13px; - background-color: #73c141; + &:hover { + text-decoration: none; + } + + &__head { + display: flex; + justify-content: space-between; + + &__arrow { + width: 48px; + height: 48px; + display: flex; + align-items: center; + justify-content: center; + border-radius: 50px; + background: #DDEEC6; + margin: auto 0; + } + } + + &__info { + display: flex; + position: relative; + align-items: start; + img { + margin-top: 15px; + } + + &:after { + content: ""; + position: absolute; + width: 100%; + height: 8px; + border-radius: 12px; + background: #D4F123; + bottom: -36%; + left: 10%; + } + + } + + &__project { + margin-left: 15px; + h5 { + font-weight: 700; + font-size: 18px; + line-height: 32px; + color: #000000; + } + + p { + font-weight: 300; + font-size: 16px; + line-height: 22px; + max-width: 120px; + color: #000000; + } + } + + span { + font-weight: 400; + font-size: 14px; + line-height: 32px; + color: #000000; + text-align: end; } - &_yellow{ - &::before{ - background-color: #e09f14; - } - } - } -} \ No newline at end of file +} diff --git a/src/components/CandidateSidebar/candidateSidebar.scss b/src/components/CandidateSidebar/candidateSidebar.scss index 7ec6eb60..df692839 100644 --- a/src/components/CandidateSidebar/candidateSidebar.scss +++ b/src/components/CandidateSidebar/candidateSidebar.scss @@ -2,9 +2,10 @@ display: flex; flex-direction: column; align-items: center; - border: 2px solid whitesmoke; + border-radius: 12px; border-bottom: none !important; position: sticky; + background: #FFFFFF; top: 80px; &__position { diff --git a/src/components/Footer/Footer.js b/src/components/Footer/Footer.js index acfec754..947c4e88 100644 --- a/src/components/Footer/Footer.js +++ b/src/components/Footer/Footer.js @@ -1,52 +1,49 @@ import React from 'react' -import align from '../../images/align-left.png' -import phone from '../../images/phone.png' -import telegram from '../../images/telegram.png' +import logo from '../../images/logoGuild.png' +import vk from '../../images/vkLogo.svg' +import tg from '../../images/tgLogo.svg' +import email from '../../images/emailLogo.svg' import './footer.scss' export const Footer = () => { return ( -
-
-
-
-
- +
+
+
+ logo +

Подберем и документально оформим IT-специалистов, после чего передадим исполнителей под ваше руководство. + Вы получаете полное управление над сотрудниками, имея возможность контролировать и заменять IT штат.

+
+ © {new Date().getFullYear()} - Все права защищены
-
- - Подберем и документально оформим IT-специалистов, после чего - передадим исполнителей под ваше руководство. Вы получаете - полное управление над сотрудниками, имея возможность - контролировать и заменять IT штат.{' '} - +
+
+
+ +

Войти в команду

+
+
- -
-
- - -
-
- -
-
- - +7 495 156 78 98 - -

Будни с 9:00 до 21:00

-
-
-
-
- {new Date().getFullYear()} © Outstaffing
-
) } diff --git a/src/components/Footer/footer.scss b/src/components/Footer/footer.scss index 5b46f629..86b09463 100644 --- a/src/components/Footer/footer.scss +++ b/src/components/Footer/footer.scss @@ -1,99 +1,215 @@ -.footer { - margin-top: -3rem; +footer { + border-top: 1px solid #EBEBEB; + padding: 35px 0 50px; +} - &__left { +.footer { + + &__top { + display: flex; + align-items: start; + + @media (max-width: 620px) { + flex-direction: column; + align-items: center; + row-gap: 15px; + } + + p { + max-width: 620px; + margin-left: 33px; + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #5B6871; + + @media (max-width: 620px) { + margin-left: 0; + text-align: center; + } + } + } + + &__bottom { + display: flex; + align-items: center; + margin-top: 22px; + justify-content: space-between; + + @media (max-width: 590px) { + flex-direction: column; + } + } + + &__social { + display: flex; + align-items: center; + + @media (max-width: 590px) { + flex-direction: column; + justify-content: center; + } + + &__icons { + display: flex; + column-gap: 10px; + } + + p { + cursor: pointer; + margin-left: 60px; + font-weight: 500; + font-size: 14px; + line-height: 33px; + + @media (max-width: 590px) { + margin-left: 0; + } + } + } + + &__info { display: flex; align-items: center; } - &__description { - padding: 0 100px 0 34px; - - span { - color: #18586e; - font-family: 'GT Eesti Pro Display'; - font-size: 1.6em; - font-weight: 400; - font-style: normal; - letter-spacing: normal; - line-height: 16.81px; - text-align: left; - } - } - - &__icon { - text-align: end; - - img { - margin-left: 20px; - } - } - - &__right { + &__mail { display: flex; - flex-direction: column; - align-items: left; + align-items: center; + column-gap: 13px; + + p { + font-weight: 400; + font-size: 12px; + line-height: 16px; + color: #5B6871; + } } - &__phone { - color: #003b65; - font-family: 'CeraPro'; - font-size: 2.1em; - letter-spacing: normal; - line-height: 25px; - text-align: left; - } - - &__working-hours { - color: #003b65; - font-family: 'CeraPro'; - font-size: 1.2em; + &__policy { font-weight: 400; - font-style: normal; - letter-spacing: normal; - line-height: normal; - margin-left: 24px; + font-size: 10px; + line-height: 16px; + color: #5B6871; + margin-left: 150px; + + @media (max-width: 720px) { + margin-left: 30px; + } + + &:hover { + color: #5B6871; + text-decoration: none; + } } &__copyright { - padding: 1rem 1rem 1rem 5.6rem; - font-family: 'Muller'; - font-weight: 300; - font-size: 1.2em; - } -} + margin-left: auto; -@media (max-width: 1199px) { - .footer { - &__left { - margin-bottom: 20px; + @media (max-width: 910px) { + min-width: 142px; + margin-left: 15px; + } + + @media (max-width: 620px) { + margin-left: 0; } } + //margin-top: -3rem; + // + //&__left { + // display: flex; + // align-items: center; + //} + // + //&__description { + // padding: 0 100px 0 34px; + // + // span { + // color: #18586e; + // font-family: 'GT Eesti Pro Display'; + // font-size: 1.6em; + // font-weight: 400; + // font-style: normal; + // letter-spacing: normal; + // line-height: 16.81px; + // text-align: left; + // } + //} + // + //&__icon { + // text-align: end; + // + // img { + // margin-left: 20px; + // } + //} + // + //&__right { + // display: flex; + // flex-direction: column; + // align-items: left; + //} + // + //&__phone { + // color: #003b65; + // font-family: 'CeraPro'; + // font-size: 2.1em; + // letter-spacing: normal; + // line-height: 25px; + // text-align: left; + //} + // + //&__working-hours { + // color: #003b65; + // font-family: 'CeraPro'; + // font-size: 1.2em; + // font-weight: 400; + // font-style: normal; + // letter-spacing: normal; + // line-height: normal; + // margin-left: 24px; + //} + // + //&__copyright { + // padding: 1rem 1rem 1rem 5.6rem; + // font-family: 'Muller'; + // font-weight: 300; + // font-size: 1.2em; + //} } -@media (max-width: 575.98px) { - .footer { - &__left { - margin-top: 80px; - } - - &__description { - padding: 0; - margin-left: 10px; - - span { - font-size: 1.2em; - } - } - - &__icon { - img { - margin-left: 10px; - } - } - - &__right { - margin-bottom: 20px; - } - } -} +//@media (max-width: 1199px) { +// .footer { +// &__left { +// margin-bottom: 20px; +// } +// } +//} +// +//@media (max-width: 575.98px) { +// .footer { +// &__left { +// margin-top: 80px; +// } +// +// &__description { +// padding: 0; +// margin-left: 10px; +// +// span { +// font-size: 1.2em; +// } +// } +// +// &__icon { +// img { +// margin-left: 10px; +// } +// } +// +// &__right { +// margin-bottom: 20px; +// } +// } +//} diff --git a/src/components/Outstaffing/Outstaffing.js b/src/components/Outstaffing/Outstaffing.js index 82de44c7..bb8cb335 100644 --- a/src/components/Outstaffing/Outstaffing.js +++ b/src/components/Outstaffing/Outstaffing.js @@ -45,7 +45,7 @@ const Outstaffing = () => { tagsArr.flat().filter((tag) => tag.name === 'skills_front') } img={front} - header='Frontend' + header='Frontend разработчики' positionId='2' isSelected={positionId === '2'} onSelect={(id) => onSelectPosition(id)} @@ -58,7 +58,7 @@ const Outstaffing = () => { tagsArr.flat().filter((tag) => tag.name === 'skills_back') } img={back} - header='Backend' + header='Backend разработчики' positionId='1' isSelected={positionId === '1'} onSelect={(id) => onSelectPosition(id)} @@ -71,7 +71,7 @@ const Outstaffing = () => { tagsArr.flat().filter((tag) => tag.name === 'skills_design') } img={design} - header='Дизайн' + header='Дизайн проектов' positionId='5' isSelected={positionId === '5'} onSelect={(id) => onSelectPosition(id)} diff --git a/src/components/OutstaffingBlock/outstaffingBlock.scss b/src/components/OutstaffingBlock/outstaffingBlock.scss index 98e8f0c2..40440084 100644 --- a/src/components/OutstaffingBlock/outstaffingBlock.scss +++ b/src/components/OutstaffingBlock/outstaffingBlock.scss @@ -1,7 +1,10 @@ +body { + font-family: 'LabGrotesque', sans-serif !important; +} + .container { max-width: 1160px !important; } - .catalog { background: #F1F1F1; height: 100%; @@ -54,15 +57,16 @@ h3 { position: absolute; - right: 25%; - top: 40%; + right: 13%; + top: 30%; + max-width: 130px; font-family: 'GT Eesti Pro Display'; font-size: 18px; font-weight: 400; font-style: normal; letter-spacing: normal; line-height: normal; - text-align: left; + text-align: center; } img { diff --git a/src/components/ProfileHeader/ProfileHeader.js b/src/components/ProfileHeader/ProfileHeader.js index 270ad839..8bbca704 100644 --- a/src/components/ProfileHeader/ProfileHeader.js +++ b/src/components/ProfileHeader/ProfileHeader.js @@ -9,6 +9,8 @@ import {getRole} from "../../redux/roleSlice"; import {urlForLocal} from "../../helper"; +import avatarMok from "../../pages/PartnerTreaties/Images/avatarMok.png" + import './profileHeader.scss' @@ -129,7 +131,7 @@ export const ProfileHeader = () => { } - avatar + avatar
diff --git a/src/images/emailLogo.svg b/src/images/emailLogo.svg new file mode 100644 index 00000000..9d8eac36 --- /dev/null +++ b/src/images/emailLogo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/images/logoGuild.png b/src/images/logoGuild.png new file mode 100644 index 00000000..c8fd34ad Binary files /dev/null and b/src/images/logoGuild.png differ diff --git a/src/images/tgLogo.svg b/src/images/tgLogo.svg new file mode 100644 index 00000000..c414d9b7 --- /dev/null +++ b/src/images/tgLogo.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/images/vkLogo.svg b/src/images/vkLogo.svg new file mode 100644 index 00000000..2ccb8ab1 --- /dev/null +++ b/src/images/vkLogo.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/pages/PartnerBid/PartnerBid.js b/src/pages/PartnerBid/PartnerBid.js index 817a7e9e..674fb549 100644 --- a/src/pages/PartnerBid/PartnerBid.js +++ b/src/pages/PartnerBid/PartnerBid.js @@ -113,7 +113,7 @@ export const PartnerBid = () => {
{mokPersons.map((person, index) => { - return
+ return avatar

{person.name}

@@ -122,7 +122,7 @@ export const PartnerBid = () => {
-
+ }) }
diff --git a/src/pages/PartnerBid/partnerBid.scss b/src/pages/PartnerBid/partnerBid.scss index 412d8cd7..7a79cce3 100644 --- a/src/pages/PartnerBid/partnerBid.scss +++ b/src/pages/PartnerBid/partnerBid.scss @@ -343,6 +343,10 @@ background: #FFFFFF; border-radius: 12px; + &:hover { + text-decoration: none; + } + img { width: 88px; height: 88px; diff --git a/src/pages/PartnerEmployees/PartnerEmployees.js b/src/pages/PartnerEmployees/PartnerEmployees.js index 64c08f4d..1cc064ce 100644 --- a/src/pages/PartnerEmployees/PartnerEmployees.js +++ b/src/pages/PartnerEmployees/PartnerEmployees.js @@ -42,9 +42,9 @@ export const PartnerEmployees = () => {
img

Данные и резюме

-
+ arrow -
+
diff --git a/src/pages/PartnerEmployees/partnerEmployees.scss b/src/pages/PartnerEmployees/partnerEmployees.scss index 45933eb1..6334a830 100644 --- a/src/pages/PartnerEmployees/partnerEmployees.scss +++ b/src/pages/PartnerEmployees/partnerEmployees.scss @@ -50,11 +50,23 @@ } &__info { + position: relative; display: flex; padding: 15px 50px 14px 16px; width: 100%; justify-content: space-between; + &:after { + content: ''; + position: absolute; + background: #52B709; + border-radius: 12px; + height: 4px; + width: 51%; + top: 0; + right: 0; + } + &__qualification { display: flex; flex-direction: column; diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index aa163181..78bbee0f 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -15,6 +15,7 @@ import summaryIcon from "../../images/summaryIcon.png" import timerIcon from "../../images/timerIcon.png" import paymentIcon from "../../images/paymentIcon.png" import settingIcon from "../../images/settingIcon.png" +import avatarMok from "../PartnerTreaties/Images/avatarMok.png" import rightArrow from "../../images/arrowRight.png" @@ -105,7 +106,7 @@ export const Profile = () => {
- avatar + avatar

{user === 'developer' ? {profileInfo.fio}, {profileInfo.specification} разработчик diff --git a/src/pages/Summary/Summary.js b/src/pages/Summary/Summary.js index 47ba3787..c16de31c 100644 --- a/src/pages/Summary/Summary.js +++ b/src/pages/Summary/Summary.js @@ -4,16 +4,17 @@ import {ProfileHeader} from "../../components/ProfileHeader/ProfileHeader"; import {getProfileInfo} from "../../redux/outstaffingSlice"; import {ProfileBreadcrumbs} from "../../components/ProfileBreadcrumbs/ProfileBreadcrumbs" import {Footer} from '../../components/Footer/Footer' -import {transformHtml, urlForLocal} from "../../helper"; +import { urlForLocal} from "../../helper"; import arrow from "../../images/right-arrow.png"; import rightArrow from "../../images/arrowRight.png" import gitImgItem from "../../images/gitItemImg.png" -import './summary.scss' import {apiRequest} from "../../api/request"; import {Navigate} from "react-router-dom"; +import './summary.scss' + export const Summary = () => { if(localStorage.getItem('role_status') === '18') { return diff --git a/src/pages/Tracker/tracker.scss b/src/pages/Tracker/tracker.scss index e587fd55..d0515f06 100644 --- a/src/pages/Tracker/tracker.scss +++ b/src/pages/Tracker/tracker.scss @@ -79,9 +79,9 @@ background: white; border-radius: 12px 12px 5px 5px; position: relative; - height: 70px; + height: 73px; display: flex; - top: -10px; + top: -13px; align-items: center; p {