
--- client/resources/css/common.css
+++ client/resources/css/common.css
... | ... | @@ -237,6 +237,16 @@ |
237 | 237 |
height: 100%; |
238 | 238 |
margin: auto; |
239 | 239 |
} |
240 |
+.width20 { |
|
241 |
+ width: 20%; |
|
242 |
+ height: 100%; |
|
243 |
+ margin: auto; |
|
244 |
+} |
|
245 |
+.width50 { |
|
246 |
+ width: 50%; |
|
247 |
+ height: 100%; |
|
248 |
+ margin: auto; |
|
249 |
+} |
|
240 | 250 |
|
241 | 251 |
/* box 공통 */ |
242 | 252 |
.row { |
... | ... | @@ -341,3 +351,4 @@ |
341 | 351 |
/* 컬러 */ |
342 | 352 |
.yellow{background: #f2db71;} |
343 | 353 |
.sky{background-color: #d1e4e3;} |
354 |
+ |
--- client/resources/css/main.css
+++ client/resources/css/main.css
... | ... | @@ -21,6 +21,15 @@ |
21 | 21 |
font-weight: 900; |
22 | 22 |
background-color: #18924e; |
23 | 23 |
} |
24 |
+/* 담당자배정 */ |
|
25 |
+.protectorlist input{width: 20rem;} |
|
26 |
+/* 위험기준관리 */ |
|
27 |
+.risk-table input{ |
|
28 |
+ width: 100%; |
|
29 |
+} |
|
30 |
+.risk-table select{ |
|
31 |
+ width: 100%; |
|
32 |
+} |
|
24 | 33 |
/* 문진표 */ |
25 | 34 |
.questionnaire-table th{display: block;} |
26 | 35 |
.questionnaire-table tr{padding: 1rem;} |
... | ... | @@ -649,7 +658,9 @@ |
649 | 658 |
} |
650 | 659 |
|
651 | 660 |
/* 검색창 */ |
652 |
- |
|
661 |
+.searchselect{width: 30%;} |
|
662 |
+.searchselect input{width: 20%;} |
|
663 |
+.searchselect label{width: 100%;} |
|
653 | 664 |
.mobile-area-wrap { |
654 | 665 |
display: none; |
655 | 666 |
} |
--- client/views/pages/App.jsx
+++ client/views/pages/App.jsx
... | ... | @@ -26,8 +26,8 @@ |
26 | 26 |
}; |
27 | 27 |
|
28 | 28 |
|
29 |
- const menuItems = GovernmentApp.menuItems; //AdminApp, GovernmentApp, AllApp, AgencyApp, GuardianApp |
|
30 |
- const AppRoute = GovernmentApp.AppRoute; |
|
29 |
+ const menuItems = AgencyApp.menuItems; //AdminApp, GovernmentApp, AllApp, AgencyApp, GuardianApp |
|
30 |
+ const AppRoute = AgencyApp.AppRoute; |
|
31 | 31 |
|
32 | 32 |
|
33 | 33 |
const { title } = menuItems.find( |
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
... | ... | @@ -17,6 +17,7 @@ |
17 | 17 |
import ConstructionIcon from '@mui/icons-material/Construction'; |
18 | 18 |
import EqualizerIcon from '@mui/icons-material/Equalizer'; |
19 | 19 |
import ApartmentIcon from '@mui/icons-material/Apartment'; |
20 |
+import LocalHospitalIcon from '@mui/icons-material/LocalHospital'; |
|
20 | 21 |
|
21 | 22 |
import Test from "./Test/Test.jsx"; |
22 | 23 |
import Main_government from "./main/Main_government.jsx"; |
... | ... | @@ -57,10 +58,11 @@ |
57 | 58 |
|
58 | 59 |
import MedicineCareSelect_government from "./healthcare/medicinecare/MedicineCareSelect_government.jsx"; |
59 | 60 |
import TemperatureManagementSelect_government from "./healthcare/temperature/TemperatureManagementSelect_government.jsx"; |
61 |
+import BloodSelect from "./healthcare/BloodSelect.jsx"; |
|
62 |
+import ECGSelect from "./healthcare/ECGSelect.jsx"; |
|
60 | 63 |
import Questionnaire_government from "./healthcare/Questionnaire_government.jsx"; |
61 | 64 |
import VisitSelect_government from "./visit/visit/VisitSelect_government.jsx"; |
62 | 65 |
import QandA_government from "./callcenter/QandA_government.jsx"; |
63 |
-import EquipmentManagementSelect_agency from "./equipment/EquipmentManagementSelect_agency.jsx"; |
|
64 | 66 |
|
65 | 67 |
const AllAppMenuItems = [ |
66 | 68 |
{ |
... | ... | @@ -223,7 +225,7 @@ |
223 | 225 |
title: "진료 관리", |
224 | 226 |
path: "/Questionnaire", |
225 | 227 |
icon: ( |
226 |
- <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
228 |
+ <LocalHospitalIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
227 | 229 |
), |
228 | 230 |
}, |
229 | 231 |
{ |
... | ... | @@ -579,17 +581,6 @@ |
579 | 581 |
], |
580 | 582 |
}, |
581 | 583 |
{ |
582 |
- title: "대상자 관리", |
|
583 |
- path: "/UserAuthoriySelect_admin", |
|
584 |
- icon: ( |
|
585 |
- <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
586 |
- ), |
|
587 |
- }, |
|
588 |
- { |
|
589 |
- title: "사용자 계정 승인", |
|
590 |
- path: "/UserSelectOk", |
|
591 |
- }, |
|
592 |
- { |
|
593 | 584 |
title: "건강 관리", |
594 | 585 |
prefix: "/Medicine", |
595 | 586 |
icon: ( |
... | ... | @@ -605,12 +596,28 @@ |
605 | 596 |
path: "/TemperatureManagementSelect", |
606 | 597 |
}, |
607 | 598 |
{ |
608 |
- title: "진료 관리", |
|
599 |
+ title: "방문 관리", |
|
600 |
+ path: "/VisitSelect", |
|
601 |
+ }, |
|
602 |
+ ] |
|
603 |
+ }, |
|
604 |
+ { |
|
605 |
+ title: "진료 관리", |
|
606 |
+ icon: ( |
|
607 |
+ <LocalHospitalIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
608 |
+ ), |
|
609 |
+ childrens:[ |
|
610 |
+ { |
|
611 |
+ title: "문진표 관리", |
|
609 | 612 |
path: "/Questionnaire", |
610 | 613 |
}, |
611 | 614 |
{ |
612 |
- title: "방문 관리", |
|
613 |
- path: "/VisitSelect", |
|
615 |
+ title: "심전도 관리", |
|
616 |
+ path: "/ECGSelect", |
|
617 |
+ }, |
|
618 |
+ { |
|
619 |
+ title: "혈압 관리", |
|
620 |
+ path: "/BloodSelect", |
|
614 | 621 |
}, |
615 | 622 |
] |
616 | 623 |
}, |
... | ... | @@ -625,7 +632,6 @@ |
625 | 632 |
}, |
626 | 633 |
{ |
627 | 634 |
title: "설정 관리", |
628 |
- prefix: "/Visit", |
|
629 | 635 |
icon: ( |
630 | 636 |
<SettingsIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
631 | 637 |
), |
... | ... | @@ -644,7 +650,8 @@ |
644 | 650 |
function GovernmentAppRoute() { |
645 | 651 |
return ( |
646 | 652 |
<Routes> |
647 |
- <Route path="/Test" element={<Test />}></Route> |
|
653 |
+ <Route path="/ECGSelect" element={<ECGSelect />}></Route> |
|
654 |
+ <Route path="/BloodSelect" element={<BloodSelect />}></Route> |
|
648 | 655 |
<Route path="/Main_government" element={<Main_government />}></Route> |
649 | 656 |
<Route path="/AgencySelect" element={<AgencySelect />}></Route> |
650 | 657 |
<Route path="/UserSelectOk" element={<UserSelectOk />}></Route> |
... | ... | @@ -677,6 +684,13 @@ |
677 | 684 |
></Route> |
678 | 685 |
<Route path="/RiskSet" element={<RiskSet />}></Route> |
679 | 686 |
<Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> |
687 |
+ <Route path="/QandASelect" element={<QandASelect />}></Route> |
|
688 |
+ <Route path="/QandAConfirm" element={<QandAConfirm />}></Route> |
|
689 |
+ <Route path="/QandAInsert" element={<QandAInsert />}></Route> |
|
690 |
+ <Route path="/Questionnaire" element={<Questionnaire />}></Route> |
|
691 |
+ <Route path="/ProtectorSelect" element={<ProtectorSelect />}></Route> |
|
692 |
+ <Route path="/SeniorInsert" element={<SeniorInsert />}></Route> |
|
693 |
+ <Route path="/AgencyInsert" element={<AgencyInsert />}></Route> |
|
680 | 694 |
</Routes> |
681 | 695 |
); |
682 | 696 |
} |
... | ... | @@ -687,14 +701,14 @@ |
687 | 701 |
icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
688 | 702 |
}, |
689 | 703 |
{ |
690 |
- title: "시니어 관리", |
|
704 |
+ title: "대상자 관리", |
|
691 | 705 |
path: "/UserAuthoriySelect_agency", |
692 | 706 |
icon: ( |
693 | 707 |
<PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
694 | 708 |
), |
695 | 709 |
}, |
696 | 710 |
{ |
697 |
- title: "시니어 건강 관리", |
|
711 |
+ title: "건강 관리", |
|
698 | 712 |
icon: ( |
699 | 713 |
<Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
700 | 714 |
), |
... | ... | @@ -708,26 +722,49 @@ |
708 | 722 |
path: "/TemperatureManagementSelect", |
709 | 723 |
}, |
710 | 724 |
{ |
711 |
- title: "진료 관리", |
|
712 |
- path: "/Questionnaire", |
|
713 |
- }, |
|
714 |
- { |
|
715 | 725 |
title: "방문 관리", |
716 | 726 |
path: "/VisitSelect", |
717 | 727 |
}, |
718 | 728 |
] |
719 | 729 |
}, |
720 | 730 |
{ |
721 |
- title: "장비 대여 관리", |
|
722 |
- path: "/QandASelect", |
|
731 |
+ title: "진료 관리", |
|
723 | 732 |
icon: ( |
724 |
- <ConstructionIcon |
|
725 |
- sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
726 |
- /> |
|
733 |
+ <LocalHospitalIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
727 | 734 |
), |
735 |
+ childrens:[ |
|
736 |
+ { |
|
737 |
+ title: "문진표 관리", |
|
738 |
+ path: "/Questionnaire", |
|
739 |
+ }, |
|
740 |
+ { |
|
741 |
+ title: "심전도 관리", |
|
742 |
+ path: "/ECGSelect", |
|
743 |
+ }, |
|
744 |
+ { |
|
745 |
+ title: "혈압 관리", |
|
746 |
+ path: "/BloodSelect", |
|
747 |
+ }, |
|
748 |
+ ] |
|
728 | 749 |
}, |
729 | 750 |
{ |
730 |
- title: "문의게시판", |
|
751 |
+ title: "장비 관리", |
|
752 |
+ icon: ( |
|
753 |
+ <ConstructionIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
754 |
+ ), |
|
755 |
+ childrens:[ |
|
756 |
+ { |
|
757 |
+ title: "장비 대여 관리", |
|
758 |
+ path: "/EquipmentManagementSelect", |
|
759 |
+ }, |
|
760 |
+ { |
|
761 |
+ title: "문의게시판", |
|
762 |
+ path: "/QandASelect", |
|
763 |
+ }, |
|
764 |
+ ] |
|
765 |
+ }, |
|
766 |
+ { |
|
767 |
+ title: "Q&A", |
|
731 | 768 |
path: "/QandASelect", |
732 | 769 |
icon: ( |
733 | 770 |
<SpeakerPhoneIcon |
--- client/views/pages/callcenter/QandAConfirm.jsx
+++ client/views/pages/callcenter/QandAConfirm.jsx
... | ... | @@ -10,7 +10,7 @@ |
10 | 10 |
<main> |
11 | 11 |
<div className="content-wrap row"> |
12 | 12 |
<ContentTitle contentTitle={"문의글 작성"} /> |
13 |
- <SubTitle explanation={"작성자 정보"} /> |
|
13 |
+ <SubTitle explanation={"담당자 정보"} /> |
|
14 | 14 |
<table className="margin-bottom2 senior-insert"> |
15 | 15 |
<tr> |
16 | 16 |
<th>작성자</th> |
... | ... | @@ -18,7 +18,6 @@ |
18 | 18 |
홍길동 |
19 | 19 |
</td> |
20 | 20 |
</tr> |
21 |
- |
|
22 | 21 |
<tr> |
23 | 22 |
<th>소속 기관</th> |
24 | 23 |
<td colSpan={3}> |
... | ... | @@ -37,23 +36,14 @@ |
37 | 36 |
</td> |
38 | 37 |
</tr> |
39 | 38 |
<tr> |
40 |
- <th>내용</th> |
|
41 |
- <td colSpan={3}> |
|
42 |
- 시니어 인원 증가로 인한 장비 추가 요청 |
|
43 |
- </td> |
|
44 |
- </tr> |
|
45 |
- </table> |
|
46 |
- <p>대상자 정보</p> |
|
47 |
- <table className="margin-bottom2 senior-insert"> |
|
48 |
- <tr> |
|
49 |
- <th>대상자 선택</th> |
|
50 |
- <td colSpan={3} className="flex width"> |
|
51 |
- <select> |
|
52 |
- <option value="">대상자1</option> |
|
53 |
- <option value="">대상자2</option> |
|
54 |
- </select> |
|
39 |
+ <th>내용</th> |
|
40 |
+ <td colSpan={3}> |
|
41 |
+ 시니어 인원 증가로 인한 장비 추가 요청 |
|
55 | 42 |
</td> |
56 | 43 |
</tr> |
44 |
+ </table> |
|
45 |
+ <SubTitle explanation={"대상자 정보"} /> |
|
46 |
+ <table className="margin-bottom2 senior-insert"> |
|
57 | 47 |
<tr> |
58 | 48 |
<th>대상자 이름</th> |
59 | 49 |
<td> |
... | ... | @@ -74,10 +64,6 @@ |
74 | 64 |
경상북도 군위군 군위읍 |
75 | 65 |
</td> |
76 | 66 |
</tr> |
77 |
- |
|
78 |
- </table> |
|
79 |
- <SubTitle explanation={"장비 정보"} /> |
|
80 |
- <table className="margin-bottom2 senior-insert"> |
|
81 | 67 |
<tr> |
82 | 68 |
<th>장비명</th> |
83 | 69 |
<td> |
... | ... | @@ -89,12 +75,26 @@ |
89 | 75 |
</td> |
90 | 76 |
</tr> |
91 | 77 |
</table> |
78 |
+ <div className="flex-start"> |
|
79 |
+ <SubTitle explanation={"처리여부"} /> |
|
80 |
+ <select> |
|
81 |
+ <option value="">처리중</option> |
|
82 |
+ <option value="">처리완료</option> |
|
83 |
+ </select> |
|
84 |
+ </div> |
|
92 | 85 |
<div className="btn-wrap flex-center"> |
93 | 86 |
<Button |
94 | 87 |
className={"btn-large gray-btn"} |
95 | 88 |
btnName={"이전"} |
96 | 89 |
onClick={() => { |
97 |
- navigate("/QandA_admin"); |
|
90 |
+ navigate("/QandASelect"); |
|
91 |
+ }} |
|
92 |
+ /> |
|
93 |
+ <Button |
|
94 |
+ className={"btn-large gray-btn"} |
|
95 |
+ btnName={"저장"} |
|
96 |
+ onClick={() => { |
|
97 |
+ navigate("/QandASelect"); |
|
98 | 98 |
}} |
99 | 99 |
/> |
100 | 100 |
</div> |
--- client/views/pages/callcenter/QandAInsert.jsx
+++ client/views/pages/callcenter/QandAInsert.jsx
... | ... | @@ -81,10 +81,6 @@ |
81 | 81 |
<input type="text" placeholder="자동입력부분" /> |
82 | 82 |
</td> |
83 | 83 |
</tr> |
84 |
- |
|
85 |
- </table> |
|
86 |
- <SubTitle explanation={"장비 정보(시니어가 사용중인 장비가 자동으로 입력됩니다.)"} /> |
|
87 |
- <table className="margin-bottom2 senior-insert"> |
|
88 | 84 |
<tr> |
89 | 85 |
<th>장비명</th> |
90 | 86 |
<td> |
... | ... | @@ -96,19 +92,20 @@ |
96 | 92 |
</td> |
97 | 93 |
</tr> |
98 | 94 |
</table> |
95 |
+ |
|
99 | 96 |
<div className="btn-wrap flex-center"> |
100 | 97 |
<Button |
101 | 98 |
className={"btn-large gray-btn"} |
102 | 99 |
btnName={"이전"} |
103 | 100 |
onClick={() => { |
104 |
- navigate("/EquipmentManagementSelectReturn"); |
|
101 |
+ navigate("/QandASelect"); |
|
105 | 102 |
}} |
106 | 103 |
/> |
107 | 104 |
<Button |
108 | 105 |
className={"btn-large green-btn"} |
109 | 106 |
btnName={"등록"} |
110 | 107 |
onClick={() => { |
111 |
- navigate("/EquipmentManagementSelectReturn"); |
|
108 |
+ navigate("/QandASelect"); |
|
112 | 109 |
}} |
113 | 110 |
/> |
114 | 111 |
</div> |
--- client/views/pages/callcenter/QandASelect.jsx
+++ client/views/pages/callcenter/QandASelect.jsx
... | ... | @@ -4,6 +4,8 @@ |
4 | 4 |
import Modal from "../../component/Modal.jsx"; |
5 | 5 |
import { useNavigate } from "react-router"; |
6 | 6 |
import ContentTitle from "../../component/ContentTitle.jsx"; |
7 |
+import RestoreFromTrashIcon from '@mui/icons-material/RestoreFromTrash'; |
|
8 |
+ |
|
7 | 9 |
|
8 | 10 |
export default function QandASelect() { |
9 | 11 |
const navigate = useNavigate(); |
... | ... | @@ -16,8 +18,9 @@ |
16 | 18 |
"기관명", |
17 | 19 |
"요청일자", |
18 | 20 |
"구분", |
19 |
- "내용상세보기", |
|
20 | 21 |
"처리여부", |
22 |
+ "내용상세보기", |
|
23 |
+ "삭제" |
|
21 | 24 |
]; |
22 | 25 |
const key = [ |
23 | 26 |
"No", |
... | ... | @@ -27,8 +30,9 @@ |
27 | 30 |
"name", |
28 | 31 |
"date", |
29 | 32 |
"category", |
33 |
+ "finish", |
|
30 | 34 |
"show", |
31 |
- "finish" |
|
35 |
+ "delete" |
|
32 | 36 |
]; |
33 | 37 |
const content = [ |
34 | 38 |
{ |
... | ... | @@ -39,6 +43,7 @@ |
39 | 43 |
name: "A복지관", |
40 | 44 |
date: "2023-01-27", |
41 | 45 |
category: "교환", |
46 |
+ finish:"처리중", |
|
42 | 47 |
show: ( |
43 | 48 |
<Button |
44 | 49 |
className={"btn-small gray-btn"} |
... | ... | @@ -48,11 +53,8 @@ |
48 | 53 |
}} |
49 | 54 |
/> |
50 | 55 |
), |
51 |
- finish: ( |
|
52 |
- <select> |
|
53 |
- <option value="">처리중</option> |
|
54 |
- <option value="">처리완료</option> |
|
55 |
- </select> |
|
56 |
+ delete: ( |
|
57 |
+ <RestoreFromTrashIcon sx={{ width: "30px", height: "30px", }} /> |
|
56 | 58 |
), |
57 | 59 |
}, |
58 | 60 |
|
... | ... | @@ -70,7 +72,6 @@ |
70 | 72 |
navigate("/QandAInsert"); |
71 | 73 |
}} |
72 | 74 |
/> |
73 |
- <Button className={"btn-small green-btn "} btnName={"삭제"} /> |
|
74 | 75 |
</div> |
75 | 76 |
<Table className="equipment-detail" head={thead} contents={content} contentKey={key} /> |
76 | 77 |
</div> |
+++ client/views/pages/healthcare/BloodSelect.jsx
... | ... | @@ -0,0 +1,145 @@ |
1 | +import React from "react"; | |
2 | +import { useNavigate } from "react-router"; | |
3 | +import DetailSearch from "../../component/DetailSearch.jsx"; | |
4 | +import Table from "../../component/Table.jsx"; | |
5 | +import ContentTitle from "../../component/ContentTitle.jsx"; | |
6 | +import SubTitle from "../../component/SubTitle.jsx"; | |
7 | +import Button from "../../component/Button.jsx"; | |
8 | +import Modal from "../../component/Modal.jsx"; | |
9 | + | |
10 | +export default function Questionnaire() { | |
11 | + const navigate = useNavigate(); | |
12 | + const [modalOpen, setModalOpen] = React.useState(false); | |
13 | + const openModal = () => { | |
14 | + setModalOpen(true); | |
15 | + }; | |
16 | + const closeModal = () => { | |
17 | + setModalOpen(false); | |
18 | + }; | |
19 | + | |
20 | + const [modalOpen2, setModalOpen2] = React.useState(false); | |
21 | + const openModal2 = () => { | |
22 | + setModalOpen2(true); | |
23 | + }; | |
24 | + const closeModal2 = () => { | |
25 | + setModalOpen2(false); | |
26 | + }; | |
27 | + //게시판 | |
28 | + const thead = ["No", "이름","대상자등록번호", "생년월일", "연락처", "주소", "최근등록일", "최고혈압", "최저혈압", "맥박수","혈압측정",]; | |
29 | + const key = ["No", "name","number", "birth", "phone", "address","recent", "high","low","pulse", "average", ]; | |
30 | + const content = [ | |
31 | + { | |
32 | + No: 1, | |
33 | + name: "김복남", | |
34 | + number: "00000001", | |
35 | + birth: "1948.11.15", | |
36 | + phone: "010-1234-5678", | |
37 | + address: "경상북도 군위군 삼국유사면", | |
38 | + recent:"2020-01-05", | |
39 | + high:"130", | |
40 | + low:"90", | |
41 | + pulse:"60", | |
42 | + average: ( | |
43 | + <Button | |
44 | + className={"btn-small gray-btn"} | |
45 | + btnName={"등록"} | |
46 | + onClick={openModal} | |
47 | + /> | |
48 | + ), | |
49 | + }, | |
50 | + ]; | |
51 | + | |
52 | + const thead1 = [ | |
53 | + "No", | |
54 | + "측정 일자", | |
55 | + "최고 혈압", | |
56 | + "최저 혈압", | |
57 | + "맥박수", | |
58 | + "작성자", | |
59 | + ]; | |
60 | + const key1 = ["No", "date", "high","low", "pulse", "writer"]; | |
61 | + const content1 = [ | |
62 | + { | |
63 | + No: 1, | |
64 | + date: "2023-01-25", | |
65 | + high: "130", | |
66 | + low: "90", | |
67 | + pulse: "60", | |
68 | + writer: "정간호", | |
69 | + }, | |
70 | + ]; | |
71 | + | |
72 | + return ( | |
73 | + <main> | |
74 | + <Modal open={modalOpen} close={closeModal} header="혈압측정 등록"> | |
75 | + <div className="board-wrap"> | |
76 | + <div> | |
77 | + <table className="margin-bottom2"> | |
78 | + <tr> | |
79 | + <th>대상자명</th> | |
80 | + <td className="flex-start"> | |
81 | + <input type="text" placeholder="자동입력"/> | |
82 | + </td> | |
83 | + </tr> | |
84 | + <tr> | |
85 | + <th>측정일자</th> | |
86 | + <td className="flex-start"> | |
87 | + <input type="text" placeholder="자동입력"/> | |
88 | + </td> | |
89 | + </tr> | |
90 | + <tr> | |
91 | + <th>최고혈압</th> | |
92 | + <td className="flex-start"> | |
93 | + <input type="text" /> | |
94 | + </td> | |
95 | + </tr> | |
96 | + <tr> | |
97 | + <th>최저혈압</th> | |
98 | + <td className="flex-start"> | |
99 | + <input type="text" /> | |
100 | + </td> | |
101 | + </tr> | |
102 | + <tr> | |
103 | + <th>맥박수</th> | |
104 | + <td className="flex-start"> | |
105 | + <input type="text" /> | |
106 | + </td> | |
107 | + </tr> | |
108 | + | |
109 | + </table> | |
110 | + <div className="btn-wrap flex-center margin-bottom5"> | |
111 | + <Button | |
112 | + className={"btn-small green-btn"} | |
113 | + btnName={"추가하기"} | |
114 | + onClick={() => { | |
115 | + // navigate("/SeniorInsert"); | |
116 | + }} | |
117 | + /> | |
118 | + </div> | |
119 | + </div> | |
120 | + <Table | |
121 | + className={"caregiver-user "} | |
122 | + head={thead1} | |
123 | + contents={content1} | |
124 | + contentKey={key1} | |
125 | + /> | |
126 | + </div> | |
127 | + </Modal> | |
128 | + | |
129 | + <div className="content-wrap"> | |
130 | + <ContentTitle contentTitle={"혈압 관리"} /> | |
131 | + <div> | |
132 | + <DetailSearch /> | |
133 | + <div className="board-wrap"> | |
134 | + <Table | |
135 | + className={"medicine-table"} | |
136 | + head={thead} | |
137 | + contents={content} | |
138 | + contentKey={key} | |
139 | + /> | |
140 | + </div> | |
141 | + </div> | |
142 | + </div> | |
143 | + </main> | |
144 | + ); | |
145 | +} |
+++ client/views/pages/healthcare/ECGSelect.jsx
... | ... | @@ -0,0 +1,180 @@ |
1 | +import React from "react"; | |
2 | +import { useNavigate } from "react-router"; | |
3 | +import DetailSearch from "../../component/DetailSearch.jsx"; | |
4 | +import Table from "../../component/Table.jsx"; | |
5 | +import ContentTitle from "../../component/ContentTitle.jsx"; | |
6 | +import SubTitle from "../../component/SubTitle.jsx"; | |
7 | +import Button from "../../component/Button.jsx"; | |
8 | +import Modal from "../../component/Modal.jsx"; | |
9 | + | |
10 | +export default function ECGSelect() { | |
11 | + const navigate = useNavigate(); | |
12 | + const [modalOpen, setModalOpen] = React.useState(false); | |
13 | + const openModal = () => { | |
14 | + setModalOpen(true); | |
15 | + }; | |
16 | + const closeModal = () => { | |
17 | + setModalOpen(false); | |
18 | + }; | |
19 | + | |
20 | + const [modalOpen2, setModalOpen2] = React.useState(false); | |
21 | + const openModal2 = () => { | |
22 | + setModalOpen2(true); | |
23 | + }; | |
24 | + const closeModal2 = () => { | |
25 | + setModalOpen2(false); | |
26 | + }; | |
27 | + //게시판 | |
28 | + const thead = ["No", "이름","대상자등록번호", "생년월일", "연락처", "주소", "심전도"]; | |
29 | + const key = ["No", "name","number", "birth", "phone", "address", "ECG"]; | |
30 | + const content = [ | |
31 | + { | |
32 | + No: 1, | |
33 | + name: "김복남", | |
34 | + number: "00000001", | |
35 | + birth: "1948.11.15", | |
36 | + phone: "010-1234-5678", | |
37 | + address: "경상북도 군위군 삼국유사면", | |
38 | + ECG: ( | |
39 | + <Button | |
40 | + className={"btn-small gray-btn"} | |
41 | + btnName={"등록"} | |
42 | + onClick={openModal} | |
43 | + /> | |
44 | + ), | |
45 | + }, | |
46 | + ]; | |
47 | + | |
48 | + const thead1 = [ | |
49 | + "No", | |
50 | + "측정일자", | |
51 | + "측정파일", | |
52 | + "등록자", | |
53 | + ]; | |
54 | + const key1 = ["No", "date", "file","writer",]; | |
55 | + const content1 = [ | |
56 | + { | |
57 | + No: 1, | |
58 | + date: "2023-01-25", | |
59 | + file: ( <a href="" download="테스트">다운로드</a>), | |
60 | + writer: "정간호", | |
61 | + }, | |
62 | + ]; | |
63 | + | |
64 | + return ( | |
65 | + <main> | |
66 | + <Modal open={modalOpen} close={closeModal} header="혈압측정 등록"> | |
67 | + <div className="board-wrap"> | |
68 | + <div> | |
69 | + <table className="margin-bottom2"> | |
70 | + <tr> | |
71 | + <th>대상자명</th> | |
72 | + <td className="flex-start"> | |
73 | + <input type="text" placeholder="자동입력"/> | |
74 | + </td> | |
75 | + </tr> | |
76 | + <tr> | |
77 | + <th>측정일자</th> | |
78 | + <td className="flex-start"> | |
79 | + <input type="text" placeholder="자동입력"/> | |
80 | + </td> | |
81 | + </tr> | |
82 | + <tr> | |
83 | + <th>측정파일</th> | |
84 | + <td className="flex-start"> | |
85 | + <input type="file"></input> | |
86 | + </td> | |
87 | + </tr> | |
88 | + <tr> | |
89 | + <th>등록자</th> | |
90 | + <td className="flex-start"> | |
91 | + <input type="text" placeholder="자동입력"/> | |
92 | + </td> | |
93 | + </tr> | |
94 | + | |
95 | + | |
96 | + </table> | |
97 | + <div className="btn-wrap flex-center margin-bottom5"> | |
98 | + <Button | |
99 | + className={"btn-small green-btn"} | |
100 | + btnName={"추가하기"} | |
101 | + onClick={() => { | |
102 | + // navigate("/SeniorInsert"); | |
103 | + }} | |
104 | + /> | |
105 | + </div> | |
106 | + </div> | |
107 | + <Table | |
108 | + className={"caregiver-user "} | |
109 | + head={thead1} | |
110 | + contents={content1} | |
111 | + contentKey={key1} | |
112 | + /> | |
113 | + </div> | |
114 | + </Modal> | |
115 | + | |
116 | + <Modal open={modalOpen2} close={closeModal2} header="진료 기록"> | |
117 | + <div className="board-wrap"> | |
118 | + <table className="margin-bottom2 senior-insert"> | |
119 | + <tr> | |
120 | + <th>진료일자</th> | |
121 | + <td> | |
122 | + <input type="text" placeholder="자동입력"/> | |
123 | + </td> | |
124 | + </tr> | |
125 | + <tr> | |
126 | + <th>진료 사유</th> | |
127 | + <td className="flex-start gender"> | |
128 | + <input type="text" /> | |
129 | + </td> | |
130 | + </tr> | |
131 | + <tr> | |
132 | + <th>진료 내용</th> | |
133 | + <td colSpan={3}> | |
134 | + <input type="text" /> | |
135 | + </td> | |
136 | + </tr> | |
137 | + <tr> | |
138 | + <th>작성자</th> | |
139 | + <td colSpan={3}> | |
140 | + <input type="text" placeholder="자동입력"/> | |
141 | + </td> | |
142 | + </tr> | |
143 | + </table> | |
144 | + <div className="btn-wrap flex-center margin-bottom5"> | |
145 | + <Button | |
146 | + className={"btn-small green-btn"} | |
147 | + btnName={"추가하기"} | |
148 | + onClick={() => { | |
149 | + // navigate("/SeniorInsert"); | |
150 | + }} | |
151 | + /> | |
152 | + </div> | |
153 | + <div> | |
154 | + <Table | |
155 | + className={"caregiver-user"} | |
156 | + head={thead1} | |
157 | + contents={content1} | |
158 | + contentKey={key1} | |
159 | + /> | |
160 | + </div> | |
161 | + </div> | |
162 | + </Modal> | |
163 | + | |
164 | + <div className="content-wrap"> | |
165 | + <ContentTitle contentTitle={"문진표 조회"} /> | |
166 | + <div> | |
167 | + <DetailSearch /> | |
168 | + <div className="board-wrap"> | |
169 | + <Table | |
170 | + className={"medicine-table"} | |
171 | + head={thead} | |
172 | + contents={content} | |
173 | + contentKey={key} | |
174 | + /> | |
175 | + </div> | |
176 | + </div> | |
177 | + </div> | |
178 | + </main> | |
179 | + ); | |
180 | +} |
--- client/views/pages/healthcare/Questionnaire.jsx
+++ client/views/pages/healthcare/Questionnaire.jsx
... | ... | @@ -79,19 +79,15 @@ |
79 | 79 |
"진료 일자", |
80 | 80 |
"진료 사유", |
81 | 81 |
"진료 내용", |
82 |
- "심전도 데이터", |
|
83 |
- "혈압 데이터", |
|
84 | 82 |
"기록 작성자 명", |
85 | 83 |
]; |
86 |
- const key1 = ["No", "date", "reason","content", "ecg", "blood", "name"]; |
|
84 |
+ const key1 = ["No", "date", "reason","content", "name"]; |
|
87 | 85 |
const content1 = [ |
88 | 86 |
{ |
89 | 87 |
No: 1, |
90 | 88 |
date: "2023-01-25", |
91 | 89 |
reason: "정기 내원", |
92 | 90 |
content: "건강검진 진행, 이상 없음", |
93 |
- ecg: "data", |
|
94 |
- blood: "data", |
|
95 | 91 |
name: "정간호", |
96 | 92 |
}, |
97 | 93 |
]; |
... | ... | @@ -173,15 +169,40 @@ |
173 | 169 |
|
174 | 170 |
<Modal open={modalOpen2} close={closeModal2} header="진료 기록"> |
175 | 171 |
<div className="board-wrap"> |
176 |
- <div className="btn-wrap flex-end margin-bottom"> |
|
172 |
+ <table className="margin-bottom2 senior-insert"> |
|
173 |
+ <tr> |
|
174 |
+ <th>진료일자</th> |
|
175 |
+ <td> |
|
176 |
+ <input type="text" placeholder="자동입력"/> |
|
177 |
+ </td> |
|
178 |
+ </tr> |
|
179 |
+ <tr> |
|
180 |
+ <th>진료 사유</th> |
|
181 |
+ <td className="flex-start gender"> |
|
182 |
+ <input type="text" /> |
|
183 |
+ </td> |
|
184 |
+ </tr> |
|
185 |
+ <tr> |
|
186 |
+ <th>진료 내용</th> |
|
187 |
+ <td colSpan={3}> |
|
188 |
+ <input type="text" /> |
|
189 |
+ </td> |
|
190 |
+ </tr> |
|
191 |
+ <tr> |
|
192 |
+ <th>작성자</th> |
|
193 |
+ <td colSpan={3}> |
|
194 |
+ <input type="text" placeholder="자동입력"/> |
|
195 |
+ </td> |
|
196 |
+ </tr> |
|
197 |
+ </table> |
|
198 |
+ <div className="btn-wrap flex-center margin-bottom5"> |
|
177 | 199 |
<Button |
178 | 200 |
className={"btn-small green-btn"} |
179 |
- btnName={"등록"} |
|
201 |
+ btnName={"추가하기"} |
|
180 | 202 |
onClick={() => { |
181 | 203 |
// navigate("/SeniorInsert"); |
182 | 204 |
}} |
183 | 205 |
/> |
184 |
- <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
185 | 206 |
</div> |
186 | 207 |
<div> |
187 | 208 |
<Table |
... | ... | @@ -189,13 +210,6 @@ |
189 | 210 |
head={thead1} |
190 | 211 |
contents={content1} |
191 | 212 |
contentKey={key1} |
192 |
- /> |
|
193 |
- </div> |
|
194 |
- <div> |
|
195 |
- <Button |
|
196 |
- className={"btn-100 green-btn"} |
|
197 |
- btnName={"닫기"} |
|
198 |
- onClick={closeModal2} |
|
199 | 213 |
/> |
200 | 214 |
</div> |
201 | 215 |
</div> |
... | ... | @@ -206,6 +220,15 @@ |
206 | 220 |
<div> |
207 | 221 |
<DetailSearch /> |
208 | 222 |
<div className="board-wrap"> |
223 |
+ <div className="flex"> |
|
224 |
+ <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom" /> |
|
225 |
+ <div className="flex searchselect"> |
|
226 |
+ <input type="radio" /> |
|
227 |
+ <label htmlFor="">나의 대상자 보기</label> |
|
228 |
+ <input type="radio" /> |
|
229 |
+ <label htmlFor="">전체 대상자 보기</label> |
|
230 |
+ </div> |
|
231 |
+ </div> |
|
209 | 232 |
<Table |
210 | 233 |
className={"medicine-table"} |
211 | 234 |
head={thead} |
--- client/views/pages/healthcare/medicinecare/MedicineCareSelect.jsx
+++ client/views/pages/healthcare/medicinecare/MedicineCareSelect.jsx
... | ... | @@ -9,8 +9,8 @@ |
9 | 9 |
const navigate = useNavigate(); |
10 | 10 |
|
11 | 11 |
//게시판 |
12 |
- const thead = ["No", "이름","대상자등록번호", "생년월일", "연락처", "주소", "최근 복약률",]; |
|
13 |
- const key = ["No", "name","number", "birth", "phone", "address", "average"]; |
|
12 |
+ const thead = ["No", "이름", "대상자등록번호", "생년월일", "연락처", "주소", "최근 복약률",]; |
|
13 |
+ const key = ["No", "name", "number", "birth", "phone", "address", "average"]; |
|
14 | 14 |
const content = [ |
15 | 15 |
{ |
16 | 16 |
No: 1, |
... | ... | @@ -39,13 +39,21 @@ |
39 | 39 |
return ( |
40 | 40 |
<main> |
41 | 41 |
<div className="content-wrap"> |
42 |
- <ContentTitle contentTitle={"복약 조회"} /> |
|
42 |
+ <ContentTitle contentTitle={"복약 조회"} /> |
|
43 | 43 |
<div> |
44 | 44 |
<DetailSearch /> |
45 | 45 |
<div className="board-wrap"> |
46 |
- <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom"/> |
|
46 |
+ <div className="flex"> |
|
47 |
+ <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom" /> |
|
48 |
+ <div className="flex searchselect"> |
|
49 |
+ <input type="radio" /> |
|
50 |
+ <label htmlFor="">나의 대상자 보기</label> |
|
51 |
+ <input type="radio" /> |
|
52 |
+ <label htmlFor="">전체 대상자 보기</label> |
|
53 |
+ </div> |
|
54 |
+ </div> |
|
47 | 55 |
<Table |
48 |
- className={"medicine-table"} |
|
56 |
+ className={"medicine-table"} |
|
49 | 57 |
head={thead} |
50 | 58 |
contents={content} |
51 | 59 |
contentKey={key} |
--- client/views/pages/healthcare/temperature/TemperatureManagementSelect.jsx
+++ client/views/pages/healthcare/temperature/TemperatureManagementSelect.jsx
... | ... | @@ -30,7 +30,15 @@ |
30 | 30 |
<ContentTitle contentTitle={"댁내 온도 조회"} /> |
31 | 31 |
<DetailSearch /> |
32 | 32 |
<div className="board-wrap"> |
33 |
- <SubTitle className="margin-bottom" explanation={"대상자 클릭 시 최근 일주일 댁내 온도를 확인할 수 있습니다."}/> |
|
33 |
+ <div className="flex"> |
|
34 |
+ <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom" /> |
|
35 |
+ <div className="flex searchselect"> |
|
36 |
+ <input type="radio" /> |
|
37 |
+ <label htmlFor="">나의 대상자 보기</label> |
|
38 |
+ <input type="radio" /> |
|
39 |
+ <label htmlFor="">전체 대상자 보기</label> |
|
40 |
+ </div> |
|
41 |
+ </div> |
|
34 | 42 |
<Table |
35 | 43 |
className={"temperature-table"} |
36 | 44 |
head={thead} |
--- client/views/pages/setting/RiskSet.jsx
+++ client/views/pages/setting/RiskSet.jsx
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 |
import Modal from "../../component/Modal.jsx"; |
7 | 7 |
import { useNavigate } from "react-router"; |
8 | 8 |
|
9 |
-export default function EquipmentManagementSelect() { |
|
9 |
+export default function RiskSet() { |
|
10 | 10 |
const navigate = useNavigate(); |
11 | 11 |
const thead1 = [ |
12 | 12 |
"", |
... | ... | @@ -22,54 +22,18 @@ |
22 | 22 |
"text1", |
23 | 23 |
"text4", |
24 | 24 |
"temp", |
25 |
- "text2", |
|
26 | 25 |
"text3",]; |
27 | 26 |
const content1 = [ |
28 | 27 |
{ |
29 |
- text: "댁내온도가 최근", |
|
30 |
- date: ( |
|
31 |
- <select style={{ |
|
32 |
- width: "100%" |
|
33 |
- }}> |
|
34 |
- <option value="">1일</option> |
|
35 |
- <option value="">3일</option> |
|
36 |
- <option value="">일주일</option> |
|
37 |
- <option value="">한달</option> |
|
38 |
- </select> |
|
39 |
- ), |
|
40 |
- text1: "평균 온도가", |
|
41 |
- text4: ( |
|
42 |
- <select style={{ |
|
43 |
- width: "100%" |
|
44 |
- }}> |
|
45 |
- <option value="">영상</option> |
|
46 |
- <option value="">영하</option> |
|
47 |
- </select> |
|
28 |
+ text: "최근 평균 온도가", |
|
29 |
+ text4: ( |
|
30 |
+ <input type="number" /> |
|
48 | 31 |
), |
49 | 32 |
temp: ( |
50 |
- <select style={{ |
|
51 |
- width: "100%" |
|
52 |
- }}> |
|
53 |
- <option value="">5℃</option> |
|
54 |
- <option value="">10℃</option> |
|
55 |
- <option value="">15℃</option> |
|
56 |
- <option value="">20℃</option> |
|
57 |
- <option value="">25℃</option> |
|
58 |
- <option value="">30℃</option> |
|
59 |
- <option value="">35℃</option> |
|
60 |
- <option value="">40℃</option> |
|
61 |
- <option value="">45℃</option> |
|
62 |
- <option value="">50℃</option> |
|
63 |
- <option value="">55℃</option> |
|
64 |
- </select> |
|
65 |
- ), |
|
66 |
- text2: ( |
|
67 |
- <select style={{ |
|
68 |
- width: "100%" |
|
69 |
- }}> |
|
70 |
- <option value="">이하</option> |
|
71 |
- <option value="">이상</option> |
|
72 |
- </select> |
|
33 |
+ <select> |
|
34 |
+ <option value="">이상</option> |
|
35 |
+ <option value="">이하</option> |
|
36 |
+ </select> |
|
73 | 37 |
), |
74 | 38 |
text3: "일 경우 위험알림으로 지정합니다.", |
75 | 39 |
}, |
... | ... | @@ -78,45 +42,21 @@ |
78 | 42 |
"", |
79 | 43 |
"", |
80 | 44 |
"", |
81 |
- "", |
|
82 | 45 |
]; |
83 | 46 |
const key2 = [ |
84 | 47 |
"text", |
85 | 48 |
"date", |
86 |
- "text1", |
|
87 | 49 |
"text2",]; |
88 | 50 |
const content2 = [ |
89 | 51 |
{ |
90 |
- text: "미복약 횟수가 최근", |
|
91 |
- date: ( |
|
92 |
- <select style={{ |
|
93 |
- width: "100%" |
|
94 |
- }}> |
|
95 |
- <option value="">1일</option> |
|
96 |
- <option value="">3일</option> |
|
97 |
- <option value="">일주일</option> |
|
98 |
- <option value="">한달</option> |
|
99 |
- </select> |
|
52 |
+ text: "미복약 횟수가 누적", |
|
53 |
+ date:( |
|
54 |
+ <input type="number" /> |
|
100 | 55 |
), |
101 |
- text1: ( |
|
102 |
- <select style={{ |
|
103 |
- width: "100%" |
|
104 |
- }}> |
|
105 |
- <option value="">3회</option> |
|
106 |
- <option value="">6회</option> |
|
107 |
- <option value="">9회</option> |
|
108 |
- <option value="">12회</option> |
|
109 |
- <option value="">15회</option> |
|
110 |
- <option value="">21회 이상</option> |
|
111 |
- </select> |
|
112 |
- ), |
|
113 |
- text2: "일 경우 위험알림으로 지정합니다.", |
|
56 |
+ text2: "회 이상일 경우 위험알림으로 지정합니다.", |
|
114 | 57 |
}, |
115 | 58 |
]; |
116 | 59 |
const thead3 = [ |
117 |
- "", |
|
118 |
- "", |
|
119 |
- "", |
|
120 | 60 |
"", |
121 | 61 |
"", |
122 | 62 |
"", |
... | ... | @@ -124,36 +64,14 @@ |
124 | 64 |
const key3 = [ |
125 | 65 |
"text", |
126 | 66 |
"date", |
127 |
- "text1", |
|
128 |
- "text4", |
|
129 |
- "temp", |
|
130 |
- "text2", |
|
131 |
- "text3",]; |
|
67 |
+ "text2",]; |
|
132 | 68 |
const content3 = [ |
133 | 69 |
{ |
134 | 70 |
text: "배터리 잔량이 최근", |
135 | 71 |
date: ( |
136 |
- <select style={{ |
|
137 |
- width: "100%" |
|
138 |
- }}> |
|
139 |
- <option value="">1일</option> |
|
140 |
- <option value="">3일</option> |
|
141 |
- <option value="">일주일</option> |
|
142 |
- <option value="">한달</option> |
|
143 |
- </select> |
|
72 |
+ <input type="number" /> |
|
144 | 73 |
), |
145 |
- text4: ( |
|
146 |
- <select style={{ |
|
147 |
- width: "100%" |
|
148 |
- }}> |
|
149 |
- <option value="">10%</option> |
|
150 |
- <option value="">20%</option> |
|
151 |
- <option value="">30%</option> |
|
152 |
- <option value="">40%</option> |
|
153 |
- <option value="">50%</option> |
|
154 |
- </select> |
|
155 |
- ), |
|
156 |
- text3: "이하일 경우 위험알림으로 지정합니다.", |
|
74 |
+ text2: "% 이하일 경우 위험알림으로 지정합니다.", |
|
157 | 75 |
}, |
158 | 76 |
]; |
159 | 77 |
|
... | ... | @@ -165,7 +83,7 @@ |
165 | 83 |
title: "온도 관리", |
166 | 84 |
description: ( |
167 | 85 |
<Table |
168 |
- className={"protector-user"} |
|
86 |
+ className={"risk-table"} |
|
169 | 87 |
head={thead1} |
170 | 88 |
contents={content1} |
171 | 89 |
contentKey={key1} |
... | ... | @@ -177,7 +95,7 @@ |
177 | 95 |
title: "복약 관리", |
178 | 96 |
description: ( |
179 | 97 |
<Table |
180 |
- className={"caregiver-user"} |
|
98 |
+ className={"risk-table"} |
|
181 | 99 |
head={thead2} |
182 | 100 |
contents={content2} |
183 | 101 |
contentKey={key2} |
... | ... | @@ -189,7 +107,7 @@ |
189 | 107 |
title: "배터리 관리", |
190 | 108 |
description: ( |
191 | 109 |
<Table |
192 |
- className={"caregiver-user"} |
|
110 |
+ className={"risk-table"} |
|
193 | 111 |
head={thead3} |
194 | 112 |
contents={content3} |
195 | 113 |
contentKey={key3} |
--- client/views/pages/user_management/AgencySelect.jsx
+++ client/views/pages/user_management/AgencySelect.jsx
... | ... | @@ -4,39 +4,50 @@ |
4 | 4 |
import { useNavigate } from "react-router"; |
5 | 5 |
import AgencySearch from "../../component/AgencySearch.jsx"; |
6 | 6 |
import ContentTitle from "../../component/ContentTitle.jsx"; |
7 |
+import Modal from "../../component/Modal.jsx"; |
|
7 | 8 |
import SubTitle from "../../component/SubTitle.jsx"; |
9 |
+import RestoreFromTrashIcon from '@mui/icons-material/RestoreFromTrash'; |
|
8 | 10 |
|
9 | 11 |
export default function SeniorSelect() { |
10 | 12 |
const navigate = useNavigate(); |
13 |
+ const [modalOpen, setModalOpen] = React.useState(false); |
|
14 |
+ const openModal = () => { |
|
15 |
+ setModalOpen(true); |
|
16 |
+ }; |
|
17 |
+ const closeModal = () => { |
|
18 |
+ setModalOpen(false); |
|
19 |
+ }; |
|
11 | 20 |
|
12 | 21 |
//게시판 |
13 | 22 |
const thead = [ |
14 | 23 |
"No", |
15 |
- "기관명", |
|
24 |
+ "기관명", |
|
16 | 25 |
"담당 부서 연락처(담당자)", |
17 | 26 |
"관리 장비 개수", |
18 | 27 |
"관리 대상자 인원", |
19 | 28 |
"주소", |
20 | 29 |
"사용자관리", |
21 | 30 |
"기관통계보기", |
31 |
+ "삭제" |
|
22 | 32 |
]; |
23 | 33 |
const key = [ |
24 | 34 |
"No", |
25 |
- "name", |
|
35 |
+ "name", |
|
26 | 36 |
"phone", |
27 | 37 |
"equip", |
28 | 38 |
"senior", |
29 | 39 |
"address", |
30 | 40 |
"worker", |
31 | 41 |
"statistics", |
42 |
+ "delete" |
|
32 | 43 |
]; |
33 |
- const content = [ |
|
44 |
+ const content = [ |
|
34 | 45 |
{ |
35 | 46 |
No: 1, |
36 | 47 |
name: "B복지관", |
37 | 48 |
phone: "053-811-1234(김대리)", |
38 | 49 |
equip: "80대", |
39 |
- senior:"75명", |
|
50 |
+ senior: "75명", |
|
40 | 51 |
address: "경상북도 군위군 삼국유사면", |
41 | 52 |
worker: ( |
42 | 53 |
<Button |
... | ... | @@ -56,7 +67,11 @@ |
56 | 67 |
}} |
57 | 68 |
/> |
58 | 69 |
), |
70 |
+ delete: ( |
|
71 |
+ <RestoreFromTrashIcon sx={{ width: "30px", height: "30px", }} /> |
|
72 |
+ ), |
|
59 | 73 |
}, |
74 |
+ |
|
60 | 75 |
]; |
61 | 76 |
|
62 | 77 |
//select option 동적 생성 |
... | ... | @@ -87,6 +102,36 @@ |
87 | 102 |
|
88 | 103 |
return ( |
89 | 104 |
<main> |
105 |
+ <Modal open={modalOpen} close={closeModal} header="기관 등록"> |
|
106 |
+ <div className="board-wrap"> |
|
107 |
+ <table className="flex70 margin-bottom"> |
|
108 |
+ <tbody className="equipment-insert"> |
|
109 |
+ <tr> |
|
110 |
+ <th>기관명</th> |
|
111 |
+ <td colSpan={5}> |
|
112 |
+ <input type="text" name="" id="" /> |
|
113 |
+ </td> |
|
114 |
+ </tr> |
|
115 |
+ <tr> |
|
116 |
+ <th>담당 부서 연락처</th> |
|
117 |
+ <td> |
|
118 |
+ <input type="text" name="" id="" /> |
|
119 |
+ </td> |
|
120 |
+ <th>담당자</th> |
|
121 |
+ <td> |
|
122 |
+ <input type="text" name="" id="" /> |
|
123 |
+ </td> |
|
124 |
+ </tr> |
|
125 |
+ <tr> |
|
126 |
+ <th>주소</th> |
|
127 |
+ <td colSpan={5}> |
|
128 |
+ <input type="text" name="" id="" /> |
|
129 |
+ </td> |
|
130 |
+ </tr> |
|
131 |
+ </tbody> |
|
132 |
+ </table> |
|
133 |
+ </div> |
|
134 |
+ </Modal> |
|
90 | 135 |
<div className="content-wrap"> |
91 | 136 |
<ContentTitle contentTitle={"기관 조회"} /> |
92 | 137 |
<div> |
... | ... | @@ -101,11 +146,8 @@ |
101 | 146 |
<Button |
102 | 147 |
className={"btn-small green-btn"} |
103 | 148 |
btnName={"등록"} |
104 |
- onClick={() => { |
|
105 |
- navigate("/AgencyInsert"); |
|
106 |
- }} |
|
149 |
+ onClick={openModal} |
|
107 | 150 |
/> |
108 |
- <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
109 | 151 |
</div> |
110 | 152 |
</div > |
111 | 153 |
<Table |
... | ... | @@ -114,7 +156,6 @@ |
114 | 156 |
contents={content} |
115 | 157 |
contentKey={key} |
116 | 158 |
/> |
117 |
- |
|
118 | 159 |
</div> |
119 | 160 |
</div> |
120 | 161 |
</div> |
--- client/views/pages/user_management/ProtectorSelect.jsx
+++ client/views/pages/user_management/ProtectorSelect.jsx
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 |
import ContentTitle from "../../component/ContentTitle.jsx"; |
7 | 7 |
import SubTitle from "../../component/SubTitle.jsx"; |
8 | 8 |
|
9 |
-export default function SeniorSelect() { |
|
9 |
+export default function ProtectorSelect() { |
|
10 | 10 |
const navigate = useNavigate(); |
11 | 11 |
|
12 | 12 |
//게시판 |
--- client/views/pages/user_management/UserAuthoriySelect_agency.jsx
+++ client/views/pages/user_management/UserAuthoriySelect_agency.jsx
... | ... | @@ -23,20 +23,20 @@ |
23 | 23 |
setModalOpen2(false); |
24 | 24 |
}; |
25 | 25 |
|
26 |
- const insertBtn = (id) => { |
|
27 |
- if (id == 2) { |
|
28 |
- return ( |
|
29 |
- <Button |
|
30 |
- className={"btn-small green-btn"} |
|
31 |
- btnName={"등록"} |
|
32 |
- onClick={() => { |
|
33 |
- navigate("/SeniorInsert"); |
|
34 |
- }} |
|
35 |
- /> |
|
36 |
- ) |
|
37 |
- } |
|
38 |
- }; |
|
39 |
- |
|
26 |
+ const insertBtn = (id) => { |
|
27 |
+ if (id == 2) { |
|
28 |
+ return ( |
|
29 |
+ <Button |
|
30 |
+ className={"btn-small green-btn"} |
|
31 |
+ btnName={"등록"} |
|
32 |
+ onClick={() => { |
|
33 |
+ navigate("/SeniorInsert"); |
|
34 |
+ }} |
|
35 |
+ /> |
|
36 |
+ ) |
|
37 |
+ } |
|
38 |
+ }; |
|
39 |
+ |
|
40 | 40 |
const thead1 = [ |
41 | 41 |
"No", |
42 | 42 |
"대상자 이름", |
... | ... | @@ -45,9 +45,9 @@ |
45 | 45 |
"성별", |
46 | 46 |
"생년월일", |
47 | 47 |
"주소", |
48 |
- "대상자 보호자", |
|
48 |
+ "보호자", |
|
49 | 49 |
]; |
50 |
- const key1 = ["No", "name", "Id","call", "gender", "birth", "address", "management"]; |
|
50 |
+ const key1 = ["No", "name", "Id", "call", "gender", "birth", "address", "management"]; |
|
51 | 51 |
const content1 = [ |
52 | 52 |
{ |
53 | 53 |
No: 1, |
... | ... | @@ -56,11 +56,11 @@ |
56 | 56 |
call: "010-1234-1234", |
57 | 57 |
gender: "여", |
58 | 58 |
birth: "1948.11.15", |
59 |
- address: "경상북도 군위군 삼국유사면", |
|
59 |
+ address: "경상북도 군위군 삼국유사면", |
|
60 | 60 |
management: ( |
61 | 61 |
<Button |
62 | 62 |
className={"btn-small gray-btn"} |
63 |
- btnName={"보호자(가족) 보기"} |
|
63 |
+ btnName={"보기"} |
|
64 | 64 |
onClick={openModal} |
65 | 65 |
/> |
66 | 66 |
), |
... | ... | @@ -75,33 +75,33 @@ |
75 | 75 |
"성별", |
76 | 76 |
"생년월일", |
77 | 77 |
"주소", |
78 |
- "담당자 매칭", |
|
79 |
- "보호자 매칭", |
|
80 |
- ]; |
|
78 |
+ "담당자", |
|
79 |
+ "보호자", |
|
80 |
+ ]; |
|
81 | 81 |
const key2 = [ |
82 |
- "No", "name", "Id","call", "gender", "birth", "address", "worker", "guardian" |
|
82 |
+ "No", "name", "Id", "call", "gender", "birth", "address", "worker", "guardian" |
|
83 | 83 |
]; |
84 | 84 |
const content2 = [ |
85 | 85 |
{ |
86 | 86 |
No: 2, |
87 | 87 |
name: "송창덕", |
88 | 88 |
Id: "20230202", |
89 |
- call:"010-5555-3573", |
|
89 |
+ call: "010-5555-3573", |
|
90 | 90 |
gender: "남", |
91 | 91 |
birth: "1951.08.12", |
92 | 92 |
address: "경상북도 경산시 삼풍로", |
93 | 93 |
worker: ( |
94 | 94 |
<Button |
95 |
- className={"btn-small"} |
|
96 |
- btnName={"매칭"} |
|
97 |
- // onClick={openModal2} |
|
95 |
+ className={"btn-small gray-btn"} |
|
96 |
+ btnName={"선택"} |
|
97 |
+ onClick={openModal2} |
|
98 | 98 |
/> |
99 | 99 |
), |
100 | 100 |
guardian: ( |
101 | 101 |
<Button |
102 |
- className={"btn-small"} |
|
103 |
- btnName={"등록"} |
|
104 |
- // onClick={openModal} |
|
102 |
+ className={"btn-small gray-btn"} |
|
103 |
+ btnName={"보기"} |
|
104 |
+ onClick={openModal} |
|
105 | 105 |
/> |
106 | 106 |
), |
107 | 107 |
}, |
... | ... | @@ -109,21 +109,21 @@ |
109 | 109 |
No: 1, |
110 | 110 |
name: "김복남", |
111 | 111 |
Id: "20230131", |
112 |
- call:"010-1234-1234", |
|
112 |
+ call: "010-1234-1234", |
|
113 | 113 |
gender: "여", |
114 | 114 |
birth: "1948.11.15", |
115 | 115 |
address: "경상북도 군위군 삼국유사면", |
116 | 116 |
worker: ( |
117 | 117 |
<Button |
118 | 118 |
className={"btn-small gray-btn"} |
119 |
- btnName={"담당 보호사 보기"} |
|
119 |
+ btnName={"선택"} |
|
120 | 120 |
onClick={openModal2} |
121 | 121 |
/> |
122 | 122 |
), |
123 | 123 |
guardian: ( |
124 | 124 |
<Button |
125 | 125 |
className={"btn-small gray-btn"} |
126 |
- btnName={"보호자 보기"} |
|
126 |
+ btnName={"보기"} |
|
127 | 127 |
onClick={openModal} |
128 | 128 |
/> |
129 | 129 |
), |
... | ... | @@ -131,23 +131,23 @@ |
131 | 131 |
]; |
132 | 132 |
const thead3 = [ |
133 | 133 |
"No", |
134 |
- "사용자명", |
|
135 |
- "사용자ID", |
|
134 |
+ "이름", |
|
135 |
+ "생년월일", |
|
136 |
+ "연락처", |
|
136 | 137 |
"대상자와의 관계", |
137 |
- "보호자 연락처", |
|
138 | 138 |
]; |
139 | 139 |
const key3 = [ |
140 | 140 |
"No", |
141 | 141 |
"name", |
142 |
- "Id", |
|
143 |
- "relationship", |
|
142 |
+ "birth", |
|
144 | 143 |
"phone", |
144 |
+ "relationship", |
|
145 | 145 |
]; |
146 | 146 |
const content3 = [ |
147 | 147 |
{ |
148 | 148 |
No: 1, |
149 | 149 |
name: "김훈", |
150 |
- Id: "admin2", |
|
150 |
+ birth: "1965.01.01", |
|
151 | 151 |
relationship: "아들", |
152 | 152 |
phone: "010-1234-1234", |
153 | 153 |
}, |
... | ... | @@ -209,7 +209,7 @@ |
209 | 209 |
const data = [ |
210 | 210 |
{ |
211 | 211 |
id: 1, |
212 |
- title: "내가 관리하는 대상자(사용자)", |
|
212 |
+ title: "내가 관리하는 대상자", |
|
213 | 213 |
description: ( |
214 | 214 |
<Table |
215 | 215 |
className={"protector-user"} |
... | ... | @@ -221,7 +221,7 @@ |
221 | 221 |
}, |
222 | 222 |
{ |
223 | 223 |
id: 2, |
224 |
- title: "전체 대상자(사용자)", |
|
224 |
+ title: "전체 대상자", |
|
225 | 225 |
description: ( |
226 | 226 |
<Table |
227 | 227 |
className={"caregiver-user"} |
... | ... | @@ -238,16 +238,50 @@ |
238 | 238 |
<main> |
239 | 239 |
<Modal open={modalOpen} close={closeModal} header="'김복남'님의 가족"> |
240 | 240 |
<div className="board-wrap"> |
241 |
- <div className="btn-wrap flex-end margin-bottom"> |
|
242 |
- <Button |
|
243 |
- className={"btn-small green-btn"} |
|
244 |
- btnName={"등록"} |
|
245 |
- onClick={() => { |
|
246 |
- navigate("/SeniorInsert"); |
|
247 |
- }} |
|
248 |
- /> |
|
249 |
- <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
250 |
- </div> |
|
241 |
+ <SubTitle explanation={"최초 ID는 연락처, PW는 생년월일 8자리입니다."} className="margin-bottom" /> |
|
242 |
+ <table className="margin-bottom2 senior-insert"> |
|
243 |
+ <tr> |
|
244 |
+ <th>이름</th> |
|
245 |
+ <td> |
|
246 |
+ <input type="text" /> |
|
247 |
+ </td> |
|
248 |
+ <th>생년월일</th> |
|
249 |
+ <td> |
|
250 |
+ <div className="flex"> |
|
251 |
+ <select name="year" id="year"> |
|
252 |
+ <option value="">년</option> |
|
253 |
+ </select> |
|
254 |
+ <select name="month" id="month"> |
|
255 |
+ <option value="">월</option> |
|
256 |
+ </select> |
|
257 |
+ <select name="days" id="days"> |
|
258 |
+ <option value="">일</option> |
|
259 |
+ </select> |
|
260 |
+ </div> |
|
261 |
+ </td> |
|
262 |
+ </tr> |
|
263 |
+ <tr> |
|
264 |
+ <th>연락처</th> |
|
265 |
+ <td colSpan={3}> |
|
266 |
+ <input type="text" /> |
|
267 |
+ </td> |
|
268 |
+ </tr> |
|
269 |
+ <tr> |
|
270 |
+ <th>대상자와의 관계</th> |
|
271 |
+ <td colSpan={3}> |
|
272 |
+ <input type="text" /> |
|
273 |
+ </td> |
|
274 |
+ </tr> |
|
275 |
+ </table> |
|
276 |
+ <div className="btn-wrap flex-center margin-bottom5"> |
|
277 |
+ <Button |
|
278 |
+ className={"btn-small green-btn"} |
|
279 |
+ btnName={"추가"} |
|
280 |
+ onClick={() => { |
|
281 |
+ navigate("/SeniorInsert"); |
|
282 |
+ }} |
|
283 |
+ /> |
|
284 |
+ </div> |
|
251 | 285 |
<div> |
252 | 286 |
<Table |
253 | 287 |
className={"caregiver-user"} |
... | ... | @@ -256,28 +290,23 @@ |
256 | 290 |
contentKey={key3} |
257 | 291 |
/> |
258 | 292 |
</div> |
259 |
- <div> |
|
260 |
- <Button |
|
261 |
- className={"btn-100 green-btn"} |
|
262 |
- btnName={"닫기"} |
|
263 |
- onClick={closeModal} |
|
264 |
- /> |
|
265 |
- </div> |
|
266 | 293 |
</div> |
267 | 294 |
</Modal> |
268 |
- |
|
269 |
- <Modal open={modalOpen2} close={closeModal2} header="'김복남'님의 담당 보호사"> |
|
295 |
+ <Modal open={modalOpen2} close={closeModal2} header="보호사 배정"> |
|
270 | 296 |
<div className="board-wrap"> |
271 |
- <div className="btn-wrap flex-end margin-bottom"> |
|
297 |
+ <SubTitle explanation={"보호사 선택"} className="margin-bottom"/> |
|
298 |
+ <div className="flex-start protectorlist margin-bottom5"> |
|
299 |
+ <input type="text" list="datalist" /> |
|
300 |
+ <datalist id="protectorlist"> |
|
301 |
+ <option value="옵션태그 값">이름(아이디)</option> |
|
302 |
+ </datalist> |
|
303 |
+ <div className="btn-wrap"> |
|
272 | 304 |
<Button |
273 |
- className={"btn-small green-btn"} |
|
274 |
- btnName={"등록"} |
|
275 |
- onClick={() => { |
|
276 |
- navigate("/SeniorInsert"); |
|
277 |
- }} |
|
305 |
+ className={"btn-small green-btn"} |
|
306 |
+ btnName={"등록"} |
|
278 | 307 |
/> |
279 |
- <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
280 | 308 |
</div> |
309 |
+ </div> |
|
281 | 310 |
<div> |
282 | 311 |
<Table |
283 | 312 |
className={"caregiver-user"} |
... | ... | @@ -286,16 +315,9 @@ |
286 | 315 |
contentKey={key4} |
287 | 316 |
/> |
288 | 317 |
</div> |
289 |
- <div> |
|
290 |
- <Button |
|
291 |
- className={"btn-100 green-btn"} |
|
292 |
- btnName={"닫기"} |
|
293 |
- onClick={closeModal2} |
|
294 |
- /> |
|
295 |
- </div> |
|
296 | 318 |
</div> |
297 | 319 |
</Modal> |
298 |
- |
|
320 |
+ |
|
299 | 321 |
<div className="tab-container"> |
300 | 322 |
<ul className="tab-menu"> |
301 | 323 |
{data.map((item) => ( |
... | ... | @@ -328,9 +350,8 @@ |
328 | 350 |
/> |
329 | 351 |
</div> |
330 | 352 |
<div className="btn-wrap flex-end"> |
331 |
- {data.filter((item) => index === item.id).map((item) => insertBtn(item.id))} |
|
332 |
- <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
333 |
- </div> |
|
353 |
+ <Button className={"btn-small green-btn"} btnName={"등록"} /> |
|
354 |
+ </div> |
|
334 | 355 |
<ul className="tab-content"> |
335 | 356 |
{data |
336 | 357 |
.filter((item) => index === item.id) |
--- client/views/pages/user_management/UserSelectOk.jsx
+++ client/views/pages/user_management/UserSelectOk.jsx
... | ... | @@ -43,9 +43,6 @@ |
43 | 43 |
<Button |
44 | 44 |
className={"btn-small green-btn"} |
45 | 45 |
btnName={"승인"} |
46 |
- onClick={() => { |
|
47 |
- navigate("/SeniorInsert"); |
|
48 |
- }} |
|
49 | 46 |
/> |
50 | 47 |
<Button className={"btn-small green-btn"} btnName={"반려"} /> |
51 | 48 |
</div>) |
... | ... | @@ -62,9 +59,6 @@ |
62 | 59 |
<Button |
63 | 60 |
className={"btn-small green-btn"} |
64 | 61 |
btnName={"승인"} |
65 |
- onClick={() => { |
|
66 |
- navigate("/SeniorInsert"); |
|
67 |
- }} |
|
68 | 62 |
/> |
69 | 63 |
<Button className={"btn-small green-btn"} btnName={"반려"} /> |
70 | 64 |
</div>) |
... | ... | @@ -81,9 +75,6 @@ |
81 | 75 |
<Button |
82 | 76 |
className={"btn-small green-btn"} |
83 | 77 |
btnName={"승인"} |
84 |
- onClick={() => { |
|
85 |
- navigate("/SeniorInsert"); |
|
86 |
- }} |
|
87 | 78 |
/> |
88 | 79 |
<Button className={"btn-small green-btn"} btnName={"반려"} /> |
89 | 80 |
</div>) |
--- client/views/pages/visit/visit/VisitSelect.jsx
+++ client/views/pages/visit/visit/VisitSelect.jsx
... | ... | @@ -46,10 +46,15 @@ |
46 | 46 |
<ContentTitle contentTitle={"방문 조회"} /> |
47 | 47 |
<DetailSearch /> |
48 | 48 |
<div className="board-wrap"> |
49 |
- <SubTitle |
|
50 |
- className="margin-bottom" |
|
51 |
- explanation={"대상자 클릭 시 상세페이지로 이동합니다."} |
|
52 |
- /> |
|
49 |
+ <div className="flex"> |
|
50 |
+ <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom" /> |
|
51 |
+ <div className="flex searchselect"> |
|
52 |
+ <input type="radio" /> |
|
53 |
+ <label htmlFor="">나의 대상자 보기</label> |
|
54 |
+ <input type="radio" /> |
|
55 |
+ <label htmlFor="">전체 대상자 보기</label> |
|
56 |
+ </div> |
|
57 |
+ </div> |
|
53 | 58 |
<div className="visit-table"> |
54 | 59 |
<Table |
55 | 60 |
className={"visit-table"} |
--- client/views/pages/visit/visit/VisitSelectOne.jsx
+++ client/views/pages/visit/visit/VisitSelectOne.jsx
... | ... | @@ -7,10 +7,17 @@ |
7 | 7 |
import TableTitle from "../../../component/Tabletitle.jsx"; |
8 | 8 |
import Chart2 from "../../../component/chart/Chart2.jsx"; |
9 | 9 |
import Button from "../../../component/Button.jsx"; |
10 |
+import Modal from "../../../component/Modal.jsx"; |
|
10 | 11 |
|
11 | 12 |
export default function MedicineCareSelect() { |
12 | 13 |
const navigate = useNavigate(); |
13 |
- |
|
14 |
+ const [modalOpen, setModalOpen] = React.useState(false); |
|
15 |
+ const openModal = () => { |
|
16 |
+ setModalOpen(true); |
|
17 |
+ }; |
|
18 |
+ const closeModal = () => { |
|
19 |
+ setModalOpen(false); |
|
20 |
+ }; |
|
14 | 21 |
//게시판 |
15 | 22 |
const thead = ["No","방문일", "방문목적", "상세사유", ]; |
16 | 23 |
const key = ["No", "birth", "phone", "address", ]; |
... | ... | @@ -31,6 +38,55 @@ |
31 | 38 |
|
32 | 39 |
return ( |
33 | 40 |
<main> |
41 |
+ <Modal open={modalOpen} close={closeModal} header="방문 등록"> |
|
42 |
+ <div className="board-wrap"> |
|
43 |
+ <table className="flex70"> |
|
44 |
+ <tbody> |
|
45 |
+ <tr> |
|
46 |
+ <th>대상자</th> |
|
47 |
+ <td colSpan={3}> |
|
48 |
+ <input type="text" name="" id="" disabled /> |
|
49 |
+ </td> |
|
50 |
+ </tr> |
|
51 |
+ <tr> |
|
52 |
+ <th>방문날짜</th> |
|
53 |
+ <td colSpan={3}> |
|
54 |
+ <input type="text" placeholder="자동입력" /> |
|
55 |
+ </td> |
|
56 |
+ </tr> |
|
57 |
+ <tr> |
|
58 |
+ <th>방문목적</th> |
|
59 |
+ <td className="flex-start"> |
|
60 |
+ <div className="flex-start width100"> |
|
61 |
+ <input type="checkbox" className="width20"/> |
|
62 |
+ <label className="width50" > |
|
63 |
+ 정기방문 |
|
64 |
+ </label> |
|
65 |
+ </div> |
|
66 |
+ <div className="flex-start width100"> |
|
67 |
+ <input type="checkbox" className="width20"/> |
|
68 |
+ <label className="width50" > |
|
69 |
+ 어르신케어 |
|
70 |
+ </label> |
|
71 |
+ </div> |
|
72 |
+ <div className="flex-start width100"> |
|
73 |
+ <input type="checkbox" className="width20"/> |
|
74 |
+ <label className="width50" > |
|
75 |
+ 장비점검 |
|
76 |
+ </label> |
|
77 |
+ </div> |
|
78 |
+ </td> |
|
79 |
+ </tr> |
|
80 |
+ <tr> |
|
81 |
+ <th>방문 상세 사유</th> |
|
82 |
+ <td colSpan={3}> |
|
83 |
+ <textarea style={{height:"225px"}} name="" id="" cols="30" rows="10"></textarea> |
|
84 |
+ </td> |
|
85 |
+ </tr> |
|
86 |
+ </tbody> |
|
87 |
+ </table> |
|
88 |
+ </div> |
|
89 |
+ </Modal> |
|
34 | 90 |
<div className="content-wrap"> |
35 | 91 |
<ContentTitle contentTitle={"방문 상세 페이지"}/> |
36 | 92 |
<div className="detail-graph"> |
... | ... | @@ -38,6 +94,13 @@ |
38 | 94 |
<Chart2 /> |
39 | 95 |
</div> |
40 | 96 |
<div className="board-wrap"> |
97 |
+ <div className="btn-wrap flex-end margin-bottom"> |
|
98 |
+ <Button |
|
99 |
+ className={"btn-small gray-btn"} |
|
100 |
+ btnName={"등록"} |
|
101 |
+ onClick={openModal} |
|
102 |
+ /> |
|
103 |
+ </div> |
|
41 | 104 |
<Table |
42 | 105 |
className={"medicine-table"} |
43 | 106 |
head={thead} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?