최정임 최정임 2023-02-28
230228 최정임 에이젼시 메인 게시판 수정
@e672fe9c4967d39d831a960aaf16d0dc7ff1ab00
.gitignore
--- .gitignore
+++ .gitignore
@@ -1,2 +1,3 @@
 client/build/
-server/logs/
(파일 끝에 줄바꿈 문자 없음)
+server/logs/
+node_modules
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -31,8 +31,8 @@
   height: 100%;
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
-  grid-template-rows: 0.1fr 0.5fr 0.5fr 0.5fr 0.5fr 0.5fr 0.5fr;
-  gap: 1rem;
+  grid-template-rows: 0.1fr;
+  gap: 3rem;
 }
 .main-grid-hospital {
   height: 100%;
@@ -75,6 +75,9 @@
 .combine-left-government2 {
   grid-column: 1/4;
 }
+.combine-left-government3 {
+  grid-column: 1/5;
+}
 .combine-right {
   grid-column: 3/4;
 }
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -24,6 +24,8 @@
   background-color: white;
   grid-area: header;
   height: 87px;
+  border-bottom: 1px solid #cccccc;
+  
 }
 
 .page-title span {
@@ -36,6 +38,7 @@
   height: 100%;
   background-color: #f2f0eb;
   grid-area: nav;
+  border-right: 1px solid #cccccc;
 }
 .nav{
   position: relative;
@@ -116,19 +119,25 @@
   background: #f25430;
   border-radius: 30px;
   font-size: 1.5rem;
+  font-weight: 600;
   color: #ffffff;
   display: flex;
   align-items: center;
-  margin-right: 2rem;
+  margin: 0 1rem;
   cursor: pointer;
 }
+.info-id span, .logout span{
+  margin: 0 auto;
+}
+.bottom-section{position: absolute; padding: 0 2rem; bottom: 3rem;}
 .logout{background: #f26e50;}
 #pages {
   max-width: 100%;
   height: 100%;
   padding: 3rem;
-  background-color: #f2f0eb;
+  background-color: #f4f4f2;
   grid-area: main;
+  box-shadow: 0px 11px 12px -10px rgb(0 0 0 / 20%) inset;
 }
 
 
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -4,10 +4,6 @@
   font-family: 'AuctionGothic_Medium';
 }
 header > div{height: 100%;}
-header .page-title span {
-  font-size: 1.7rem;
-  margin: 0 auto;
-}
 .join-btn{
   background-color: transparent;
 }
@@ -16,7 +12,17 @@
   background-color: #18924e;
 }
 
-/* 기관조회 */
+/* 시행기관 장비관리 리스트 */
+
+.visitlist{height: 55vh;}
+.visitlist .agency-visitlist{border: 0;}
+.visitlist .agency-visitlist th{background-color: #fdede9; }
+.agency-calendar .react-calendar{height: 10vh;}
+.agency-calendar .react-calendar__month-view__weekdays{display: none !important;}
+.agency-calendar .react-calendar__month-view__days{flex-wrap: unset !important; padding: 0 0 3rem 0;}
+.agency-calendar .react-calendar__month-view__days__day{flex: 0 0 2.85% !important; padding: 1rem 0;}
+
+/* .agency-calendar .react-calendar__month-view__days{overflow: hidden;} */
 
 /* Q&A */
 .question-select input{width: 3%;}
@@ -143,29 +149,24 @@
 .statistics-govern li p:nth-of-type(3)::after {
   content: "명";
 }
+.statistics-agency{border-radius: 1.5rem; box-shadow: 1px 1px 18px 1px rgb(0 0 0 / 13%);}
 .statistics-agency li {
-  position: relative;
-  padding-left: 5rem;
-  text-align: center;
+  padding: 0 2rem;
 }
-
-.statistics-agency li p:nth-of-type(1) {
-  position: absolute;
-  left: 0;
+.statistics-agency li .text{padding-left: 1rem; width: 100%;}
+.statistics-agency li div p:nth-of-type(1) {
+  font-size: 1.8rem;
+  font-weight: bold;
+  color: #ed724a;
 }
-
-.statistics-agency li p:nth-of-type(2) {
-  padding-bottom: 0.5rem;
-  font-size: 1.6rem;
+.statistics-agency li div p:nth-of-type(2) {
+  font-size: 2.5rem;
   font-weight: bold;
 }
-.statistics-agency li p:nth-of-type(3) {
-  font-size: 1.6rem;
-  font-weight: bold;
-}
-
-.statistics-agency li p:nth-of-type(3)::after {
+.statistics-agency li div p:nth-of-type(2)::after{
   content: "명";
+  font-size: 1.5rem;
+  color: #cbc9c9;
 }
 .statistics-guardian{height: 100%;}
 .guardian-medicine{height: 16vh;}
@@ -916,11 +917,21 @@
 }
 
 /* 사용자 관리 */
-.tab-menu-mobile{display: none;} 
-.tab-menu {
+.tab-menu .tab-menu-agency{
   display: flex;
 }
-
+.tab-menu-agency li {
+  padding: 1rem 2rem;
+  margin-right: 0.2rem;
+  color: #733c1d;  
+  font-size: 1.6rem;
+  font-weight: bold;
+  text-align: center;
+}
+.tab-menu-agency li.active {
+  color: #f25430;
+  border-bottom: 2px solid #f25430;
+}
 .tab-menu li {
   padding: 1rem 2rem;
   margin-right: 0.2rem;
@@ -932,7 +943,6 @@
   text-align: center;
   box-shadow: 3px -2px 5px -2px rgb(0 0 0 / 20%);
 }
-
 .tab-menu li.active {
   background-color: #f25430;
   color: #ffffff;
 
client/resources/files/images/batteryAgency.png (Binary) (added)
+++ client/resources/files/images/batteryAgency.png
Binary file is not shown
 
client/resources/files/images/box.png (Binary) (added)
+++ client/resources/files/images/box.png
Binary file is not shown
 
client/resources/files/images/error.png (Binary) (added)
+++ client/resources/files/images/error.png
Binary file is not shown
 
client/resources/files/images/exchange.png (Binary) (added)
+++ client/resources/files/images/exchange.png
Binary file is not shown
 
client/resources/files/images/medicineAgency.png (Binary) (added)
+++ client/resources/files/images/medicineAgency.png
Binary file is not shown
 
client/resources/files/images/medicinebox.png (Binary) (added)
+++ client/resources/files/images/medicinebox.png
Binary file is not shown
 
client/resources/files/images/temperatureAgency.png (Binary) (added)
+++ client/resources/files/images/temperatureAgency.png
Binary file is not shown
 
client/resources/files/images/tool.png (Binary) (added)
+++ client/resources/files/images/tool.png
Binary file is not shown
 
client/views/component/Calendar2.jsx (added)
+++ client/views/component/Calendar2.jsx
@@ -0,0 +1,34 @@
+import React, { useState } from "react";
+import Calendar from "react-calendar";
+import "react-calendar/dist/Calendar.css";
+import moment from "moment";
+
+export default function CalendarComponent(props) {  
+  const [value, setValue] = useState(new Date());
+  const mark = ["12-02-2023", "21-02-2023", "05-02-2023", "02-02-2023"];
+  return (
+    <div className="w-full h-full p-10">
+      <Calendar
+        className="w-96 h-full rounded-xl bg-violet-300"
+        onChange={setValue}
+        value={value}
+        tileClassName={({ date, view }) => {
+          // if (mark.find((x) => x === moment(date).format("DD-MM-YYYY"))) {
+          //   return "highlight";
+          // }
+          let day = date.getDate()
+          let month = date.getMonth()+1
+          if(date.getMonth()<10){
+            month = '0'+day
+          }
+          const realDate =day+'-'+month+'-'+date.getFullYear()
+          if(mark.find(val=> val === realDate)){
+            return 'highlight'
+          }
+
+        }}
+      />
+    </div>
+  );
+}
+
client/views/component/Calendar_agency.jsx
--- client/views/component/Calendar_agency.jsx
+++ client/views/component/Calendar_agency.jsx
@@ -3,11 +3,11 @@
 import "react-calendar/dist/Calendar.css";
 import moment from "moment";
 
-export default function CalendarComponent(props) {
+export default function CalendarComponent(props) {  
   const [value, setValue] = useState(new Date());
   const mark = ["12-02-2023", "21-02-2023", "05-02-2023", "02-02-2023"];
   return (
-    <div className="w-full h-full p-10">
+    <div className="w-full h-full p-10 agency-calendar">
       <Calendar
         className="w-96 h-full rounded-xl bg-violet-300"
         onChange={setValue}
client/views/component/ContentTitle.jsx
--- client/views/component/ContentTitle.jsx
+++ client/views/component/ContentTitle.jsx
@@ -11,9 +11,9 @@
 }
 
 const ContentTitleStyled = styled.p`
-  font-size: 4rem;
+  font-size: 2.5rem;
   font-weight: bold;
-  margin: 0 3rem 2rem 0;
+  margin: 1px 1rem 1rem 0px;
   color: #733c1d;
   /* &::after {
     content: "";
@@ -40,6 +40,6 @@
 `
 
 const Explanation = styled.p`
-  font-size: 2.6rem;
+  font-size: 1.8rem;
   color: #733c1d;
 `;
(파일 끝에 줄바꿈 문자 없음)
 
client/views/component/QnAModal.jsx (added)
+++ client/views/component/QnAModal.jsx
@@ -0,0 +1,48 @@
+import React from "react";
+import Button from "./Button.jsx";
+import ContentTitle from "./ContentTitle.jsx";
+import SubTitle from "./SubTitle.jsx";
+import { useNavigate } from "react-router";
+
+export default function QaAModal({ open, close, }) {
+  return (
+    <div class={open ? "openModal modal" : "modal"}>
+    {open ? (
+      <div className="modal-inner">
+        <div className="modal-header flex">
+          Q&A등록
+          <Button className={"close"} onClick={close} btnName={"X"} />
+        </div>
+        <div className="modal-main"><div className="board-wrap">        
+        <div>
+        <SubTitle explanation={"작성자 정보"} />
+        <table className="margin-bottom2 qna-insert">
+          <tr>
+            <th>작성자</th>
+            <td>
+              <input type="text" placeholder="자동입력부분" />
+            </td>
+          </tr>
+
+          <tr>
+            <th>제목</th>
+            <td colSpan={3}>
+              <input type="text" />
+            </td>
+          </tr>
+          <tr>
+              <th>내용</th>
+              <td colSpan={3}>
+                <textarea className="medicine" cols="30" rows="2"></textarea>
+              </td>
+            </tr>
+        </table>
+        </div>
+        <div className="flex-center"><Button className={"btn-small red-btn"} btnName={"저장"} /></div >
+      </div></div>
+      </div>
+    ) : null}
+  </div>
+    
+  );
+}
client/views/component/SubTitle.jsx
--- client/views/component/SubTitle.jsx
+++ client/views/component/SubTitle.jsx
@@ -11,7 +11,7 @@
 }
 
 const TitleStyle = styled.h4`
-  font-size: 2.5rem;
+  font-size: 2rem;
   font-weight: bold;
   padding: 0.5rem;
   margin-right: 1rem;
client/views/layout/Header.jsx
--- client/views/layout/Header.jsx
+++ client/views/layout/Header.jsx
@@ -16,12 +16,7 @@
           <div className="info-wrap flex">
             <div className="usericon"><PersonIcon sx={{ width:48, height:48,}} /></div>
             <p className="header-info-id">admin1</p>
-            <div className="bottom-section flex">
-              <div className="info-id" ><span onClick={() => {
-                navigate("/Join");
-              }}>계정추가</span></div>
-              <div className="logout"><span>로그아웃</span></div>
-            </div>
+            
           </div>
           {/* <span>{title}</span> */}
         </div>
client/views/layout/Menu.jsx
--- client/views/layout/Menu.jsx
+++ client/views/layout/Menu.jsx
@@ -10,7 +10,7 @@
 
   return (
     <nav
-      className={!menuToggle ? "nav" : "burger__menu"}
+      className={"nav"}
       onClick={() => (menuToggle ? setMenuToggle(false) : setMenuToggle(true))}
     >
       <h1 className="logo"><img src={logo} alt="" /></h1>
@@ -21,6 +21,12 @@
           ))}
         </ul>
       </div>
+      <div className="bottom-section flex-center">
+          <div className="info-id" ><span onClick={() => {
+            navigate("/Join");
+          }}>계정추가</span></div>
+          <div className="logout"><span>로그아웃</span></div>
+        </div>
     </nav>
   );
 }
client/views/layout/SidebarItem.jsx
--- client/views/layout/SidebarItem.jsx
+++ client/views/layout/SidebarItem.jsx
@@ -10,26 +10,27 @@
 
   if (item.childrens) {
     return (
-      <li
-        className={open ? "sidebar-item open" : "sidebar-item"}
-        onClick={toggleMenu}
-      >
-        <div className="sidebar-title flex">
-          <div className="flex-start">
-            {item.icon}
-            <span>{item.title}</span>
+        <li
+          className={open ? "sidebar-item open" : "sidebar-item"}
+          onClick={toggleMenu}
+        >
+          <div className="sidebar-title flex">
+            <div className="flex-start">
+              {item.icon}
+              <span>{item.title}</span>
+            </div>
+            <KeyboardArrowDownIcon
+              className="toggle"
+              sx={{ fontSize: 20, color: "#333333", }}
+            />
           </div>
-          <KeyboardArrowDownIcon
-            className="toggle"
-            sx={{ fontSize: 20, color: "#333333",}}
-          />
-        </div>
-        <ul className="sidebar-content">
-          {item.childrens.map((child, index) => (
-            <SidebarItem key={index} item={child} />
-          ))}
-        </ul>
-      </li>
+          <ul className="sidebar-content">
+            {item.childrens.map((child, index) => (
+              <SidebarItem key={index} item={child} />
+            ))}
+          </ul>
+        </li>
+
     );
   } else {
     return (
client/views/pages/AppRoute.jsx
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
@@ -41,7 +41,6 @@
 import EquipmentManagementSelectAdd from "./equipment/EquipmentManagementSelectAdd.jsx";
 import RiskSet from "./setting/RiskSet.jsx";
 import QandAInsert from "./callcenter/QandAInsert.jsx";
-import QuestionInsert from "./callcenter/QuestionInsert.jsx";
 import QuestionConfirm from "./callcenter/QuestionConfirm.jsx";
 import UserSelectOk from "./user_management/UserSelectOk.jsx";
 import AuthorityManagement from "./setting/AuthorityManagement.jsx";
@@ -259,7 +258,7 @@
       <Route path="/Medicalcare" element={<Medicalcare />}></Route>
       <Route path="/Healthcare" element={<Healthcare />}></Route>
       <Route path="/QuestionConfirm" element={<QuestionConfirm />}></Route>
-      <Route path="/QuestionInsert" element={<QuestionInsert />}></Route>
+      
       <Route path="/GuardianStatistics" element={<GuardianStatistics />}></Route>
       <Route path="/Main_guardian" element={<Main_guardian />}></Route>
       <Route path="/QuestionSelect" element={<QuestionSelect />}></Route>
@@ -626,7 +625,7 @@
       <Route path="/Healthcare" element={<Healthcare />}></Route>
       <Route path="/Join" element={<Join />}></Route>
       <Route path="/QuestionSelect" element={<QuestionSelect />}></Route>
-      <Route path="/QuestionInsert" element={<QuestionInsert />}></Route>
+      
       <Route path="/Main_agency" element={<Main_agency />}></Route>
       <Route path="/UserAuthoriySelect_agency" element={<UserAuthoriySelect_agency />}></Route>
       <Route path="/SeniorInsert" element={<SeniorInsert />}></Route>
@@ -696,7 +695,7 @@
       <Route path="/Main_guardian" element={<Main_guardian />}></Route>
       <Route path="/QuestionSelect" element={<QuestionSelect />}></Route>
       <Route path="/QuestionConfirm" element={<QuestionConfirm />}></Route>
-      <Route path="/QuestionInsert" element={<QuestionInsert />}></Route>
+      
     </Routes>
   );
 }
 
client/views/pages/callcenter/QuestionInsert.jsx (deleted)
--- client/views/pages/callcenter/QuestionInsert.jsx
@@ -1,55 +0,0 @@
-import React from "react";
-import Button from "../../component/Button.jsx";
-import ContentTitle from "../../component/ContentTitle.jsx";
-import SubTitle from "../../component/SubTitle.jsx";
-import { useNavigate } from "react-router";
-
-export default function QuestionInsert() {
-  const navigate = useNavigate();
-  return (
-    <main>
-      <div className="content-wrap row">
-        <ContentTitle contentTitle={"문의글 작성"} />
-        <SubTitle explanation={"작성자 정보"} />
-        <table className="margin-bottom2 qna-insert">
-          <tr>
-            <th>작성자</th>
-            <td>
-              <input type="text" placeholder="자동입력부분" />
-            </td>
-          </tr>
-
-          <tr>
-            <th>제목</th>
-            <td colSpan={3}>
-              <input type="text" />
-            </td>
-          </tr>
-          <tr>
-              <th>내용</th>
-              <td colSpan={3}>
-                <textarea className="medicine" cols="30" rows="2"></textarea>
-              </td>
-            </tr>
-        </table>
-       
-        <div className="btn-wrap flex-center">
-          <Button
-            className={"btn-large gray-btn"}
-            btnName={"이전"}
-            onClick={() => {
-              navigate("/QandASelect");
-            }}
-          />
-          <Button
-            className={"btn-large green-btn"}
-            btnName={"등록"}
-            onClick={() => {
-              navigate("/QandASelect");
-            }}
-          />
-        </div>
-      </div>
-    </main>
-  );
-}
client/views/pages/callcenter/QuestionSelect.jsx
--- client/views/pages/callcenter/QuestionSelect.jsx
+++ client/views/pages/callcenter/QuestionSelect.jsx
@@ -1,7 +1,7 @@
 import React from "react";
 import Button from "../../component/Button.jsx";
 import Table from "../../component/Table.jsx";
-import Modal from "../../component/Modal.jsx";
+import QnAModal from "../../component/QnAModal.jsx";
 import { useNavigate } from "react-router";
 import ContentTitle from "../../component/ContentTitle.jsx";
 import RestoreFromTrashIcon from '@mui/icons-material/RestoreFromTrash';
@@ -9,6 +9,14 @@
 
 export default function QuestionSelect() {
   const navigate = useNavigate();
+  const [modalOpen, setModalOpen] = React.useState(false);
+  const openModal = () => {
+    setModalOpen(true);
+  };
+  const closeModal = () => {
+    setModalOpen(false);
+  };
+
   //게시판
   const thead = [
     "No",
@@ -40,6 +48,8 @@
   ];
   return (
     <main>
+      <QnAModal open={modalOpen} close={closeModal} header="기관 등록">      
+      </QnAModal>
       <div className="content-wrap">
         <ContentTitle contentTitle={"Q&A"} />
         <div className="board-wrap">
@@ -53,9 +63,7 @@
           <Button
             className={"btn-small gray-btn"}
             btnName={"작성하기"}
-            onClick={() => {
-              navigate("/QuestionInsert");
-            }}
+            onClick={openModal}
           />
           </div>
         </div>
client/views/pages/equipment/EquipmentManagementSelect.jsx
--- client/views/pages/equipment/EquipmentManagementSelect.jsx
+++ client/views/pages/equipment/EquipmentManagementSelect.jsx
@@ -1195,7 +1195,7 @@
 
 
 			<div className="tab-container">
-				<ul className="tab-menu">
+				<ul className="tab-menu flex-start">
 					{data.map((item) => (
 						<li
 							key={item.id}
client/views/pages/main/Main.jsx
--- client/views/pages/main/Main.jsx
+++ client/views/pages/main/Main.jsx
@@ -2,157 +2,116 @@
 import Title from "../../component/Title.jsx";
 import Table from "../../component/Table.jsx";
 import Map from "../../component/chart/Map.jsx";
-import Chart1 from "../../component/chart/Chart1.jsx";
-import Chart2 from "../../component/chart/Chart2.jsx";
-import Calendar from "../../component/Calendar.jsx";
-import AddCircleIcon from '@mui/icons-material/AddCircle';
-import PersonIcon from '@mui/icons-material/Person';
-
+import Chart from "../../component/chart/Chart.jsx";
+import Chart5_agency from "../../component/chart/Chart5_agency.jsx";
+import Chart2_agency from "../../component/chart/Chart2_agency.jsx";
+import AddCircleIcon from "@mui/icons-material/AddCircle";
+import Calendar_agency from "../../component/Calendar_agency.jsx";
+import tool from "../../../resources/files/images/tool.png";
+import medicinebox from "../../../resources/files/images/medicinebox.png";
+import box from "../../../resources/files/images/box.png";
+import exchange from "../../../resources/files/images/exchange.png";
+import error from "../../../resources/files/images/error.png";
+import batteryAgency from "../../../resources/files/images/batteryAgency.png";
+import medicineAgency from "../../../resources/files/images/medicineAgency.png";
+import temperatureAgency from "../../../resources/files/images/temperatureAgency.png";
+import TitleSmall from "../../component/TitleSmall.jsx";
 
 export default function Main2() {
-
-  const tableHead = [
-    "연번",
-    "계약업체명",
-    "반납/교환",
-    "담당자 연락처",
-    "주소",
-  ];
-  const Key = [
-    "name",
-    "level_of_care",
-    "birth",
-    "phone",
-    "address",
-  ];
+  const data = [
+    {
+      id: 1,
+      title: "교환/수리 리스트",
+    },
+    {
+      id: 2,
+      title: "장비 추가 리스트",
+    },
+  ]
+  const [index, setIndex] = React.useState(1);
+  const thead = ["No", "이름", "대상자등록번호", "생년월일", "연락처", "주소", "미복약 누적 횟수",];
+  const key = ["No", "name", "number", "birth", "phone", "address", "average"];
   const content = [
     {
-      name: "1",
-      level_of_care: "A복지관",
-      birth: "교환",
+      No: 1,
+      name: "김복남",
+      number: "00000001",
+      birth: "1948.11.15",
       phone: "010-1234-5678",
       address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "2",
-      level_of_care: "B병원",
-      birth: "반납",
-      phone: "010-3333-3333",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "3",
-      level_of_care: "C복지관",
-      birth: "교환",
-      phone: "010-3333-4444",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "4",
-      level_of_care: "D복지관",
-      birth: "교환",
-      phone: "010-3333-5555",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "5",
-      level_of_care: "E복지관",
-      birth: "반납",
-      phone: "010-3333-6666",
-      address: "경상북도 군위군 삼국유사면",
+      average: "6회",
     },
   ];
-  const tableHead2 = [
-    "연번",
-    "계약업체명",
-    "반납/교환",
-    "담당자 연락처",
-    "주소",
-  ];
-  const Key2 = [
-    "name",
-    "level_of_care",
-    "birth",
-    "phone",
-    "address",
-  ];
-  const content2 = [
-    {
-      name: "1",
-      level_of_care: "A복지관",
-      birth: "교환",
-      phone: "010-1234-5678",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "2",
-      level_of_care: "B병원",
-      birth: "반납",
-      phone: "010-3333-3333",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "3",
-      level_of_care: "C복지관",
-      birth: "교환",
-      phone: "010-3333-4444",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "4",
-      level_of_care: "D복지관",
-      birth: "교환",
-      phone: "010-3333-5555",
-      address: "경상북도 군위군 삼국유사면",
-    },
-    {
-      name: "5",
-      level_of_care: "E복지관",
-      birth: "반납",
-      phone: "010-3333-6666",
-      address: "경상북도 군위군 삼국유사면",
-    },
-  ];
+
 
   return (
     <main>
-      <div className="main-grid">
-        <ul className="content-box statistics flex combine-left">
-          <li>
-            <p>전체 장비 대여수</p>
-            <p>200개</p>
-          </li>
-          <li>
-            <p>계약 업체 수</p>
-            <p>20개 </p>
-          </li>
-          <li>
-            <p>교환/수리 장비 수</p>
-            <p>13개</p>
-          </li>
-          <li>
-            <p>불량 장비 수</p>
-            <p>1개</p>
+      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"대상자 현황"} explanation={"2023.02.28 기준"} /></div>
+      <div className="main-grid-agency margin-bottom2">
+        <ul className="content-box statistics-agency" background="#f7acba">
+          <li className="flex-start">
+            <img src={box} alt="" />
+            <div className="text">
+              <p>나의 관리 대상자</p>
+              <p>40</p>
+            </div>
           </li>
         </ul>
-        <div className="content-box combine-left">
-          <div className="flex margin-bottom">
-            <Title title={"교환/수리 리스트"} explanation={"장비 교환/수리 리스트를 확인하세요."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
+        <ul className="content-box statistics-agency" background="#8ef3d1">
+          <li className="flex-start">
+            <img src={medicineAgency} alt="" />
+            <div className="text">
+              <p>미복약 위험 대상자</p>
+              <p>40</p>
+            </div>
+          </li>
+        </ul>
+        <ul className="content-box statistics-agency" background="#ebe7b9" >
+          <li className="flex-start">
+            <img src={temperatureAgency} alt="" />
+            <div className="text">
+              <p>댁내 온도 위험 대상자</p>
+              <p>40</p>
+            </div>
+          </li>
+        </ul>
+        <ul className="content-box statistics-agency" background="#5f9af3">
+          <li className="flex-start">
+            <img src={batteryAgency} alt="" />
+            <div className="text">
+              <p>배터리 부족 대상자 </p>
+              <p>40</p>
+            </div>
+          </li>
+        </ul>
+      </div>
+      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"장비 관리 리스트"}  /></div>
+      <div className="main-grid-agency">
+        <div className="content-box combine-left-government3">
+          <ul className="tab-menu-agency flex-start">
+            {data.map((item) => (
+              <li
+                key={item.id}
+                className={index === item.id ? "active" : null}
+                onClick={() => setIndex(item.id)}
+              >
+                {item.title}
+              </li>
+            ))}
+          </ul>
+          <div className="content-wrap equipmentlist">
+            <div className="margin-bottom2">
+              <Calendar_agency />
+            </div>
+            <ul className="tab-content">
+              {data
+                .filter((item) => index === item.id)
+                .map((item) => (
+                  <li>{item.description}</li>
+                ))}
+            </ul>
           </div>
-          <div className="flex" >
-            <div style={{ width:"50%" }}><Calendar /></div>
-            <div style={{ width:"50%" }}><Table head={tableHead} contents={content} contentKey={Key} /></div>
-          </div>
-
-        </div>          
-        <div className="content-box combine-left">
-          <div className="flex margin-bottom">
-            <Title title={"장비 추가 리스트"} explanation={"장비 추가 리스트를 확인하세요."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Table head={tableHead2} contents={content2} contentKey={Key2} />
-        </div>          
+        </div>
       </div>
     </main>
   );
client/views/pages/main/Main_agency.jsx
--- client/views/pages/main/Main_agency.jsx
+++ client/views/pages/main/Main_agency.jsx
@@ -5,128 +5,83 @@
 import Chart from "../../component/chart/Chart.jsx";
 import Chart5_agency from "../../component/chart/Chart5_agency.jsx";
 import Chart2_agency from "../../component/chart/Chart2_agency.jsx";
-import Chart4 from "../../component/chart/Chart4.jsx";
-import ClusteredColumnChart from "../../component/chart/ClusteredColumnChart.jsx";
-import Donut1 from "../../component/chart/Donut1.jsx";
-import RowChart from "../../component/chart/RowChart.jsx";
 import AddCircleIcon from "@mui/icons-material/AddCircle";
 import Calendar_agency from "../../component/Calendar_agency.jsx";
-import BatteryCharging20Icon from '@mui/icons-material/BatteryCharging20';
-import DeviceThermostatIcon from '@mui/icons-material/DeviceThermostat';
-import MedicationIcon from '@mui/icons-material/Medication';
-import ElderlyIcon from '@mui/icons-material/Elderly';
+import tool from "../../../resources/files/images/tool.png";
+import medicinebox from "../../../resources/files/images/medicinebox.png";
+import box from "../../../resources/files/images/box.png";
+import exchange from "../../../resources/files/images/exchange.png";
+import error from "../../../resources/files/images/error.png";
+import batteryAgency from "../../../resources/files/images/batteryAgency.png";
+import medicineAgency from "../../../resources/files/images/medicineAgency.png";
+import temperatureAgency from "../../../resources/files/images/temperatureAgency.png";
+import TitleSmall from "../../component/TitleSmall.jsx";
 
 export default function Main2() {
-  const thead = ["No", "이름","대상자등록번호", "생년월일", "연락처", "주소", "미복약 누적 횟수",];
-  const key = ["No", "name","number", "birth", "phone", "address", "average"];
+  const thead = ["No", "계약업체명", "구분", "담당자 연락처", "주소"];
+  const key = ["No", "agency", "division", "phone", "address",];
   const content = [
     {
       No: 1,
-      name: "김복남",
-      number: "00000001",
-      birth: "1948.11.15",
+      agency: "A복지관",
+      division: "교환",
       phone: "010-1234-5678",
       address: "경상북도 군위군 삼국유사면",
-      average: "6회",
-    },
-  ];
-  const thead2 = ["No", "이름","대상자등록번호", "생년월일", "연락처", "주소", "최근 최저 온도","최근 최고 온도"];
-  const key2 = ["No", "name","number", "birth", "phone", "address", "low", "high"];
-  const content2 = [
-    {
-      No: 1,
-      name: "김복남",
-      number: "00000001",
-      birth: "1948.11.15",
-      phone: "010-1234-5678",
-      address: "경상북도 군위군 삼국유사면",
-      low: "6°C",
-      high: "6°C",
     },
   ];
 
+
   return (
     <main>
-      <div className="main-grid-agency">
+      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"대상자 현황"} explanation={"2023.02.28 기준"} /></div>
+      <div className="main-grid-agency margin-bottom2">
         <ul className="content-box statistics-agency" background="#f7acba">
-          <li> 
-            <p><ElderlyIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#bf0629", borderRadius:"50px" }}/></p>           
-            <p>나의 관리 대상자</p>
-            <p>40</p>
+          <li className="flex-start">
+            <img src={box} alt="" />
+            <div className="text">
+              <p>나의 관리 대상자</p>
+              <p>40</p>
+            </div>
           </li>
-                  </ul>
+        </ul>
         <ul className="content-box statistics-agency" background="#8ef3d1">
-          <li>
-           <p><MedicationIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#076143", borderRadius:"50px" }}/></p>
-            <p>미복약 위험 대상자</p>
-            <p>40</p>
+          <li className="flex-start">
+            <img src={medicineAgency} alt="" />
+            <div className="text">
+              <p>미복약 위험 대상자</p>
+              <p>40</p>
+            </div>
           </li>
         </ul>
         <ul className="content-box statistics-agency" background="#ebe7b9" >
-          <li>
-             <p><DeviceThermostatIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#f1de05", borderRadius:"50px" }}/></p>
-            <p>댁내 온도 위험 대상자</p>
-            <p>40</p>
+          <li className="flex-start">
+            <img src={temperatureAgency} alt="" />
+            <div className="text">
+              <p>댁내 온도 위험 대상자</p>
+              <p>40</p>
+            </div>
           </li>
         </ul>
         <ul className="content-box statistics-agency" background="#5f9af3">
-          <li>
-            <p><BatteryCharging20Icon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#5f9af3", borderRadius:"50px" }}/></p>
-            <p>배터리 부족 대상자 </p>
-            <p>40</p>
+          <li className="flex-start">
+            <img src={batteryAgency} alt="" />
+            <div className="text">
+              <p>배터리 부족 대상자 </p>
+              <p>40</p>
+            </div>
           </li>
-        </ul>       
-       
-        <div className="content-box bg-1 combine-left-government2 combine-middle-government">
-          <div className="flex">
-          <Title title={"복용률 통계"} explanation={"복용률 현황을 확인할 수 있습니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Chart2_agency />
+        </ul>
+      </div>
+      <div className="flex-start margin-bottom2"><img src={medicinebox} alt="" /><TitleSmall title={"방문 관리 리스트"}  /></div>
+      <div className="main-grid-agency">
+        <div className="content-box combine-left-government3 visitlist">  
+            <div className="margin-bottom2">
+              <Calendar_agency />
+            </div>   
+            <div>
+            <Table className="agency-visitlist" head={thead} contents={content} contentKey={key} />
+              </div>         
         </div>
-        <div className="content-box bg-2 combine-left-government2 combine-bottom-government6">
-          <div className="flex">
-          <Title title={"미복약 위험 대상자 리스트"} explanation={"월별 약상자 사용 인원"} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Table
-            className={"medicine-table"}
-              head={thead}
-              contents={content}
-              contentKey={key}
-              onClick={() => {
-                navigate("/MedicineCareSelectOne");
-              }}
-            />
-        </div>
-        <div className="content-box bg-1 combine-left-government2 combine-bottom-government7">
-          <div className="flex">
-          <Title title={"댁내온도 위험 대상자 리스트"} explanation={"월별 약상자 사용 인원"} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Table
-            className={"medicine-table"}
-              head={thead2}
-              contents={content2}
-              contentKey={key2}
-              onClick={() => {
-                navigate("/MedicineCareSelectOne");
-              }}
-            />
-        </div>
-        <div className="content-box combine-right-government2 combine-bottom-government5">
-          <div className="flex">
-            <Title title={"나의 관리 대상자"} explanation={"지역별 대상자 현황을 확인할 수 있습니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Chart5_agency />
-        </div>
-        <div className="content-box combine-right-government combine-bottom-government2">
-          <div className="flex">
-          <Title title={"방문 달력"} explanation={"방문 일정을 캘린더로 관리하세요."} />
-          </div>
-          <Calendar_agency />
-        </div>        
       </div>
     </main>
   );
client/views/pages/senior_management/SeniorSelectOne.jsx
--- client/views/pages/senior_management/SeniorSelectOne.jsx
+++ client/views/pages/senior_management/SeniorSelectOne.jsx
@@ -16,42 +16,37 @@
             <tr>
               <th>이름</th>
               <td>
-                <span>김복남</span>
+                <span></span>
               </td>
-              <th>사용자등록번호</th>
+              <th>성별</th>
               <td>
-                <span>202280102</span>
+                <span></span>
               </td>              
             </tr>
             <tr>
             <th>생년월일</th>
               <td>
-                <span>1948.11.15</span>
+                <span></span>
               </td>
               <th>연락처</th>
               <td>
-                <span>010-1234-5678</span>
+                <span></span>
               </td>
             </tr>
             <tr>
-              <th>요양등급</th>
+              <th>주소</th>
               <td>
                 <span>1등급</span>
               </td>
-              <th>성별</th>
-              <td>
-                <span>남</span>
-              </td>              
+                            
             </tr>
             <tr>
-            <th>주소</th>
-              <td>
-                <span>경상북도 군위군 삼국유사면</span>
-              </td>
-              <th>보호자 비상연락망</th>
-              <td>
-                <span>010-1234-5678</span>
-              </td>
+            <th>필요복약</th>
+              <td className="flex-start">
+                <span>아침</span>
+                <span>점심</span>
+                <span>저녁</span>
+              </td>              
             </tr>
             <tr>
               <th>복용중인 약</th>
@@ -60,9 +55,9 @@
               </td>
             </tr>
             <tr>
-              <th>기저질환</th>
+              <th>비고</th>
               <td colSpan={3} style={{height:"300px"}}>
-                <span>고혈압</span>
+                <span></span>
               </td>
             </tr>
           </tbody>
@@ -72,14 +67,14 @@
             className={"btn-large gray-btn"}
             btnName={"이전"}
             onClick={() => {
-              navigate("/SeniorSelect");
+              navigate("/UserAuthoriySelect_agency");
             }}
           />
           <Button
             className={"btn-large green-btn"}
             btnName={"수정"}
             onClick={() => {
-              navigate("/SeniorInsert");
+              navigate("/UserAuthoriySelect_agency");
             }}
           />
         </div>
client/views/pages/user_management/UserAuthoriySelect_agency.jsx
--- client/views/pages/user_management/UserAuthoriySelect_agency.jsx
+++ client/views/pages/user_management/UserAuthoriySelect_agency.jsx
@@ -221,7 +221,7 @@
     if (id == 2) {
       return (
         <Button
-          className={"btn-small green-btn"}
+          className={"btn-small gray-btn"}
           btnName={"등록"}
           onClick={() => {
             navigate("/SeniorInsert");
@@ -524,7 +524,7 @@
           </table>
           <div className="btn-wrap flex-center">
             <Button
-              className={"btn-small green-btn"}
+              className={"btn-small gray-btn"}
               btnName={"등록"}
               onClick={() => {
                 InsertSenior(userName, gender, brith, telNum, homeAddress, note, medicineM, medicineL, medicineD)
@@ -535,7 +535,7 @@
       </Modal>
 
       <div className="tab-container">
-        <ul className="tab-menu">
+        <ul className="tab-menu flex-start">
           {data.map((item) => (
             <li
               key={item.id}
@@ -566,7 +566,7 @@
             />
           </div>
           <div className="btn-wrap flex-end">
-            <Button className={"btn-small green-btn"} btnName={"등록"} onClick={openModal3} />
+            <Button className={"btn-small gray-btn"} btnName={"등록"} onClick={openModal3} />
           </div>
           <ul className="tab-content">
             {data
Add a comment
List