diff --git a/src/App.jsx b/src/App.jsx
index e095094..abc3d78 100644
--- a/src/App.jsx
+++ b/src/App.jsx
@@ -9,6 +9,7 @@ import DoctorDashBoardPage from './pages/Doctor/DoctorDashBoardPage.jsx';
import DoctorChartPage from './pages/Doctor/DoctorChartPage.jsx';
import DoctorDetailPage from './pages/Doctor/DoctorDetailPage.jsx';
import DoctorPatientListPage from './pages/Doctor/DoctorPatientListPage.jsx';
+import DoctorUntactReservePage from './pages/Doctor/DoctorUntactReservePage.jsx';
import styled from "styled-components";
import "./App.scss";
@@ -32,6 +33,7 @@ function App() {
} />
} />
} />
+ } />
diff --git a/src/components/DoctorDashBoard/DoctorCheckDetail.jsx b/src/components/DoctorDashBoard/DoctorCheckDetail.jsx
new file mode 100644
index 0000000..44c5b23
--- /dev/null
+++ b/src/components/DoctorDashBoard/DoctorCheckDetail.jsx
@@ -0,0 +1,99 @@
+import styled from 'styled-components';
+import PropTypes from 'prop-types';
+import XButton from "../../assets/icons/iconx.png"
+import InputTextLong from '../Input/InputTextLong';
+import DoctorDetailChart from "../../components/DoctorDashBoard/DoctorDetailChart";
+
+const Overlay = styled.div`
+ position: fixed;
+ top: 0;
+ left: 0;
+ width: 100vw;
+ height: 100vh;
+ background-color: rgba(0, 0, 0, 0.4);
+ display: flex;
+ justify-content: center;
+ align-items: center;
+`;
+
+const ModalContainer = styled.div`
+ width: 600px;
+ height: 600px;
+ background-color: #FFFFFF;
+ border-radius: 10px;
+ padding: 20px;
+ box-shadow: 0 0 15px rgba(0, 0, 0, 0.2);
+ position: relative;
+`;
+
+const Title = styled.h1`
+ font-size: 28px;
+ font-weight: bold;
+ color: #333;
+ display: inline-block;
+`;
+
+const CloseIcon = styled.img`
+ position: absolute;
+ right: 20px;
+ top: 20px;
+ cursor: pointer;
+ margin-top:10px;
+`;
+
+const Divider = styled.hr`
+ width: 100%;
+ height: 1px;
+ background-color: #d9d9d9;
+ border: none;
+ margin-top: 10px;
+ margin-bottom: 20px;
+`;
+
+const ButtonContainer = styled.div`
+ display: flex;
+ justify-content: space-between;
+ width: 290px;
+ margin: 20px auto 0;
+`;
+
+const Button = styled.button`
+ width: 140px;
+ height: 30px;
+ background-color: ${props => props.primary ? "#3592FF" : "#F3F3F3"};
+ color: ${props => props.primary ? "#FEFDFD" : "#000000"};
+ border: ${props => props.primary ? "none" : "1px solid #BBBBBB"};
+ font-weight: 300;
+ font-size: 14px;
+ border-radius: 10px;
+ cursor: pointer;
+`;
+
+const StyledInputTextLong = styled(InputTextLong)`
+ margin-top: 30px;
+`;
+
+
+export const DoctorCheckDetail = ({ onClose }) => {
+ return (
+
+ e.stopPropagation()}>
+ 진료 예약 상세 정보
+
+
+
+
+
+
+
+
+
+
+ );
+}
+
+DoctorCheckDetail.propTypes = {
+ onClose: PropTypes.func.isRequired,
+};
+
+export default DoctorCheckDetail;
\ No newline at end of file
diff --git a/src/components/DoctorDashBoard/DoctorSeveralReserve.jsx b/src/components/DoctorDashBoard/DoctorSeveralReserve.jsx
new file mode 100644
index 0000000..07d5740
--- /dev/null
+++ b/src/components/DoctorDashBoard/DoctorSeveralReserve.jsx
@@ -0,0 +1,126 @@
+import { useState } from 'react';
+import styled from 'styled-components';
+import PatientImage from '../../assets/images/user/Opatient.png';
+import IconDate from '../../assets/icons/icondate.png';
+import DoctorCheckDetail from './DoctorCheckDetail';
+
+const CardContainer = styled.div`
+ display: flex;
+ align-items: flex-start;
+ padding: 15px;
+ border: 1px solid #e0e0e0;
+ border-radius: 10px;
+ width: 700px;
+ height: 110px;
+ background-color: #ffffff;
+ position: relative;
+ margin-left:10px;
+ margin-bottom:20px;
+`;
+
+const ProfileImage = styled.img`
+ width: 80px;
+ height: 80px;
+ border-radius: 50%;
+ position: absolute;
+ left: 24px;
+ top: 15px;
+`;
+
+const UserInfo = styled.div`
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+ margin-left: 122px;
+`;
+
+const UserName = styled.div`
+ font-size: 25px;
+ font-weight: bold;
+ display: flex;
+ align-items: baseline;
+
+ span {
+ font-size: 15px;
+ margin-left: 5px;
+ font-weight: 300;
+ }
+`;
+
+const Icon = styled.img`
+ width: 18px;
+ height: 18px;
+ margin-right: 5px;
+`;
+
+const InfoText = styled.span`
+ font-size: 14px;
+ font-weight: 300;
+ margin-left: 10px;
+`;
+
+const DateContain = styled.div`
+`
+
+const Button = styled.button`
+ width: 160px;
+ height: 32px;
+ background-color: ${props => props.cancelButton ? "#F3F3F3" : (props.clicked ? "#888888" : "#3592FF")};
+ color: ${props => props.cancelButton ? "#000000" : (props.clicked ? "#444444" : "#FEFDFD")};
+ border: ${props => props.cancelButton ? "1px solid #BBBBBB" : "none"};
+ border-radius: 10px;
+ border: none;
+ cursor: pointer;
+ font-size: 14px;
+ position: absolute;
+ margin-left: 500px;
+ top: ${props => (props.topPosition ? props.topPosition : "19px")};
+
+ &:nth-child(2) {
+ background-color: #F3F3F3;
+ color: #000000;
+ border: 1px solid #BBBBBB;
+ top: 59px;
+ }
+`;
+
+const DoctorSeveralReserve = () => {
+ const [buttonState, setButtonState] = useState(false);
+ const [showDetailModal, setShowDetailModal] = useState(false);
+
+ const toggleButtonState = () => {
+ setButtonState(!buttonState);
+ }
+
+ const toggleDetailModal = () => {
+ setShowDetailModal(!showDetailModal);
+ }
+
+ const handleCloseModal = () => {
+ setShowDetailModal(false);
+ }
+
+ return (
+ <>
+
+
+
+ 오소현님
+
+
+ 2023/08/30 16:00
+
+
+
+
+
+ {showDetailModal && }
+ >
+ );
+};
+
+export default DoctorSeveralReserve;
diff --git a/src/components/DoctorDashBoard/DoctorUntactFullList.jsx b/src/components/DoctorDashBoard/DoctorUntactFullList.jsx
new file mode 100644
index 0000000..c64f331
--- /dev/null
+++ b/src/components/DoctorDashBoard/DoctorUntactFullList.jsx
@@ -0,0 +1,69 @@
+import styled from "styled-components";
+import DoctorSeveralReserve from "./DoctorSeveralReserve";
+import Pagination from "../Pagination/Pagination";
+
+const Container = styled.div`
+ width: 800px;
+ height: 885px;
+ margin: 0 auto;
+ padding: 20px;
+ border: 1px solid #0064ff;
+ border-radius: 10px;
+ background-color: #ffffff;
+ font-family: "Spoqa Han Sans Neo", "sans-serif";
+ position: relative;
+ display: flex;
+ flex-wrap: wrap;
+ gap: 0px 80px;
+ flex-direction: column;
+ justify-content: flex-start;
+`;
+
+const Title = styled.h1`
+ font-size: 28px;
+ font-weight: bold;
+ color: #333;
+ display: inline-block;
+`;
+
+const Divider = styled.hr`
+ width: 100%;
+ height: 1px;
+ background-color: #d9d9d9;
+ border: none;
+ margin-top:10px;
+ margin-bottom: 20px;
+`;
+
+const PaginationWrapper = styled.div`
+ display: flex;
+ justify-content: center;
+ width: 100%;
+ margin-top: 20px;
+`;
+
+const DoctorUntactFullList = () => {
+ const totalItems = 40;
+ const itemsPerPage = 8;
+
+ const handlePageChange = (selectedPage) => {
+ console.log("Selected page:", selectedPage);
+ };
+
+ return (
+
+ 비대면 진료 예약 목록
+
+
+
+
+
+
+ );
+};
+
+export default DoctorUntactFullList;
diff --git a/src/components/UserDashBoard/UserReserveReason.jsx b/src/components/UserDashBoard/UserReserveReason.jsx
new file mode 100644
index 0000000..e69de29
diff --git a/src/pages/DevelopPage.jsx b/src/pages/DevelopPage.jsx
index 4a86ef0..4611036 100644
--- a/src/pages/DevelopPage.jsx
+++ b/src/pages/DevelopPage.jsx
@@ -1,6 +1,6 @@
+import { Link } from 'react-router-dom';
import styled from 'styled-components';
import Header from '../components/Header/Header';
-import UserUntactRecord from '../components/UserDashBoard/UserUntactRecord';
const PageContainer = styled.div`
display: flex;
@@ -13,19 +13,52 @@ const CenteredContainer = styled.div`
justify-content: center;
align-items: center;
flex: 1;
- margin-top: -50px;
+ flex-direction: column;
+ gap: 20px;
+`;
+
+const RouteButton = styled.button`
+ padding: 10px 20px;
+ font-size: 16px;
+ cursor: pointer;
+ border: none;
+ background-color: #3592FF;
+ color: white;
+ border-radius: 5px;
+ transition: background-color 0.3s;
+
+ &:hover {
+ background-color: #2c75e0;
+ }
`;
const DevelopPage = () => {
+ const routes = [
+ { path: "/login", name: "030LoginPage" },
+ { path: "/signup", name: "017SignupPage" },
+ { path: "/", name: "DevelopPage" },
+ { path: "/userdash", name: "001MyUserPage" },
+ { path: "/useruntactreserve", name: "004UserUntactReservePage" },
+ { path: "/userreserve", name: "005UserReservePage" },
+ { path: "/doctordash", name: "009DoctorDashBoardPage" },
+ { path: "/doctorchart", name: "010DoctorChartPage" },
+ { path: "/doctordetail", name: "013DoctorDetailPage" },
+ { path: "/doctorpatientlist", name: "012DoctorPatientListPage" },
+ { path: "/doctoruntactreserve", name: "014DoctorUntactReservePage" },
+ ];
return (
-
-
-
-
-
-
+
+
+
+ {routes.map(route => (
+
+ {route.name}
+
+ ))}
+
+
);
}
-export default DevelopPage;
\ No newline at end of file
+export default DevelopPage;
diff --git a/src/pages/Doctor/DoctorUntactReservePage.jsx b/src/pages/Doctor/DoctorUntactReservePage.jsx
new file mode 100644
index 0000000..62796e6
--- /dev/null
+++ b/src/pages/Doctor/DoctorUntactReservePage.jsx
@@ -0,0 +1,32 @@
+import styled from 'styled-components';
+import Header from '../../components/Header/Header';
+import BackButton from "../../components/Button/BackButton";
+import DoctorUntactFullList from '../../components/DoctorDashBoard/DoctorUntactFullList';
+
+const PageContainer = styled.div`
+ display: flex;
+ flex-direction: column;
+ height: 100vh;
+`;
+
+const CenteredContainer = styled.div`
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ align-items: center;
+ flex: 1;
+`;
+
+const DoctorUntactReservePage = () => {
+ return (
+
+
+
+
+
+
+
+ );
+}
+
+export default DoctorUntactReservePage;