diff --git a/src/App.js b/src/App.js index fc52954..707a657 100644 --- a/src/App.js +++ b/src/App.js @@ -27,6 +27,7 @@ import CompanyDetailView from "./components/pages/studentPage/Company/detail"; import NoticeView from "./components/pages/studentPage/Notice"; import CompanyView from "./components/pages/studentPage/Company/index"; import EmploymentStatus from "./components/pages/studentPage/employmentStatus"; +import Select from "./components/pages/studentPage/auth/Select"; function App() { const queryClient = new QueryClient(); return ( @@ -84,6 +85,10 @@ function App() { path="/company/manage/user/:teacherId" element={} /> + } + /> diff --git a/src/components/common/header/index.jsx b/src/components/common/header/index.jsx index 5be1532..3c45f52 100644 --- a/src/components/common/header/index.jsx +++ b/src/components/common/header/index.jsx @@ -5,6 +5,13 @@ import { useNavigate } from "react-router-dom"; const Header = (props) => { const { title, description } = props; const navigate = useNavigate(); + const menu = [ + { menu: "메인페이지", url: "/student" }, + { menu: "모집공고", url: "/student/notice" }, + { menu: "기업 목록", url: "/student/company" }, + { menu: "로그인", url: "/student/login" }, + { menu: "회원가입", url: "/student/signup" }, + ]; return ( <> @@ -16,6 +23,19 @@ const Header = (props) => { src={LogoImage} alt="로고이미지입니다." /> + + {menu.map((nav) => ( + <> + { + navigate(nav.url); + }} + > + {nav.menu} + + > + ))} + {title} @@ -37,6 +57,22 @@ const LogoImg = styled.img` width: 115px; height: 43px; `; +const MenuProps = styled.ul` + width: 509px; + height: 18px; + display: flex; + justify-content: space-between; +`; +const Menu = styled.li` + font-family: "Nanum Gothic", sans-serif; + font-weight: 400; + font-size: 16px; + line-height: 16px; + list-style: none; + position: relative; + color: ${(props) => props.theme.colors.white}; + filter: drop-shadow(0px 0px 25px rgba(0, 0, 0, 0.75)); +`; const Nav = styled.div` width: 100%; display: inline-flex; diff --git a/src/components/pages/companyPage/auth/signIn/index.jsx b/src/components/pages/companyPage/auth/signIn/index.jsx index a88817d..0dd4836 100644 --- a/src/components/pages/companyPage/auth/signIn/index.jsx +++ b/src/components/pages/companyPage/auth/signIn/index.jsx @@ -182,12 +182,12 @@ const CompanySignIn = () => { {hint.show ? <>{hint.str}> : <>{"비밀번호 힌트 보기 >"}>} - + {/* Forgot Password? - + */} submit()}>Login @@ -196,7 +196,7 @@ const CompanySignIn = () => { - 기업 등록 + Company Register @@ -318,7 +318,7 @@ const HighlightText = styled.span` cursor: ${(props) => props.cursor}; margin-left: 10px; - div { + a { text-decoration: none; color: #7243ff; } diff --git a/src/components/pages/studentPage/Company/detail.jsx b/src/components/pages/studentPage/Company/detail.jsx index a94a85c..68df8cf 100644 --- a/src/components/pages/studentPage/Company/detail.jsx +++ b/src/components/pages/studentPage/Company/detail.jsx @@ -129,7 +129,7 @@ const CompanyDetailView = () => { <> {data ? ( <> - + { 특기사항 - ㅓㅗ머ㅗ나ㅓ롸ㅣㅓㅁㄴ오ㅓㅏㅣㄻ놔ㅣㅓㅇㅁㄴ롸ㅣㄴㅁㅇ뢀ㅇ노ㅓㅏ나ㅓ롸ㅣㅓㅁㄴ오ㅓㅏㅣㄻ놔ㅣㅓㅇㅁㄴ롸ㅣㄴㅁㅇ뢀ㅇ노ㅓㅏ + 프론트엔드 뽑고 있습니다. 인원 수 - 10명 + 5명 @@ -233,13 +233,13 @@ const CompanyDetailView = () => { - + - ㅓㅗ머ㅗ나ㅓ롸ㅣㅓㅁㄴ오ㅓㅏㅣㄻ놔ㅣㅓㅇㅁㄴ롸ㅣㄴㅁㅇ뢀ㅇ노ㅓㅏ나ㅓ롸ㅣㅓㅁㄴ오ㅓㅏㅣㄻ놔ㅣㅓㅇㅁㄴ롸ㅣㄴㅁㅇ뢀ㅇ노ㅓㅏ + 면접 내내 직원들이 정말 상냥하고 편하게 대해주셔서 정말 뜻깊은 시간이었던 것 같아요! - 2022-10-03 + 2022-12-14 5.0 diff --git a/src/components/pages/studentPage/Introduce_company.jsx b/src/components/pages/studentPage/Introduce_company.jsx index 39775db..8f9cc78 100644 --- a/src/components/pages/studentPage/Introduce_company.jsx +++ b/src/components/pages/studentPage/Introduce_company.jsx @@ -49,7 +49,7 @@ const IC_View = ({ IC_data }) => { {Data.title} {Data.number} - {Data.year} + {/* {Data.year} */} {Data.isLeading && } @@ -142,15 +142,15 @@ const Flex_box = styled.div` const IC_sub_title = styled.span` font-family: "NanumGothic"; - font-weight: 400; - font-size: 16px; + font-weight: 700; + font-size: 24px; line-height: 18px; color: ${(props) => props.color || "#000000"}; `; const Introduce_box = styled.span` width: 400px; - height: 52px; + height:60px; font-weight: 400; font-size: 16px; line-height: 160%; diff --git a/src/components/pages/studentPage/Main/index.jsx b/src/components/pages/studentPage/Main/index.jsx index a0723c8..d308a6b 100644 --- a/src/components/pages/studentPage/Main/index.jsx +++ b/src/components/pages/studentPage/Main/index.jsx @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from "react"; +import React from "react"; import styled from "styled-components"; import axios from "axios"; import CA_View from "../Announcement.jsx"; @@ -12,10 +12,8 @@ import LoadingPage from "../../../common/loading"; import ErrorPage from "../../../common/error"; import { useNavigate } from "react-router-dom"; import { initialCompany, initialNotice } from "../../../../export/data.js"; -import NoticeModal from "../NoticeModal.jsx"; const MainView = () => { const accessToken = sessionStorage.getItem("accessToken"); - const [noticeID, setNoticeID] = useState(""); const { status, data } = useQuery(["mainData", accessToken], async () => { let res = [{}, {}]; @@ -95,7 +93,7 @@ const MainView = () => { }} > diff --git a/src/components/pages/studentPage/NoticeModal.jsx b/src/components/pages/studentPage/NoticeModal.jsx index c8305e8..14d4b64 100644 --- a/src/components/pages/studentPage/NoticeModal.jsx +++ b/src/components/pages/studentPage/NoticeModal.jsx @@ -28,8 +28,6 @@ const NoticeModal = ({ datum, setNoticeID }) => { const [data, setData] = useState(initialNoticeDetail); - console.log(datum); - useEffect(() => { axios({ url: BaseUrl + `/notice/${datum.id}`, @@ -107,13 +105,15 @@ const NoticeModal = ({ datum, setNoticeID }) => { ]; return ( - - { + { + if (e.target.id === "background") { document.querySelector("html").classList.remove("scrollban"); setNoticeID({ id: "", company: "" }); - }} - > + } + }} + > + { @@ -129,7 +129,16 @@ const NoticeModal = ({ datum, setNoticeID }) => { @@ -290,7 +299,7 @@ const NoticeModal = ({ datum, setNoticeID }) => { {data.attachmentFileList.map((info) => ( - + {info.fileName} @@ -312,6 +321,7 @@ const DelBtn = styled.div` position: absolute; right: 30px; font-size: 50px; + cursor: pointer; font-weight: 700; `; @@ -519,6 +529,7 @@ const CompanyImg = styled.img` height: 100%; object-fit: contain; border-radius: 10px; + background-color: #fff; `; // 이미지 const ImageList = styled.div` width: 100%; @@ -571,6 +582,7 @@ const Notice = styled.div` flex-direction: column; align-items: center; margin-bottom: 100px; + z-index: 99; `; // 모달창 배경 const Blur = styled.div` position: absolute; diff --git a/src/components/pages/studentPage/auth/Select/SelectContainer/index.jsx b/src/components/pages/studentPage/auth/Select/SelectContainer/index.jsx new file mode 100644 index 0000000..eeb33f4 --- /dev/null +++ b/src/components/pages/studentPage/auth/Select/SelectContainer/index.jsx @@ -0,0 +1,85 @@ +import { Link, useNavigate } from "react-router-dom"; +import styled from "styled-components"; + +const SelectContainer = ({ img, title, description, url }) => { + const navigate = useNavigate(); + return ( + <> + + + + + + {title} + {description}{" "} + + navigate(`/${url}`)}>이동하기{" "} + + + > + ); +}; + +export default SelectContainer; + +const MainDiv = styled.div` + width: 450px; + height: 580px; + background-color: #f5f5f5; + display: flex; + flex-direction: column; + align-items: center; + border-radius: 8px; + hr { + margin: 30px 0 0 0; + width: 70px; + height: 1px; + border: none; + background-color: #d3d3d3; + } +`; + +const SubmitBtn = styled.button` + width: 153px; + height: 42px; + display: flex; + justify-content: center; + align-items: center; + background-color: ${(props) => props.theme.colors.plum}; + border: none; + border-radius: 6px; + margin-top: 84px; + color: #fdfdfd; + cursor: pointer; + font-size: 20px; +`; + +const Description = styled.div` + margin-top: 33px; + font-size: 18px; + color: #929292; + font-weight: 700; + text-align: center; +`; + +const Title = styled.div` + margin-top: 26px; + font-size: 24px; + font-weight: 600; +`; + +const Profile = styled.div` + width: 150px; + background-color: #fdfdfd; + height: 150px; + border-radius: 50%; + display: flex; + justify-content: center; + align-items: center; + margin-top: 60px; + img { + width: 64px; + height: 64px; + object-fit: cover; + } +`; diff --git a/src/components/pages/studentPage/auth/Select/index.jsx b/src/components/pages/studentPage/auth/Select/index.jsx new file mode 100644 index 0000000..14ded57 --- /dev/null +++ b/src/components/pages/studentPage/auth/Select/index.jsx @@ -0,0 +1,56 @@ +import styled from "styled-components"; +import SelectContainer from "./SelectContainer"; +import companyImg from "../../../../../images/company.png"; +import teacherImg from "../../../../../images/teacher.png"; + +const Select = () => { + const data = [ + { + img: teacherImg, + title: "선생님 로그인", + description: ( + <> + 선생님으로 로그인하여 사이트를 관리해보세요! + > + ), + url: "teacher/login", + }, + { + img: companyImg, + title: "기업 로그인", + description: ( + <> + 기업으로 로그인하여 채용 공고를 등록해보세요! + > + ), + url: "company/login", + }, + ]; + return ( + <> + + {data.map((item) => ( + + ))} + + > + ); +}; + +export default Select; + +const MainDiv = styled.div` + width: 100vw; + height: 100vh; + background-size: cover; + display: inline-flex; + justify-content: center; + background-image: url("data:image/svg+xml,%3Csvg width='1920' height='1080' viewBox='0 0 1920 1080' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cg clip-path='url(%23clip0_2086_9)'%3E%3Crect width='1920' height='1080' fill='white'/%3E%3Crect width='1920' height='1080' fill='white'/%3E%3Cmask id='path-2-inside-1_2086_9' fill='white'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1174.6 0H1911.89C1916.31 0 1919.89 3.58172 1919.89 8V1088.78L575 1237L1174.6 0Z'/%3E%3C/mask%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M1174.6 0H1911.89C1916.31 0 1919.89 3.58172 1919.89 8V1088.78L575 1237L1174.6 0Z' fill='%23AB91F8'/%3E%3Cpath d='M1174.6 0V-2H1173.35L1172.8 -0.872366L1174.6 0ZM1919.89 1088.78L1920.11 1090.77L1921.89 1090.57V1088.78H1919.89ZM575 1237L573.2 1236.13L571.622 1239.38L575.219 1238.99L575 1237ZM1174.6 2H1911.89V-2H1174.6V2ZM1911.89 2C1915.21 2 1917.89 4.6863 1917.89 8H1921.89C1921.89 2.47714 1917.42 -2 1911.89 -2V2ZM1917.89 8V1088.78H1921.89V8H1917.89ZM1919.68 1086.79L574.781 1235.01L575.219 1238.99L1920.11 1090.77L1919.68 1086.79ZM576.8 1237.87L1176.4 0.872366L1172.8 -0.872366L573.2 1236.13L576.8 1237.87Z' fill='white' mask='url(%23path-2-inside-1_2086_9)'/%3E%3C/g%3E%3Cdefs%3E%3CclipPath id='clip0_2086_9'%3E%3Crect width='1920' height='1080' fill='white'/%3E%3C/clipPath%3E%3C/defs%3E%3C/svg%3E%0A"); + align-items: center; + gap: 50px; +`; diff --git a/src/components/pages/studentPage/auth/signIn/index.jsx b/src/components/pages/studentPage/auth/signIn/index.jsx index 13dcd51..9c5d404 100644 --- a/src/components/pages/studentPage/auth/signIn/index.jsx +++ b/src/components/pages/studentPage/auth/signIn/index.jsx @@ -116,14 +116,16 @@ const StudentSignIn = () => { ))} > - - Are you - - - - Teacher? - - + + + Are not you a + + + + Student? + + + submit()}>Login @@ -256,6 +258,9 @@ const HighlightDiv = styled.span` justify-content: flex-end; font-weight: 600; margin-top: 5px; + p { + text-align: end; + } `; const Submit = styled.div` diff --git a/src/components/pages/studentPage/auth/signUp/index.jsx b/src/components/pages/studentPage/auth/signUp/index.jsx index 69d570e..149ee31 100644 --- a/src/components/pages/studentPage/auth/signUp/index.jsx +++ b/src/components/pages/studentPage/auth/signUp/index.jsx @@ -228,14 +228,16 @@ const StudentSignUp = () => { ))} > - - Are you a - - - - Teacher? - - + + + Are not you a + + + + Student? + + + submit()}>SignUp @@ -369,10 +371,13 @@ const HighlightDiv = styled.span` justify-content: flex-end; margin-top: 5px; font-weight: 600; + p { + text-align: end; + } `; const Submit = styled.div` - margin-top: 37px; + margin-top: 10px; font-size: 18px; font-weight: 500; button { diff --git a/src/components/pages/teacherPage/auth/signIn/index.jsx b/src/components/pages/teacherPage/auth/signIn/index.jsx index 1d551a2..df28c41 100644 --- a/src/components/pages/teacherPage/auth/signIn/index.jsx +++ b/src/components/pages/teacherPage/auth/signIn/index.jsx @@ -116,12 +116,12 @@ const TeacherSignIn = () => { ))} > - + {/* Forgot Password? - + */} submit()}>Login diff --git a/src/export/data.js b/src/export/data.js index 8975208..24b337a 100644 --- a/src/export/data.js +++ b/src/export/data.js @@ -171,7 +171,7 @@ export const initialCompany = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047896544994664478/image.png", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056364045443162/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -181,7 +181,77 @@ export const initialCompany = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047896784699142174/image.png", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056756762312714/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048056994919104542/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048058046523379782/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060414921015417/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060859798274048/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060964714578014/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060676381356042/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060715606478980/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -264,7 +334,7 @@ export const initialCompanyDetail = { companyLogo: { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047896135374741565/image.png", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056889407189012/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -275,7 +345,7 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912633459814471/b5daae0658da3445fe74871b3ffdc540.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056364045443162/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -285,7 +355,7 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912633141055608/abdcad6d457953cf7b27414eca389337.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056756762312714/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -295,7 +365,7 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912632914554920/648d064683f16838178075b92bd48d3a.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048056994919104542/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -305,7 +375,7 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912632637739028/14e1d9713c5b4c605892a46ab30a15c2.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048058046523379782/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -315,7 +385,7 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912632411234364/2d6f3315e8bc0050339a5a695e09c2c9.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048060414921015417/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -325,7 +395,37 @@ export const initialCompanyDetail = { { fileId: "string", fileUrl: - "https://cdn.discordapp.com/attachments/872481713949917228/1047912632172163092/f77c7e2afc0d2ccca4945157b3970f68.jpg", + "https://cdn.discordapp.com/attachments/872481713949917228/1048060859798274048/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060964714578014/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060676381356042/image.png", + fileType: "FileType", + extension: "string", + fileName: "string", + companyNumber: "string", + companyFileClassificationType: "CompanyFileClassificationType", + }, + { + fileId: "string", + fileUrl: + "https://cdn.discordapp.com/attachments/872481713949917228/1048060715606478980/image.png", fileType: "FileType", extension: "string", fileName: "string", @@ -408,16 +508,16 @@ export const initialNoticeDetail = { otherFeatures: "string?", workPlace: { isSameWithCompanyAddress: false, - otherPlace: "string?", + otherPlace: "대전 유성구 가정북로 76 (대덕소프트웨어마이스터고등학교)", }, applicantCount: 0, attachmentFileList: [ { fileId: "string", - fileUrl: "string", + fileUrl: "https://cdn-icons-png.flaticon.com/512/1388/1388902.png", fileType: "FileType", - extension: "string", - fileName: "string", + extension: "https://cdn.discordapp.com/attachments/872481713949917228/1048065150265069628/Self-introduction_form.hwp", + fileName: "지원서 양식", noticeId: "string", }, ], diff --git a/src/images/company.png b/src/images/company.png new file mode 100644 index 0000000..77dbc29 Binary files /dev/null and b/src/images/company.png differ diff --git a/src/images/teacher.png b/src/images/teacher.png new file mode 100644 index 0000000..096937e Binary files /dev/null and b/src/images/teacher.png differ
+ + Are not you a + + + + Student? + + +