최정임 최정임 2023-02-08
230208 최정임 agency branch 생성
@6cab57f0323e21b22eb4fba361697516521a88c0
client/resources/css/common.css
--- client/resources/css/common.css
+++ client/resources/css/common.css
@@ -7,15 +7,13 @@
   grid-template-rows: 1fr 0.1fr 0.1fr;
   gap: 1rem;
 }
-
-.main-grid-guardian {
+.main-grid-guardian{
   height: 100%;
   display: grid;
   grid-template-columns: 0.9fr 0.9fr 1.1fr 1.1fr;
   grid-template-rows: 0.5fr 0.1fr;
   gap: 1rem;
 }
-
 .main-grid-government {
   height: 100%;
   display: grid;
@@ -23,38 +21,19 @@
   grid-template-rows: 0.1fr 0.5fr 0.3fr 0.3fr 0.3fr;
   gap: 1rem;
 }
-
+.main-grid-agency {
+  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;
+}
 .main-grid-government-2 {
   height: 100%;
   display: grid;
   grid-template-columns: 1fr 1fr 1fr 1fr;
   grid-template-rows: 0.1fr 1fr;
   gap: 1rem;
-}
-
-#Chart5>div>div {
-  position: inherit;
-  width: 353px;
-  height: 35rem;
-}
-
-#RowChart>div>div {
-  position: inherit;
-  width: 353px;
-  height: 25rem;
-}
-#Map>div>div {
-  position: inherit;
-  width: 100%;
-}
-/* #Map{position: absolute; top: 17%;} */
-.main-map {
-  position: relative;
-}
-.main-map > div:nth-child(2){height: 83%;}
-
-.grid-map {
-  width: 25%;
 }
 
 .main-grid-hospital {
@@ -65,51 +44,17 @@
   gap: 1rem;
 }
 
-.grid-map>div {
-  width: 100%;
-  height: 24px;
-  line-height: 22px;
-  background: #f0f4dd;
-  border: 1px solid green;
-  margin-bottom: 1rem;
-  border-radius: 10px;
-  font-size: 1.4rem;
-  text-align: center;
-  box-shadow: 1px 1px 1px 1px rgb(20 105 3 / 19%);
-}
-
-.tab-menu>div.active {
-}
-.pulse {
-  animation: pulse-animation 2s ;
-}
-@keyframes pulse-animation {
-  0% {
-    box-shadow: 0 0 0 0px rgba(0, 0, 0, 0.2);
-  }
-  100% {
-    box-shadow: 0 0 0 20px rgba(0, 0, 0, 0);
-  }
-}
-.statistics-grid-wrap {
-  display: none;
-}
-
-.statistics-grid {
+.statistics-grid{
   display: grid;
   grid-template-columns: 1fr 1fr;
-  grid-template-rows: 1fr 1fr;
+  grid-template-rows: 1fr 1fr 1fr;
   gap: 2rem;
 }
 
-.show {
-  display: block;
-}
 
 .combine-left {
   grid-column: 1/3;
 }
-
 .combine-left2 {
   grid-column: 1/2;
 }
@@ -117,7 +62,6 @@
 .combine-left-government {
   grid-column: 2/4;
 }
-
 .combine-left-government2 {
   grid-column: 1/4;
 }
@@ -125,11 +69,9 @@
 .combine-right {
   grid-column: 3/4;
 }
-
 .combine-right2 {
   grid-column: 3/5;
 }
-
 .combine-right3 {
   grid-column: 2/3;
 }
@@ -138,12 +80,10 @@
   grid-column: 4/5;
   grid-row: 2/4;
 }
-
 .combine-right-government2 {
   grid-column: 4/5;
   grid-row: 4/6;
 }
-
 .combine-top-government {
   grid-row: 1/3;
 }
@@ -151,7 +91,6 @@
 .combine-all-government {
   grid-row: 1/2;
 }
-
 .combine-middle-government {
   grid-row: 2/4;
 }
@@ -162,6 +101,18 @@
 
 .combine-bottom-government2 {
   grid-row: 2/5;
+}
+.combine-bottom-government3 {
+  grid-row: 3/4;
+}
+.combine-bottom-government5 {
+  grid-row: 5/8;
+}
+.combine-bottom-government6 {
+  grid-row: 4/6;
+}
+.combine-bottom-government7 {
+  grid-row: 6/8;
 }
 
 
@@ -295,8 +246,8 @@
   background: #ffffff;
   box-shadow: 1px 1px 5px 2px rgba(238, 238, 238, 0.5);
 }
-
-/*체크박스 크기*/
+.main-main{background: #f0ebe352;}
+ /*체크박스 크기*/
 .checkCon {
   width: 50%;
 }
@@ -375,7 +326,8 @@
   margin-bottom: 10rem;
 }
 
-hr {
-  border-top: 1px solid #d1e4e3;
-  margin-top: 2rem
-}
(No newline at end of file)
+hr{border-top: 1px solid #d1e4e3; margin-top: 2rem}
+
+/* background */
+.bg-1{background-image: linear-gradient(to right top, #fff1eb 0%, #f3f6f7 100%);}
+.bg-2{background-image: linear-gradient(to left top, #f1f7fa 0%, #fff1eb 100%);}
(No newline at end of file)
client/resources/css/layout.css
--- client/resources/css/layout.css
+++ client/resources/css/layout.css
@@ -32,20 +32,20 @@
 }
 
 nav{
-  height: 123%;
+  height: 100%;
   background-color: #242d2e;
   grid-area: nav;
 }
 
 .logo {
   padding: 2rem 1rem;
-  font-size: 2.4rem;
+  font-size: large;
   text-align: center;
   color: #ffffff;
   font-weight: bold;
 }
 /* 네비게이션 */
-.nav > div > ul{position: fixed;}
+
 .sidebar-item {
   margin: 1rem 0;
 }
@@ -109,13 +109,12 @@
   font-weight: bold;
 }
 
-.info-wrap{  
-  padding-top: 64rem;
+.info-wrap{
+  border-top: 1px solid #4b4b4b;
 }
 
 .bottom-section {
-  border-top: 1px solid #4b4b4b;
-  padding: 2rem 4rem;
+  padding: 1rem 4rem;
 }
 
 .info-id {
client/resources/css/main.css
--- client/resources/css/main.css
+++ client/resources/css/main.css
@@ -1,4 +1,8 @@
 /* 공통 */
+.logo {
+  font-size: 2.4rem;
+  font-family: "KoPubDotumBold_0";
+}
 
 header .page-title span {
   font-family: "KoPubDotumBold_0";
@@ -13,9 +17,6 @@
   background-color: transparent;
 }
 /* -----------------------------------------------지자체 */
-
-/* 관리자 권한 관리 */
-.explain-table th{background: #ffffff;}
 .react-calendar{width: 100%;}
 .map {
   width: 100%;
@@ -41,19 +42,7 @@
   position: absolute;
   left: 0;
 }
-.statistics:nth-of-type(1) {
-  background-image: linear-gradient(to bottom right, #9890e3 0%, #b1f4cf 100%);
-}
-.statistics:nth-of-type(2) {
-  background-image: linear-gradient(to bottom right, #b1f4cf 0%, #5a70df 100%);
-}
-.statistics:nth-of-type(3) {
-  background-image: linear-gradient(to bottom right, #83a9d7 0%, #8d2ecd 100%);
-}
-.statistics:nth-of-type(4) {
-  background-image: linear-gradient(to bottom right, #8d2ecd 0%, #b1f4cf 100%);
-}
-.statistics li p{color: #ffffff;}
+
 .statistics li p:nth-of-type(2) {
   padding-bottom: 0.5rem;
   font-size: 1.6rem;
@@ -63,6 +52,7 @@
   font-size: 1.6rem;
   font-weight: bold;
 }
+
 .statistics li p:nth-of-type(3)::after {
   content: "명";
 }
client/views/component/DetailSearch.jsx
--- client/views/component/DetailSearch.jsx
+++ client/views/component/DetailSearch.jsx
@@ -199,7 +199,7 @@
                 <td colSpan={3}>
                   <div className="flex">
                     <select name="" id="">
-                      <option value="">구분</option>
+                      <option value="">사용자등록번호</option>
                       <option value="">어르신 성함</option>
                       <option value="">보호사 성함</option>
                     </select>
client/views/component/chart/Chart.jsx
--- client/views/component/chart/Chart.jsx
+++ client/views/component/chart/Chart.jsx
@@ -5,104 +5,174 @@
 
 class Chart extends Component {
   componentDidMount() {
-    let root5 = am5.Root.new("chart");
+    let root = am5.Root.new("chart");
 
 
-    root5._logo.dispose();
+    root._logo.dispose();
 // Set themes
 // https://www.amcharts.com/docs/v5/concepts/themes/
-root5.setThemes([
-  am5themes_Animated.new(root5)
+root.setThemes([
+  am5themes_Animated.new(root)
 ]);
 
 
 // Create chart
 // https://www.amcharts.com/docs/v5/charts/xy-chart/
-let chart = root5.container.children.push(am5xy.XYChart.new(root5, {
-  panX: true,
-  panY: true,
-  wheelX: "panX",
-  wheelY: "zoomX",
-  pinchZoomX:true
-}));
+let chart = root.container.children.push(
+  am5xy.XYChart.new(root, {
+    panX: false,
+    panY: false,
+    wheelX: "panX",
+    wheelY: "zoomX",
+    layout: root.verticalLayout
+  })
+);
 
-// Add cursor
-// https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/
-let cursor = chart.set("cursor", am5xy.XYCursor.new(root5, {}));
-cursor.lineY.set("visible", false);
 
+let data = [
+  {
+    year: "1월",
+    income: 22,
+    expenses: 44
+  },
+  {
+    year: "2월",
+    income: 20,
+    expenses: 40
+  },
+  {
+    year: "3월",
+    income: 15,
+    expenses: 30
+  },
+  {
+    year: "4월",
+    income: 15,
+    expenses: 30
+  },
+  {
+    year: "5월",
+    income: 15,
+    expenses: 30,
+    strokeSettings: {
+      stroke: chart.get("colors").getIndex(1),
+      strokeWidth: 3,
+      strokeDasharray: [5, 5]
+    }
+  },
+  {
+    year: "6월",
+    income: 10,
+    expenses: 20,
+    columnSettings: {
+      strokeWidth: 1,
+      strokeDasharray: [5],
+      fillOpacity: 0.2
+    },
+    info: "(projection)"
+  }
+];
 
 // Create axes
 // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
-let xRenderer = am5xy.AxisRendererX.new(root5, { minGridDistance: 30 });
-xRenderer.labels.template.setAll({
-  rotation: -90,
-  centerY: am5.p50,
-  centerX: am5.p100,
-  paddingRight: 15
-});
-
-let xAxis = chart.xAxes.push(am5xy.CategoryAxis.new(root5, {
-  maxDeviation: 0.3,
-  categoryField: "country",
-  renderer: xRenderer,
-  tooltip: am5.Tooltip.new(root5, {})
-}));
-
-let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root5, {
-  maxDeviation: 0.3,
-  renderer: am5xy.AxisRendererY.new(root5, {})
-}));
-
-
-// Create series
-// https://www.amcharts.com/docs/v5/charts/xy-chart/series/
-let series = chart.series.push(am5xy.ColumnSeries.new(root5, {
-  name: "Series 1",
-  xAxis: xAxis,
-  yAxis: yAxis,
-  valueYField: "value",
-  sequencedInterpolation: true,
-  categoryXField: "country",
-  tooltip: am5.Tooltip.new(root5, {
-    labelText:"{valueY}"
+let xRenderer = am5xy.AxisRendererX.new(root, {});
+let xAxis = chart.xAxes.push(
+  am5xy.CategoryAxis.new(root, {
+    categoryField: "year",
+    renderer: xRenderer,
+    tooltip: am5.Tooltip.new(root, {})
   })
-}));
-
-series.columns.template.setAll({ cornerRadiusTL: 5, cornerRadiusTR: 5 });
-series.columns.template.adapters.add("fill", function(fill, target) {
-  return chart.get("colors").getIndex(series.columns.indexOf(target));
-});
-
-series.columns.template.adapters.add("stroke", function(stroke, target) {
-  return chart.get("colors").getIndex(series.columns.indexOf(target));
-});
-
-
-// Set data
-let data = [{
-  country: "1주",
-  value: 80
-}, {
-  country: "2주",
-  value: 80
-}, {
-  country: "3주",
-  value: 70
-}, {
-  country: "4주",
-  value: 80
-}];
+);
+xRenderer.grid.template.setAll({
+  location: 1
+})
 
 xAxis.data.setAll(data);
-series.data.setAll(data);
 
+let yAxis = chart.yAxes.push(
+  am5xy.ValueAxis.new(root, {
+    min: 0,
+    extraMax: 0.1,
+    renderer: am5xy.AxisRendererY.new(root, {
+      strokeOpacity: 0.1
+    })
+  })
+);
+
+
+// Add series
+// https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+
+let series1 = chart.series.push(
+  am5xy.ColumnSeries.new(root, {
+    name: "인원",
+    xAxis: xAxis,
+    yAxis: yAxis,
+    valueYField: "income",
+    categoryXField: "year",
+    tooltip: am5.Tooltip.new(root, {
+      pointerOrientation: "horizontal",
+      labelText: "{valueY} {info} 명"
+    })
+  })
+);
+
+series1.columns.template.setAll({
+  tooltipY: am5.percent(10),
+  templateField: "columnSettings"
+});
+
+series1.data.setAll(data);
+
+let series2 = chart.series.push(
+  am5xy.LineSeries.new(root, {
+    name: "인건비",
+    xAxis: xAxis,
+    yAxis: yAxis,
+    valueYField: "expenses",
+    categoryXField: "year",
+    tooltip: am5.Tooltip.new(root, {
+      pointerOrientation: "horizontal",
+      labelText: "{valueY} {info} (백만원)"
+    })
+  })
+);
+
+series2.strokes.template.setAll({
+  strokeWidth: 3,
+  templateField: "strokeSettings"
+});
+
+
+series2.data.setAll(data);
+
+series2.bullets.push(function() {
+  return am5.Bullet.new(root, {
+    sprite: am5.Circle.new(root, {
+      strokeWidth: 3,
+      stroke: series2.get("stroke"),
+      radius: 5,
+      fill: root.interfaceColors.get("background")
+    })
+  });
+});
+
+chart.set("cursor", am5xy.XYCursor.new(root, {}));
+
+// Add legend
+// https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
+let legend = chart.children.push(
+  am5.Legend.new(root, {
+    centerX: am5.p50,
+    x: am5.p50
+  })
+);
+legend.data.setAll(chart.series.values);
 
 // Make stuff animate on load
 // https://www.amcharts.com/docs/v5/concepts/animations/
-series.appear(1000);
 chart.appear(1000, 100);
-
+series1.appear();
   }
 
   componentWillUnmount() {
@@ -112,7 +182,7 @@
   }
 
   render() {
-    return <div id="chart" style={{ width: "100%", height: "90%" }}></div>;
+    return <div id="chart" style={{ width: "100%", height: "80%" }}></div>;
   }
 }
 
client/views/component/chart/Chart2.jsx
--- client/views/component/chart/Chart2.jsx
+++ client/views/component/chart/Chart2.jsx
@@ -17,205 +17,155 @@
 
 // Create chart
 // https://www.amcharts.com/docs/v5/charts/xy-chart/
-let chart = root.container.children.push(am5xy.XYChart.new(root, {
-  panX: true,
-  panY: true,
-  wheelX: "panX",
-  wheelY: "zoomX",
-  pinchZoomX:true
-}));
+let chart = root.container.children.push(
+  am5xy.XYChart.new(root, {
+    panX: false,
+    panY: false,
+    wheelX: "panX",
+    wheelY: "zoomX",
+    layout: root.verticalLayout
+  })
+);
 
 
-// Add cursor
-// https://www.amcharts.com/docs/v5/charts/xy-chart/cursor/
-let cursor = chart.set("cursor", am5xy.XYCursor.new(root, {
-  behavior: "none"
-}));
-cursor.lineY.set("visible", false);
-
-
-// The data
-let data = [{
-  "year": "1월",
-  "아침": 15.87,
-  "점심": 650,
-  "저녁": 121
-}, {
-  "year": "2월",
-  "아침": 1567,
-  "점심": 683,
-  "저녁": 146
-}, {
-  "year": "3월",
-  "아침": 1617,
-  "점심": 691,
-  "저녁": 138
-}, {
-  "year": "4월",
-  "아침": 1630,
-  "점심": 642,
-  "저녁": 127
-}, {
-  "year": "5월",
-  "아침": 1660,
-  "점심": 699,
-  "저녁": 105
-}, {
-  "year": "6월",
-  "아침": 1683,
-  "점심": 721,
-  "저녁": 109
-}, {
-  "year": "7월",
-  "아침": 1691,
-  "점심": 737,
-  "저녁": 112
-}, {
-  "year": "8월",
-  "아침": 1298,
-  "점심": 680,
-  "저녁": 101
-}, {
-  "year": "9월",
-  "아침": 1275,
-  "점심": 664,
-  "저녁": 97
-}, {
-  "year": "10월",
-  "아침": 1246,
-  "점심": 648,
-  "저녁": 93
-}, {
-  "year": "11월",
-  "아침": 1318,
-  "점심": 697,
-  "저녁": 111
-}, {
-  "year": "12월",
-  "아침": 1213,
-  "점심": 633,
-  "저녁": 87
-}];
-
+let data = [
+  {
+    year: "1월",
+    income: 23.5
+  },
+  {
+    year: "2월",
+    income: 26.2
+  },
+  {
+    year: "3월",
+    income: 30.1
+  },
+  {
+    year: "4월",
+    income: 29.5
+  },
+  {
+    year: "5월",
+    income: 30.6,
+    strokeSettings: {
+      stroke: chart.get("colors").getIndex(1),
+      strokeWidth: 3,
+      strokeDasharray: [5, 5]
+    }
+  },
+  {
+    year: "6월",
+    income: 34.1,
+    columnSettings: {
+      strokeWidth: 1,
+      strokeDasharray: [5],
+      fillOpacity: 0.2
+    },
+    info: "(projection)"
+  }
+];
 
 // Create axes
 // https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
-let xAxis = chart.xAxes.push(am5xy.CategoryAxis.new(root, {
-  categoryField: "year",
-  startLocation: 0.5,
-  endLocation: 0.5,
-  renderer: am5xy.AxisRendererX.new(root, {}),
-  tooltip: am5.Tooltip.new(root, {})
-}));
+let xRenderer = am5xy.AxisRendererX.new(root, {});
+let xAxis = chart.xAxes.push(
+  am5xy.CategoryAxis.new(root, {
+    categoryField: "year",
+    renderer: xRenderer,
+    tooltip: am5.Tooltip.new(root, {})
+  })
+);
+xRenderer.grid.template.setAll({
+  location: 1
+})
 
 xAxis.data.setAll(data);
 
-let yAxis = chart.yAxes.push(am5xy.ValueAxis.new(root, {
-  renderer: am5xy.AxisRendererY.new(root, {})
-}));
+let yAxis = chart.yAxes.push(
+  am5xy.ValueAxis.new(root, {
+    min: 0,
+    extraMax: 0.1,
+    renderer: am5xy.AxisRendererY.new(root, {
+      strokeOpacity: 0.1
+    })
+  })
+);
+
 
 // Add series
 // https://www.amcharts.com/docs/v5/charts/xy-chart/series/
 
-function createSeries(name, field) {
-  let series = chart.series.push(am5xy.LineSeries.new(root, {
-    name: name,
+let series1 = chart.series.push(
+  am5xy.ColumnSeries.new(root, {
+    name: "사용자 수",
     xAxis: xAxis,
     yAxis: yAxis,
-    stacked:true,
-    valueYField: field,
+    valueYField: "income",
     categoryXField: "year",
     tooltip: am5.Tooltip.new(root, {
       pointerOrientation: "horizontal",
-      labelText: "[bold]{name}[/]\n{categoryX}: {valueY}"
+      labelText: "{valueY} {info} 명"
     })
-  }));
+  })
+);
 
-  series.fills.template.setAll({
-    fillOpacity: 0.5,
-    visible: true
-  });
-
-  series.data.setAll(data);
-  series.appear(1000);
-}
-
-createSeries("아침", "아침");
-createSeries("점심", "점심");
-createSeries("저녁", "저녁");
-
-// Add scrollbar
-// https://www.amcharts.com/docs/v5/charts/xy-chart/scrollbars/
-// chart.set("scrollbarX", am5.Scrollbar.new(root, {
-//   orientation: "horizontal"
-// }));
-
-// Create axis ranges
-// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/axis-ranges/
-let rangeDataItem = xAxis.makeDataItem({
-  category: "1월",
-  endCategory: "12월"
+series1.columns.template.setAll({
+  tooltipY: am5.percent(10),
+  templateField: "columnSettings"
 });
 
-let range = xAxis.createAxisRange(rangeDataItem);
+series1.data.setAll(data);
 
-rangeDataItem.get("grid").setAll({
-  stroke: am5.color(0x00ff33),
-  strokeOpacity: 0.5,
-  strokeDasharray: [3]
-});
+// let series2 = chart.series.push(
+//   am5xy.LineSeries.new(root, {
+//     name: "Expenses",
+//     xAxis: xAxis,
+//     yAxis: yAxis,
+//     valueYField: "expenses",
+//     categoryXField: "year",
+//     tooltip: am5.Tooltip.new(root, {
+//       pointerOrientation: "horizontal",
+//       labelText: "{name} in {categoryX}: {valueY} {info}"
+//     })
+//   })
+// );
 
-rangeDataItem.get("axisFill").setAll({
-  fill: am5.color(0x00ff33),
-  fillOpacity: 0.1,
-  visible:true
-});
-
-// rangeDataItem.get("label").setAll({
-//   inside: true,
-//   text: "Fines for speeding increased",
-//   rotation: 90,
-//   centerX: am5.p100,
-//   centerY: am5.p100,
-//   location: 0,
-//   paddingBottom: 10,
-//   paddingRight: 15
+// series2.strokes.template.setAll({
+//   strokeWidth: 3,
+//   templateField: "strokeSettings"
 // });
 
 
-let rangeDataItem2 = xAxis.makeDataItem({
-  category: "1월"
-});
+// series2.data.setAll(data);
 
-let range2 = xAxis.createAxisRange(rangeDataItem2);
-
-rangeDataItem2.get("grid").setAll({
-  stroke: am5.color(0x00ff33),
-  strokeOpacity: 1,
-  strokeDasharray: [3]
-});
-
-rangeDataItem2.get("axisFill").setAll({
-  fill: am5.color(0x00ff33),
-  fillOpacity: 0.1,
-  visible:true
-});
-
-// rangeDataItem2.get("label").setAll({
-//   inside: true,
-//   text: "Motorcycle fee introduced",
-//   rotation: 90,
-//   centerX: am5.p100,
-//   centerY: am5.p100,
-//   location: 0,
-//   paddingBottom: 10,
-//   paddingRight: 15
+// series2.bullets.push(function() {
+//   return am5.Bullet.new(root, {
+//     sprite: am5.Circle.new(root, {
+//       strokeWidth: 3,
+//       stroke: series2.get("stroke"),
+//       radius: 5,
+//       fill: root.interfaceColors.get("background")
+//     })
+//   });
 // });
+
+chart.set("cursor", am5xy.XYCursor.new(root, {}));
+
+// Add legend
+// https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
+let legend = chart.children.push(
+  am5.Legend.new(root, {
+    centerX: am5.p50,
+    x: am5.p50
+  })
+);
+legend.data.setAll(chart.series.values);
 
 // Make stuff animate on load
 // https://www.amcharts.com/docs/v5/concepts/animations/
 chart.appear(1000, 100);
-
+series1.appear();
     this.root = root;
   }
 
@@ -226,7 +176,7 @@
   }
 
   render() {
-    return <div id="Chart2" style={{ width: "100%", height: "15vh" }}></div>;
+    return <div id="Chart2" style={{ width: "100%", height: "80%" , maxwidth: "100%"}}></div>;
   }
 }
 
 
client/views/component/chart/Chart2_1.jsx (added)
+++ client/views/component/chart/Chart2_1.jsx
@@ -0,0 +1,182 @@
+import React, { Component } from "react";
+import * as am5 from "@amcharts/amcharts5";
+import * as am5xy from "@amcharts/amcharts5/xy";
+import am5themes_Animated from "@amcharts/amcharts5/themes/Animated";
+
+class Chart2_1 extends Component {
+  componentDidMount() {
+    let root = am5.Root.new("Chart2_1");
+
+    root._logo.dispose();
+  // Set themes
+// https://www.amcharts.com/docs/v5/concepts/themes/
+root.setThemes([
+  am5themes_Animated.new(root)
+]);
+
+// Create chart
+// https://www.amcharts.com/docs/v5/charts/xy-chart/
+let chart = root.container.children.push(
+  am5xy.XYChart.new(root, {
+    panX: false,
+    panY: false,
+    wheelX: "panX",
+    wheelY: "zoomX",
+    layout: root.verticalLayout
+  })
+);
+
+
+let data = [
+  {
+    year: "1월",
+    expenses: 23.5
+  },
+  {
+    year: "2월",
+    expenses: 26.2
+  },
+  {
+    year: "3월",
+    expenses: 30.1
+  },
+  {
+    year: "4월",
+    expenses: 29.5
+  },
+  {
+    year: "5월",
+    expenses: 30.6,
+    strokeSettings: {
+      stroke: chart.get("colors").getIndex(1),
+      strokeWidth: 3,
+      strokeDasharray: [5, 5]
+    }
+  },
+  {
+    year: "6월",
+    expenses: 34.1,
+    columnSettings: {
+      strokeWidth: 1,
+      strokeDasharray: [5],
+      fillOpacity: 0.2
+    },
+    info: "(projection)"
+  }
+];
+
+// Create axes
+// https://www.amcharts.com/docs/v5/charts/xy-chart/axes/
+let xRenderer = am5xy.AxisRendererX.new(root, {});
+let xAxis = chart.xAxes.push(
+  am5xy.CategoryAxis.new(root, {
+    categoryField: "year",
+    renderer: xRenderer,
+    tooltip: am5.Tooltip.new(root, {})
+  })
+);
+xRenderer.grid.template.setAll({
+  location: 1
+})
+
+xAxis.data.setAll(data);
+
+let yAxis = chart.yAxes.push(
+  am5xy.ValueAxis.new(root, {
+    min: 0,
+    extraMax: 0.1,
+    renderer: am5xy.AxisRendererY.new(root, {
+      strokeOpacity: 0.1
+    })
+  })
+);
+
+
+// Add series
+// https://www.amcharts.com/docs/v5/charts/xy-chart/series/
+
+// let series1 = chart.series.push(
+//   am5xy.ColumnSeries.new(root, {
+//     name: "Income",
+//     xAxis: xAxis,
+//     yAxis: yAxis,
+//     valueYField: "income",
+//     categoryXField: "year",
+//     tooltip: am5.Tooltip.new(root, {
+//       pointerOrientation: "horizontal",
+//       labelText: "{name} in {categoryX}: {valueY} {info}"
+//     })
+//   })
+// );
+
+// series1.columns.template.setAll({
+//   tooltipY: am5.percent(10),
+//   templateField: "columnSettings"
+// });
+
+// series1.data.setAll(data);
+
+let series2 = chart.series.push(
+  am5xy.LineSeries.new(root, {
+    name: "평균 복용률",
+    xAxis: xAxis,
+    yAxis: yAxis,
+    valueYField: "expenses",
+    categoryXField: "year",
+    tooltip: am5.Tooltip.new(root, {
+      pointerOrientation: "horizontal",
+      labelText: "{valueY} {info} %"
+    })
+  })
+);
+
+series2.strokes.template.setAll({
+  strokeWidth: 3,
+  templateField: "strokeSettings"
+});
+
+
+series2.data.setAll(data);
+
+series2.bullets.push(function() {
+  return am5.Bullet.new(root, {
+    sprite: am5.Circle.new(root, {
+      strokeWidth: 3,
+      stroke: series2.get("stroke"),
+      radius: 5,
+      fill: root.interfaceColors.get("background")
+    })
+  });
+});
+
+chart.set("cursor", am5xy.XYCursor.new(root, {}));
+
+// Add legend
+// https://www.amcharts.com/docs/v5/charts/xy-chart/legend-xy-series/
+let legend = chart.children.push(
+  am5.Legend.new(root, {
+    centerX: am5.p50,
+    x: am5.p50
+  })
+);
+legend.data.setAll(chart.series.values);
+
+// Make stuff animate on load
+// https://www.amcharts.com/docs/v5/concepts/animations/
+chart.appear(1000, 100);
+series2.appear();
+    this.root = root;
+  }
+
+  componentWillUnmount() {
+    if (this.root) {
+      this.root.dispose();
+    }
+  }
+
+  render() {
+    return <div id="Chart2_1" style={{ width: "100%", height: "80%" , maxwidth: "100%"}}></div>;
+  }
+}
+
+export default Chart2_1;
client/views/component/chart/Chart4.jsx
--- client/views/component/chart/Chart4.jsx
+++ client/views/component/chart/Chart4.jsx
@@ -1,76 +1,0 @@
-import React, { Component } from "react";
-import * as am5 from "@amcharts/amcharts5";
-import * as am5percent from "@amcharts/amcharts5/percent";
-import am5themes_Animated from "@amcharts/amcharts5/themes/Animated";
-
-class Chart4 extends Component {
-  componentDidMount() {
-    let root = am5.Root.new("Chart4");
-
-    root._logo.dispose();
-    root.setThemes([am5themes_Animated.new(root)]);
-
-    // Create chart
-    // https://www.amcharts.com/docs/v5/charts/percent-charts/sliced-chart/
-    let chart = root.container.children.push(am5percent.SlicedChart.new(root, {
-      layout: root.verticalLayout
-    }));
-
-
-    // Create series
-    // https://www.amcharts.com/docs/v5/charts/percent-charts/sliced-chart/#Series
-    let series = chart.series.push(am5percent.PyramidSeries.new(root, {
-      orientation: "vertical",
-      valueField: "value",
-      categoryField: "category"
-    }));
-
-
-    // Set data
-    // https://www.amcharts.com/docs/v5/charts/percent-charts/sliced-chart/#Setting_data
-    series.data.setAll([
-      { value: 10, category: "부계면" },
-      { value: 9, category: "소보면" },
-      { value: 6, category: "군위읍" },
-      { value: 5, category: "우보면" },
-      { value: 4, category: "의흥면" },
-      { value: 3, category: "삼국유사면" },
-      { value: 3, category: "산성면" },
-      { value: 2, category: "효령면" }
-    ].reverse());
-
-
-    // Play initial series animation
-    // https://www.amcharts.com/docs/v5/concepts/animations/#Animation_of_series
-    series.appear();
-
-
-    // Create legend
-    // https://www.amcharts.com/docs/v5/charts/percent-charts/legend-percent-series/
-    let legend = chart.children.push(am5.Legend.new(root, {
-      centerX: am5.percent(50),
-      x: am5.percent(50),
-      marginTop: 15,
-      marginBottom: 15
-    }));
-
-    legend.data.setAll(am5.array.copy(series.dataItems).reverse());
-
-
-    // Make stuff animate on load
-    // https://www.amcharts.com/docs/v5/concepts/animations/
-    chart.appear(1000, 100);
-
-    this.root = root;
-  }
-  componentWillUnmount() {
-    if (this.root) {
-      this.root.dispose();
-    }
-  }
-  render() {
-    return <div id="Chart4" style={{ width: "100%", height: "80%" }}></div>
-  }
-}
-
-export default Chart4;
client/views/component/chart/ClusteredColumnChart.jsx
--- client/views/component/chart/ClusteredColumnChart.jsx
+++ client/views/component/chart/ClusteredColumnChart.jsx
@@ -34,32 +34,39 @@
 
     let data = [
       {
-        date: "1월",
+        date: "2022.12.23",
         lowest: 5,
+        highest: 18,
       },
       {
-        date: "2월",
+        date: "2022.12.24",
         lowest: 18,
+        highest: 26,
       },
       {
-        date: "3월",
+        date: "2022.12.25",
         lowest: 10,
+        highest: 29,
       },
       {
-        date: "4월",
+        date: "2022.12.26",
         lowest: 18,
+        highest: 26,
       },
       {
-        date: "5월",
+        date: "2022.12.27",
         lowest: 18,
+        highest: 26,
       },
       {
-        date: "6월",
+        date: "2022.12.28",
         lowest: 18,
+        highest: 26,
       },
       {
-        date: "7월",
+        date: "2022.12.29",
         lowest: 18,
+        highest: 26,
       },
     ];
 
@@ -125,6 +132,8 @@
       legend.data.push(series);
     }
 
+    makeSeries("최저온도", "lowest");
+    makeSeries("최고온도", "highest");
 
     // Make stuff animate on load
     // https://www.amcharts.com/docs/v5/concepts/animations/
client/views/component/chart/Donut1.jsx
--- client/views/component/chart/Donut1.jsx
+++ client/views/component/chart/Donut1.jsx
@@ -33,11 +33,8 @@
     // Set data
     // https://www.amcharts.com/docs/v5/charts/percent-charts/pie-chart/#Setting_data
     series.data.setAll([
-      { value: 1, category: "1등급" },
-      { value: 2, category: "2등급" },
-      { value: 3, category: "3등급" },
-      { value: 3, category: "4등급" },
-      { value: 1, category: "5등급" },
+      { value: 1, category: "미사용" },
+      { value: 2, category: "사용" },
     ]);
 
     // Create legend
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/component/chart/Map.jsx
--- client/views/component/chart/Map.jsx
+++ client/views/component/chart/Map.jsx
@@ -1,12 +1,12 @@
 import React, { Component } from "react";
 import * as am5 from "@amcharts/amcharts5";
 import * as am5map from "@amcharts/amcharts5/map";
-import am5geodata_gunwi from "../map";
+import am5geodata_usaLow from "../map";
 import am5themes_Animated from "@amcharts/amcharts5/themes/Animated";
+// import seniorjson from "../../component/senior.json";
 
 class Map extends Component {
   componentDidMount() {
-    const props = this.props;
     let root = am5.Root.new("Map");
     root.setThemes([am5themes_Animated.new(root)]);
 
@@ -23,7 +23,7 @@
     // Create polygon series
     let polygonSeries = chart.series.push(
       am5map.MapPolygonSeries.new(root, {
-        geoJSON: am5geodata_gunwi,
+        geoJSON: am5geodata_usaLow,
       })
     );
 
@@ -71,7 +71,7 @@
       }
       chart.goHome();
       zoomOut.hide();
-      currentSeries = regionalSeries.KR.series;
+      currentSeries = regionalSeries.US.series;
       currentSeries.show();
     });
     zoomOut.hide();
@@ -83,11 +83,11 @@
     // Load senior data
     am5.net
       .load(
-        "https://gist.githubusercontent.com/jlchoi1932/c3673a65fd00efa9192b3aac5bc02a1a/raw/e7bf0bc2320d0baa2f8274f94084a3dd2b098c91/_GunwiRegion.json"
+        "https://gist.githubusercontent.com/dbskfnd/e618b91a622b8efeb55ccc562c47864a/raw/23d9030fe1e6e42d6e43348d86b02f6aafa464e2/seniornumber.json"
       )
       .then(function (result) {
         let seniors = am5.JSONParser.parse(result.response);
-        setupseniors(seniors); 
+        setupseniors(seniors);
       });
 
     let regionalSeries = {};
@@ -98,13 +98,13 @@
       console.log(data);
 
       // Init country-level series
-      regionalSeries.KR = {
+      regionalSeries.US = {
         markerData: [],
         series: createSeries("seniors"),
       };
 
       // Set current series
-      currentSeries = regionalSeries.KR.series;
+      currentSeries = regionalSeries.US.series;
 
       // Process data
       am5.array.each(data.query_results, function (senior) {
@@ -130,7 +130,7 @@
               type: "state",
               name: statePolygon.dataItem.dataContext.name,
               count: senior.count,
-              seniors: senior.count,
+              seniors: 1,
               state: senior.state,
               markerData: [],
               geometry: {
@@ -138,7 +138,7 @@
                 coordinates: [centroid.longitude, centroid.latitude],
               },
             };
-            regionalSeries.KR.markerData.push(regionalSeries[senior.state]);
+            regionalSeries.US.markerData.push(regionalSeries[senior.state]);
           } else {
             // State not found
             return;
@@ -149,42 +149,42 @@
         }
 
         // Process city-level data
-        // if (regionalSeries[senior.city] == undefined) {
-        //   regionalSeries[senior.city] = {
-        //     target: senior.city,
-        //     type: "city",
-        //     name: senior.city,
-        //     count: senior.count,
-        //     seniors: 1,
-        //     state: senior.state,
-        //     markerData: [],
-        //     geometry: {
-        //       type: "Point",
-        //       coordinates: [senior.long, senior.lat],
-        //     },
-        //   };
-        //   regionalSeries[senior.state].markerData.push(
-        //     regionalSeries[senior.city]
-        //   );
-        // } else {
-        //   regionalSeries[senior.city].seniors++;
-        //   regionalSeries[senior.city].count += senior.count;
-        // }
+        if (regionalSeries[senior.city] == undefined) {
+          regionalSeries[senior.city] = {
+            target: senior.city,
+            type: "city",
+            name: senior.city,
+            count: senior.count,
+            seniors: 1,
+            state: senior.state,
+            markerData: [],
+            geometry: {
+              type: "Point",
+              coordinates: [senior.long, senior.lat],
+            },
+          };
+          regionalSeries[senior.state].markerData.push(
+            regionalSeries[senior.city]
+          );
+        } else {
+          regionalSeries[senior.city].seniors++;
+          regionalSeries[senior.city].count += senior.count;
+        }
 
-        // // Process individual senior
-        // regionalSeries[senior.city].markerData.push({
-        //   name: senior.location,
-        //   count: senior.count,
-        //   seniors: 1,
-        //   state: senior.state,
-        //   geometry: {
-        //     type: "Point",
-        //     coordinates: [senior.long, senior.lat],
-        //   },
-        // });
+        // Process individual senior
+        regionalSeries[senior.city].markerData.push({
+          name: senior.location,
+          count: senior.count,
+          seniors: 1,
+          state: senior.state,
+          geometry: {
+            type: "Point",
+            coordinates: [senior.long, senior.lat],
+          },
+        });
       });
-      console.log(regionalSeries.KR.markerData);
-      regionalSeries.KR.series.data.setAll(regionalSeries.KR.markerData);
+      console.log(regionalSeries.US.markerData);
+      regionalSeries.US.series.data.setAll(regionalSeries.US.markerData);
     }
 
     // Finds polygon in series by its id
@@ -210,15 +210,15 @@
 
       // Add senior bullet
       let circleTemplate = am5.Template.new(root);
-      pointSeries.bullets.push(() => {
+      pointSeries.bullets.push(function () {
         let container = am5.Container.new(root, {});
 
         let circle = container.children.push(
           am5.Circle.new(
             root,
             {
-              radius: 12,
-              fill: am5.color("#f1de04"),
+              radius: 10,
+              fill: am5.color(0x000000),
               fillOpacity: 0.7,
               cursorOverStyle: "pointer",
               tooltipText: "{name}:\n[bold]{seniors} seniors[/]",
@@ -239,18 +239,13 @@
         );
 
         // Set up drill-down
-        circle.events.on("click", (ev) => {
+        circle.events.on("click", function (ev) {
           // Determine what we've clicked on
           let data = ev.target.dataItem.dataContext;
-          console.log({ data });
 
           // No id? Individual senior - nothing to drill down to further
           if (!data.target) {
             return;
-          }
-
-          if (data.type === "state") {
-            props.setCityName(data.name);
           }
 
           // Create actual series if it hasn't been yet created
@@ -260,25 +255,25 @@
           }
 
           // Hide current series
-          // if (currentSeries) {
-          //   currentSeries.hide();
-          // }
+          if (currentSeries) {
+            currentSeries.hide();
+          }
 
           // Control zoom
-          // if (data.type == "state") {
-          //   let statePolygon = getPolygon("KR-" + data.state);
-          //   polygonSeries.zoomToDataItem(statePolygon.dataItem);
-          // } else if (data.type == "city") {
-          //   chart.zoomToGeoPoint(
-          //     {
-          //       latitude: data.geometry.coordinates[1],
-          //       longitude: data.geometry.coordinates[0],
-          //     },
-          //     64,
-          //     true
-          //   );
-          // }
-          // zoomOut.show();
+          if (data.type == "state") {
+            let statePolygon = getPolygon("KR-" + data.state);
+            polygonSeries.zoomToDataItem(statePolygon.dataItem);
+          } else if (data.type == "city") {
+            chart.zoomToGeoPoint(
+              {
+                latitude: data.geometry.coordinates[1],
+                longitude: data.geometry.coordinates[0],
+              },
+              64,
+              true
+            );
+          }
+          zoomOut.show();
 
           // Show new targert series
           currentSeries = regionalSeries[data.target].series;
@@ -318,11 +313,11 @@
 
   render() {
     return (
-      <div
-        className="flex80"
-        id="Map"
-        style={{ width: "100%", height: "42vh", marginBottom: "1rem" }}
-      ></div>
+        <div
+          className="flex80"
+          id="Map"
+          style={{ width: "100%", height: "80%", marginBottom: "1rem", color: "#ffffff"}}
+        ></div>
     );
   }
 }
client/views/component/chart/RowChart.jsx
--- client/views/component/chart/RowChart.jsx
+++ client/views/component/chart/RowChart.jsx
@@ -56,7 +56,6 @@
         xAxis: xAxis,
         yAxis: yAxis,
         valueXField: "value",
-        descriptionField : "value",
         categoryYField: "network",
         tooltip: am5.Tooltip.new(root, {
           pointerOrientation: "left",
client/views/component/map.js
--- client/views/component/map.js
+++ client/views/component/map.js
@@ -1,4 +1,4 @@
-var gunwi = {
+var rnsdnl = {
   type: "FeatureCollection",
   features: [
     {
@@ -513,11 +513,11 @@
       },
       properties: {
         name: "군위읍",
-        id: "KR-gunwieup",
+        id: "KR-rnsdnldmq",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-gunwieup",
+      id: "KR-rnsdnldmq",
     },
     {
       type: "Feature",
@@ -1251,11 +1251,11 @@
       },
       properties: {
         name: "소보면",
-        id: "KR-sobomyeon",
+        id: "KR-thqhaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-sobomyeon",
+      id: "KR-thqhaus",
     },
     {
       type: "Feature",
@@ -2021,11 +2021,11 @@
       },
       properties: {
         name: "효령면",
-        id: "KR-hyolyeongmyeon",
+        id: "KR-gyfudaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-hyolyeongmyeon",
+      id: "KR-gyfudaus",
     },
     {
       type: "Feature",
@@ -2538,11 +2538,11 @@
       },
       properties: {
         name: "부계면",
-        id: "KR-bugyemyeon",
+        id: "KR-qnrPaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-bugyemyeon",
+      id: "KR-qnrPaus",
     },
     {
       type: "Feature",
@@ -3013,11 +3013,11 @@
       },
       properties: {
         name: "우보면",
-        id: "KR-ubomyeon",
+        id: "KR-dnqhaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-ubomyeon",
+      id: "KR-dnqhaus",
     },
     {
       type: "Feature",
@@ -3477,11 +3477,11 @@
       },
       properties: {
         name: "의흥면",
-        id: "KR-uiheungmyeon",
+        id: "KR-dmlgmdaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-uiheungmyeon",
+      id: "KR-dmlgmdaus",
     },
     {
       type: "Feature",
@@ -3952,11 +3952,11 @@
       },
       properties: {
         name: "산성면",
-        id: "KR-sanseongmyeon",
+        id: "KR-tkstjdaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-sanseongmyeon",
+      id: "KR-tkstjdaus",
     },
     {
       type: "Feature",
@@ -4553,12 +4553,12 @@
       },
       properties: {
         name: "삼국유사면",
-        id: "KR-samgugyusamyeon",
+        id: "KR-tkarnrdbtkaus",
         TYPE: "Province",
         CNTRY: "South Korea",
       },
-      id: "KR-samgugyusamyeon",
+      id: "KR-tkarnrdbtkaus",
     },
   ],
 };
-export default gunwi;
+export default rnsdnl;
client/views/component/store.json
--- client/views/component/store.json
+++ client/views/component/store.json
This diff is too big to display.
client/views/layout/Menu.jsx
--- client/views/layout/Menu.jsx
+++ client/views/layout/Menu.jsx
@@ -8,6 +8,7 @@
 import SpeakerPhoneIcon from "@mui/icons-material/SpeakerPhone";
 import SettingsIcon from "@mui/icons-material/Settings";
 import CallIcon from '@mui/icons-material/Call';
+import QuestionMarkIcon from '@mui/icons-material/QuestionMark';
 
 export const items = [
   {
@@ -16,98 +17,80 @@
     icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />,
   },
   {
-    title: "시행기관관리",
+    title: "사용자 관리",
+    path: "/UserAuthoriySelect",
     icon: (
       <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
     ),
-    childrens: [
-      {
-        title: "기관 조회",
-        path: "/UserAuthoriySelect",
-      },
-      {
-        title: "기관별 통계 자료",
-        path: "/MedicineStatistics",
-      },
-    ],
-
   },
-  // {
-  //   title: "건강 관리",
-  //   prefix: "/Medicine",
-  //   icon: (
-  //     <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
-  //   ),
-  //   childrens: [
-  //     {
-  //       title: "복약 관리",
-  //       path: "/MedicineCareSelect",
-  //     },
-  //     {
-  //       title: "댁내 온도 관리",
-  //       path: "/TemperatureManagementSelect",
-  //     },
-  //     {
-  //       title: "복약율 통계",
-  //       path: "/MedicineStatistics",
-  //     },
-  //   ],
-  // },
-  // {
-  //   title: "방문 관리",
-  //   prefix: "/Visit",
-  //   icon: (
-  //     <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
-  //   ),
-  //   childrens: [
-  //     {
-  //       title: "방문 관리",
-  //       path: "/VisitSelect",
-  //     },
-  //   ],
-  // },
-  // {
-  //   title: "장비 관리",
-  //   prefix: "/Equipment",
-  //   icon: (
-  //     <SpeakerPhoneIcon
-  //       sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }}
-  //     />
-  //   ),
-  //   childrens: [
-  //     {
-  //       title: "장비 관리",
-  //       path: "/EquipmentManagementSelect",
-  //     },
-  //   ],
-  // },
-  // {
-  //   title: "고객지원센터",
-  //   icon: (
-  //     <CallIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
-  //   ),
-  //   childrens: [      
-  //     {
-  //       title: "장비 반납/교환 요청",
-  //       path: "/EquipmentManagementSelectReturn",
-  //     },
-  //   ],
-  // },
   {
-    title: "설정",
+    title: "건강 관리",
+    prefix: "/Medicine",
     icon: (
-      <SettingsIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
+      <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
     ),
     childrens: [
       {
-        title: "위험 기준 관리",
-        path: "/RiskInsert",
+        title: "복약 관리",
+        path: "/MedicineCareSelect",
       },
       {
-        title: "사용자 권한 관리",
-        path: "/AuthorityManagement",
+        title: "댁내 온도 관리",
+        path: "/TemperatureManagementSelect",
+      },
+      {
+        title: "복약율 통계",
+        path: "/MedicineStatistics",
       },
     ],
+  },
+
+  {
+    title: "방문 관리",
+    prefix: "/Visit",
+    icon: (
+      <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
+    ),
+    childrens: [
+      {
+        title: "방문 관리",
+        path: "/VisitSelect",
+      },
+    ],
+  },
+  {
+    title: "장비 관리",
+    prefix: "/Equipment",
+    icon: (
+      <SpeakerPhoneIcon
+        sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }}
+      />
+    ),
+    childrens: [
+      {
+        title: "장비 관리",
+        path: "/EquipmentManagementSelect",
+      },
+    ],
+  },
+  {
+    title: "고객지원센터",
+    icon: (
+      <CallIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
+    ),
+    childrens: [      
+      {
+        title: "장비 반납/교환 요청",
+        path: "/EquipmentManagementSelectReturn",
+      },
+    ],
+  },
+  {
+    title: "Q&A",
+    path: "/QandA",
+    icon: (
+      <QuestionMarkIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />
+    ),
   },
 ];
 
@@ -116,22 +99,22 @@
 
   return (
     <nav
-      className={"nav"}
+      className={!menuToggle ? "nav" : "burger__menu"}
       onClick={() => (menuToggle ? setMenuToggle(false) : setMenuToggle(true))}
     >
+      <h1 className="logo">시니어 케어 시스템</h1>
       <div className="flex-align-column" style={{ height: `calc(100% - 72px)` }}>
         <ul>
-          <h1 className="logo">시니어 케어 시스템</h1>
           {items.map((item, index) => (
             <SidebarItem key={index} item={item} />
           ))}
-          <div className="info-wrap ">
-            <div className="bottom-section flex">
-              <div className="info-id flex50">관리자</div>
-              <Button className={"logout flex50"} btnName={"로그아웃"} />
-            </div>
-          </div>
         </ul>
+        <div className="info-wrap ">
+          <div className="bottom-section flex">
+            <div className="info-id flex50">관리자</div>
+            <Button className={"logout flex50"} btnName={"로그아웃"} />
+          </div>
+        </div>
       </div>
     </nav>
   );
client/views/pages/AppRoute.jsx
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
@@ -23,14 +23,11 @@
 import EquipmentRentalInsert from "./equipment/EquipmentRentalInsert.jsx";
 import EquipmentManagementSelect from "./equipment/EquipmentManagementSelect.jsx";
 import EquipmentManagementSelectOne from "./equipment/EquipmentManagementSelectOne.jsx";
-import EquipmentManagementInsert from "./equipment/EquipmentManagementInsert.jsx";
 import UserAuthoriySelect from "./authority/UserAuthoriySelect.jsx";
 import MyInfoUpdate from "./authority/MyInfoUpdate.jsx";
 import EquipmentManagementSelectReturn from "./equipment/EquipmentManagementSelectReturn.jsx";
-import AuthorityManagement from "./authority/AuthorityManagement.jsx";
-import ServiceInsert from "./serviceCenter/ServiceInsert.jsx";
-import AgencyInsert from "./authority/AgencyInsert.jsx";
-import RiskInsert from "./authority/RiskInsert.jsx";
+import Main3 from "./Main/Main3.jsx";
+import QandA from "./authority/QandA.jsx";
 
 function AppRoute() {
   return (
@@ -81,11 +78,8 @@
       ></Route>
       <Route path="/MyInfoUpdate" element={<MyInfoUpdate />}></Route>
       <Route path="/EquipmentManagementSelectReturn" element={<EquipmentManagementSelectReturn />}></Route>
-      <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route>
-      <Route path="/EquipmentManagementInsert" element={<EquipmentManagementInsert />}></Route>
-      <Route path="/ServiceInsert" element={<ServiceInsert />}></Route>
-      <Route path="/AgencyInsert" element={<AgencyInsert />}></Route>
-      <Route path="/RiskInsert" element={<RiskInsert />}></Route>
+      <Route path="/Main3" element={<Main3 />}></Route>
+      <Route path="/QandA" element={<QandA />}></Route>
     </Routes>
   );
 }
client/views/pages/authority/AuthorityManagement.jsx
--- client/views/pages/authority/AuthorityManagement.jsx
+++ client/views/pages/authority/AuthorityManagement.jsx
@@ -31,11 +31,11 @@
   return (
     <main>
       <div className="content-wrap">
-        <ContentTitle contentTitle={"관리자 권한관리"} />
+        <ContentTitle contentTitle={"권한관리"} />
         <div className="board-wrap">
           <SubTitle className="margin-bottom" explanation={"메뉴 권한을 설정할 수 있습니다."} />
           <div className="board-wrap">
-            {/* <table className="authority-table-pc">
+            <table className="authority-table">
               <thead>
                 <tr>
                   <th colSpan={2} style={{ width: "30%" }}>
@@ -109,126 +109,10 @@
                   )
                 )}
               </tbody>
-            </table> */}
-            <table>
-            <thead>
-              <tr>
-                <th rowSpan="2">구분</th>
-                <th rowSpan="2">사용자 관리</th>
-                <th colSpan="3">건강관리</th>
-                <th rowSpan="2">방문관리</th>
-                <th rowSpan="2">장비관리</th>
-                <th rowSpan="2">고객지원센터</th>
-                <th rowSpan="2">Q&amp;A</th>
-              </tr>
-              <tr>
-                <th>복약관리</th>
-                <th>댁내온도관리</th>
-                <th>복약통계</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr>
-                <td>시행기관(병원, 복지관 등)</td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-              </tr>
-              <tr>
-                <td>보호사(간호사, 복지사 등)</td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-              </tr>
-              <tr>
-                <td>보호자(대상자 가족)</td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" checked="checked"/></td>
-              </tr>
-              <tr>
-                <td>대상자</td>
-                <td><input type="checkbox" checked="checked"/></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" /></td>
-                <td><input type="checkbox" checked="checked"/></td>
-              </tr>             
-              
-            </tbody>
             </table>
             <div className="btn-wrap flex-end">
               <Button className={"btn-small green-btn"} btnName={"저장"} />
             </div>
-            <SubTitle className="margin-bottom" explanation={"각 메뉴에 대한 설명"} />
-            <table className="explain-table">
-            <thead>
-              <tr>
-                <th rowSpan="2">메뉴</th>
-                <th rowSpan="2">소메뉴</th>
-                <th rowSpan="2">상세설명</th>
-              </tr>
-            </thead>
-            <tbody>
-              <tr>
-                <td>사용자 관리</td>
-                <td>-</td>
-                <td>사용자(노인, 보호자 등)를 등록하고 삭제할 수 있다.</td>
-              </tr>
-              <tr>
-                <td rowSpan="3">건강관리</td>
-                <td>복약관리</td>
-                <td>사용자(노인)의 아침, 점심, 저녁 복약여부를 확인하고 관리할 수 있다.</td>
-              </tr>
-              <tr>
-                <td>댁내온도관리</td>
-                <td>사용자(노인)의 아침, 점심, 저녁 댁내온도를 확인하고 관리할 수 있다.</td>
-              </tr>
-              <tr>
-                <td>복약통계</td>
-                <td>시행기관에 등록되어 있는 사용자(노인)의 복약 통계 자료를 볼 수 있다.</td>
-              </tr>
-              <tr>
-                <td>방문 관리</td>
-                <td>-</td>
-                <td>시행기관의 복지사가 사용자(노인)을 방문한 내역을 확인하고 관리할 수 있다.</td>
-              </tr>  
-              <tr>
-                <td>장비 관리</td>
-                <td>-</td>
-                <td>시행기관에서 관리하고 있는 장비(전체, 미사용, 사용)현황을 관리하고 사용자를 등록할 수 있다.</td>
-              </tr>  
-              <tr>
-                <td>고객지원센터</td>
-                <td>-</td>
-                <td>장비업체에 교환/반납 요청을 할 수 있다.</td>
-              </tr>  
-              <tr>
-                <td>Q&A</td>
-                <td>-</td>
-                <td>사용자(노인, 보호자 등)질문을 등록하고 답변할 수 있다.</td>
-              </tr>  
-              
-            </tbody>
-            </table>
           </div>
         </div>
       </div>
 
client/views/pages/authority/QandA.jsx (added)
+++ client/views/pages/authority/QandA.jsx
@@ -0,0 +1,47 @@
+import React from "react";
+import Button from "../../component/Button.jsx";
+import Table from "../../component/Table.jsx";
+import Modal from "../../component/Modal.jsx";
+import { useNavigate } from "react-router";
+import ContentTitle from "../../component/ContentTitle.jsx";
+
+export default function QandA() {
+  const navigate = useNavigate();
+  //게시판
+  const thead = [
+    "No",
+    "제목",
+    "작성자",
+    "작성일자",
+    "상태",
+  ];
+  const key = [
+    "No",
+    "title",
+    "name",
+    "date",
+    "work",
+  ];
+  const content = [
+    {
+      No: 1,
+      title: (
+        <p style={{textDecoration:"underline"}}>질문입니다.</p>
+      ),
+      name: "홍**",
+      date: "2022-08-01",
+      work: "답변완료"
+    },
+   
+  ];
+  return (
+    <main>
+      <div className="content-wrap">
+      <ContentTitle contentTitle={"Q&A"} />
+        <div className="board-wrap">
+          <Table className="equipment-detail" head={thead} contents={content} contentKey={key} />
+        </div>
+      </div>
+    </main>
+  );
+}
client/views/pages/authority/UserAuthoriySelect.jsx
--- client/views/pages/authority/UserAuthoriySelect.jsx
+++ client/views/pages/authority/UserAuthoriySelect.jsx
@@ -1,145 +1,249 @@
 import React from "react";
 import Table from "../../component/Table.jsx";
 import Button from "../../component/Button.jsx";
-import { useNavigate } from "react-router";
-import AgencySearch from "../../component/AgencySearch.jsx";
-import ContentTitle from "../../component/ContentTitle.jsx";
 import SubTitle from "../../component/SubTitle.jsx";
+import Modal from "../../component/Modal.jsx";
+import Modal2 from "../../component/Modal2.jsx";
+import { useNavigate } from "react-router";
 
-export default function SeniorSelect() {
+export default function UserAuthoriySelect() {
   const navigate = useNavigate();
-
-  //게시판
-  const thead = [
+  const [modalOpen, setModalOpen] = React.useState(false);
+  const openModal = () => {
+    setModalOpen(true);
+  };
+  const closeModal = () => {
+    setModalOpen(false);
+  };
+  const [modalOpen2, setModalOpen2] = React.useState(false);
+  const openModal2 = () => {
+    setModalOpen2(true);
+    console.log("ddd")
+  };
+  const closeModal2 = () => {
+    setModalOpen2(false);
+  };
+  const thead1 = [
     "No",
-    "기관명",    
-    "사업자번호",
-    "담당자명",
-    "담당 부서 연락처",
-    "관리 장비 개수",
+    "사용자명",
+    "사용자관리번호",
+    "성별",
+    "생년월일",
     "주소",
-    "등록된 복지사",
+    "대상자 관리",
   ];
-  const key = [
-    "No",
-    "name",    
-    "BusinessNumber",
-    "representative",
-    "phone",
-    "Fax",
-    "address",
-    "worker",
-  ];
-  const content = [
+  const key1 = ["No", "name", "Id", "gender", "birth", "address", "management"];
+  const content1 = [
     {
       No: 1,
-      name: "A복지관",
-      BusinessNumber: "515-82-00000",
-      representative: "김길동",
-      phone: "053-811-1234",
-      Fax: "50개",
+      name: "김복남",
+      Id: "20230131",
+      gender: "여",
+      birth: "1948.11.15",
       address: "경상북도 군위군 삼국유사면",
-      worker: (
+      management: (
         <Button
           className={"btn-small gray-btn"}
-          btnName={"상세보기"}
-          onClick={() => {
-            navigate("/SeniorSelectOne");
-          }}
-        />
-      ),
-    },
-    {
-      No: 2,
-      name: "B복지관",
-      BusinessNumber: "515-82-00000",
-      representative: "김길동",
-      phone: "053-811-1234",
-      Fax: "80개",
-      address: "경상북도 군위군 삼국유사면",
-      worker: (
-        <Button
-          className={"btn-small gray-btn"}
-          btnName={"상세보기"}
-          onClick={() => {
-            navigate("/SeniorSelectOne");
-          }}
-        />
-      ),
-    },
-    {
-      No: 3,
-      name: "대구보훈병원",
-      BusinessNumber: "515-82-00000",
-      representative: "김길동",
-      phone: "053-811-1234",
-      Fax: "30개",
-      address: "경상북도 군위군 삼국유사면",
-      worker: (
-        <Button
-          className={"btn-small gray-btn"}
-          btnName={"상세보기"}
-          onClick={() => {
-            navigate("/SeniorSelectOne");
-          }}
+          btnName={"보호자(가족) 보기"}
+          onClick={openModal}
         />
       ),
     },
   ];
 
-  //select option 동적 생성
-  // const optionList = () => {
-  //   let year = [];
-  //   let month = [];
-  //   let days = [];
-  //   let currentDate = new Date();
-  //   let currentYear = currentDate.getFullYear();
+  const thead2 = [
+    "No",
+    "사용자명",
+    "사용자ID",
+    "연락처",
+    "주소",
+    "보호 대상자",
+  ];
+  const key2 = [
+    "No",
+    "name",
+    "Id",
+    "phone",
+    "address",
+    "Target_management",
+  ];
+  const content2 = [
+    {
+      No: 1,
+      name: "김훈",
+      Id: "admin2",
+      phone: "010-1234-1234",
+      address: "경상북도 군위군 삼국유사면",
+      Target_management: (
+        <Button
+          className={"btn-small gray-btn"}
+          btnName={"보호대상자"}
+          onClick={openModal2}
+        />
+      ),
+    },
+  ];
+  const thead3 = [
+    "No",
+    "사용자명",
+    "사용자ID",
+    "대상자와의 관계",
+    "보호자 연락처",
+  ];
+  const key3 = [
+    "No",
+    "name",
+    "Id",
+    "relationship",
+    "phone",
+  ];
+  const content3 = [
+    {
+      No: 1,
+      name: "김훈",
+      Id: "admin2",
+      relationship: "아들",
+      phone: "010-1234-1234",
+    },
+  ];
+  const thead4 = [
+    "No",
+    "어르신 성함",
+    "사용자등록번호",
+    "성별",
+    "생년월일",
+    "주소",
+    "관계",
+  ];
+  const key4 = ["No", "name", "Id", "gender", "birth", "address", "management"];
+  const content4 = [
+    {
+      No: 1,
+      name: "김복남",
+      Id: "20230131",
+      gender: "여",
+      birth: "1948.11.15",
+      address: "경상북도 군위군 삼국유사면",
+      management: "부"
+    },
+  ];
 
-  //   for (let i = 1910; i < currentYear.length; i++) {
-  //     year.push(i);
-  //   }
 
-  //   for (let j = 1; i < 13; j++) {
-  //     month.push(j);
-  //   }
 
-  //   for (let k = 1; i < 32; k++) {
-  //     days.push(k);
-  //   }
-  //   return year, month, days;
-  // };
-
-  // React.useEffect(() => {
-  //   optionList();
-  // }, []);
-
+  const data = [
+    {
+      id: 1,
+      title: "개인(노인)",
+      description: (
+        <Table
+          className={"protector-user"}
+          head={thead1}
+          contents={content1}
+          contentKey={key1}
+        />
+      ),
+    },
+    {
+      id: 2,
+      title: "보호자(가족)",
+      description: (
+        <Table
+          className={"caregiver-user"}
+          head={thead2}
+          contents={content2}
+          contentKey={key2}
+        />
+      ),
+    },
+  ];
+  const [index, setIndex] = React.useState(1);
   return (
     <main>
-      <div className="content-wrap">
-        <ContentTitle contentTitle={"기관 조회"} />
-        <div>
-          <AgencySearch />
-          <div className="board-wrap">
-            <div className="flex-end">
-              <div className="btn-wrap flex-end margin-bottom ">
-                <Button
-                  className={"btn-small green-btn"}
-                  btnName={"등록"}
-                  onClick={() => {
-                    navigate("/AgencyInsert");
-                  }}
-                />
-                <Button className={"btn-small green-btn"} btnName={"삭제"} />
-              </div>
-            </div >
+      <Modal open={modalOpen} close={closeModal} header="'김복남'님의 가족">
+        <div className="board-wrap">
+          <div>
             <Table
-              className={"senior-table"}
-              head={thead}
-              contents={content}
-              contentKey={key}
+              className={"caregiver-user"}
+              head={thead3}
+              contents={content3}
+              contentKey={key3}
             />
-            
           </div>
+          <div>
+            <Button
+              className={"btn-100 green-btn"}
+              btnName={"닫기"}
+              onClick={closeModal}
+            />
+          </div>
+        </div>
+      </Modal>
+      <Modal2  className={"modal"} open={modalOpen2} close={closeModal2} header="보호 대상자">
+        <div className="board-wrap">
+          <div>
+            <Table
+              className={"caregiver-user"}
+              head={thead4}
+              contents={content4}
+              contentKey={key4}
+            />
+          </div>
+          <div>
+            <Button
+              className={"btn-100 green-btn"}
+              btnName={"닫기"}
+              onClick={closeModal2}
+            />
+          </div>
+        </div>
+      </Modal2>
+      <div className="tab-container">
+        <ul className="tab-menu">
+          {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">
+          <div className="search-management flex-start margin-bottom2">
+            <select name="management-agency">
+              <option value="기관전체">기관전체</option>
+              <option value="대구보훈병원">복지재단1</option>
+              <option value="군위군청">복지재단2</option>
+              <option value="군위군청">복지재단3</option>
+            </select>
+            <select>
+              <option value="이름">이름</option>
+              <option value="아이디">아이디</option>
+            </select>
+            <input type="text" />
+            <Button
+              className={"btn-small gray-btn"}
+              btnName={"검색"}
+            />
+          </div>
+          <div className="btn-wrap flex-end">
+              <Button
+                className={"btn-small green-btn"}
+                btnName={"등록"}
+                onClick={() => {
+                  navigate("/SeniorInsert");
+                }}
+              />
+              <Button className={"btn-small green-btn"} btnName={"삭제"} />
+            </div>
+          <ul className="tab-content">
+            {data
+              .filter((item) => index === item.id)
+              .map((item) => (
+                <li>{item.description}</li>
+              ))}
+          </ul>
         </div>
       </div>
     </main>
client/views/pages/equipment/EquipmentManagementSelectOne.jsx
--- client/views/pages/equipment/EquipmentManagementSelectOne.jsx
+++ client/views/pages/equipment/EquipmentManagementSelectOne.jsx
@@ -49,18 +49,8 @@
   return (
     <main>
       <div className="content-wrap">
-        <ContentTitle contentTitle={"장비 대여 상세 목록"} />
+      <ContentTitle contentTitle={"장비 상세 목록"} />
         <div className="board-wrap">
-          <div className="btn-wrap flex-end margin-bottom ">
-            <Button
-              className={"btn-small green-btn"}
-              btnName={"장비 대여"}
-              onClick={() => {
-                navigate("/EquipmentRentalInsert");
-              }}
-            />
-            <Button className={"btn-small green-btn"} btnName={"삭제"} />
-          </div>
           <Table className="equipment-detail" head={thead} contents={content} contentKey={key} />
         </div>
       </div>
client/views/pages/equipment/EquipmentManagementSelectReturn.jsx
--- client/views/pages/equipment/EquipmentManagementSelectReturn.jsx
+++ client/views/pages/equipment/EquipmentManagementSelectReturn.jsx
@@ -60,7 +60,7 @@
                 className={"btn-small green-btn"}
                 btnName={"등록"}
                 onClick={() => {
-                  navigate("/ServiceInsert");
+                  navigate("/SeniorInsert");
                 }}
               />
               <Button className={"btn-small green-btn "} btnName={"삭제"} />
client/views/pages/equipment/EquipmentRentalInsert.jsx
--- client/views/pages/equipment/EquipmentRentalInsert.jsx
+++ client/views/pages/equipment/EquipmentRentalInsert.jsx
@@ -28,25 +28,17 @@
               <tr>
                 <th>기기종류</th>
                 <td colSpan={5}>
-                  <input type="text" name="" id="" disabled placeholder="스마트 약상자"/>
+                  <input type="text" name="" id="" disabled />
                 </td>
               </tr>
               <tr>
                 <th>장비넘버</th>
                 <td colSpan={5}>
-                  <input type="text" name="" id="" disabled placeholder="ABCD-1"/>
+                  <input type="text" name="" id="" disabled />
                 </td>
               </tr>
               <tr>
-                <th>사용자명</th>
-                <td colSpan={5}>
-                  <div className="flex">
-                    <input type="text" disabled />
-                  </div>
-                </td>
-              </tr>
-              <tr>
-                <th>사용자관리번호</th>
+                <th>사용자</th>
                 <td colSpan={5}>
                   <div className="flex">
                     <input type="text" disabled />
client/views/pages/healthcare/statistics/MedicineStatistics.jsx
--- client/views/pages/healthcare/statistics/MedicineStatistics.jsx
+++ client/views/pages/healthcare/statistics/MedicineStatistics.jsx
@@ -1,4 +1,4 @@
-
+import React from "react";
 import ContentTitle from "../../../component/ContentTitle.jsx";
 import SubTitle from "../../../component/SubTitle.jsx";
 import Button from "../../../component/Button.jsx";
@@ -7,190 +7,128 @@
 import Donut2 from "./../../../component/chart/Donut2.jsx";
 import ToggleButton from "../../../component/ToggleButton.jsx";
 import Chart from './../../../component/chart/Chart.jsx';
-import AgencySearch from "../../../component/AgencySearch.jsx";
-import Table from "../../../component/Table.jsx";
-import React, { useState } from "react";
 
 export default function MedicineStatistics() {
-  const [show, setShow] = useState(false);
-  const onClickShow = () => {
-    setShow(!show);
-  };
-
-  const thead = [
-    "No",
-    "기관명",
-    "사업자번호",
-    "담당자명",
-    "담당 부서 연락처",
-    "FAX",
-    "주소",
-    "통계",
-  ];
-  const key = [
-    "No",
-    "name",
-    "BusinessNumber",
-    "representative",
-    "phone",
-    "Fax",
-    "address",
-    "worker",
-  ];
-  const content = [
-    {
-      No: 1,
-      name: "A복지관",
-      BusinessNumber: "515-82-00000",
-      representative: "김길동",
-      phone: "053-811-1234",
-      Fax: "053-811-1234",
-      address: "경상북도 군위군 삼국유사면",
-      worker: (
-        <Button
-          className={"btn-small gray-btn"}
-          btnName={"통계보기"}
-          onClick={onClickShow}
-        />
-      ),
-    },
-  ];
-
   return (
     <main>
       <div className="content-wrap">
         <ContentTitle contentTitle={"복약율 통계"} />
-        <div style={{ height: "calc(100% - 60px)" }}>
-        <div className="content-box combine-left-government2 margin-bottom">
-              <div>
-                <AgencySearch />
-                <div className="board-wrap">
-                  <Table
-                    className={"senior-table"}
-                    head={thead}
-                    contents={content}
-                    contentKey={key}
-                  />
+        <div className="board-wrap" style={{ height: "calc(100% - 60px)" }}>
+          <div className="statistics-grid" style={{ height: "100%" }}>
+            <div>
+              <SubTitle
+                className="margin-bottom"
+                explanation={"토탈 복약율 통계"}
+                color={"#333333"}
+              />
+              <div
+                style={{
+                  border: "1px solid #eeeeee",
+                  borderRadius: "0.5rem",
+                  padding: "1rem",
+                  height: "calc(100% - 47px)",
+                }}
+              >
+                <div className="flex-end">
+                  <div className="flex flex30">
+                    <input type="date" name="" id="" />
+                  </div>
+                  <div className="flex10">
+                    <Button className={"green-btn"} btnName={"검색"} />
+                  </div>
                 </div>
+                <Donut2 />
               </div>
             </div>
-          <div className={show ? "statistics-grid-wrap show" : "statistics-grid-wrap"} style={{ height: "100%" }}>
-            <div className="statistics-grid" style={{ height: "100%" }}>           
-              <div className="content-box combine-left2">
+            <div>
+              <div className="flex">
                 <SubTitle
                   className="margin-bottom"
-                  explanation={"토탈 복약율 통계"}
+                  explanation={"나이대별 복약율 통계"}
                   color={"#333333"}
                 />
-                <div
-                  style={{
-                    border: "1px solid #eeeeee",
-                    borderRadius: "0.5rem",
-                    padding: "1rem",
-                    height: "calc(100% - 47px)",
-                  }}
-                >
-                  <div className="flex-end">
-                    <div className="flex flex30">
-                      <input type="date" name="" id="" />
-                    </div>
-                    <div className="flex10">
-                      <Button className={"green-btn"} btnName={"검색"} />
-                    </div>
-                  </div>
-                  <Donut2 />
-                </div>
               </div>
-              <div className="content-box combine-left2">
-                <div className="flex">
-                  <SubTitle
-                    className="margin-bottom"
-                    explanation={"나이대별 복약율 통계"}
-                    color={"#333333"}
-                  />
-                </div>
-                <div
-                  style={{
-                    border: "1px solid #eeeeee",
-                    borderRadius: "0.5rem",
-                    padding: "1rem",
-                    height: "calc(100% - 47px)",
-                  }}
-                >
-                  <Chart3 />
-                </div>
-              </div>
-              <div className="content-box combine-right3">
-                <div className="flex">
-                  <SubTitle
-                    className="margin-bottom"
-                    explanation={"주별, 월별 복약율 통계"}
-                    color={"#333333"}
-                  />
-                  <ToggleButton
-                    btnName1={"주별"}
-                    btnName2={"월별"}
-                  />
-                </div>
-                <div
-                  style={{
-                    border: "1px solid #eeeeee",
-                    borderRadius: "0.5rem",
-                    padding: "1rem",
-                    height: "calc(100% - 47px)",
-                  }}
-                >
-                  <div className="flex-end">
-                    <select name="" id="">
-                      <option value="">1월</option>
-                      <option value="">2월</option>
-                      <option value="">3월</option>
-                      <option value="">4월</option>
-                      <option value="">5월</option>
-                      <option value="">6월</option>
-                      <option value="">7월</option>
-                      <option value="">8월</option>
-                      <option value="">9월</option>
-                      <option value="">10월</option>
-                      <option value="">11월</option>
-                      <option value="">12월</option>
-                    </select>
-                  </div>
-                  <Chart />
-                </div>
-              </div>
-              <div className="content-box combine-right3 combine-all-government">
-                <div className="flex">
-                  <SubTitle
-                    className="margin-bottom"
-                    explanation={"분기별 년별 복약율 통계"}
-                    color={"#333333"}
-                  />
-                  <ToggleButton
-                    btnName1={"분기별"}
-                    btnName2={"년별"}
-                  />
-                </div>
-  
-                <div
-                  style={{
-                    border: "1px solid #eeeeee",
-                    borderRadius: "0.5rem",
-                    padding: "1rem",
-                    height: "calc(100% - 47px)",
-                  }}
-                >
-                  <div className="flex-end">
-                    <select name="" id="">
-                      <option value="">2022</option>
-                      <option value="">2023</option>
-                    </select>
-                  </div>
-                  <LineColor />
-                </div>
+              <div
+                style={{
+                  border: "1px solid #eeeeee",
+                  borderRadius: "0.5rem",
+                  padding: "1rem",
+                  height: "calc(100% - 47px)",
+                }}
+              >
+                <Chart3 />
               </div>
             </div>
-          </div >
+            <div>
+              <div className="flex">
+                <SubTitle
+                  className="margin-bottom"
+                  explanation={"주별, 월별 복약율 통계"}
+                  color={"#333333"}
+                />
+                <ToggleButton
+                  btnName1={"주별"}
+                  btnName2={"월별"}
+                />
+              </div>
+              <div
+                style={{
+                  border: "1px solid #eeeeee",
+                  borderRadius: "0.5rem",
+                  padding: "1rem",
+                  height: "calc(100% - 47px)",
+                }}
+              >
+                <div className="flex-end">
+                  <select name="" id="">
+                    <option value="">1월</option>
+                    <option value="">2월</option>
+                    <option value="">3월</option>
+                    <option value="">4월</option>
+                    <option value="">5월</option>
+                    <option value="">6월</option>
+                    <option value="">7월</option>
+                    <option value="">8월</option>
+                    <option value="">9월</option>
+                    <option value="">10월</option>
+                    <option value="">11월</option>
+                    <option value="">12월</option>
+                  </select>
+                </div>
+                <Chart />
+              </div>
+            </div>
+            <div>
+              <div className="flex">
+                <SubTitle
+                  className="margin-bottom"
+                  explanation={"분기별 년별 복약율 통계"}
+                  color={"#333333"}
+                />
+                <ToggleButton
+                  btnName1={"분기별"}
+                  btnName2={"년별"}
+                />
+              </div>
+
+              <div
+                style={{
+                  border: "1px solid #eeeeee",
+                  borderRadius: "0.5rem",
+                  padding: "1rem",
+                  height: "calc(100% - 47px)",
+                }}
+              >
+                <div className="flex-end">
+                  <select name="" id="">
+                    <option value="">2022</option>
+                    <option value="">2023</option>
+                  </select>
+                </div>
+                <LineColor />
+              </div>
+            </div>
+          </div>
         </div>
       </div>
     </main>
client/views/pages/login/Login.jsx
--- client/views/pages/login/Login.jsx
+++ client/views/pages/login/Login.jsx
@@ -1,6 +1,6 @@
 import React from "react";
 import Button from "../../component/Button.jsx";
-import Join from "./../join/Join.jsx";
+import { useNavigate } from "react-router";
 
 export default function Login({ getLogin }) {
   const [isJoin, setIsJoin] = React.useState(false);
@@ -8,56 +8,135 @@
     setIsJoin(true);
     console.log(isJoin);
   };
-  const onClickLogin = () => {
-    getLogin();
+  const onClickLogin = (loginComponentName) => {
+    getLogin(loginComponentName);
   };
-  return (
-    <div className="row login-wrap">
-      <h1>시니어 스마트 케어 모니터링 플랫폼</h1>
-      {isJoin ? (
-        <Join />
-      ) : (
-        <div className="container row flex-center join-login">
-          <div className="login-form-management">
-            <div>
-              <h3>로그인</h3>
-              <div className="login-inner">
-                <div className="content">
-                  <i className="fa-solid fa-user"></i>
-                  <input
-                    required
-                    maxlength="15"
-                    type="text"
-                    placeholder="아이디를 입력하세요"
-                  />
-                </div>
-                <div className="content">
-                  <i className="fa-solid fa-lock"></i>
-                  <input
-                    type="password"
-                    name="password"
-                    placeholder="비밀번호를 입력하세요"
-                  />
-                </div>
-              </div>
-            </div>
-            <div className="btn-wrap">
-              <Button
-                className={"btn-100 green-btn"}
-                btnName={"로그인"}
-                onClick={onClickLogin}
+
+  function a () {
+    console.log("a함수 실행!");
+  }
+
+  a();
+  
+  const data = [
+    {
+      id: 1,
+      title: "복지관(관리자)",
+      description: (
+        <div className="login-inner">
+          <div>
+            <div className="content">
+              <i className="fa-solid fa-user"></i>
+              <input
+                required
+                maxlength="15"
+                type="text"
+                placeholder="아이디를 입력하세요"
               />
-              <div className="flex-center btn-bottom">
-                <Button
-                  className={"join-btn"}
-                  btnName={"회원가입"}
-                  onClick={onClickJoin}
-                />
-              </div>
+            </div>
+            <div className="content">
+              <i className="fa-solid fa-lock"></i>
+              <input
+                type="password"
+                name="password"
+                placeholder="비밀번호를 입력하세요"
+              />
+            </div>
+          </div>
+          <div className="btn-wrap">
+            <Button
+              className={"btn-100 green-btn"}
+              btnName={"로그인"}
+              onClick={() => onClickLogin('/Main')}
+            />
+            <div className="flex-center btn-bottom">
+              <Button
+                className={"join-btn"}
+                btnName={"회원가입"}
+                onClick={onClickJoin}
+              />
             </div>
           </div>
         </div>
-      )}
-    </div>
+      ),
+    },
+    {
+      id: 2,
+      title: "보호사",
+      description: (
+        <div className="login-inner">
+          <div>
+            <div className="content">
+              <i className="fa-solid fa-user"></i>
+              <input
+                required
+                maxlength="15"
+                type="text"
+                placeholder="아이디를 입력하세요"
+              />
+            </div>
+            <div className="content">
+              <i className="fa-solid fa-lock"></i>
+              <input
+                type="password"
+                name="password"
+                placeholder="비밀번호를 입력하세요"
+              />
+            </div>
+          </div>
+          <div className="btn-wrap">
+            <Button
+              className={"btn-100 green-btn"}
+              btnName={"로그인"}
+              onClick={() => onClickLogin('/Main3')}
+            />
+            <div className="flex-center btn-bottom">
+              <Button
+                className={"join-btn"}
+                btnName={"회원가입"}
+                onClick={onClickJoin}
+              />
+            </div>
+          </div>
+        </div>
+      ),
+    },
+  ];
+  const [index, setIndex] = React.useState(1);
+  return (
+    <main>
+      <div className="row login-wrap">
+        <h1>시니어 스마트 케어 모니터링 플랫폼</h1>
+        {isJoin ? (
+          <Join />
+        ) : (
+          <div className="tab-container">
+            <ul className="tab-menu">
+              {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">
+              <ul className="tab-content">
+                {data
+                  .filter((item) => index === item.id)
+                  .map((item) => (
+                    <li>{item.description}</li>
+                  ))}
+              </ul>
+            </div>
+          </div>
+        )}
+      </div>
+
+
+
+    </main>
   );
 }
client/views/pages/main/Main2.jsx
--- client/views/pages/main/Main2.jsx
+++ client/views/pages/main/Main2.jsx
@@ -1,150 +1,156 @@
-import React,{useState} from "react";
+import React from "react";
 import Title from "../../component/Title.jsx";
+import Table from "../../component/Table.jsx";
 import Map from "../../component/chart/Map.jsx";
+import Chart from "../../component/chart/Chart.jsx";
 import Chart5 from "../../component/chart/Chart5.jsx";
 import Chart2 from "../../component/chart/Chart2.jsx";
+import Chart2_1 from "../../component/chart/Chart2_1.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 PersonIcon from '@mui/icons-material/Person';
 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';
 
 export default function Main2() {
-  const [cityName, setCityName] = useState("군위군");
-  // const tableHead = ["방문날짜", "방문사유", "방문 상세 사유"];
-  // const Key = ["date", "reason", "detail_reason"];
-  // const content = [
-  //   {
-  //     date: "2022.12.12",
-  //     reason: "어르신케어",
-  //     detail_reason: "하루동안 미복약으로 방문. 방문시 두통을 호소하셔 병원 동행",
-  //   },
-  // ];
+  const tableHead = ["방문날짜", "방문사유", "방문 상세 사유"];
+  const Key = ["date", "reason", "detail_reason"];
+  const content = [
+    {
+      date: "2022.12.12",
+      reason: "어르신케어",
+      detail_reason: "하루동안 미복약으로 방문. 방문시 두통을 호소하셔 병원 동행",
+    },
+  ];
 
-  // //노인리스트
-  // const tableHead2 = [
-  //   "이름",
-  //   "요양등급",
-  //   "생년월일",
-  //   "연락처",
-  //   "주소",
-  //   "기저질환",
-  // ];
-  // const Key2 = [
-  //   "name",
-  //   "level_of_care",
-  //   "birth",
-  //   "phone",
-  //   "address",
-  //   "management_number",
-  // ];
-  // const content2 = [
-  //   {
-  //     name: "김복남",
-  //     level_of_care: "1등급",
-  //     birth: "1948.11.15",
-  //     phone: "010-1234-5678",
-  //     address: "경상북도 군위군 삼국유사면",
-  //     management_number: "혈압",
-  //   },
-  //   {
-  //     name: "홍길동",
-  //     level_of_care: "2등급",
-  //     birth: "1948.05.18",
-  //     phone: "010-3333-3333",
-  //     address: "경상북도 군위군 삼국유사면",
-  //     management_number: "당뇨",
-  //   },
-  //   {
-  //     name: "김말순",
-  //     level_of_care: "3등급",
-  //     birth: "1939.03.19",
-  //     phone: "010-3333-4444",
-  //     address: "경상북도 군위군 삼국유사면",
-  //     management_number: "천식",
-  //   },
-  //   {
-  //     name: "신정길",
-  //     level_of_care: "1등급",
-  //     birth: "1945.05.19",
-  //     phone: "010-3333-5555",
-  //     address: "경상북도 군위군 삼국유사면",
-  //     management_number: "폐렴",
-  //   },
-  //   {
-  //     name: "김정남",
-  //     level_of_care: "1등급",
-  //     birth: "1945.05.19",
-  //     phone: "010-3333-6666",
-  //     address: "경상북도 군위군 삼국유사면",
-  //     management_number: "인지장애",
-  //   },
-  // ];
+  //노인리스트
+  const tableHead2 = [
+    "이름",
+    "요양등급",
+    "생년월일",
+    "연락처",
+    "주소",
+    "기저질환",
+  ];
+  const Key2 = [
+    "name",
+    "level_of_care",
+    "birth",
+    "phone",
+    "address",
+    "management_number",
+  ];
+  const content2 = [
+    {
+      name: "김복남",
+      level_of_care: "1등급",
+      birth: "1948.11.15",
+      phone: "010-1234-5678",
+      address: "경상북도 군위군 삼국유사면",
+      management_number: "혈압",
+    },
+    {
+      name: "홍길동",
+      level_of_care: "2등급",
+      birth: "1948.05.18",
+      phone: "010-3333-3333",
+      address: "경상북도 군위군 삼국유사면",
+      management_number: "당뇨",
+    },
+    {
+      name: "김말순",
+      level_of_care: "3등급",
+      birth: "1939.03.19",
+      phone: "010-3333-4444",
+      address: "경상북도 군위군 삼국유사면",
+      management_number: "천식",
+    },
+    {
+      name: "신정길",
+      level_of_care: "1등급",
+      birth: "1945.05.19",
+      phone: "010-3333-5555",
+      address: "경상북도 군위군 삼국유사면",
+      management_number: "폐렴",
+    },
+    {
+      name: "김정남",
+      level_of_care: "1등급",
+      birth: "1945.05.19",
+      phone: "010-3333-6666",
+      address: "경상북도 군위군 삼국유사면",
+      management_number: "인지장애",
+    },
+  ];
 
   return (
     <main>
-      <div className="main-grid-government">
+      <div className="main-grid-agency">
         <ul className="content-box statistics" background="#f7acba">
           <li> 
             <p><ElderlyIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#bf0629", borderRadius:"50px" }}/></p>           
-            <p>{cityName} 전체 대상자</p>
+            <p>전체 대상자</p>
             <p>400</p>
           </li>
                   </ul>
         <ul className="content-box statistics" background="#8ef3d1">
           <li>
            <p><MedicationIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#076143", borderRadius:"50px" }}/></p>
-            <p>{cityName} 미복약 위험 대상자</p>
+            <p>미복약 위험 대상자</p>
             <p>400</p>
           </li>
         </ul>
         <ul className="content-box statistics" background="#ebe7b9" >
           <li>
              <p><DeviceThermostatIcon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#f1de05", borderRadius:"50px" }}/></p>
-            <p>{cityName} 댁내 온도 위험 대상자</p>
+            <p>댁내 온도 위험 대상자</p>
             <p>400</p>
           </li>
         </ul>
         <ul className="content-box statistics" background="#5f9af3">
           <li>
             <p><BatteryCharging20Icon sx={{ width: "50px", height: "50px", color: "#ffffff", background:"#5f9af3", borderRadius:"50px" }}/></p>
-            <p>{cityName} 배터리 부족 대상자 </p>
+            <p>배터리 부족 대상자 </p>
             <p>400</p>
           </li>
-        </ul>
-        <div className="content-box combine-all-government combine-bottom-government2">
+        </ul>       
+       
+        <div className="content-box bg-1 combine-left-government2 combine-middle-government">
           <div className="flex">
-            <Title title={`${cityName} 약상자 사용 현황`} explanation={"약상자 사용자의 데이터 차트가 보여집니다."} />
-            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
-          </div>
-          <Chart5 />
-        </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-left-government2">
-          <div className="flex">
-            <Title title={`${cityName} 복용률 평균`} explanation={"해당 지역의 대상자 복용률이 그래프로 보여집니다."} />
+          <Title title={"약상자 사용자 수(명)"} explanation={"월별 약상자 사용 인원"} />
             <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Chart2 />
         </div>
-        <div className="content-box combine-right-government2">
+        <div className="content-box bg-2 combine-left-government2 combine-bottom-government6">
           <div className="flex">
-            <Title title={`${cityName} 월별 방문 횟수`} explanation={"최근 6개월간 방문 횟수의 변화를 확인할 수 있습니다."} />
+          <Title title={"복용률 통계"} explanation={"월별 약상자 사용 인원"} />
+            <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
+          </div>
+          <Chart2_1 />
+        </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>
+          <Chart />
+        </div>
+        <div className="content-box combine-right-government2 combine-bottom-government5">
+          <div className="flex">
+            <Title title={"월별 방문 횟수"} explanation={"최근 6개월간 방문 횟수의 변화를 확인할 수 있습니다."} />
             <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <RowChart />
         </div>
-        <div className="content-box combine-right-government">
+        <div className="content-box combine-right-government combine-bottom-government2">
           <div className="flex">
-            <Title title={`${cityName} 노인 요양등급`} explanation={""} />
+          <Title title={"약상자 사용 현황"} explanation={"약상자 사용/미사용 현황"} />
             <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} />
           </div>
           <Donut1 />
client/views/pages/senior_management/SeniorInsert.jsx
--- client/views/pages/senior_management/SeniorInsert.jsx
+++ client/views/pages/senior_management/SeniorInsert.jsx
@@ -1,5 +1,6 @@
 import React from "react";
 import Button from "../../component/Button.jsx";
+import ContentTitle from "../../component/ContentTitle.jsx";
 import { useNavigate } from "react-router";
 
 export default function SeniorInsert() {
@@ -7,7 +8,7 @@
   return (
     <main>
       <div className="content-wrap row">
-        <div className="page-title margin-bottom">대상자 등록</div>
+      <ContentTitle contentTitle={"대상자 등록"} />
           <table className="margin-bottom2 senior-insert">
             <tr>
               <th>이름</th>
@@ -51,12 +52,6 @@
                   <option value="">4등급</option>
                   <option value="">등급없음</option>
                 </select>
-              </td>
-            </tr>
-            <tr>
-              <th>보호자 비상연락망</th>
-              <td colSpan={3}>
-                <input type="text" />
               </td>
             </tr>
             <tr>
client/views/pages/senior_management/SeniorSelect.jsx
--- client/views/pages/senior_management/SeniorSelect.jsx
+++ client/views/pages/senior_management/SeniorSelect.jsx
@@ -2,7 +2,7 @@
 import Table from "../../component/Table.jsx";
 import Button from "../../component/Button.jsx";
 import { useNavigate } from "react-router";
-import DetailSearch from "../../component/AgencySearch.jsx";
+import DetailSearch from "./../../component/DetailSearch.jsx";
 import ContentTitle from "../../component/ContentTitle.jsx";
 import SubTitle from "../../component/SubTitle.jsx";
 
client/views/pages/senior_management/SeniorSelectOne.jsx
--- client/views/pages/senior_management/SeniorSelectOne.jsx
+++ client/views/pages/senior_management/SeniorSelectOne.jsx
@@ -1,117 +1,90 @@
 import React from "react";
-import Table from "../../component/Table.jsx";
 import Button from "../../component/Button.jsx";
 import { useNavigate } from "react-router";
-import DetailSearch from "../../component/AgencySearch.jsx";
 import ContentTitle from "../../component/ContentTitle.jsx";
-import SubTitle from "../../component/SubTitle.jsx";
+import PersonIcon from '@mui/icons-material/Person';
 
-export default function SeniorSelect() {
+export default function SeniorSelectOne() {
   const navigate = useNavigate();
-
-  //게시판
-  const thead = [
-    "No",
-    "소속기관명",
-    "이름",
-    "연락처",
-    "주소",
-    "담당 대상자(어르신) 인원",
-  ];
-  const key = [
-    "No",
-    "center",
-    "name",
-    "phone",
-    "address",
-    "worker",
-  ];
-  const content = [
-    {
-      No: 1,
-      center: "A복지관",
-      name: "홍길동",
-      phone: "010-1234-1234",
-      address: "경상북도 군위군 삼국유사면",
-      worker: "10명"
-    },
-    {
-      No: 2,
-      center: "A복지관",
-      name: "홍길동",
-      phone: "010-1234-1234",
-      address: "경상북도 군위군 삼국유사면",
-      worker: "5명"
-    },
-    {
-      No: 3,
-      center: "A복지관",
-      name: "홍길동",
-      phone: "010-1234-1234",
-      address: "경상북도 군위군 삼국유사면",
-      worker: "8명"
-    },
-   
-  ];
-
-  //select option 동적 생성
-  // const optionList = () => {
-  //   let year = [];
-  //   let month = [];
-  //   let days = [];
-  //   let currentDate = new Date();
-  //   let currentYear = currentDate.getFullYear();
-
-  //   for (let i = 1910; i < currentYear.length; i++) {
-  //     year.push(i);
-  //   }
-
-  //   for (let j = 1; i < 13; j++) {
-  //     month.push(j);
-  //   }
-
-  //   for (let k = 1; i < 32; k++) {
-  //     days.push(k);
-  //   }
-  //   return year, month, days;
-  // };
-
-  // React.useEffect(() => {
-  //   optionList();
-  // }, []);
-
   return (
     <main>
-      <div className="content-wrap">
-        <ContentTitle contentTitle={"복지사 조회"} />
-        <div>
-          <div className="board-wrap">
-            <div className="flex">
-              <SubTitle className="margin-bottom" explanation={"기관 클릭 시 상세페이지로 이동합니다."} />
-              <div className="btn-wrap flex-end margin-bottom ">
-                <Button
-                  className={"btn-small green-btn"}
-                  btnName={"등록"}
-                  onClick={() => {
-                    navigate("/SeniorInsert");
-                  }}
-                />
-                <Button className={"btn-small green-btn"} btnName={"삭제"} />
-              </div>
-            </div >
-            <Table
-              className={"senior-table"}
-              head={thead}
-              contents={content}
-              contentKey={key}
-              onClick={() => {
-                navigate("/SeniorSelectOne");
-              }}
-            />
-            
-          </div>
+    <div className="content-wrap row">
+    <ContentTitle contentTitle={"대상자 상세 프로필"}/>
+      <div>
+        <table className="margin-bottom senior-detail">
+          <tbody>
+            <tr>
+              <th>이름</th>
+              <td>
+                <span>김복남</span>
+              </td>
+              <th>사용자등록번호</th>
+              <td>
+                <span>202280102</span>
+              </td>              
+            </tr>
+            <tr>
+            <th>생년월일</th>
+              <td>
+                <span>1948.11.15</span>
+              </td>
+              <th>연락처</th>
+              <td>
+                <span>010-1234-5678</span>
+              </td>
+            </tr>
+            <tr>
+              <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>
+            </tr>
+            <tr>
+              <th>복용중인 약</th>
+              <td colSpan={3}>
+                <span>혈압약</span>
+              </td>
+            </tr>
+            <tr>
+              <th>기저질환</th>
+              <td colSpan={3} style={{height:"300px"}}>
+                <span>고혈압</span>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+        <div className="btn-wrap flex-center">
+          <Button
+            className={"btn-large gray-btn"}
+            btnName={"이전"}
+            onClick={() => {
+              navigate("/SeniorSelect");
+            }}
+          />
+          <Button
+            className={"btn-large green-btn"}
+            btnName={"수정"}
+            onClick={() => {
+              navigate("/SeniorInsert");
+            }}
+          />
         </div>
       </div>
-    </main>
+    </div>
+  </main>
   );
 }
node_modules/.package-lock.json
--- node_modules/.package-lock.json
+++ node_modules/.package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "node_react_web_server_framework_v1.0",
+  "name": "senior_care_system",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
package-lock.json
--- package-lock.json
+++ package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "node_react_web_server_framework_v1.0",
+  "name": "senior_care_system",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
@@ -14,8 +14,8 @@
         "file-loader": "^6.2.0",
         "fs": "0.0.1-security",
         "history": "5.3.0",
-        "mysql": "^2.18.1",
-        "oracledb": "^5.5.0",
+        "mysql": "2.18.1",
+        "oracledb": "5.5.0",
         "pg": "8.8.0",
         "react": "18.2.0",
         "react-dom": "18.2.0",
Add a comment
List