diff --git a/src/assets/images/arrowDown.svg b/src/assets/images/arrowDown.svg
new file mode 100644
index 0000000..b2d146a
--- /dev/null
+++ b/src/assets/images/arrowDown.svg
@@ -0,0 +1,7 @@
+
diff --git a/src/assets/images/moreIcon.png b/src/assets/images/moreIcon.png
deleted file mode 100644
index ccf90ca..0000000
Binary files a/src/assets/images/moreIcon.png and /dev/null differ
diff --git a/src/assets/images/moreIcon.svg b/src/assets/images/moreIcon.svg
new file mode 100644
index 0000000..abb42b7
--- /dev/null
+++ b/src/assets/images/moreIcon.svg
@@ -0,0 +1,5 @@
+
diff --git a/src/components/capsule/SelectToggle.js b/src/components/capsule/SelectToggle.js
index 2217e8d..cfd4b0b 100644
--- a/src/components/capsule/SelectToggle.js
+++ b/src/components/capsule/SelectToggle.js
@@ -1,24 +1,43 @@
import React from "react";
import "react-datepicker/dist/react-datepicker.css";
import styled from "styled-components";
+import ArrowDown from "assets/images/arrowDown.svg"
-export const Select = styled.select`
+const Select = styled.select`
border-radius: 10px;
border: 1px solid #717171;
background: #F6F6F6;
font-family: NanumSquare_ac;
font-size: 18px;
color: #757575;
- padding: 5px;
+ padding: 0 10px;
height: 35px;
+ outline: none;
`
-function SelectToggle(props) {
+const ModalSelect = styled(Select)`
+ width: 280px;
+ border: 2px solid #E6E6E6;
+ appearance: none;
+ -webkit-appearance: none;
+ -moz-appearance: none;
+ background: url('${props => props.imgUrl}') no-repeat right center;
+ background-position: right 10px center;
+ padding: 0 44px 0 10px;
+`
+
+export function SelectToggleInModal(props) {
return (
-
+
);
}
-export default SelectToggle;
\ No newline at end of file
+export function SelectToggle(props) {
+ return (
+
+ );
+}
\ No newline at end of file
diff --git a/src/components/modal/Modal.js b/src/components/modal/Modal.js
new file mode 100644
index 0000000..d199f30
--- /dev/null
+++ b/src/components/modal/Modal.js
@@ -0,0 +1,84 @@
+import styled from 'styled-components';
+
+// Modal이 떴을 때의 배경
+export const ModalBackdrop = styled.div`
+ z-index: 1; //위치지정 요소
+ position: fixed;
+ display : flex;
+ justify-content : center;
+ align-items : center;
+ background-color: rgba(0,0,0,0.4);
+ top : 0;
+ left : 0;
+ right : 0;
+ bottom : 0;
+`
+
+// Modal창
+export const ModalView = styled.div`
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+ border-radius: 10px;
+ width: 500px;
+ background-color: #ffffff;
+ padding: 30px 50px;
+ box-sizing: border-box;
+`
+
+export const TitleContainer = styled.div`
+ width: 100%;
+ display : flex;
+ align-items: center;
+ justify-content: space-between;
+ margin-bottom: 20px;
+`
+
+export const ModalTitle = styled.h2`
+ color: #8741CB;
+ margin: 0;
+`
+
+export const ExitBtn = styled.button`
+ background: none;
+ width: 40px;
+ height: 40px;
+ font-family: NanumSquare_ac;
+ font-size: 40px;
+ border: none;
+ color: #4C4C4C;
+ cursor: pointer;
+ display : flex;
+ justify-content : center;
+ align-items : center;
+`
+
+export const AttrsContainer = styled.div`
+ width: 100%;
+`
+
+export const AttrContainer = styled.div`
+ display : flex;
+ align-items: center;
+ margin-bottom: 20px;
+`
+
+export const AttrLabel = styled.div`
+ width: 120px;
+ font-size: 20px;
+ text-align: left;
+ line-height: 40px;
+`
+
+export const AttrInput = styled.input`
+ border: 2px solid #E6E6E6;
+ border-radius: 10px;
+ height: 35px;
+ width: 280px;
+ font-family: NanumSquare_ac;
+ font-size: 18px;
+ color: #757575;
+ padding: 0 10px;
+ outline: none;
+ box-sizing: border-box;
+`
\ No newline at end of file
diff --git a/src/components/searchBar/ManageSearchBar.js b/src/components/searchBar/ManageSearchBar.js
index 7d3deb7..452b067 100644
--- a/src/components/searchBar/ManageSearchBar.js
+++ b/src/components/searchBar/ManageSearchBar.js
@@ -29,6 +29,7 @@ const ManageSearchImage = styled.img`
`
const ManageSearchText = styled.input`
+ font-family: NanumSquare_ac;
width: 100%;
height: 100%;
background: none;
@@ -78,7 +79,7 @@ function ManageSearchBar(props) {
-
+
{props.buttonTitle}
diff --git a/src/components/searchBar/SearchBar.js b/src/components/searchBar/SearchBar.js
index eac6aca..da4314f 100644
--- a/src/components/searchBar/SearchBar.js
+++ b/src/components/searchBar/SearchBar.js
@@ -1,6 +1,6 @@
import React from "react";
import styled from "styled-components";
-import TimeCapsule from "components/capsule/SelectToggle";
+import { SelectToggle } from "components/capsule/SelectToggle";
import SearchButtonImg from '../../assets/images/button/searchButton.png'
import ImageButton from "components/button/ImageButton";
import { TimeList } from "constants/ToggleList";
@@ -38,9 +38,9 @@ function SearchBar(props) {
예약 가능한 회의실 검색
-
+
~
-
+
);
diff --git a/src/pages/booking/bookedList/BookedList.js b/src/pages/booking/bookedList/BookedList.js
index bf1540e..2f60557 100644
--- a/src/pages/booking/bookedList/BookedList.js
+++ b/src/pages/booking/bookedList/BookedList.js
@@ -3,7 +3,7 @@ import styled from "styled-components"
import BookedLine from './BookedLine';
import { RightContainer, WhiteContainer, TitleText } from "components/rightContainer/RightContainer";
import { BookingsAxios } from 'api/AxiosApi';
-import SelectToggle from 'components/capsule/SelectToggle';
+import { SelectToggle } from 'components/capsule/SelectToggle';
import { BookingCategoryList } from 'constants/ToggleList';
import { BookingCategoryPathList, getBookingCategoryPath } from 'constants/Path';
import { getToken } from 'utils/IsLoginUtil';
diff --git a/src/pages/manager/userManage/UserManage.js b/src/pages/manager/userManage/UserManage.js
index 6586857..46c394e 100644
--- a/src/pages/manager/userManage/UserManage.js
+++ b/src/pages/manager/userManage/UserManage.js
@@ -7,11 +7,13 @@ import ManageSearchBar from "components/searchBar/ManageSearchBar";
import { AdminUsersAxios } from "api/AxiosApi";
import { basicError } from "utils/ErrorHandlerUtil";
import { getToken } from "utils/IsLoginUtil";
-
+import { UserModal } from "./UserModal";
function UserManage(props) {
+ const [isOpen, setIsOpen] = useState(false)
const [users, setUserList] = useState([])
+ // 유저 목록 조회
const getUserList = (word) => {
AdminUsersAxios.get(`?name=${word}`, {
headers: {
@@ -32,10 +34,19 @@ function UserManage(props) {
getUserList(e.target.value)
}
+ // 모달 핸들러
+ const openModalHandler = () => {
+ setIsOpen(!isOpen)
+ }
+
return (
+ {isOpen ?
+
+ : null
+ }
{props.title}
-
+
@@ -59,7 +70,7 @@ function UserManage(props) {
: users.map((user, index) =>
{
+ setIsOpen(!isOpen)
+ }
return (
-
- {props.name} |
- {props.position} |
- {props.email} |
- {props.department} |
- {props.officeJob} |
-
-
- |
- |
-
+ <>
+
+ {props.name} |
+ {props.position} |
+ {props.email} |
+ {props.department} |
+ {props.officeJob} |
+ |
+ |
+
+
+ {isOpen ?
+
+ : null
+ }
+ >
)
}
-export default UserManageTableCell;
\ No newline at end of file
+export default UserManageLine;
\ No newline at end of file
diff --git a/src/pages/manager/userManage/UserModal.js b/src/pages/manager/userManage/UserModal.js
new file mode 100644
index 0000000..1f5ce87
--- /dev/null
+++ b/src/pages/manager/userManage/UserModal.js
@@ -0,0 +1,75 @@
+import { SelectToggleInModal } from 'components/capsule/SelectToggle';
+import styled from 'styled-components';
+import React, { useState, useEffect } from 'react';
+import { AdminUsersAxios } from 'api/AxiosApi';
+import { getToken } from 'utils/IsLoginUtil';
+import { basicError } from 'utils/ErrorHandlerUtil';
+import { AttrContainer, AttrInput, AttrLabel, AttrsContainer, ExitBtn, ModalBackdrop, ModalTitle, ModalView, TitleContainer } from 'components/modal/Modal';
+
+export function UserModal(props) {
+ const [positionOptionList, setPositionOptionList] = useState([]);
+ const [departmentOptionList, setDepartmentOptionList] = useState([]);
+ let deparments, positions;
+
+ function getDpNPsList() {
+ AdminUsersAxios.get("/ranks", {
+ headers: {
+ Authorization: getToken()
+ }
+ })
+ .then((response) => {
+ deparments = response.data.data.departmentList
+ positions = response.data.data.positionList
+ setPositionOptionList(positions.map((position) => ()))
+ setDepartmentOptionList(deparments.map((deparment) => ()))
+ })
+ .catch((error) => {
+ basicError(error)
+ })
+ }
+ useEffect(() => {
+ getDpNPsList()
+ }, [])
+
+
+ return (
+
+ e.stopPropagation()}>
+
+ 신규 직원 등록
+ ×
+
+
+
+ 이름
+
+
+
+ 이메일
+
+
+
+ 비밀번호
+
+
+
+ 부서
+
+
+
+ 직위
+
+
+
+ 직책
+
+
+
+ 권한
+
+
+
+
+
+ );
+}
\ No newline at end of file