방선주 방선주 2023-03-08
Merge branch 'admin' of http://210.180.118.83/yjryu/senior_care_system into admin
@773c475197a0f0080d96ed9e87aff5094bfb630a
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -2,7 +2,8 @@
 /* layout 공통 */
 textarea{border: 1px solid #d8d3c7; border-radius: 5px;}
 em{font-style: normal;}
-main img{margin-right: 1rem;}
+main img{margin-right: 1rem; max-width: 100%;
+  width: unset;}
 /* grid */
 
 .main-grid-admin {
@@ -28,7 +29,6 @@
   gap: 1rem;
 }
 .main-grid-agency {
-  height: 100%;
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
   grid-template-rows: 0.1fr;
@@ -227,7 +227,6 @@
 .flex100 {
   flex: 0 0 100%;
 }
-
 /* width 공통 */
 .width100 {
   width: 100%;
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -16,9 +16,6 @@
   grid-template-columns: 315px 1fr;
   grid-template-rows: 0.1fr 2.9fr;
 }
-#layout.expander{
-  grid-template-columns: 50px 1fr;
-}
 header {
   padding: 1rem 3rem;
   background-color: white;
@@ -28,17 +25,18 @@
   width: 100%;
 }
 
-.page-title span {
-  font-size: 1.8rem;
+.page-title-span {
+  font-size: 2.5rem;
   font-weight: bold;
-  margin-left: 1rem;
 }
 
 nav{
   height: 100%;
+  width: 310px;
   background-color: #f2f0eb;
   grid-area: nav;
-  position: relative;
+  position: fixed;
+  z-index: 10;
   background: #ffffff;
   box-shadow: 1px 0px 6px 2px rgb(0 0 0 / 20%); 
 }
@@ -131,7 +129,6 @@
 .logout{background: #f26e50;}
 #pages {
   max-width: 100%;
-  height: 100%;
   padding: 3rem;
   background-color: #f4f4f2;
   grid-area: main;
@@ -141,6 +138,7 @@
 
 main {
   max-width: 100%;
+  height: 100%;
 }
 
 .content-wrap {
@@ -151,7 +149,6 @@
 .userlist{
   box-shadow: 1px 1px 5px 1px rgb(0 0 0 / 20%);
   width: 100%;
-  height: 51rem;
   padding: 4.5rem 2rem;
 }
 
@@ -237,7 +234,7 @@
 }
 .hierarchy-menu ul a {
   display: block;
-  padding: 6px 5rem;
+  padding: 6px 0 0 5rem;
   height: 44px;
   position: relative;
   color: #333333;
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -1,9 +1,4 @@
 /* 공통 */
-.logo {
-  font-size: 2.4rem;
-  font-family: 'AuctionGothic_Medium';
-}
-
 header>div {
   height: 100%;
 }
@@ -20,14 +15,13 @@
 .menuicon {
   display: none;
   cursor: pointer;
-  height: 9.4rem;
-  left: 2.5rem;
+  left: 1.5rem;
   top: 2.6rem;
   position: absolute;
 }
 
 /* 시행기관 장비관리 리스트 */
-
+.react-calendar__month-view__days__day--neighboringMonth{display: none;}
 .visitlist {
   height: 55vh;
 }
@@ -66,12 +60,13 @@
 }
 
 .question-select label {
-  width: 10%;
+  margin-right: 1rem;
 }
 
 .question-select select {
   width: 16%;
   height: 3.7rem;
+  margin-right: 1rem;
 }
 
 .qna-insert select {
@@ -139,7 +134,7 @@
 
 
 /* -----------------------------------------------지자체 */
-
+.statistics-agency #RowChart>div{height: 36rem;}
 
 .map {
   width: 100%;
@@ -277,12 +272,13 @@
   color: #cbc9c9;
 }
 
-.statistics-guardian {
-  height: 100%;
+.statistics-grid .statistics-guardian {
+  height: 41vh;
 }
-
+.statistics-grid .statistics-guardian li:nth-child(1) p:nth-child(2){font-size: 2rem; font-weight: bold; margin-right: 1rem;}
+.statistics-grid .statistics-guardian li:nth-child(1) p:nth-child(3){font-size: 1.6rem; }
 .guardian-medicine {
-  height: 16vh;
+  height: 17vh;
 }
 
 .statistics-guardian li {
@@ -291,52 +287,17 @@
   border-radius: 20px;
   margin: 0 auto;
   margin-bottom: 1rem;
+  position: relative;
 }
-
-/* .statistics-guardian:nth-child(1) {
-  background: #fbe4e4;
-}
-
-.statistics-guardian:nth-child(2) {
-  background: #edf7df;
-}
-
-.statistics-guardian:nth-child(3) {
-  background: #f9f7e0;
-}
-
-.statistics-guardian:nth-child(4) {
-  background: #e9e7fe;
-}
-.statistics-guardian li p{
-  padding: 0 2rem;
-} */
-.statistics-guardian li:nth-child(2),
-.statistics-guardian li:nth-child(3),
-.statistics-guardian li:nth-child(4),
-.statistics-guardian li:nth-child(5),
-.statistics-guardian li:nth-child(6),
-.statistics-guardian li:nth-child(7) {
-  background: rgba(255, 254, 254, 0.5);
-}
-
-.chart-guardian {
-  height: 77%;
-}
-
-.statistics-guardian li p:nth-child(3) {
-  font-size: 1.5rem;
-}
-
-.statistics-guardian li p:nth-of-type(1) {
-  position: inherit;
-  font-size: 1.5rem;
+.medicine-title{
+  position: absolute;
+  right: -13px;
+  top: 78px;
   font-weight: bold;
+  font-size: 1.5rem;
 }
-
-.statistics-guardian li p:nth-of-type(2) {
-  padding: 0;
-  font-size: 2rem;
+.chart-guardian {
+  height: 70%;
 }
 
 .guardian-table {
@@ -468,6 +429,8 @@
   display: none;
   box-shadow: 1px 1px 14px 1px rgba(0, 0, 0, 0.15);
   border-radius: 20px;
+  max-width: 100%;
+  width: unset;
 }
 
 .battery-img img.show {
@@ -779,11 +742,6 @@
 .detail-search table td {
   border-top: none;
 }
-
-.detail-search tbody tr:nth-of-type(2) select {
-  width: 24.4%;
-}
-
 .detail-search tbody select {
   height: 3.7rem;
 }
@@ -1137,6 +1095,9 @@
 }
 
 /* 사용자 관리 */
+.userauthoriylist .left{width: 27%;}
+ .userauthoriylist .right{width: 70%; }
+.bSXvtB{display: none;}
 .tab-menu .tab-menu-agency {
   display: flex;
 }
@@ -1174,12 +1135,13 @@
 
 .search-management select {
   width: 15%;
-  height: 3rem;
+  height: 3.6rem;
+  margin-right: 1rem;
 }
 
 .search-management input {
   width: 20%;
-  height: 3.7rem;
+  height: 3.6rem;
   margin-right: 1rem;
 }
 
client/resources/css/reset.css
--- client/resources/css/reset.css
+++ client/resources/css/reset.css
@@ -94,7 +94,6 @@
 select{
   width: 32%;
   border-radius: 0.5rem;
-  margin-right: 1rem;
   border: 1px solid #d8d3c7;
 }
 
client/resources/css/responsive.css
--- client/resources/css/responsive.css
+++ client/resources/css/responsive.css
@@ -259,11 +259,6 @@
   }
 
   /* 사용자 관리 */
-  .tab-menu-mobile {
-    display: block;
-    padding: 1rem;
-    background-color: #ffffff;
-  }
 
   .tab-menu {
     display: none;
@@ -573,31 +568,63 @@
   .usericon {
     display: none;
   }
-
+  .ittLqr{font-size: 1.3rem !important;}
   /* 공통 */
   #layout{display: block;}
-  #pages{padding: 1rem;}
+  #pages{padding: 1rem; padding-top: 12rem; background-color: #ffffff;}
   header {
     padding: 1rem;
     position: fixed;
   }
   nav {
     position: fixed;
-    left: -310px;
-    top: 86px;
-    z-index: 10;
+    left: -320px;
+    top: 87px;
+    z-index: 12;
     transition: 0.5s;
     box-shadow:12px -6px 10px -10px rgb(0 0 0 / 20%);
     height:91vh;
   }
-  main{padding-top: 9rem;}
   nav.on {
     left: 0;
     transition: 0.5s;
   }
   .bottom-section{padding: 0.9rem ; bottom: 6rem;}
-  .content-wrap{padding: 1rem;}
+  .content-wrap{padding: 3rem 1rem 0 1rem; }
   th,td,tr{display: block;}
+  .header-info-id,#fullDate, #temp,.cCoJhO{display: none;}
+  /* 에이젼시 메인 */
+  .main-grid-agency{display: block;}
+  .main-grid-agency .agency-visitlist{margin-top: 16rem;}
+  .agency-calendar .react-calendar__month-view__weekdays{display: flex !important;}
+  .agency-calendar .react-calendar__month-view__days__day{flex: 0 0 12.5% !important;}
+  .agency-calendar .react-calendar__month-view__days{flex-wrap: wrap !important;}
+  .tab-menu-agency li{padding: 1rem;}
+  .statistics-agency{margin-bottom: 1rem;}
+  /* 지자체 메인 */
+  .main-grid-government{display: block;}
+  .main-grid-government .content-box:nth-child(8), .main-grid-government .content-box:nth-child(6){height: 30rem;}
+  #RowChart>div{height: 36rem;}  
+  .main-grid-government .content-box{margin-bottom: 1rem;}
+  .statistics-govern{margin-bottom: 1rem;}
+  /* 보호자 메인 */
+  .main-grid-guardian{display: block;}
+  .guardian-img{width: 2rem;}
+ 
+  /* 보호자 그래프보기 */
+  #chartdiv1{height: 26vh !important;}
+  #chartdiv{height: 26vh !important;}
+  #chart{height: 27vh !important;}
+  #Chart2{height: 27vh !important;}
+  .statistics-grid{display: block;}
+  .statistics-grid .statistics-guardian {
+   margin-bottom: 1rem; padding: 0; height: 32vh;
+  }
+  .statistics-grid .statistics-guardian li{padding: 0;}
+  .statistics-grid .statistics-guardian li p:nth-child(1){margin-right: 1rem;}
+  .statistics-grid .statistics-guardian li:nth-child(1) p:nth-child(2){width: 20%;}
+  /* Q&A */
+  .question-select select{width: 22%;}
   /* 권한관리 */
   .authority-table-pc {
     display: none;
@@ -654,84 +681,39 @@
   }
 
   /* 사용자관리 */
-  .tab-menu-mobile {
-    display: block;
-    padding: 1rem;
-    background-color: #ffffff;
-  }
-
-  .tab-menu {
-    display: none;
-  }
-
+  .senior-search{width: 25% !important;}
+  .searchselect label{margin-right: 2rem;}
+  .protector-user{margin-top: 2rem;}
+  .userauthoriylist{display: block;}
+  .userauthoriylist .left, .userauthoriylist .right {
+    width: 100% ;
+}
+.userauthoriylist .right{margin-top: 2rem;}
+.tab-menu {display: block;}
+.tab-menu li{width: 100%;}
+.userlist{padding: 1rem !important;}
   .search-management {
     justify-content: space-between;
   }
 
   .search-management select {
     width: 22%;
+    margin: 0;
   }
 
   .search-management input {
-    width: 30%;
-    margin-right: 1rem;
+    width: 52%;margin: 0;
   }
 
-  .search-management button {
-    width: 20%;
-  }
-
-  /* 공통 */
-
-  .header-flex {
-    display: flex;
-    justify-content: flex-start;
-  }
-
-  /* 보호자 메인 그리드 */
-  .pc {
-    display: none;
-  }
-
-  .mobile {
-    display: block;
-  }
-
-  .mobile .main-grid-guardian {
-    gap: 0.5rem;
-  }
-
-  .mobile .main-grid-guardian .content-box {
-    padding: 0.5rem;
-  }
-
-  .mobile .main-grid-guardian .content-box:nth-child(2)>div p {
-    font-size: 1.8rem;
-  }
-
-  .mobile .main-grid-guardian .content-box:nth-child(7)>div {
-    justify-content: flex-start;
-  }
-
-  .mobile .main-grid-guardian {
-    grid-template-columns: 1fr;
-    grid-template-rows: none;
-  }
-
-  .mobile .main-grid-guardian .combine-right-government,
-  .mobile .main-grid-guardian .combine-left {
-    grid-column: 1;
-  }
-
-  .mobile .main-grid-guardian .combine-bottom-government {
-    grid-column: 0;
-  }
+ .searchselect-wrap{display: block;}
+ .searchselect{width: max-content;}
+ .page-title-span{display: block;
+  margin-left: 5rem;}
 
   /* button */
 
   .btn-large {
     font-size: 1.4rem;
-    width: 20%;
   }
 
   /* 로그인 */
@@ -765,89 +747,9 @@
     width: 30%;
   }
 
-  /* 메인 */
-  .temp p {
-    font-size: 2rem;
-  }
-
-  .main-battery-title {
-    font-size: 1.4rem;
-    justify-content: flex-start;
-    padding-right: 1rem;
-  }
-
-  .battery::after {
-    content: " 남았습니다.";
-    font-size: 1.4rem;
-    margin-left: 0;
-  }
-
-  .battery p {
-    font-size: 2rem;
-    padding-left: 0;
-    padding-right: 1rem;
-  }
-
-  #chartdiv1 {
-    height: 25vh;
-  }
-
-  .statistics li p:nth-of-type(1),
-  .statistics li p:nth-of-type(2) {
-    font-size: 1.4rem;
-  }
-
-  .weather-info {
-    width: 70%;
-  }
-
-  .recent-visit {
-    border: 0;
-  }
-
-  .recent-visit td {
-    padding-left: 12rem;
-  }
-
-  .recent-visit td:nth-of-type(1) {
-    font-weight: bold;
-    padding: 0.5rem;
-  }
-
-  .recent-visit td:nth-of-type(1)::before {
-    content: "";
-  }
-
-  .recent-visit td:nth-of-type(2):before {
-    content: "방문목적";
-  }
-
-  .recent-visit td:nth-of-type(3):before {
-    content: "방문 상세 이유";
-  }
-
 
   /* 검색창 */
-
-  .mobile-area-wrap {
-    display: block;
-    margin-top: 1rem;
-  }
-
-  .mobile-area-wrap div {
-    width: 100%;
-    margin-top: 1rem;
-  }
-
-  .mobile-area-wrap div label {
-    width: 30%;
-    font-size: 1.6rem;
-  }
-
-  .mobile-area-wrap div select {
-    width: 70%;
-  }
-
+  .detail-search tbody select{margin-right: 1rem;}
   .area-wrap {
     display: none;
   }
@@ -1072,7 +974,7 @@
   }
 
   /* 장비조회 */
-
+  .equip-tab{display: block;}
   /* 장비 상세 조회 */
   /* 장비등록창 */
   .equipment-modal tbody td {
client/views/component/AgencySearch.jsx
--- client/views/component/AgencySearch.jsx
+++ client/views/component/AgencySearch.jsx
@@ -190,8 +190,8 @@
 
   return (
     <div className="search-group">
-      <div className="search-area flex" style={{ width:"50%"}}>
-        <div className="detail-search" style={{ width:"85%"}}>
+      <div className="search-area flex-start" >
+        <div className="detail-search" >
           <table>
             <tbody>
               <tr>
client/views/component/DetailTitle.jsx
--- client/views/component/DetailTitle.jsx
+++ client/views/component/DetailTitle.jsx
@@ -28,7 +28,7 @@
   &::before {
     content: "";
     position: absolute;
-    z-index: 10;
+    z-index: 5;
     left: 0;
     bottom: -15px;
     height: 8px;
client/views/component/QnAModal.jsx
--- client/views/component/QnAModal.jsx
+++ client/views/component/QnAModal.jsx
@@ -4,45 +4,106 @@
 import SubTitle from "./SubTitle.jsx";
 import { useNavigate } from "react-router";
 
-export default function QaAModal({ open, close, }) {
+export default function QnAModal({ open, close }) {
+  const [qnaRegisteringList, setQnaRegisteringList] = React.useState([]);
+
+  const [idx, setIdx] = React.useState();
+  const [title, setTitle] = React.useState("");
+  const [datetime, setDatetime] = React.useState("");
+  const [contents, setContents] = React.useState("");
+
+  //qna등록
+  const getQnaRegisteringList = () => {
+    fetch("/qna/qnaInsert.json", {
+      method: "POST",
+      headers: {
+        "Content-Type": "application/json; charset=UTF-8;",
+      },
+      body: JSON.stringify({
+        qna_idx: idx,
+        qna_title: title,
+        qna_insert_user_id: "gym1004",
+        qna_insert_datetime: datetime,
+      }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        if (data > 0) {
+          console.log(data);
+          alert("등록완료");
+          close(true);
+        } else {
+          alert("등록실패, 관리자에게 문의해주세요.");
+        }
+      })
+      .catch((error) => {
+        console.log("qna error : ", error);
+      });
+  };
+
+  //게시판
+  const thead = ["제목", "작성자", "작성일자"];
+  const key = ["qna_title", "qna_insert_user_name", "qna_insert_datetime"];
+
   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>
+      {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>
+                  <tr>
+                    <th>제목</th>
+                    <td colSpan={3}>
+                      <input
+                        type="text"
+                        value={title}
+                        onInput={(e) => {
+                          setTitle(e.target.value);
+                        }}
+                      />
+                    </td>
+                  </tr>
+                  <tr>
+                    <th>내용</th>
+                    <td colSpan={3}>
+                      <textarea
+                        className="medicine"
+                        cols="30"
+                        rows="2"
+                        value={contents}
+                        onInput={(e) => {
+                          setContents(e.target.value);
+                        }}
+                      ></textarea>
+                    </td>
+                  </tr>
+                </table>
+              </div>
+              <div className="flex-center">
+                <Button
+                  className={"btn-small red-btn"}
+                  btnName={"저장"}
+                  onClick={() => getQnaRegisteringList()}
+                />
+              </div>
+            </div>
+          </div>
         </div>
-        <div className="flex-center"><Button className={"btn-small red-btn"} btnName={"저장"} /></div >
-      </div></div>
-      </div>
-    ) : null}
-  </div>
-    
+      ) : null}
+    </div>
   );
 }
client/views/component/chart/LineColor.jsx
--- client/views/component/chart/LineColor.jsx
+++ client/views/component/chart/LineColor.jsx
@@ -151,13 +151,13 @@
 
     // Add scrollbar
     // https://www.amcharts.com/docs/v5/charts/xy-chart/scrollbars/
-    chart.set(
-      "scrollbarX",
-      am5.Scrollbar.new(root, {
-        orientation: "horizontal",
-        marginBottom: 20,
-      })
-    );
+    // chart.set(
+    //   "scrollbarX",
+    //   am5.Scrollbar.new(root, {
+    //     orientation: "horizontal",
+    //     marginBottom: 20,
+    //   })
+    // );
 
     // Make stuff animate on load
     // https://www.amcharts.com/docs/v5/concepts/animations/
client/views/layout/Header.jsx
--- client/views/layout/Header.jsx
+++ client/views/layout/Header.jsx
@@ -11,16 +11,15 @@
   return (
     <header>
       <div className="header-flex flex flex-align">
+        <span className="page-title-span">{title}</span>
         <div className="page-title flex flex-align">
           {/* <MenuIcon /> */}
           <div className="info-wrap flex">
             <div className="usericon"><PersonIcon sx={{ width:48, height:48,}} /></div>
-            <p className="header-info-id">admin1</p>
-            
+            <p className="header-info-id">admin1</p>            
           </div>
-          {/* <span>{title}</span> */}
-        </div>
         <Weather />
+        </div>
       </div>
     </header>
   );
client/views/pages/callcenter/QandASelect.jsx
--- client/views/pages/callcenter/QandASelect.jsx
+++ client/views/pages/callcenter/QandASelect.jsx
@@ -2,6 +2,7 @@
 import Button from "../../component/Button.jsx";
 import Table from "../../component/Table.jsx";
 import Modal from "../../component/Modal.jsx";
+import DetailTitle from "../../component/DetailTitle.jsx";
 import { useNavigate } from "react-router";
 import ContentTitle from "../../component/ContentTitle.jsx";
 import RestoreFromTrashIcon from '@mui/icons-material/RestoreFromTrash';
@@ -62,8 +63,8 @@
   return (
     <main>
       <div className="content-wrap">
-        <ContentTitle contentTitle={"장비 문의 요청"} />
-        <div className="board-wrap">
+      <DetailTitle contentTitle={"장비 문의 요청"} />
+        <div className="board-wrap" style={{ marginTop: "3rem" }} >
           <div className="btn-wrap flex-end margin-bottom">
             
             <Button
client/views/pages/callcenter/QuestionConfirm.jsx
--- client/views/pages/callcenter/QuestionConfirm.jsx
+++ client/views/pages/callcenter/QuestionConfirm.jsx
@@ -5,7 +5,41 @@
 import { useNavigate } from "react-router";
 
 export default function QuestionConfirm() {
+
   const navigate = useNavigate();
+
+  const [username, setUsername] = React.useState("");
+  const [qnaOne, setQnaOne] = React.useState([]);
+
+
+  //qna 조회
+  const getQnaOne = () => {
+    fetch("/qna/qnaSelectOne.json", {
+      method: "POST",
+      headers: {
+        "Content-Type": 'application/json; charset=UTF-8',
+      },
+      body: JSON.stringify({
+        qna_insert_user_name : username
+        
+      }),
+    })
+      .then((response) => response.json())
+      .then((data) => {
+        console.log(data[3]);
+        setQnaOne(data[3]);
+      })
+      .catch((error) => {
+        console.log("qna error : ", error);
+      });
+  };
+
+  React.useEffect(() => {
+
+    getQnaOne();
+
+  }, [])
+  
   return (
     <main>
       <div className="content-wrap row">
@@ -14,29 +48,23 @@
         <table className="margin-bottom2 senior-insert">
           <tr>
             <th>작성자</th>
-            <td>
-              김가족
-            </td>
+            <td>{qnaOne.qna_insert_user_name}</td>
           </tr>
 
           <tr>
             <th>제목</th>
-            <td colSpan={3}>
-              문의
-            </td>
+            <td colSpan={3}>{qnaOne.qna_title}</td>
           </tr>
           <tr>
-              <th>내용</th>
-              <td colSpan={3}>
-                문의합니다.
-              </td>
-            </tr>
-            <tr>
-              <th>답변하기</th>
-              <td colSpan={3}>
-                <textarea className="medicine" cols="30" rows="2"></textarea>
-              </td>
-            </tr>
+            <th>내용</th>
+            <td colSpan={3}>{qnaOne.qna_content}</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">
@@ -44,14 +72,14 @@
             className={"btn-large gray-btn"}
             btnName={"이전"}
             onClick={() => {
-              navigate("/QandASelect");
+              navigate("/QuestionSelect");
             }}
           />
           <Button
             className={"btn-large green-btn"}
             btnName={"등록"}
             onClick={() => {
-              navigate("/QandASelect");
+              navigate("/QuestionSelect");
             }}
           />
         </div>
@@ -59,3 +87,114 @@
     </main>
   );
 }
+
+// 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";
+// import { useParams } from "react-router";
+
+// export default function QuestionConfirm() {
+//   const navigate = useNavigate();
+
+
+//   const [username, setUsername] = React.useState("");
+//   const [qnaOne, setQnaOne] = React.useState([]);
+
+
+//   //qna 조회
+//   const getQnaOne = () => {
+//     fetch("/qna/qnaSelectOne.json", {
+//       method: "POST",
+//       headers: {
+//         "Content-Type": 'application/json; charset=UTF-8',
+//       },
+//       body: JSON.stringify({
+//         qna_insert_user_name : username
+        
+//       }),
+//     })
+//       .then((response) => response.json())
+//       .then((data) => {
+//         console.log(data[3]);
+//         setQnaOne(data[3]);
+//       })
+//       .catch((error) => {
+//         console.log("qna error : ", error);
+//       });
+//   };
+
+
+//   // const getSeniorDataOne = () => {
+//   //   fetch("/user/selectSeniorOne.json", {
+//   //     method: "POST",
+//   //     headers: {
+//   //       'Content-Type': 'application/json; charset=UTF-8'
+//   //     },
+//   //     body: JSON.stringify({
+//   //       user_id: seniorId
+//   //     }),
+//   //   }).then((response) => response.json()).then((data) => {
+//   //     console.log("data : ", data[0]);
+//   //     setSeniorOne(data[0]);
+
+//   //   }).catch((error) => {
+//   //     console.log('getSeniorDataOne() /user/selectSeniorOne.json error : ', error);
+//   //   });
+//   // };
+
+//   React.useEffect(() => {
+
+//     getQnaOne();
+
+//   }, [])
+
+
+//   return (
+//     <main>
+//       <div className="content-wrap row">
+//         <ContentTitle contentTitle={"문의글 작성"} />
+//         <SubTitle explanation={"작성자 정보"} />
+//         <table className="margin-bottom2 senior-insert">
+//           <tr>
+//             <th>작성자</th>
+//             <td>{qnaOne.qna_insert_user_name}</td>
+//           </tr>
+
+//           <tr>
+//             <th>제목</th>
+//             <td colSpan={3}>{qnaOne.qna_title}</td>
+//           </tr>
+//           <tr>
+//             <th>내용</th>
+//             <td colSpan={3}>{qnaOne.qna_content}</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("/QuestionSelect");
+//             }}
+//           />
+//           <Button
+//             className={"btn-large green-btn"}
+//             btnName={"등록"}
+//             onClick={() => {
+//               navigate("/QuestionSelect");
+//             }}
+//           />
+//         </div>
+//       </div>
+//     </main>
+//   );
+// }
client/views/pages/callcenter/QuestionSelect.jsx
--- client/views/pages/callcenter/QuestionSelect.jsx
+++ client/views/pages/callcenter/QuestionSelect.jsx
@@ -13,16 +13,16 @@
   const openModal = () => {
     setModalOpen(true);
   };
-  const closeModal = () => {
+  const closeModal = (isInsertComplete) => {
     setModalOpen(false);
+    if (isInsertComplete == true) {
+      getQnaList();
+    }
   };
 
-  const [qnaList, setQnaList] = React.useState();
+  const [qnaList, setQnaList] = React.useState([]);
 
-  const [state, setState] = React.useState();
-  const [title, setTitle] = React.useState();
-  const [username, setUsername] = React.useState();
-  const [datetime, setDatetime] = React.useState();
+  const [idx, setIdx] = React.useState();
 
   //-------- 페이징 작업 설정 시작 --------//
   const limit = 15; // 페이지당 보여줄 공지 개수
@@ -39,17 +39,15 @@
       },
       body: JSON.stringify({
 
-        qna_state: state,
-        qna_title: title,
-        qna_insert_user_id: username,
-        qna_insert_datetime: datetime,
+        qna_idx: idx,
+
       }),
     })
       .then((response) => response.json())
       .then((data) => {
         console.log(data);
         setQnaList(data);
-        // setMyQnaTotal(data.length);
+        setMyQnaTotal(data.length);
       })
       .catch((error) => {
         console.log(
@@ -61,25 +59,8 @@
 
   //게시판
   const thead = ["No", "답변상태", "제목", "작성자", "작성일자"];
-  const key = ["idx", "state", "title", "username", "datetime"];
-  const content = [
-    {
-      No: 1,
-      answer: "답변완료",
-      title: (
-        <div
-          className="title"
-          onClick={() => {
-            navigate("/QuestionConfirm");
-          }}
-        >
-          담당자 바꿔주세요
-        </div>
-      ),
-      writer: "홍길동",
-      date: "2023-01-27",
-    },
-  ];
+  const key = ["qna_idx", "qna_state", "qna_title", "qna_insert_user_name", "qna_insert_datetime"];
+  
 
   React.useEffect(() => {
 
@@ -95,7 +76,6 @@
         header="기관 등록"
       ></QnAModal>
       <div className="content-wrap">
-        <ContentTitle contentTitle={"Q&A"} />
         <div className="board-wrap">
           <div className="btn-wrap flex-end margin-bottom question-select">
             <input type="checkbox" />
@@ -115,20 +95,20 @@
         <Table
           className="equipment-detail"
           head={thead}
-          contents={content}
+          contents={qnaList}
           contentKey={key}
           view={"qna"}
           offset={offset}
           limit={limit}
         />
-      </div>
-      <div>
-        <Pagination
-          total={myQnaTotal}
-          limit={limit}
-          page={page}
-          setPage={setPage}
-        />
+        <div className="margin-bottom">
+          <Pagination
+            total={myQnaTotal}
+            limit={limit}
+            page={page}
+            setPage={setPage}            
+          />
+        </div>
       </div>
     </main>
   );
client/views/pages/equipment/EquipmentManagementSelect.jsx
--- client/views/pages/equipment/EquipmentManagementSelect.jsx
+++ client/views/pages/equipment/EquipmentManagementSelect.jsx
@@ -149,7 +149,7 @@
 	}
 
 
-	// 관리자 전체 장비 목록
+	// 전체 장비 목록
 	const [equipmentList, setEquipmentList] = React.useState([]);
 	// 장비
 	const [equipment, setEquipment] = React.useState({
@@ -162,20 +162,10 @@
 	});
 	// 장비 등록 모달창
 	const [equipmentInsertModal, setEquipmentInsertModal] = React.useState(false);
+	// 장비 상세 조회 모달창
+	const [equipmentOneModal, setEquipmentOneModal] = React.useState(false);
 
-	// 장비 등록 모달창 열기
-	const equipmentInsertModalOpen = () => {
-		setEquipmentInsertModal(true);
-	};
-	// 장비 등록 모달창 닫기
-	const equipmentInsertModalClose = () => {
-		// 장비 초기화
-		setEquipment(equipment_);
-		setEquipmentInsertModal(false);
-	};
-
-
-	// 관리자 전체 장비 목록 조회
+	// 전체 장비 목록 조회
 	const equipmentSelectList = () => {
 		console.log('equipmentSelectList Function Run');
 		fetch("/equipment/equipmentSelectList.json", {
@@ -192,9 +182,20 @@
 		});
 	}
 
+	// 장비 등록 모달창 열기
+	const equipmentInsertModalOpen = () => {
+		setEquipmentInsertModal(true);
+	};
+	// 장비 등록 모달창 닫기
+	const equipmentInsertModalClose = () => {
+		// 장비 초기화
+		setEquipment(equipment_);
+		setEquipmentInsertModal(false);
+	};
+
 	// 장비 임시 데이터
 	const equipmentChange = (e) => {
-		console.log('equipmentChange: ', e.target.name, e.target.value);
+		// console.log('equipmentChange: ', e.target.name, e.target.value);
 
 		// 원본 데이터 복사 및 수정
 		let data = {};
@@ -227,6 +228,14 @@
 				return;
 			}
 		}
+		
+		// 시리얼 넘버 중복검사
+		for(let i = 0; i < equipmentList.length; i++) {
+			if(equipment["equipment_serial_number"] == equipmentList[i]["equipment_serial_number"]) {
+				alert('이미 등록된 시리얼 넘버입니다.');
+				return;
+			}
+		}
 
 		fetch("/equipment/equipmentInsert.json", {
 			method: "POST",
@@ -249,6 +258,84 @@
 			alert('등록에 실패했습니다.');
 		});
 	}
+
+	// 장비 상세 조회 모달창 열기
+	const equipmentOneModalOpen = (item) => {
+		setEquipment(item);
+		setEquipmentOneModal(true);
+	};
+	// 장비 상세 조회 모달창 닫기
+	const equipmentOneModalClose = () => {
+		// 장비 초기화
+		setEquipment(equipment_);
+		setEquipmentOneModal(false);
+	};
+
+	// 장비 수정
+	const equipmentUpdate = () => {
+		console.log('equipmentUpdate Function Run');
+
+		// 유효성 검사
+		for(let i = 0; i < equipmentInsertHead.length; i++) {
+			if(equipment[equipmentInsertKey[i]] == null) {
+				alert(equipmentInsertHead[i] +'를 선택해 주세요');
+				return;
+			}
+		}
+
+		fetch("/equipment/equipmentUpdate.json", {
+			method: "POST",
+			headers: {
+				'Content-Type': 'application/json; charset=UTF-8'
+			},
+			body: JSON.stringify(equipment),
+		}).then((response) => response.json()).then((data) => {
+			console.log('equipmentUpdate response : ', data);
+			// 장비 목록 조회
+			equipmentSelectList();
+			// 장비 초기화
+			setEquipment(equipment_);
+			// 모달창 닫기
+			setEquipmentOneModal(false);
+
+			alert('수정이 완료됐습니다.');
+		}).catch((error) => {
+			console.log('equipmentUpdate error : ', error);
+			alert('수정에 실패했습니다.');
+		});
+	}
+
+	// 장비 삭제
+	const equipmentDelete = () => {
+		console.log('equipmentDelete Function Run');
+
+		// 삭제 확인 팝업
+		if (confirm('정말 삭제하시겠습니까?') == false) {
+			return;
+		}
+
+		fetch("/equipment/equipmentDelete.json", {
+			method: "POST",
+			headers: {
+				'Content-Type': 'application/json; charset=UTF-8'
+			},
+			body: JSON.stringify(equipment),
+		}).then((response) => response.json()).then((data) => {
+			console.log('equipmentDelete response : ', data);
+			// 장비 목록 조회
+			equipmentSelectList();
+			// 장비 초기화
+			setEquipment(equipment_);
+			// 모달창 닫기
+			setEquipmentOneModal(false);
+
+			alert('삭제가 완료됐습니다.');
+		}).catch((error) => {
+			console.log('equipmentDelete error : ', error);
+			alert('삭제에 실패했습니다.');
+		});
+	}
+
 
 	// 장비 등록 th
 	const equipmentInsertHead = [
@@ -278,7 +365,7 @@
 		"입고 일자",
 		"상태",
 		"보유 기관",
-		"시행기관 관리",
+		"기관 관리",
 	];
 	const key1 = [
 		"equipment_name",
@@ -846,7 +933,7 @@
 			title: "전체 장비" + "(" + equipmentList.length + ")",
 			description: (
 				<div>
-					<div className="flex">
+					<div className="flex equip-tab">
 						<SubTitle explanation={"장비 클릭 시 지난 매칭이력을 확인할 수 있습니다."} />
 						<div className="btn-wrap flex-end margin-bottom ">
 							<Button
@@ -882,7 +969,7 @@
 							{equipmentList.length > 0
 								? equipmentList.map((item, index) => {
 									return (
-										<tr key={index}>
+										<tr key={index} onClick={() => equipmentOneModalOpen(item)}>
 											<td>{equipmentList.length - index}</td>
 											{key1.map((kes) => {
 												if(kes == "equipment_state") {
@@ -894,7 +981,7 @@
 												}
 												return <td>{item[kes]}</td>
 											})}
-											<td>
+											<td onClick={(e) => e.stopPropagation()}>
 												{
 													item['senior_id'] == null
 														? <Button
@@ -908,6 +995,11 @@
 															onClick={seniorMatchDelete}
 														/>
 												}
+												<Button
+													className={"btn-small gray-btn"}
+													btnName={"삭제"}
+													onClick={() => seniorMatchInsertModalOpen(item)}
+												/>
 											</td>
 										</tr>
 									);
@@ -951,7 +1043,7 @@
 			title: "전체 장비(시행기관)" + "(" + agencyEquipmentList.length + ")",
 			description: (
 				<div>
-					<div className="flex">
+					<div className="flex equip-tab">
 						<SubTitle explanation={"장비 클릭 시 지난 매칭이력을 확인할 수 있습니다."} />
 						<div className="btn-wrap flex-end margin-bottom ">
 							<Button
@@ -1024,7 +1116,7 @@
 			title: "대상자 장비(시행기관)" + "(" + agencySeniorEquipmentList.length + ")",
 			description: (
 				<div>
-					<div className="flex">
+					<div className="flex equip-tab">
 						<SubTitle explanation={"장비 클릭 시 지난 매칭이력을 확인할 수 있습니다."} />
 					</div>
 					<table class="caregiver-user">
@@ -1068,7 +1160,7 @@
 			title: "재고 장비(시행기관)" + "(" + agencyStockEquipmentList.length + ")",
 			description: (
 				<div>
-					<div className="flex">
+					<div className="flex equip-tab">
 						<SubTitle explanation={"장비 클릭 시 지난 매칭이력을 확인할 수 있습니다."} />
 					</div>
 					<table class="caregiver-user">
@@ -1171,6 +1263,101 @@
 							className={"btn-small gray-btn"}
 							btnName={"저장"}
 							onClick={equipmentInsert}
+						/>
+					</div>
+				</div>
+			</Modal>
+
+			<Modal open={equipmentOneModal} close={equipmentOneModalClose} header="장비 상세 조회">
+				<div className="board-wrap">
+					<div>
+						<table className="flex70 margin-bottom">
+							<tbody className="equipment-insert">
+								<tr>
+									<th>종류</th>
+									<td colSpan={5}>
+										<select value={equipment['equipment_type']} name="equipment_type" onChange={equipmentChange}>
+											<option value="" selected disabled>선택</option>
+											<option value="DIGITAL_MEDIBOX">디지털 약상자</option>
+											<option value="ECG" disabled>심전도계</option>
+											<option value="SPHYGMOMANOMETER" disabled>혈압계</option>
+										</select>
+									</td>
+								</tr>
+								<tr>
+									<th>모델 명</th>
+									<td colSpan={5}>
+										<input type="text" value={equipment['equipment_name']} id="equipmentName" name="equipment_name" placeholder="모델 명을 입력해 주세요" onChange={equipmentChange}></input>
+										{/* {smartMediBoxNameList.map((item) => {
+											return (
+												<span>
+													<input type="radio" id={item} name="equipment_name" value={item}></input>
+													<label for={item}>{item}</label>
+												</span>
+											)
+										})} */}
+									</td>
+								</tr>
+								<tr>
+									<th>시리얼 넘버</th>
+									<td colSpan={5}>
+										<input type="text" value={equipment['equipment_serial_number']} name="equipment_serial_number" placeholder="S/N을 입력해 주세요" disabled onChange={equipmentChange}/>
+									</td>
+								</tr>
+								<tr>
+									<th>생산 일자</th>
+									<td colSpan={5}>
+										<input type="date" value={equipment['equipment_product_date']} name="equipment_product_date" onChange={equipmentChange}/>
+									</td>
+								</tr>
+								<tr>
+									<th>입고 일자</th>
+									<td colSpan={5}>
+										<input type="date" value={equipment['equipment_stock_date']} name="equipment_stock_date" onChange={equipmentChange}/>
+									</td>
+								</tr>
+							</tbody>
+						</table>
+
+						<table className={"caregiver-user"}>
+							<thead>
+								<tr>
+									{thead66.map((i) => {
+										return <th>{i}</th>;
+									})}
+								</tr>
+							</thead>
+							<tbody>
+								{seniorMatchListByEquipment.length > 0
+									? seniorMatchListByEquipment.map((item, index) => {
+										return (
+											<tr>
+												{key66.map((kes) => {
+													return <td>{item[kes]}</td>
+												})}
+											</tr>
+										);
+									})
+									: <td colSpan={4}>조회된 데이터가 없습니다.</td>
+								}
+							</tbody>
+						</table>
+					</div>
+					<div justify-content="center">
+						<Button
+							className={"btn-small gray-btn"}
+							btnName={"수정"}
+							onClick={equipmentUpdate}
+						/>
+						<Button
+							className={"btn-small gray-btn"}
+							btnName={"삭제"}
+							onClick={equipmentDelete}
+						/>
+						<Button
+							className={"btn-small gray-btn"}
+							btnName={"닫기"}
+							onClick={equipmentOneModalClose}
 						/>
 					</div>
 				</div>
@@ -1291,7 +1478,7 @@
 				</div>
 			</Modal>
 
-			<Modal open={agencyEquipmentOneModal} close={agencyEquipmentOneModalClose} header="장비 상세 조회">
+			<Modal open={agencyEquipmentOneModal} close={agencyEquipmentOneModalClose} header="대상자 장비 상세 조회">
 				<div className="board-wrap">
 					<div>
 						<table className={"caregiver-user"}>
@@ -1342,16 +1529,10 @@
 					))}
 				</ul>
 				<div className="content-wrap">
-					<div className="search-management flex-end margin-bottom2">
-						<select name="management-agency">
-							<option value="기관전체">기관전체</option>
-							<option value="대구보훈병원">복지재단1</option>
-							<option value="군위군청">복지재단2</option>
-							<option value="군위군청">복지재단3</option>
-						</select>
+					<div className="search-management flex-end margin-bottom2">						
 						<select>
-							<option value="이름">이름</option>
-							<option value="아이디">아이디</option>
+							<option value="기관명">기관명</option>
+							<option value="시리얼넘버">시리얼넘버</option>
 						</select>
 						<input type="text" />
 						<Button
client/views/pages/healthcare/Healthcare.jsx
--- client/views/pages/healthcare/Healthcare.jsx
+++ client/views/pages/healthcare/Healthcare.jsx
@@ -122,31 +122,14 @@
 
     return (
         <main>
-            <ContentTitle contentTitle={"건강 관리"} explanation={"대상자의 복약/댁내온도/방문 관리를 할 수 있습니다."} />
             <div className="content-wrap">
-
+            <DetailTitle contentTitle={"대상자의 복약 / 댁내온도 / 방문 관리를 할 수 있습니다."} />
                 <div
                     style={{ height: "calc(100% - 61px)" }}
                 >
                     <div className="right" style={{ height: "100%", }}>
                         <div style={{ height: "100%" }}>
-                            <div className="tab-container">
-                                <ul className="tab-menu-mobile">
-                                    <div>
-                                        <SubTitle
-                                            className="margin-bottom"
-                                            subtitle={"사용자 선택"}
-                                            explanation={"사용자 별로 선택 후 관리할 수 있습니다. "}
-                                        />
-                                    </div>
-                                    <select name="" id="" style={{ width: "100%" }}>
-                                        <option value="사용자선택">보호자</option>
-                                        <option value="사용자선택">보호사</option>
-                                        <option value="사용자선택">병원</option>
-                                        <option value="사용자선택">지자체</option>
-                                        <option value="사용자선택">관리자</option>
-                                    </select>
-                                </ul>
+                            <div className="tab-container" style={{ marginTop: "5rem", }}>                                
                                 <ul className="tab-menu flex-end">
                                     {data.map((item) => (
                                         <li
@@ -159,7 +142,7 @@
                                     ))}
                                 </ul>
                                 <div className="content-wrap userlist">
-                                    <DetailTitle contentTitle={`${tapName}`} />
+                                    
                                     <div className="search-management flex-start margin-bottom2">
                                         <DetailSearch />
                                     </div>
client/views/pages/healthcare/Medicalcare.jsx
--- client/views/pages/healthcare/Medicalcare.jsx
+++ client/views/pages/healthcare/Medicalcare.jsx
@@ -168,9 +168,8 @@
 
     return (
         <main>
-
-            <ContentTitle contentTitle={"진료 관리"} explanation={"대상자의 문진표/심전도/혈압 관리를 할 수 있습니다."} />
             <div className="content-wrap">
+            <DetailTitle contentTitle={"대상자의 문진표 / 심전도 / 혈압 관리를 할 수 있습니다."} />
                 <Modal_Questionnaire open={modalOpen} close={closeModal} />
                 <Modal_MedicalHistory open={modalOpen2} close={closeModal2} />
                 <Modal_ECG open={modalOpen3} close={closeModal3} />
@@ -180,7 +179,7 @@
                 >
                     <div className="right" style={{ height: "100%", }}>
                         <div style={{ height: "100%" }}>
-                            <div className="tab-container">
+                            <div className="tab-container" style={{ marginTop: "5rem", }}>
                                 <ul className="tab-menu flex-end">
                                     {data.map((item) => (
                                         <li
@@ -192,8 +191,7 @@
                                         </li>
                                     ))}
                                 </ul>
-                                <div className="content-wrap userlist">
-                                    <DetailTitle contentTitle={`${tapName}`} />
+                                <div className="content-wrap userlist">                                    
                                     <div className="search-management flex-start margin-bottom2">
                                         <DetailSearch />
                                     </div>
client/views/pages/healthcare/statistics/GuardianStatistics.jsx
--- client/views/pages/healthcare/statistics/GuardianStatistics.jsx
+++ client/views/pages/healthcare/statistics/GuardianStatistics.jsx
@@ -10,6 +10,10 @@
 import Chart1 from "../../../component/chart/Chart1.jsx";
 import LineColor from "../../../component/chart/LineColor.jsx";
 import ContentTitle from "../../../component/ContentTitle.jsx";
+import battery from '../../../../resources/files/images/battery.png';
+import temperature from '../../../../resources/files/images/temperature.png';
+import medicine from '../../../../resources/files/images/medicine.png';
+import calendarBig from '../../../../resources/files/images/calendarBig.png';
 
 export default function GuardianStatistics() {
 
@@ -18,11 +22,10 @@
   return (
     <>
       <main>
-        <ContentTitle contentTitle={"그래프로 한눈에 보기"} />
         <div className="statistics-grid">
           <ul className="content-box statistics-guardian">
             <li className="flex-start">
-              <p><AssignmentTurnedInIcon sx={{ width: "5rem", height: "5rem", color: "#bf0629", borderRadius: "50px" }} /></p>
+              <p><img className="guardian-img" src={calendarBig} alt="" /></p>
               <p>방문 그래프</p>
               <p>이번달 보호사님이 방문한 횟수는 총 4회 입니다.</p>
             </li>
@@ -32,7 +35,7 @@
           </ul>
           <ul className="content-box statistics-guardian">
             <li className="flex-start">
-              <p><MedicationIcon sx={{ width: "5rem", height: "5rem", color: "#0dd390", borderRadius: "50px" }} /></p>
+              <p><img className="guardian-img" src={medicine} alt="" /></p>
               <p>복약 체크</p>
               <p>약을 잘 복용하고 계신지 체크해주세요</p>
             </li>
@@ -42,7 +45,7 @@
           </ul>
           <ul className="content-box statistics-guardian">
             <li className="flex-start">
-              <p><DeviceThermostatIcon sx={{ width: "5rem", height: "5rem", color: "#f1de05", borderRadius: "50px" }} /></p>
+              <p><img className="guardian-img" src={temperature} alt="" /></p>
               <p>온도 체크</p>
               <p>댁내 온도가 적절한지 체크해보세요.</p>
             </li>
@@ -52,7 +55,7 @@
           </ul>
           <ul className="content-box statistics-guardian">
             <li className="flex-start">
-              <p><BatteryCharging20Icon sx={{ width: "5rem", height: "5rem", color: "#5f9af3", borderRadius: "50px" }} /></p>
+              <p><img className="guardian-img" src={battery} alt="" /></p>
               <p>약상자 배터리 그래프</p>
               <p>배터리 평균</p>
             </li>
client/views/pages/main/Main_government.jsx
--- client/views/pages/main/Main_government.jsx
+++ client/views/pages/main/Main_government.jsx
@@ -114,38 +114,33 @@
             <p>400</p>
           </li>
         </ul>
-        <div className="content-box combine-all-government combine-bottom-government2">
-        <div className="flex">
-            <Title title={`${cityName} 월별 방문 횟수`} explanation={"최근 6개월간 방문 횟수의 변화를 확인할 수 있습니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <RowChart_govern />
-        </div>
         <div className="content-box combine-left-government combine-bottom-government2 main-main">
           <div className="flex">
             <Title title={"지역별 케어 대상자 분포 현황"} explanation={"지역 선택 시 해당 지역의 대상자리스트가 보여집니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Map setCityName={setCityName} />
         </div>
+        <div className="content-box combine-all-government combine-bottom-government2">
+        <div className="flex">
+            <Title title={`${cityName} 월별 방문 횟수`} explanation={"최근 6개월간 방문 횟수의 변화를 확인할 수 있습니다."} />
+          </div>
+          <RowChart_govern />
+        </div>        
         <div className="content-box combine-left-government2">
           <div className="flex">
             <Title title={`${cityName} 복용률 평균`} explanation={"해당 지역의 대상자 복용률이 그래프로 보여집니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Chart2_govern />
         </div>
         <div className="content-box combine-right-government2">
         <div className="flex">
             <Title title={`기관별 대상자 등록 현황`} explanation={"약상자 사용자의 데이터 차트가 보여집니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Chart5 />         
         </div>
         <div className="content-box combine-right-government">
           <div className="flex">
             <Title title={`기관별 약상자 사용 현황`} explanation={""} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Donut1_govern />
         </div>        
client/views/pages/main/Main_guardian.jsx
--- client/views/pages/main/Main_guardian.jsx
+++ client/views/pages/main/Main_guardian.jsx
@@ -30,43 +30,43 @@
 
 export default function Main_guardian() {
   const tableHead1 = ["", "", "", "", "", ""];
-  const Key1 = ["morning", "morning2", "lunch","lunch2", "dinner","dinner2"];
+  const Key1 = ["morning", "morning2", "lunch", "lunch2", "dinner", "dinner2"];
   const content1 = [
     {
       morning: "아침",
-      morning2:(
-        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }}/> 
+      morning2: (
+        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }} />
       ),
       lunch: "점심",
       lunch2: (
-        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }}/> 
+        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }} />
       ),
       dinner: "저녁",
       dinner2: (
-        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }}/> 
+        <CheckCircleOutlineIcon sx={{ width: "3rem", height: "3rem", color: "#067943", borderRadius: "50px" }} />
       ),
     }
   ];
   const tableHead2 = ["", "", "", "", "", ""];
-  const Key2 = ["morning", "morning2", "lunch","lunch2", "dinner","dinner2"];
+  const Key2 = ["morning", "morning2", "lunch", "lunch2", "dinner", "dinner2"];
   const content2 = [
     {
       morning: "아침",
-      morning2:(
-        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }}/> 
+      morning2: (
+        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }} />
       ),
       lunch: "점심",
       lunch2: (
-        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }}/> 
+        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }} />
       ),
       dinner: "저녁",
       dinner2: (
-        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }}/> 
+        <ClearIcon sx={{ width: "3rem", height: "3rem", color: "#bf0629", borderRadius: "50px" }} />
       ),
     }
   ];
   const tableHead3 = ["월", "화", "수", "목", "금", "토", "일"];
-  const Key3 = ["mon", "tue", "wed","thu", "fri","sat","sun"];
+  const Key3 = ["mon", "tue", "wed", "thu", "fri", "sat", "sun"];
   const content3 = [
     {
       mon: "24°C",
@@ -85,55 +85,15 @@
       <main>
         <div className="flex-start main-guardian"><img src={Senior} alt="" /><Title title={"김복남 어르신"} explanation={"방문, 복약, 온도, 배터리 현황을 확인하세요."} /></div>
         <div className="main-grid-guardian">
-          <div className=" statistics-guardian combine-left2 combine-middle-government">
-          <div className="flex-start margin-bottom2"><img src={calendarBig} alt="" /><TitleSmall title={"방문체크"} /></div>
-            <ul >         
-              <li>
-              <Calendar />
-              </li>     
-            </ul>
-          </div>
-          <div className=" statistics-guardian combine-right3">
-          <div className="flex-start margin-bottom2"><img src={temperature} alt="" /><TitleSmall title={"온도체크"} explanation={"댁내 온도가 적절한지 체크해보세요."}/></div>
-            <ul >
-              <li>
-                <DateMonth />
-                <Chart6 />
-              </li>   
-            </ul>
-          </div>
-          
-          <div className="statistics-guardian combine-right3">
-          <div className="flex-start margin-bottom2"><img src={medicine} alt="" /><TitleSmall title={"복약체크"} explanation={"약을 잘 복용하고 계신지 체크해주세요."}/></div>
-            <ul className="">
-              <li className="guardian-medicine">
-                <DateDay />
-                <ul className="flex">
-                  <li>
-                    <img src={mornon} alt="" className="show"/>
-                    <img src={mornoff} alt="" />
-                  </li>
-                  <li>
-                    <img src={lunchon} alt="" />
-                    <img src={lunchoff} alt="" className="show"/>
-                  </li>
-                  <li>
-                    <img src={dinneron} alt="" />
-                    <img src={dinneroff} alt="" className="show"/>
-                  </li>
-                </ul>
-              </li>
-            </ul>
-          </div>
           <div className="combine-left combine-all-government battery-wrap ">
-            <div className="battery flex-start"><img src={battery} alt="" /><p>현재 스마트 약상자의 배터리가 <em className="red">40</em>% 입니다.</p><p className="red">※충전이 필요합니다.</p></div> 
-            <div className="battery-img"> 
+            <div className="battery flex-start"><img className="guardian-img" src={battery} alt="" /><p>현재 스마트 약상자의 배터리가 <em className="red">40</em>% 입니다.</p><p className="red">※충전이 필요합니다.</p></div>
+            <div className="battery-img">
               {/* 0%일때 */}
-              <img src={zeropercent} alt="" /> 
+              <img src={zeropercent} alt="" />
               {/* 0~20%일때 */}
               <img src={twentypercent} alt="" />
               {/* 20~40%일때 */}
-              <img src={fortypercent} alt="" className="show"/>
+              <img src={fortypercent} alt="" className="show" />
               {/* 40~60%일때 */}
               <img src={sixtytypercent} alt="" />
               {/* 60~80% 일때 */}
@@ -143,6 +103,48 @@
             </div>
 
           </div>
+          <div className="statistics-guardian combine-right3">
+            <div className="flex-start margin-bottom2"><img className="guardian-img" src={medicine} alt="" /><TitleSmall title={"복약체크"} explanation={"약을 잘 복용하고 계신지 체크해주세요."} /></div>
+            <ul className="">
+              <li className="guardian-medicine">
+                <DateDay />
+                <ul className="flex">
+                  <li>
+                    <img src={mornon} alt="" className="show" />
+                    <img src={mornoff} alt="" />
+                    <p className="medicine-title">아침</p>
+                  </li>
+                  <li>
+                    <img src={lunchon} alt="" />
+                    <img src={lunchoff} alt="" className="show" />
+                    <p className="medicine-title">점심</p>
+                  </li>
+                  <li>
+                    <img src={dinneron} alt="" />
+                    <img src={dinneroff} alt="" className="show" />
+                    <p className="medicine-title">저녁</p>
+                  </li>
+                </ul>
+              </li>
+            </ul>
+          </div>
+          <div className=" statistics-guardian combine-right3">
+            <div className="flex-start margin-bottom2"><img className="guardian-img" src={temperature} alt="" /><TitleSmall title={"온도체크"} explanation={"댁내 온도가 적절한지 체크해보세요."} /></div>
+            <ul >
+              <li>
+                <DateMonth />
+                <Chart6 />
+              </li>
+            </ul>
+          </div>
+          <div className=" statistics-guardian combine-left2 combine-middle-government">
+            <div className="flex-start margin-bottom2"><img className="guardian-img" src={calendarBig} alt="" /><TitleSmall title={"방문체크"} /></div>
+            <ul >
+              <li>
+                <Calendar />
+              </li>
+            </ul>
+          </div> 
         </div>
       </main>
     </>
client/views/pages/user_management/UserAuthoriySelect.jsx
--- client/views/pages/user_management/UserAuthoriySelect.jsx
+++ client/views/pages/user_management/UserAuthoriySelect.jsx
@@ -304,10 +304,10 @@
       <div className="content-wrap">
         
         <div
-          className="flex-align-start"
+          className="flex-align-start userauthoriylist"
           style={{ height: "calc(100% - 61px)" }}
         >
-          <div className="left" style={{ height: "100%", width:"27%" }}>
+          <div className="left" style={{ height: "100%", }}>
             <div style={{ height: "100%" }}>
               <SubTitle
                 subtitle={"관리기관 리스트"}
@@ -317,7 +317,7 @@
                 <Category />
             </div>
           </div>
-          <div className="right" style={{ height: "100%", width:"70%" }}>
+          <div className="right" style={{ height: "100%", }}>
             <div style={{ height: "100%" }}>
               <SubTitle
                 subtitle={`${agencyName} 사용자 리스트`}
@@ -325,22 +325,6 @@
                 className="margin-bottom"
               />
               <div className="tab-container">
-                <ul className="tab-menu-mobile">
-                  <div>
-                    <SubTitle
-                      className="margin-bottom"
-                      subtitle={"사용자 선택"}
-                      explanation={"사용자 별로 선택 후 관리할 수 있습니다. "}
-                    />
-                  </div>
-                  <select name="" id="" style={{ width: "100%" }}>
-                    <option value="사용자선택">보호자</option>
-                    <option value="사용자선택">보호사</option>
-                    <option value="사용자선택">병원</option>
-                    <option value="사용자선택">지자체</option>
-                    <option value="사용자선택">관리자</option>
-                  </select>
-                </ul>
                 <ul className="tab-menu flex-end">
                   {data.map((item) => (
                     <li
client/views/pages/user_management/UserAuthoriySelect_agency.jsx
--- client/views/pages/user_management/UserAuthoriySelect_agency.jsx
+++ client/views/pages/user_management/UserAuthoriySelect_agency.jsx
@@ -340,7 +340,7 @@
               <option value="이름">이름</option>
               <option value="아이디">아이디</option>
             </select>
-            <input type="text" />
+            <input type="text" className="senior-search"/>
             <Button
               className={"btn-small gray-btn"}
               btnName={"검색"}
server/modules/web/Server.js
--- server/modules/web/Server.js
+++ server/modules/web/Server.js
@@ -96,17 +96,19 @@
 webServer.get('*', function (request, response, next) {
     response.sendFile(`${BASE_DIR}/client/views/index.html`);
 })
+
 /**
 + * @author : 방선주
 + * @since : 2023.02.14
 + * @dscription : REST API 서버에 데이터 요청 보내기(Proxy)
 + */
-+webServer.use('*.json', expressProxy(API_SERVER_HOST, {
-        proxyReqPathResolver: function (request) {
-            //console.log('request : ', request.url, request.params[0]);
-            return `${request.params['0']}.json`;
-        }
-    }));
+webServer.use('*.json', expressProxy(API_SERVER_HOST, {
+    proxyReqPathResolver: function (request) {
+        //console.log('request : ', request.url, request.params[0]);
+        return `${request.params['0']}.json`;
+    }
+}));
+    
 /**
  * @author : 최정우
  * @since : 2022.09.21
Add a comment
List