
--- client/resources/css/common.css
+++ client/resources/css/common.css
... | ... | @@ -311,6 +311,10 @@ |
311 | 311 |
background: #cccccc; |
312 | 312 |
} |
313 | 313 |
|
314 |
+.red-btn { |
|
315 |
+ background: #ff0202; |
|
316 |
+} |
|
317 |
+ |
|
314 | 318 |
|
315 | 319 |
/* margin */ |
316 | 320 |
.margin-bottom { |
+++ client/views/pages/230215_backup_AppRoute.jsx
... | ... | @@ -0,0 +1,612 @@ |
1 | +/** | |
2 | + * @author : 최정우 | |
3 | + * @since : 2022.09.20 | |
4 | + * @dscription : Application의 Route 정보를 관리하는 Component 입니다. | |
5 | + */ | |
6 | +import React from "react"; | |
7 | +//react router 라이브러리 import | |
8 | +import { Routes, Route } from "react-router-dom"; | |
9 | + | |
10 | +import HouseIcon from "@mui/icons-material/House"; | |
11 | +import PersonIcon from "@mui/icons-material/Person"; | |
12 | +import Diversity1Icon from "@mui/icons-material/Diversity1"; | |
13 | +import DoorFrontIcon from "@mui/icons-material/DoorFront"; | |
14 | +import SpeakerPhoneIcon from "@mui/icons-material/SpeakerPhone"; | |
15 | +import SettingsIcon from "@mui/icons-material/Settings"; | |
16 | +import CallIcon from '@mui/icons-material/Call'; | |
17 | +import ConstructionIcon from '@mui/icons-material/Construction'; | |
18 | +import EqualizerIcon from '@mui/icons-material/Equalizer'; | |
19 | + | |
20 | +import Test from "./Test/Test.jsx"; | |
21 | +import Main_government from "./main/Main_government.jsx"; | |
22 | +import Main_guardian from "./main/Main_guardian.jsx"; | |
23 | +import Main_agency from "./main/Main_agency.jsx"; | |
24 | +import Main from "./main/Main.jsx"; | |
25 | +import SeniorSelect from "./senior_management/SeniorSelect.jsx"; | |
26 | +import SeniorInsert from "./senior_management/SeniorInsert.jsx"; | |
27 | +import SeniorSelectOne from "./senior_management/SeniorSelectOne.jsx"; | |
28 | +import MedicineCareSelect from "./healthcare/medicinecare/MedicineCareSelect.jsx"; | |
29 | +import MedicineCareSelectOne from "./healthcare/medicinecare/MedicineCareSelectOne.jsx"; | |
30 | +import TemperatureManagementSelect from "./healthcare/temperature/TemperatureManagementSelect.jsx"; | |
31 | +import TemperatureManagementSelectOne from "./healthcare/temperature/TemperatureManagementSelectOne.jsx"; | |
32 | +import Questionnaire from "./healthcare/Questionnaire.jsx"; | |
33 | +import MedicineStatistics from "./healthcare/statistics/MedicineStatistics.jsx"; | |
34 | +import GuardianStatistics from "./healthcare/statistics/GuardianStatistics.jsx"; | |
35 | +import VisitSelect from "./visit/visit/VisitSelect.jsx"; | |
36 | +import VisitInsert from "./visit/visit/VisitInsert.jsx"; | |
37 | +import VisitSelectOne from "./visit/visit/VisitSelectOne.jsx"; | |
38 | +import EquipmentRentalInsert from "./equipment/EquipmentRentalInsert.jsx"; | |
39 | +import EquipmentManagementSelect from "./equipment/EquipmentManagementSelect.jsx"; | |
40 | +import EquipmentManagementSelectOne from "./equipment/EquipmentManagementSelectOne.jsx"; | |
41 | +import UserAuthoriySelect from "./user_management/UserAuthoriySelect.jsx"; | |
42 | +import UserAuthoriySelect_admin from "./user_management/UserAuthoriySelect_admin.jsx"; | |
43 | +import MyInfoUpdate from "./authority/MyInfoUpdate.jsx"; | |
44 | +import CallInsert from "./callcenter/CallInsert.jsx"; | |
45 | +import CallSelect from "./callcenter/CallSelect.jsx"; | |
46 | +import CallSelectOne from "./setting/RiskSet.jsx"; | |
47 | +import CallUpdate from "./callcenter/CallUpdate.jsx"; | |
48 | +import EquipmentInquiry from "./equipment/EquipmentInquiry.jsx"; | |
49 | +import EquipmentManagementSelectAdd from "./equipment/EquipmentManagementSelectAdd.jsx"; | |
50 | +import RiskSet from "./setting/RiskSet.jsx"; | |
51 | +import QandA from "./callcenter/QandA.jsx"; | |
52 | +import UserSelectOk from "./user_management/UserSelectOk.jsx"; | |
53 | +import AuthorityManagement from "./setting/AuthorityManagement.jsx"; | |
54 | +import AgencyInsert from "./user_management/AgencyInsert.jsx"; | |
55 | +import AgencySelect from "./user_management/AgencySelect.jsx"; | |
56 | +import ProtectorSelect from "./user_management/ProtectorSelect.jsx"; | |
57 | + | |
58 | +const AllAppMenuItems = [ | |
59 | + { | |
60 | + title: "Home(올잇메디)", | |
61 | + path: "/Main", | |
62 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
63 | + }, | |
64 | + { | |
65 | + title: "Home(에이젼시)", | |
66 | + path: "/Main_agency", | |
67 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
68 | + }, | |
69 | + { | |
70 | + title: "Home(관리기관)", | |
71 | + path: "/Main_government", | |
72 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
73 | + }, | |
74 | + { | |
75 | + title: "Home(보호자)", | |
76 | + path: "/Main_guardian", | |
77 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
78 | + }, | |
79 | + { | |
80 | + title: "그래프로 보기", | |
81 | + path: "/GuardianStatistics", | |
82 | + icon: <EqualizerIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
83 | + }, | |
84 | + { | |
85 | + title: "사용자 관리", | |
86 | + path: "/UserAuthoriySelect", | |
87 | + icon: ( | |
88 | + <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
89 | + ), | |
90 | + }, | |
91 | + { | |
92 | + title: "시니어 관리", | |
93 | + path: "/UserAuthoriySelect_admin", | |
94 | + icon: ( | |
95 | + <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
96 | + ), | |
97 | + }, | |
98 | + { | |
99 | + title: "시행기관관리", | |
100 | + prefix: "/Medicine", | |
101 | + icon: ( | |
102 | + <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
103 | + ), | |
104 | + childrens: [ | |
105 | + { | |
106 | + title: "기관 조회", | |
107 | + path: "/AgencySelect", | |
108 | + }, | |
109 | + { | |
110 | + title: "사용자 계정 승인", | |
111 | + path: "/UserSelectOk", | |
112 | + }, | |
113 | + ], | |
114 | + }, | |
115 | + { | |
116 | + title: "건강 관리", | |
117 | + prefix: "/Medicine", | |
118 | + icon: ( | |
119 | + <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
120 | + ), | |
121 | + childrens: [ | |
122 | + { | |
123 | + title: "복약 관리", | |
124 | + path: "/MedicineCareSelect", | |
125 | + }, | |
126 | + { | |
127 | + title: "댁내 온도 관리", | |
128 | + path: "/TemperatureManagementSelect", | |
129 | + }, | |
130 | + { | |
131 | + title: "문진표 작성", | |
132 | + path: "/Questionnaire", | |
133 | + }, | |
134 | + ], | |
135 | + }, | |
136 | + | |
137 | + { | |
138 | + title: "방문 관리", | |
139 | + prefix: "/Visit", | |
140 | + icon: ( | |
141 | + <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
142 | + ), | |
143 | + childrens: [ | |
144 | + { | |
145 | + title: "방문 관리", | |
146 | + path: "/VisitSelect", | |
147 | + }, | |
148 | + ], | |
149 | + }, | |
150 | + { | |
151 | + title: "장비 관리", | |
152 | + icon: ( | |
153 | + <SettingsIcon | |
154 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
155 | + /> | |
156 | + ), | |
157 | + childrens: [ | |
158 | + { | |
159 | + title: "장비 조회", | |
160 | + path: "/EquipmentManagementSelect", | |
161 | + }, | |
162 | + { | |
163 | + title: "장비 문의 요청", | |
164 | + path: "/EquipmentInquiry", | |
165 | + }, | |
166 | + // { | |
167 | + // title: "장비 추가 요청", | |
168 | + // path: "/EquipmentManagementSelectAdd", | |
169 | + // }, | |
170 | + ], | |
171 | + }, | |
172 | + { | |
173 | + title: "문의게시판", | |
174 | + path: "/QandA", | |
175 | + icon: ( | |
176 | + <SpeakerPhoneIcon | |
177 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
178 | + /> | |
179 | + ), | |
180 | + }, | |
181 | + { | |
182 | + title: "설정", | |
183 | + icon: ( | |
184 | + <SettingsIcon | |
185 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
186 | + /> | |
187 | + ), | |
188 | + childrens: [ | |
189 | + { | |
190 | + title: "위험 기준 관리", | |
191 | + path: "/RiskSet", | |
192 | + }, | |
193 | + { | |
194 | + title: "사용자 권한 관리", | |
195 | + path: "/AuthorityManagement", | |
196 | + }, | |
197 | + // { | |
198 | + // title: "장비 추가 요청", | |
199 | + // path: "/EquipmentManagementSelectAdd", | |
200 | + // }, | |
201 | + ], | |
202 | + }, | |
203 | +]; | |
204 | + | |
205 | +function AllAppRoute() { | |
206 | + return ( | |
207 | + <Routes> | |
208 | + <Route path="/Test" element={<Test />}></Route> | |
209 | + <Route path="/Main" element={<Main />}></Route> | |
210 | + <Route path="/Main_government" element={<Main_government />}></Route> | |
211 | + <Route path="/Main_guardian" element={<Main_guardian />}></Route> | |
212 | + <Route path="/Main_agency" element={<Main_agency />}></Route> | |
213 | + <Route path="/SeniorSelect" element={<SeniorSelect />}></Route> | |
214 | + <Route path="/SeniorInsert" element={<SeniorInsert />}></Route> | |
215 | + <Route path="/SeniorSelectOne" element={<SeniorSelectOne />}></Route> | |
216 | + <Route | |
217 | + path="/MedicineCareSelect" | |
218 | + element={<MedicineCareSelect />} | |
219 | + ></Route> | |
220 | + <Route | |
221 | + path="/MedicineCareSelectOne" | |
222 | + element={<MedicineCareSelectOne />} | |
223 | + ></Route> | |
224 | + <Route | |
225 | + path="/TemperatureManagementSelect" | |
226 | + element={<TemperatureManagementSelect />} | |
227 | + ></Route> | |
228 | + <Route | |
229 | + path="/TemperatureManagementSelectOne" | |
230 | + element={<TemperatureManagementSelectOne />} | |
231 | + ></Route> | |
232 | + <Route | |
233 | + path="/MedicineStatistics" | |
234 | + element={<MedicineStatistics />} | |
235 | + ></Route> | |
236 | + <Route path="/VisitInsert" element={<VisitInsert />}></Route> | |
237 | + <Route path="/VisitSelect" element={<VisitSelect />}></Route> | |
238 | + <Route path="/VisitSelectOne" element={<VisitSelectOne />}></Route> | |
239 | + <Route | |
240 | + path="/EquipmentRentalInsert" | |
241 | + element={<EquipmentRentalInsert />} | |
242 | + ></Route> | |
243 | + <Route | |
244 | + path="/EquipmentManagementSelect" | |
245 | + element={<EquipmentManagementSelect />} | |
246 | + ></Route> | |
247 | + <Route | |
248 | + path="/EquipmentManagementSelectOne" | |
249 | + element={<EquipmentManagementSelectOne />} | |
250 | + ></Route> | |
251 | + <Route | |
252 | + path="/UserAuthoriySelect" | |
253 | + element={<UserAuthoriySelect />} | |
254 | + ></Route> | |
255 | + <Route path="/MyInfoUpdate" element={<MyInfoUpdate />}></Route> | |
256 | + <Route path="/CallInsert" element={<CallInsert />}></Route> | |
257 | + <Route path="/CallUpdate" element={<CallUpdate />}></Route> | |
258 | + <Route path="/CallSelect" element={<CallSelect />}></Route> | |
259 | + <Route path="/CallSelectOne" element={<CallSelectOne />}></Route> | |
260 | + <Route path="/EquipmentInquiry" element={<EquipmentInquiry />}></Route> | |
261 | + <Route path="/EquipmentManagementSelectAdd" element={<EquipmentManagementSelectAdd />}></Route> | |
262 | + <Route path="/RiskSet" element={<RiskSet />}></Route> | |
263 | + <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> | |
264 | + <Route path="/UserAuthoriySelect_admin" element={<UserAuthoriySelect_admin />}></Route> | |
265 | + <Route path="/QandA" element={<QandA />}></Route> | |
266 | + <Route path="/UserSelectOk" element={<UserSelectOk />}></Route> | |
267 | + <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> | |
268 | + <Route path="/AgencyInsert" element={<AgencyInsert />}></Route> | |
269 | + <Route path="/AgencySelect" element={<AgencySelect />}></Route> | |
270 | + <Route path="/ProtectorSelect" element={<ProtectorSelect />}></Route> | |
271 | + <Route path="/Questionnaire" element={<Questionnaire />}></Route> | |
272 | + <Route path="/GuardianStatistics" element={<GuardianStatistics />}></Route> | |
273 | + </Routes> | |
274 | + ); | |
275 | +} | |
276 | + | |
277 | + | |
278 | + | |
279 | +const AdminAppMenuItems = [ | |
280 | + { | |
281 | + title: "Home", | |
282 | + path: "/Main", | |
283 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
284 | + }, | |
285 | + { | |
286 | + title: "사용자 관리", | |
287 | + path: "/UserAuthoriySelect", | |
288 | + icon: ( | |
289 | + <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
290 | + ), | |
291 | + }, | |
292 | + // { | |
293 | + // title: "시니어 관리", | |
294 | + // path: "/UserAuthoriySelect_admin", | |
295 | + // icon: ( | |
296 | + // <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
297 | + // ), | |
298 | + // }, | |
299 | + // { | |
300 | + // title: "사용자 계정 승인", | |
301 | + // path: "/UserSelectOk", | |
302 | + // icon: ( | |
303 | + // <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
304 | + // ), | |
305 | + // }, | |
306 | + // { | |
307 | + // title: "건강 관리", | |
308 | + // prefix: "/Medicine", | |
309 | + // icon: ( | |
310 | + // <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
311 | + // ), | |
312 | + // childrens: [ | |
313 | + // { | |
314 | + // title: "복약 관리", | |
315 | + // path: "/MedicineCareSelect", | |
316 | + // }, | |
317 | + // { | |
318 | + // title: "댁내 온도 관리", | |
319 | + // path: "/TemperatureManagementSelect", | |
320 | + // }, | |
321 | + // { | |
322 | + // title: "문진표 작성", | |
323 | + // path: "/TemperatureManagementSelect", | |
324 | + // }, | |
325 | + // ], | |
326 | + // }, | |
327 | + | |
328 | + // { | |
329 | + // title: "방문 관리", | |
330 | + // prefix: "/Visit", | |
331 | + // icon: ( | |
332 | + // <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
333 | + // ), | |
334 | + // childrens: [ | |
335 | + // { | |
336 | + // title: "방문 관리", | |
337 | + // path: "/VisitSelect", | |
338 | + // }, | |
339 | + // ], | |
340 | + // }, | |
341 | + // { | |
342 | + // title: "장비 관리", | |
343 | + // icon: ( | |
344 | + // <SettingsIcon | |
345 | + // sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
346 | + // /> | |
347 | + // ), | |
348 | + // childrens: [ | |
349 | + // { | |
350 | + // title: "장비 조회", | |
351 | + // path: "/EquipmentManagementSelect", | |
352 | + // }, | |
353 | + // { | |
354 | + // title: "장비 문의 요청", | |
355 | + // path: "/EquipmentInquiry", | |
356 | + // }, | |
357 | + // // { | |
358 | + // // title: "장비 추가 요청", | |
359 | + // // path: "/EquipmentManagementSelectAdd", | |
360 | + // // }, | |
361 | + // ], | |
362 | + // }, | |
363 | + { | |
364 | + title: "문의게시판", | |
365 | + path: "/QandA", | |
366 | + icon: ( | |
367 | + <SpeakerPhoneIcon | |
368 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
369 | + /> | |
370 | + ), | |
371 | + }, | |
372 | + // { | |
373 | + // title: "설정", | |
374 | + // icon: ( | |
375 | + // <SettingsIcon | |
376 | + // sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
377 | + // /> | |
378 | + // ), | |
379 | + // childrens: [ | |
380 | + // { | |
381 | + // title: "위험 기준 관리", | |
382 | + // path: "/RiskSet", | |
383 | + // }, | |
384 | + // { | |
385 | + // title: "사용자 권한 관리", | |
386 | + // path: "/AuthorityManagement", | |
387 | + // }, | |
388 | + // // { | |
389 | + // // title: "장비 추가 요청", | |
390 | + // // path: "/EquipmentManagementSelectAdd", | |
391 | + // // }, | |
392 | + // ], | |
393 | + // }, | |
394 | +]; | |
395 | +function AdminAppRoute() { | |
396 | + return ( | |
397 | + <Routes> | |
398 | + <Route path="/Test" element={<Test />}></Route> | |
399 | + <Route path="/Main" element={<Main />}></Route> | |
400 | + <Route path="/Main_government" element={<Main_government />}></Route> | |
401 | + <Route path="/Main_guardian" element={<Main_guardian />}></Route> | |
402 | + <Route path="/Main_agency" element={<Main_agency />}></Route> | |
403 | + <Route | |
404 | + path="/EquipmentRentalInsert" | |
405 | + element={<EquipmentRentalInsert />} | |
406 | + ></Route> | |
407 | + <Route | |
408 | + path="/EquipmentManagementSelect" | |
409 | + element={<EquipmentManagementSelect />} | |
410 | + ></Route> | |
411 | + <Route | |
412 | + path="/EquipmentManagementSelectOne" | |
413 | + element={<EquipmentManagementSelectOne />} | |
414 | + ></Route> | |
415 | + <Route path="/MyInfoUpdate" element={<MyInfoUpdate />}></Route> | |
416 | + <Route path="/CallInsert" element={<CallInsert />}></Route> | |
417 | + <Route path="/CallUpdate" element={<CallUpdate />}></Route> | |
418 | + <Route path="/CallSelect" element={<CallSelect />}></Route> | |
419 | + <Route path="/CallSelectOne" element={<CallSelectOne />}></Route> | |
420 | + <Route path="/EquipmentInquiry" element={<EquipmentInquiry />}></Route> | |
421 | + <Route path="/EquipmentManagementSelectAdd" element={<EquipmentManagementSelectAdd />}></Route> | |
422 | + <Route path="/RiskSet" element={<RiskSet />}></Route> | |
423 | + <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> | |
424 | + <Route path="/UserAuthoriySelect_admin" element={<UserAuthoriySelect_admin />}></Route> | |
425 | + <Route path="/QandA" element={<QandA />}></Route> | |
426 | + <Route path="/UserSelectOk" element={<UserSelectOk />}></Route> | |
427 | + <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> | |
428 | + </Routes> | |
429 | + ); | |
430 | +} | |
431 | + | |
432 | + | |
433 | +const GovernmentAppMenuItems = [ | |
434 | + { | |
435 | + title: "Home", | |
436 | + path: "/Main", | |
437 | + icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, | |
438 | + }, | |
439 | + { | |
440 | + title: "사용자 관리", | |
441 | + path: "/UserAuthoriySelect", | |
442 | + icon: ( | |
443 | + <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
444 | + ), | |
445 | + }, | |
446 | + { | |
447 | + title: "시니어 관리", | |
448 | + path: "/UserAuthoriySelect_admin", | |
449 | + icon: ( | |
450 | + <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
451 | + ), | |
452 | + }, | |
453 | + { | |
454 | + title: "사용자 계정 승인", | |
455 | + path: "/UserSelectOk", | |
456 | + }, | |
457 | + { | |
458 | + title: "건강 관리", | |
459 | + prefix: "/Medicine", | |
460 | + icon: ( | |
461 | + <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
462 | + ), | |
463 | + childrens: [ | |
464 | + { | |
465 | + title: "복약 관리", | |
466 | + path: "/MedicineCareSelect", | |
467 | + }, | |
468 | + { | |
469 | + title: "댁내 온도 관리", | |
470 | + path: "/TemperatureManagementSelect", | |
471 | + }, | |
472 | + { | |
473 | + title: "문진표 작성", | |
474 | + path: "/TemperatureManagementSelect", | |
475 | + }, | |
476 | + ], | |
477 | + }, | |
478 | + | |
479 | + { | |
480 | + title: "방문 관리", | |
481 | + prefix: "/Visit", | |
482 | + icon: ( | |
483 | + <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> | |
484 | + ), | |
485 | + childrens: [ | |
486 | + { | |
487 | + title: "방문 관리", | |
488 | + path: "/VisitSelect", | |
489 | + }, | |
490 | + ], | |
491 | + }, | |
492 | + { | |
493 | + title: "장비 관리", | |
494 | + icon: ( | |
495 | + <SettingsIcon | |
496 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
497 | + /> | |
498 | + ), | |
499 | + childrens: [ | |
500 | + { | |
501 | + title: "장비 조회", | |
502 | + path: "/EquipmentManagementSelect", | |
503 | + }, | |
504 | + { | |
505 | + title: "장비 문의 요청", | |
506 | + path: "/EquipmentInquiry", | |
507 | + }, | |
508 | + // { | |
509 | + // title: "장비 추가 요청", | |
510 | + // path: "/EquipmentManagementSelectAdd", | |
511 | + // }, | |
512 | + ], | |
513 | + }, | |
514 | + { | |
515 | + title: "문의게시판", | |
516 | + path: "/QandA", | |
517 | + icon: ( | |
518 | + <SpeakerPhoneIcon | |
519 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
520 | + /> | |
521 | + ), | |
522 | + }, | |
523 | + { | |
524 | + title: "설정", | |
525 | + icon: ( | |
526 | + <SettingsIcon | |
527 | + sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} | |
528 | + /> | |
529 | + ), | |
530 | + childrens: [ | |
531 | + { | |
532 | + title: "위험 기준 관리", | |
533 | + path: "/RiskSet", | |
534 | + }, | |
535 | + { | |
536 | + title: "사용자 권한 관리", | |
537 | + path: "/AuthorityManagement", | |
538 | + }, | |
539 | + // { | |
540 | + // title: "장비 추가 요청", | |
541 | + // path: "/EquipmentManagementSelectAdd", | |
542 | + // }, | |
543 | + ], | |
544 | + }, | |
545 | +]; | |
546 | +function GovernmentAppRoute() { | |
547 | + return ( | |
548 | + <Routes> | |
549 | + <Route path="/Test" element={<Test />}></Route> | |
550 | + <Route path="/Main" element={<Main2 />}></Route> | |
551 | + <Route path="/SeniorSelect" element={<SeniorSelect />}></Route> | |
552 | + <Route path="/SeniorInsert" element={<SeniorInsert />}></Route> | |
553 | + <Route path="/SeniorSelectOne" element={<SeniorSelectOne />}></Route> | |
554 | + <Route | |
555 | + path="/MedicineCareSelect" | |
556 | + element={<MedicineCareSelect />} | |
557 | + ></Route> | |
558 | + <Route | |
559 | + path="/MedicineCareSelectOne" | |
560 | + element={<MedicineCareSelectOne />} | |
561 | + ></Route> | |
562 | + <Route | |
563 | + path="/TemperatureManagementSelect" | |
564 | + element={<TemperatureManagementSelect />} | |
565 | + ></Route> | |
566 | + <Route | |
567 | + path="/TemperatureManagementSelectOne" | |
568 | + element={<TemperatureManagementSelectOne />} | |
569 | + ></Route> | |
570 | + <Route | |
571 | + path="/MedicineStatistics" | |
572 | + element={<MedicineStatistics />} | |
573 | + ></Route> | |
574 | + <Route path="/VisitInsert" element={<VisitInsert />}></Route> | |
575 | + <Route path="/VisitSelect" element={<VisitSelect />}></Route> | |
576 | + <Route path="/VisitSelectOne" element={<VisitSelectOne />}></Route> | |
577 | + <Route | |
578 | + path="/EquipmentRentalInsert" | |
579 | + element={<EquipmentRentalInsert />} | |
580 | + ></Route> | |
581 | + <Route | |
582 | + path="/EquipmentManagementSelect" | |
583 | + element={<EquipmentManagementSelect />} | |
584 | + ></Route> | |
585 | + <Route | |
586 | + path="/EquipmentManagementSelectOne" | |
587 | + element={<EquipmentManagementSelectOne />} | |
588 | + ></Route> | |
589 | + <Route | |
590 | + path="/UserAuthoriySelect" | |
591 | + element={<UserAuthoriySelect />} | |
592 | + ></Route> | |
593 | + <Route path="/MyInfoUpdate" element={<MyInfoUpdate />}></Route> | |
594 | + <Route path="/CallInsert" element={<CallInsert />}></Route> | |
595 | + <Route path="/CallUpdate" element={<CallUpdate />}></Route> | |
596 | + <Route path="/CallSelect" element={<CallSelect />}></Route> | |
597 | + <Route path="/CallSelectOne" element={<CallSelectOne />}></Route> | |
598 | + <Route path="/EquipmentInquiry" element={<EquipmentInquiry />}></Route> | |
599 | + <Route path="/EquipmentManagementSelectAdd" element={<EquipmentManagementSelectAdd />}></Route> | |
600 | + <Route path="/RiskInsert" element={<RiskInsert />}></Route> | |
601 | + <Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> | |
602 | + <Route path="/QandA" element={<QandA />}></Route> | |
603 | + </Routes> | |
604 | + ); | |
605 | +} | |
606 | + | |
607 | +const AllApp = {'menuItems': AllAppMenuItems, 'AppRoute': AllAppRoute}; | |
608 | +const AdminApp = {'menuItems': AdminAppMenuItems, 'AppRoute': AdminAppRoute}; | |
609 | +const GovernmentApp = {'menuItems': GovernmentAppMenuItems, 'AppRoute': GovernmentAppRoute}; | |
610 | + | |
611 | +export default AllApp; | |
612 | +export {AdminApp, GovernmentApp}; |
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
... | ... | @@ -55,151 +55,238 @@ |
55 | 55 |
import AgencySelect from "./user_management/AgencySelect.jsx"; |
56 | 56 |
import ProtectorSelect from "./user_management/ProtectorSelect.jsx"; |
57 | 57 |
|
58 |
+import MedicineCareSelect_government from "./healthcare/medicinecare/MedicineCareSelect_government.jsx"; |
|
59 |
+import TemperatureManagementSelect_government from "./healthcare/temperature/TemperatureManagementSelect_government.jsx"; |
|
60 |
+import Questionnaire_government from "./healthcare/Questionnaire_government.jsx"; |
|
61 |
+import VisitSelect_government from "./visit/visit/VisitSelect_government.jsx"; |
|
62 |
+import QandA_government from "./callcenter/QandA_government.jsx"; |
|
63 |
+ |
|
58 | 64 |
const AllAppMenuItems = [ |
59 | 65 |
{ |
60 |
- title: "Home(올잇메디)", |
|
66 |
+ title: "올잇메디", |
|
61 | 67 |
path: "/Main", |
62 | 68 |
icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
69 |
+ childrens: [ |
|
70 |
+ { |
|
71 |
+ title: "Home", |
|
72 |
+ path: "/Main", |
|
73 |
+ icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
74 |
+ }, |
|
75 |
+ { |
|
76 |
+ title: "사용자 관리", |
|
77 |
+ path: "/UserAuthoriySelect", |
|
78 |
+ icon: ( |
|
79 |
+ <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
80 |
+ ), |
|
81 |
+ }, |
|
82 |
+ { |
|
83 |
+ title: "시니어 건강 관리", |
|
84 |
+ // path: "/TemperatureManagementSelect", |
|
85 |
+ icon: ( |
|
86 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
87 |
+ ), |
|
88 |
+ }, |
|
89 |
+ { |
|
90 |
+ title: "장비 조회", |
|
91 |
+ path: "/EquipmentManagementSelect", |
|
92 |
+ icon: ( |
|
93 |
+ <SettingsIcon |
|
94 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
95 |
+ /> |
|
96 |
+ ), |
|
97 |
+ }, |
|
98 |
+ { |
|
99 |
+ title: "장비 문의 관리", |
|
100 |
+ path: "/EquipmentManagementSelect", |
|
101 |
+ icon: ( |
|
102 |
+ <SettingsIcon |
|
103 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
104 |
+ /> |
|
105 |
+ ), |
|
106 |
+ }, |
|
107 |
+ ], |
|
63 | 108 |
}, |
64 | 109 |
{ |
65 |
- title: "Home(에이젼시)", |
|
66 |
- path: "/Main_agency", |
|
67 |
- icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
|
68 |
- }, |
|
69 |
- { |
|
70 |
- title: "Home(관리기관)", |
|
110 |
+ title: "관리기관", |
|
71 | 111 |
path: "/Main_government", |
72 | 112 |
icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
113 |
+ childrens: [ |
|
114 |
+ { |
|
115 |
+ title: "Home", |
|
116 |
+ path: "/Main_government", |
|
117 |
+ icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
|
118 |
+ }, |
|
119 |
+ { |
|
120 |
+ title: "기관 조회", |
|
121 |
+ path: "/AgencySelect", |
|
122 |
+ icon: ( |
|
123 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
124 |
+ ), |
|
125 |
+ }, |
|
126 |
+ { |
|
127 |
+ title: "사용자 계정 승인", |
|
128 |
+ path: "/UserSelectOk", |
|
129 |
+ icon: ( |
|
130 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
131 |
+ ), |
|
132 |
+ }, |
|
133 |
+ { |
|
134 |
+ title: "복약 관리", |
|
135 |
+ path: "/MedicineCareSelect_government", |
|
136 |
+ icon: ( |
|
137 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
138 |
+ ), |
|
139 |
+ }, |
|
140 |
+ { |
|
141 |
+ title: "댁내 온도 관리", |
|
142 |
+ path: "/TemperatureManagementSelect_government", |
|
143 |
+ icon: ( |
|
144 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
145 |
+ ), |
|
146 |
+ }, |
|
147 |
+ { |
|
148 |
+ title: "진료 관리", |
|
149 |
+ path: "/Questionnaire_government", |
|
150 |
+ icon: ( |
|
151 |
+ <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
152 |
+ ), |
|
153 |
+ }, |
|
154 |
+ { |
|
155 |
+ title: "방문 관리", |
|
156 |
+ path: "/VisitSelect_government", |
|
157 |
+ icon: ( |
|
158 |
+ <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
159 |
+ ), |
|
160 |
+ }, |
|
161 |
+ { |
|
162 |
+ title: "Q&A 관리", |
|
163 |
+ path: "/QandA_government", |
|
164 |
+ icon: ( |
|
165 |
+ <SpeakerPhoneIcon |
|
166 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
167 |
+ /> |
|
168 |
+ ), |
|
169 |
+ }, |
|
170 |
+ { |
|
171 |
+ title: "위험 기준 관리", |
|
172 |
+ path: "/RiskSet", |
|
173 |
+ icon: ( |
|
174 |
+ <SettingsIcon |
|
175 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
176 |
+ /> |
|
177 |
+ ), |
|
178 |
+ }, |
|
179 |
+ { |
|
180 |
+ title: "사용자 권한 관리", |
|
181 |
+ path: "/AuthorityManagement", |
|
182 |
+ icon: ( |
|
183 |
+ <SettingsIcon |
|
184 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
185 |
+ /> |
|
186 |
+ ), |
|
187 |
+ }, |
|
188 |
+ ], |
|
73 | 189 |
}, |
74 | 190 |
{ |
75 |
- title: "Home(보호자)", |
|
191 |
+ title: "시행기관", |
|
192 |
+ path: "/Main_agency", |
|
193 |
+ icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
|
194 |
+ childrens: [ |
|
195 |
+ { |
|
196 |
+ title: "Home", |
|
197 |
+ path: "/Main_agency", |
|
198 |
+ icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
|
199 |
+ }, |
|
200 |
+ { |
|
201 |
+ title: "시니어 관리", |
|
202 |
+ path: "/UserAuthoriySelect_admin", |
|
203 |
+ icon: ( |
|
204 |
+ <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
205 |
+ ), |
|
206 |
+ }, |
|
207 |
+ { |
|
208 |
+ title: "복약 관리", |
|
209 |
+ path: "/MedicineCareSelect", |
|
210 |
+ icon: ( |
|
211 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
212 |
+ ), |
|
213 |
+ }, |
|
214 |
+ { |
|
215 |
+ title: "댁내 온도 관리", |
|
216 |
+ path: "/TemperatureManagementSelect", |
|
217 |
+ icon: ( |
|
218 |
+ <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
219 |
+ ), |
|
220 |
+ }, |
|
221 |
+ { |
|
222 |
+ title: "진료 관리", |
|
223 |
+ path: "/Questionnaire", |
|
224 |
+ icon: ( |
|
225 |
+ <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
226 |
+ ), |
|
227 |
+ }, |
|
228 |
+ { |
|
229 |
+ title: "방문 관리", |
|
230 |
+ path: "/VisitSelect", |
|
231 |
+ icon: ( |
|
232 |
+ <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
233 |
+ ), |
|
234 |
+ }, |
|
235 |
+ { |
|
236 |
+ title: "Q&A 관리", |
|
237 |
+ path: "/QandA", |
|
238 |
+ icon: ( |
|
239 |
+ <SpeakerPhoneIcon |
|
240 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
241 |
+ /> |
|
242 |
+ ), |
|
243 |
+ }, |
|
244 |
+ { |
|
245 |
+ title: "장비 대여 관리x", |
|
246 |
+ // path: "/EquipmentInquiry", |
|
247 |
+ icon: ( |
|
248 |
+ <SettingsIcon |
|
249 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
250 |
+ /> |
|
251 |
+ ), |
|
252 |
+ }, |
|
253 |
+ { |
|
254 |
+ title: "장비 문의", |
|
255 |
+ path: "/EquipmentInquiry", |
|
256 |
+ icon: ( |
|
257 |
+ <SettingsIcon |
|
258 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
259 |
+ /> |
|
260 |
+ ), |
|
261 |
+ }, |
|
262 |
+ ], |
|
263 |
+ }, |
|
264 |
+ { |
|
265 |
+ title: "보호자", |
|
76 | 266 |
path: "/Main_guardian", |
77 | 267 |
icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
268 |
+ childrens: [ |
|
269 |
+ { |
|
270 |
+ title: "Home", |
|
271 |
+ path: "/Main_guardian", |
|
272 |
+ icon: <HouseIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
|
273 |
+ }, |
|
274 |
+ { |
|
275 |
+ title: "Q&A", |
|
276 |
+ path: "/QandA", |
|
277 |
+ icon: ( |
|
278 |
+ <SpeakerPhoneIcon |
|
279 |
+ sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
280 |
+ /> |
|
281 |
+ ), |
|
282 |
+ }, |
|
283 |
+ ], |
|
78 | 284 |
}, |
79 | 285 |
{ |
80 | 286 |
title: "그래프로 보기", |
81 | 287 |
path: "/GuardianStatistics", |
82 | 288 |
icon: <EqualizerIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} />, |
83 |
- }, |
|
84 |
- { |
|
85 |
- title: "사용자 관리", |
|
86 |
- path: "/UserAuthoriySelect", |
|
87 |
- icon: ( |
|
88 |
- <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
89 |
- ), |
|
90 |
- }, |
|
91 |
- { |
|
92 |
- title: "시니어 관리", |
|
93 |
- path: "/UserAuthoriySelect_admin", |
|
94 |
- icon: ( |
|
95 |
- <PersonIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
96 |
- ), |
|
97 |
- }, |
|
98 |
- { |
|
99 |
- title: "시행기관관리", |
|
100 |
- prefix: "/Medicine", |
|
101 |
- icon: ( |
|
102 |
- <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
103 |
- ), |
|
104 |
- childrens: [ |
|
105 |
- { |
|
106 |
- title: "기관 조회", |
|
107 |
- path: "/AgencySelect", |
|
108 |
- }, |
|
109 |
- { |
|
110 |
- title: "사용자 계정 승인", |
|
111 |
- path: "/UserSelectOk", |
|
112 |
- }, |
|
113 |
- ], |
|
114 |
- }, |
|
115 |
- { |
|
116 |
- title: "건강 관리", |
|
117 |
- prefix: "/Medicine", |
|
118 |
- icon: ( |
|
119 |
- <Diversity1Icon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
120 |
- ), |
|
121 |
- childrens: [ |
|
122 |
- { |
|
123 |
- title: "복약 관리", |
|
124 |
- path: "/MedicineCareSelect", |
|
125 |
- }, |
|
126 |
- { |
|
127 |
- title: "댁내 온도 관리", |
|
128 |
- path: "/TemperatureManagementSelect", |
|
129 |
- }, |
|
130 |
- { |
|
131 |
- title: "문진표 작성", |
|
132 |
- path: "/Questionnaire", |
|
133 |
- }, |
|
134 |
- ], |
|
135 |
- }, |
|
136 |
- |
|
137 |
- { |
|
138 |
- title: "방문 관리", |
|
139 |
- prefix: "/Visit", |
|
140 |
- icon: ( |
|
141 |
- <DoorFrontIcon sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} /> |
|
142 |
- ), |
|
143 |
- childrens: [ |
|
144 |
- { |
|
145 |
- title: "방문 관리", |
|
146 |
- path: "/VisitSelect", |
|
147 |
- }, |
|
148 |
- ], |
|
149 |
- }, |
|
150 |
- { |
|
151 |
- title: "장비 관리", |
|
152 |
- icon: ( |
|
153 |
- <SettingsIcon |
|
154 |
- sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
155 |
- /> |
|
156 |
- ), |
|
157 |
- childrens: [ |
|
158 |
- { |
|
159 |
- title: "장비 조회", |
|
160 |
- path: "/EquipmentManagementSelect", |
|
161 |
- }, |
|
162 |
- { |
|
163 |
- title: "장비 문의 요청", |
|
164 |
- path: "/EquipmentInquiry", |
|
165 |
- }, |
|
166 |
- // { |
|
167 |
- // title: "장비 추가 요청", |
|
168 |
- // path: "/EquipmentManagementSelectAdd", |
|
169 |
- // }, |
|
170 |
- ], |
|
171 |
- }, |
|
172 |
- { |
|
173 |
- title: "문의게시판", |
|
174 |
- path: "/QandA", |
|
175 |
- icon: ( |
|
176 |
- <SpeakerPhoneIcon |
|
177 |
- sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
178 |
- /> |
|
179 |
- ), |
|
180 |
- }, |
|
181 |
- { |
|
182 |
- title: "설정", |
|
183 |
- icon: ( |
|
184 |
- <SettingsIcon |
|
185 |
- sx={{ fontSize: 20, color: "#ffffff", marginRight: 1 }} |
|
186 |
- /> |
|
187 |
- ), |
|
188 |
- childrens: [ |
|
189 |
- { |
|
190 |
- title: "위험 기준 관리", |
|
191 |
- path: "/RiskSet", |
|
192 |
- }, |
|
193 |
- { |
|
194 |
- title: "사용자 권한 관리", |
|
195 |
- path: "/AuthorityManagement", |
|
196 |
- }, |
|
197 |
- // { |
|
198 |
- // title: "장비 추가 요청", |
|
199 |
- // path: "/EquipmentManagementSelectAdd", |
|
200 |
- // }, |
|
201 |
- ], |
|
202 |
- }, |
|
289 |
+ }, |
|
203 | 290 |
]; |
204 | 291 |
|
205 | 292 |
function AllAppRoute() { |
... | ... | @@ -270,6 +357,12 @@ |
270 | 357 |
<Route path="/ProtectorSelect" element={<ProtectorSelect />}></Route> |
271 | 358 |
<Route path="/Questionnaire" element={<Questionnaire />}></Route> |
272 | 359 |
<Route path="/GuardianStatistics" element={<GuardianStatistics />}></Route> |
360 |
+ |
|
361 |
+ <Route path="/MedicineCareSelect_government" element={<MedicineCareSelect_government />}></Route> |
|
362 |
+ <Route path="/TemperatureManagementSelect_government" element={<TemperatureManagementSelect_government />}></Route> |
|
363 |
+ <Route path="/Questionnaire_government" element={<Questionnaire_government />}></Route> |
|
364 |
+ <Route path="/VisitSelect_government" element={<VisitSelect_government />}></Route> |
|
365 |
+ <Route path="/QandA_government" element={<QandA_government />}></Route> |
|
273 | 366 |
</Routes> |
274 | 367 |
); |
275 | 368 |
} |
+++ client/views/pages/callcenter/230215_backup_QandA.jsx
... | ... | @@ -0,0 +1,51 @@ |
1 | +import React from "react"; | |
2 | +import Button from "../../component/Button.jsx"; | |
3 | +import Table from "../../component/Table.jsx"; | |
4 | +import Modal from "../../component/Modal.jsx"; | |
5 | +import { useNavigate } from "react-router"; | |
6 | +import ContentTitle from "../../component/ContentTitle.jsx"; | |
7 | + | |
8 | +export default function QandA() { | |
9 | + const navigate = useNavigate(); | |
10 | + //게시판 | |
11 | + const thead = [ | |
12 | + "No", | |
13 | + "작성자", | |
14 | + "작성일자", | |
15 | + "상태", | |
16 | + ]; | |
17 | + const key = [ | |
18 | + "No", | |
19 | + "name", | |
20 | + "date", | |
21 | + "work", | |
22 | + ]; | |
23 | + const content = [ | |
24 | + { | |
25 | + No: 1, | |
26 | + name: "홍**", | |
27 | + date: "2022-08-01", | |
28 | + work: "답변완료" | |
29 | + }, | |
30 | + ]; | |
31 | + return ( | |
32 | + <main> | |
33 | + <div className="content-wrap"> | |
34 | + <ContentTitle contentTitle={"문의게시판"} /> | |
35 | + <div className="board-wrap"> | |
36 | + <div className="btn-wrap flex-end"> | |
37 | + <Button | |
38 | + className={"btn-small green-btn"} | |
39 | + btnName={"등록"} | |
40 | + onClick={() => { | |
41 | + navigate("/CallInsert"); | |
42 | + }} | |
43 | + /> | |
44 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
45 | + </div> | |
46 | + <Table className="equipment-detail" head={thead} contents={content} contentKey={key} /> | |
47 | + </div> | |
48 | + </div> | |
49 | + </main> | |
50 | + ); | |
51 | +} |
--- client/views/pages/callcenter/QandA.jsx
+++ client/views/pages/callcenter/QandA.jsx
... | ... | @@ -31,7 +31,7 @@ |
31 | 31 |
return ( |
32 | 32 |
<main> |
33 | 33 |
<div className="content-wrap"> |
34 |
- <ContentTitle contentTitle={"문의게시판"} /> |
|
34 |
+ <ContentTitle contentTitle={"QnA게시판"} /> |
|
35 | 35 |
<div className="board-wrap"> |
36 | 36 |
<div className="btn-wrap flex-end"> |
37 | 37 |
<Button |
+++ client/views/pages/callcenter/QandA_government.jsx
... | ... | @@ -0,0 +1,65 @@ |
1 | +import React from "react"; | |
2 | +import Button from "../../component/Button.jsx"; | |
3 | +import Table from "../../component/Table.jsx"; | |
4 | +import Modal from "../../component/Modal.jsx"; | |
5 | +import { useNavigate } from "react-router"; | |
6 | +import ContentTitle from "../../component/ContentTitle.jsx"; | |
7 | + | |
8 | +export default function QandA_government() { | |
9 | + const navigate = useNavigate(); | |
10 | + //게시판 | |
11 | + const thead = [ | |
12 | + "No", | |
13 | + "작성자", | |
14 | + "작성일자", | |
15 | + "관리기관", | |
16 | + "보호사", | |
17 | + "상태", | |
18 | + ]; | |
19 | + const key = [ | |
20 | + "No", | |
21 | + "name", | |
22 | + "date", | |
23 | + "agency", | |
24 | + "protect", | |
25 | + "work", | |
26 | + ]; | |
27 | + const content = [ | |
28 | + { | |
29 | + No: 2, | |
30 | + name: "정**", | |
31 | + date: "2022-08-01", | |
32 | + agency: "B복지관", | |
33 | + protect: "박복지", | |
34 | + work: "답변전" | |
35 | + }, | |
36 | + { | |
37 | + No: 1, | |
38 | + name: "홍**", | |
39 | + date: "2022-08-01", | |
40 | + agency: "A복지관", | |
41 | + protect: "홍길동", | |
42 | + work: "답변완료" | |
43 | + }, | |
44 | + ]; | |
45 | + return ( | |
46 | + <main> | |
47 | + <div className="content-wrap"> | |
48 | + <ContentTitle contentTitle={"QnA게시판"} /> | |
49 | + <div className="board-wrap"> | |
50 | + <div className="btn-wrap flex-end"> | |
51 | + <Button | |
52 | + className={"btn-small green-btn"} | |
53 | + btnName={"등록"} | |
54 | + onClick={() => { | |
55 | + navigate("/CallInsert"); | |
56 | + }} | |
57 | + /> | |
58 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
59 | + </div> | |
60 | + <Table className="equipment-detail" head={thead} contents={content} contentKey={key} /> | |
61 | + </div> | |
62 | + </div> | |
63 | + </main> | |
64 | + ); | |
65 | +} |
+++ client/views/pages/healthcare/230215_backup_Questionnaire.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 thead = ["No", "이름","시니어등록번호", "생년월일", "연락처", "주소", "문진표",]; | |
21 | + const key = ["No", "name","number", "birth", "phone", "address", "average"]; | |
22 | + const content = [ | |
23 | + { | |
24 | + No: 1, | |
25 | + name: "김복남", | |
26 | + number: "00000001", | |
27 | + birth: "1948.11.15", | |
28 | + phone: "010-1234-5678", | |
29 | + address: "경상북도 군위군 삼국유사면", | |
30 | + average: ( | |
31 | + <Button | |
32 | + className={"btn-small gray-btn"} | |
33 | + btnName={"작성하기"} | |
34 | + onClick={openModal} | |
35 | + /> | |
36 | + ), | |
37 | + }, | |
38 | + { | |
39 | + No: 2, | |
40 | + name: "홍길동", | |
41 | + number: "00000001", | |
42 | + birth: "1948.08.02", | |
43 | + phone: "010-1234-3333", | |
44 | + address: "경상북도 군위군 군위읍", | |
45 | + average: ( | |
46 | + <Button | |
47 | + className={"btn-small gray-btn"} | |
48 | + btnName={"보기"} | |
49 | + onClick={openModal} | |
50 | + /> | |
51 | + ), | |
52 | + }, | |
53 | + ]; | |
54 | + | |
55 | + return ( | |
56 | + <main> | |
57 | + <Modal open={modalOpen} close={closeModal} header="문진표 작성"> | |
58 | + <div className="board-wrap"> | |
59 | + <div> | |
60 | + <table className="margin-bottom2 questionnaire-table"> | |
61 | + <tr> | |
62 | + <th>흡연을 하십니까?</th> | |
63 | + <td className="flex-start"> | |
64 | + <input type="radio" /> | |
65 | + <label for="gender">예</label> | |
66 | + <input type="radio" /> | |
67 | + <label for="gender">아니요</label> | |
68 | + </td> | |
69 | + </tr> | |
70 | + <tr> | |
71 | + <th>음주를 하십니까?</th> | |
72 | + <td className="flex-start"> | |
73 | + <input type="radio" /> | |
74 | + <label for="gender">예</label> | |
75 | + <input type="radio" /> | |
76 | + <label for="gender">아니요</label> | |
77 | + </td> | |
78 | + </tr> | |
79 | + <tr> | |
80 | + <th>일주일에 운동을 몇회 하십니까?</th> | |
81 | + <td className="flex-start"> | |
82 | + <input type="radio" /> | |
83 | + <label for="gender">안함</label> | |
84 | + <input type="radio" /> | |
85 | + <label for="gender">3회 미만</label> | |
86 | + <input type="radio" /> | |
87 | + <label for="gender">3회 이상</label> | |
88 | + <input type="radio" /> | |
89 | + <label for="gender">매일</label> | |
90 | + </td> | |
91 | + </tr> | |
92 | + <tr> | |
93 | + <th>최근 3개월 동안 갑작스런 체중 변화가 있었습니까?</th> | |
94 | + <td className="flex-start"> | |
95 | + <input type="radio" /> | |
96 | + <label for="gender">예 - 증가</label> | |
97 | + <input type="radio" /> | |
98 | + <label for="gender">예 - 감소</label> | |
99 | + <input type="radio" /> | |
100 | + <label for="gender">아니요</label> | |
101 | + </td> | |
102 | + </tr> | |
103 | + <tr> | |
104 | + <th>현재 복용중인 약이 있으면 체크를 해주세요.</th> | |
105 | + <td className="flex-start"> | |
106 | + <input type="checkbox" /> | |
107 | + <label for="gender">없음</label> | |
108 | + <input type="checkbox" /> | |
109 | + <label for="gender">아스피린(항혈소판제)</label> | |
110 | + <input type="checkbox" /> | |
111 | + <label for="gender">당뇨약</label> | |
112 | + <input type="checkbox" /> | |
113 | + <label for="gender">고혈압약</label> | |
114 | + <input type="checkbox" /> | |
115 | + <label for="gender">기타</label><input type="text" /> | |
116 | + </td> | |
117 | + </tr> | |
118 | + </table> | |
119 | + </div> | |
120 | + <div> | |
121 | + <Button | |
122 | + className={"btn-100 green-btn"} | |
123 | + btnName={"닫기"} | |
124 | + onClick={closeModal} | |
125 | + /> | |
126 | + </div> | |
127 | + </div> | |
128 | + </Modal> | |
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/Questionnaire.jsx
+++ client/views/pages/healthcare/Questionnaire.jsx
... | ... | @@ -16,9 +16,17 @@ |
16 | 16 |
const closeModal = () => { |
17 | 17 |
setModalOpen(false); |
18 | 18 |
}; |
19 |
+ |
|
20 |
+ const [modalOpen2, setModalOpen2] = React.useState(false); |
|
21 |
+ const openModal2 = () => { |
|
22 |
+ setModalOpen2(true); |
|
23 |
+ }; |
|
24 |
+ const closeModal2 = () => { |
|
25 |
+ setModalOpen2(false); |
|
26 |
+ }; |
|
19 | 27 |
//게시판 |
20 |
- const thead = ["No", "이름","시니어등록번호", "생년월일", "연락처", "주소", "문진표",]; |
|
21 |
- const key = ["No", "name","number", "birth", "phone", "address", "average"]; |
|
28 |
+ const thead = ["No", "이름","시니어등록번호", "생년월일", "연락처", "주소", "문진표", "내원기록"]; |
|
29 |
+ const key = ["No", "name","number", "birth", "phone", "address", "average", "record"]; |
|
22 | 30 |
const content = [ |
23 | 31 |
{ |
24 | 32 |
No: 1, |
... | ... | @@ -32,6 +40,13 @@ |
32 | 40 |
className={"btn-small gray-btn"} |
33 | 41 |
btnName={"작성하기"} |
34 | 42 |
onClick={openModal} |
43 |
+ /> |
|
44 |
+ ), |
|
45 |
+ record: ( |
|
46 |
+ <Button |
|
47 |
+ className={"btn-small gray-btn"} |
|
48 |
+ btnName={"진료 내역"} |
|
49 |
+ onClick={openModal2} |
|
35 | 50 |
/> |
36 | 51 |
), |
37 | 52 |
}, |
... | ... | @@ -49,6 +64,35 @@ |
49 | 64 |
onClick={openModal} |
50 | 65 |
/> |
51 | 66 |
), |
67 |
+ record: ( |
|
68 |
+ <Button |
|
69 |
+ className={"btn-small gray-btn"} |
|
70 |
+ btnName={"진료 내역"} |
|
71 |
+ onClick={openModal2} |
|
72 |
+ /> |
|
73 |
+ ), |
|
74 |
+ }, |
|
75 |
+ ]; |
|
76 |
+ |
|
77 |
+ const thead1 = [ |
|
78 |
+ "No", |
|
79 |
+ "진료 일자", |
|
80 |
+ "진료 사유", |
|
81 |
+ "진료 내용", |
|
82 |
+ "심전도 데이터", |
|
83 |
+ "혈압 데이터", |
|
84 |
+ "기록 작성자 명", |
|
85 |
+ ]; |
|
86 |
+ const key1 = ["No", "date", "reason","content", "ecg", "blood", "name"]; |
|
87 |
+ const content1 = [ |
|
88 |
+ { |
|
89 |
+ No: 1, |
|
90 |
+ date: "2023-01-25", |
|
91 |
+ reason: "정기 내원", |
|
92 |
+ content: "건강검진 진행, 이상 없음", |
|
93 |
+ ecg: "data", |
|
94 |
+ blood: "data", |
|
95 |
+ name: "정간호", |
|
52 | 96 |
}, |
53 | 97 |
]; |
54 | 98 |
|
... | ... | @@ -126,6 +170,37 @@ |
126 | 170 |
</div> |
127 | 171 |
</div> |
128 | 172 |
</Modal> |
173 |
+ |
|
174 |
+ <Modal open={modalOpen2} close={closeModal2} header="진료 기록"> |
|
175 |
+ <div className="board-wrap"> |
|
176 |
+ <div className="btn-wrap flex-end margin-bottom"> |
|
177 |
+ <Button |
|
178 |
+ className={"btn-small green-btn"} |
|
179 |
+ btnName={"등록"} |
|
180 |
+ onClick={() => { |
|
181 |
+ // navigate("/SeniorInsert"); |
|
182 |
+ }} |
|
183 |
+ /> |
|
184 |
+ <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
185 |
+ </div> |
|
186 |
+ <div> |
|
187 |
+ <Table |
|
188 |
+ className={"caregiver-user"} |
|
189 |
+ head={thead1} |
|
190 |
+ contents={content1} |
|
191 |
+ contentKey={key1} |
|
192 |
+ /> |
|
193 |
+ </div> |
|
194 |
+ <div> |
|
195 |
+ <Button |
|
196 |
+ className={"btn-100 green-btn"} |
|
197 |
+ btnName={"닫기"} |
|
198 |
+ onClick={closeModal2} |
|
199 |
+ /> |
|
200 |
+ </div> |
|
201 |
+ </div> |
|
202 |
+ </Modal> |
|
203 |
+ |
|
129 | 204 |
<div className="content-wrap"> |
130 | 205 |
<ContentTitle contentTitle={"문진표 조회"} /> |
131 | 206 |
<div> |
+++ client/views/pages/healthcare/Questionnaire_government.jsx
... | ... | @@ -0,0 +1,224 @@ |
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_government() { | |
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", "agency", "protect", "average", "record"]; | |
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 | + agency: "A복지관", | |
39 | + protect: "홍길동", | |
40 | + average: ( | |
41 | + <Button | |
42 | + className={"btn-small gray-btn"} | |
43 | + btnName={"작성하기"} | |
44 | + onClick={openModal} | |
45 | + /> | |
46 | + ), | |
47 | + record: ( | |
48 | + <Button | |
49 | + className={"btn-small gray-btn"} | |
50 | + btnName={"진료 내역"} | |
51 | + onClick={openModal2} | |
52 | + /> | |
53 | + ), | |
54 | + }, | |
55 | + { | |
56 | + No: 2, | |
57 | + name: "홍길동", | |
58 | + number: "00000001", | |
59 | + birth: "1948.08.02", | |
60 | + phone: "010-1234-3333", | |
61 | + address: "경상북도 군위군 군위읍", | |
62 | + agency: "B복지관", | |
63 | + protect: "박길동", | |
64 | + average: ( | |
65 | + <Button | |
66 | + className={"btn-small gray-btn"} | |
67 | + btnName={"보기"} | |
68 | + onClick={openModal} | |
69 | + /> | |
70 | + ), | |
71 | + record: ( | |
72 | + <Button | |
73 | + className={"btn-small gray-btn"} | |
74 | + btnName={"진료 내역"} | |
75 | + onClick={openModal2} | |
76 | + /> | |
77 | + ), | |
78 | + }, | |
79 | + ]; | |
80 | + | |
81 | + const thead1 = [ | |
82 | + "No", | |
83 | + "진료 일자", | |
84 | + "진료 사유", | |
85 | + "진료 내용", | |
86 | + "심전도 데이터", | |
87 | + "혈압 데이터", | |
88 | + "기록 작성자 명", | |
89 | + ]; | |
90 | + const key1 = ["No", "date", "reason","content", "ecg", "blood", "name"]; | |
91 | + const content1 = [ | |
92 | + { | |
93 | + No: 1, | |
94 | + date: "2023-01-25", | |
95 | + reason: "정기 내원", | |
96 | + content: "건강검진 진행, 이상 없음", | |
97 | + ecg: "data", | |
98 | + blood: "data", | |
99 | + name: "정간호", | |
100 | + }, | |
101 | + ]; | |
102 | + | |
103 | + return ( | |
104 | + <main> | |
105 | + <Modal open={modalOpen} close={closeModal} header="문진표 작성"> | |
106 | + <div className="board-wrap"> | |
107 | + <div> | |
108 | + <table className="margin-bottom2 questionnaire-table"> | |
109 | + <tr> | |
110 | + <th>흡연을 하십니까?</th> | |
111 | + <td className="flex-start"> | |
112 | + <input type="radio" /> | |
113 | + <label for="gender">예</label> | |
114 | + <input type="radio" /> | |
115 | + <label for="gender">아니요</label> | |
116 | + </td> | |
117 | + </tr> | |
118 | + <tr> | |
119 | + <th>음주를 하십니까?</th> | |
120 | + <td className="flex-start"> | |
121 | + <input type="radio" /> | |
122 | + <label for="gender">예</label> | |
123 | + <input type="radio" /> | |
124 | + <label for="gender">아니요</label> | |
125 | + </td> | |
126 | + </tr> | |
127 | + <tr> | |
128 | + <th>일주일에 운동을 몇회 하십니까?</th> | |
129 | + <td className="flex-start"> | |
130 | + <input type="radio" /> | |
131 | + <label for="gender">안함</label> | |
132 | + <input type="radio" /> | |
133 | + <label for="gender">3회 미만</label> | |
134 | + <input type="radio" /> | |
135 | + <label for="gender">3회 이상</label> | |
136 | + <input type="radio" /> | |
137 | + <label for="gender">매일</label> | |
138 | + </td> | |
139 | + </tr> | |
140 | + <tr> | |
141 | + <th>최근 3개월 동안 갑작스런 체중 변화가 있었습니까?</th> | |
142 | + <td className="flex-start"> | |
143 | + <input type="radio" /> | |
144 | + <label for="gender">예 - 증가</label> | |
145 | + <input type="radio" /> | |
146 | + <label for="gender">예 - 감소</label> | |
147 | + <input type="radio" /> | |
148 | + <label for="gender">아니요</label> | |
149 | + </td> | |
150 | + </tr> | |
151 | + <tr> | |
152 | + <th>현재 복용중인 약이 있으면 체크를 해주세요.</th> | |
153 | + <td className="flex-start"> | |
154 | + <input type="checkbox" /> | |
155 | + <label for="gender">없음</label> | |
156 | + <input type="checkbox" /> | |
157 | + <label for="gender">아스피린(항혈소판제)</label> | |
158 | + <input type="checkbox" /> | |
159 | + <label for="gender">당뇨약</label> | |
160 | + <input type="checkbox" /> | |
161 | + <label for="gender">고혈압약</label> | |
162 | + <input type="checkbox" /> | |
163 | + <label for="gender">기타</label><input type="text" /> | |
164 | + </td> | |
165 | + </tr> | |
166 | + </table> | |
167 | + </div> | |
168 | + <div> | |
169 | + <Button | |
170 | + className={"btn-100 green-btn"} | |
171 | + btnName={"닫기"} | |
172 | + onClick={closeModal} | |
173 | + /> | |
174 | + </div> | |
175 | + </div> | |
176 | + </Modal> | |
177 | + | |
178 | + <Modal open={modalOpen2} close={closeModal2} header="진료 기록"> | |
179 | + <div className="board-wrap"> | |
180 | + <div className="btn-wrap flex-end margin-bottom"> | |
181 | + <Button | |
182 | + className={"btn-small green-btn"} | |
183 | + btnName={"등록"} | |
184 | + onClick={() => { | |
185 | + // navigate("/SeniorInsert"); | |
186 | + }} | |
187 | + /> | |
188 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
189 | + </div> | |
190 | + <div> | |
191 | + <Table | |
192 | + className={"caregiver-user"} | |
193 | + head={thead1} | |
194 | + contents={content1} | |
195 | + contentKey={key1} | |
196 | + /> | |
197 | + </div> | |
198 | + <div> | |
199 | + <Button | |
200 | + className={"btn-100 green-btn"} | |
201 | + btnName={"닫기"} | |
202 | + onClick={closeModal2} | |
203 | + /> | |
204 | + </div> | |
205 | + </div> | |
206 | + </Modal> | |
207 | + | |
208 | + <div className="content-wrap"> | |
209 | + <ContentTitle contentTitle={"문진표 조회"} /> | |
210 | + <div> | |
211 | + <DetailSearch /> | |
212 | + <div className="board-wrap"> | |
213 | + <Table | |
214 | + className={"medicine-table"} | |
215 | + head={thead} | |
216 | + contents={content} | |
217 | + contentKey={key} | |
218 | + /> | |
219 | + </div> | |
220 | + </div> | |
221 | + </div> | |
222 | + </main> | |
223 | + ); | |
224 | +} |
+++ client/views/pages/healthcare/medicinecare/MedicineCareSelect_government.jsx
... | ... | @@ -0,0 +1,59 @@ |
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 | + | |
8 | +export default function MedicineCareSelect_government() { | |
9 | + const navigate = useNavigate(); | |
10 | + | |
11 | + //게시판 | |
12 | + const thead = ["No", "이름", "생년월일", "연락처", "주소", "관리기관","보호사","최근 3일 복약률",]; | |
13 | + const key = ["No", "name", "birth", "phone", "address","agency","protect", "average"]; | |
14 | + const content = [ | |
15 | + { | |
16 | + No: 1, | |
17 | + name: "김복남", | |
18 | + birth: "1948.11.15", | |
19 | + phone: "010-1234-5678", | |
20 | + address: "경상북도 군위군 삼국유사면", | |
21 | + agency: "A복지관", | |
22 | + protect: "홍길동", | |
23 | + average: "0%", | |
24 | + }, | |
25 | + { | |
26 | + No: 2, | |
27 | + name: "홍길동", | |
28 | + birth: "1948.08.02", | |
29 | + phone: "010-1234-3333", | |
30 | + address: "경상북도 군위군 군위읍", | |
31 | + agency: "B복지관", | |
32 | + protect: "박길동", | |
33 | + average: "80%", | |
34 | + }, | |
35 | + ]; | |
36 | + | |
37 | + return ( | |
38 | + <main> | |
39 | + <div className="content-wrap"> | |
40 | + <ContentTitle contentTitle={"복약 조회"} /> | |
41 | + <div> | |
42 | + <DetailSearch /> | |
43 | + <div className="board-wrap"> | |
44 | + <SubTitle explanation={"대상자 클릭 시 상세페이지로 이동합니다."} className="margin-bottom" /> | |
45 | + <Table | |
46 | + className={"medicine-table"} | |
47 | + head={thead} | |
48 | + contents={content} | |
49 | + contentKey={key} | |
50 | + onClick={() => { | |
51 | + navigate("/MedicineCareSelectOne"); | |
52 | + }} | |
53 | + /> | |
54 | + </div> | |
55 | + </div> | |
56 | + </div> | |
57 | + </main> | |
58 | + ); | |
59 | +} |
+++ client/views/pages/healthcare/temperature/TemperatureManagementSelect_government.jsx
... | ... | @@ -0,0 +1,53 @@ |
1 | +import React from "react"; | |
2 | +import Table from "../../../component/Table.jsx"; | |
3 | +import DetailSearch from "../../../component/DetailSearch.jsx"; | |
4 | +import ContentTitle from "../../../component/ContentTitle.jsx"; | |
5 | +import SubTitle from "../../../component/SubTitle.jsx"; | |
6 | +import { useNavigate } from 'react-router'; | |
7 | + | |
8 | +export default function TemperatureManagementSelect_government() { | |
9 | + const navigate = useNavigate(); | |
10 | + //게시판 | |
11 | + const thead = ["No", "이름", "생년월일", "연락처", "주소", "관리기관","보호사","최근 온도",]; | |
12 | + const key = ["No", "name", "birth", "phone", "address","agency", "protect","temp",]; | |
13 | + const content = [ | |
14 | + { | |
15 | + No: 1, | |
16 | + name: "김복남", | |
17 | + birth: "1948.11.15", | |
18 | + phone: "010-1234-5678", | |
19 | + address: "경상북도 군위군 삼국유사면", | |
20 | + agency: "A복지관", | |
21 | + protect: "홍길동", | |
22 | + temp: "18°C", | |
23 | + }, | |
24 | + { | |
25 | + No: 2, | |
26 | + name: "홍길동", | |
27 | + birth: "1945.05.08", | |
28 | + phone: "010-1234-5678", | |
29 | + address: "경상북도 군위군 군위읍", | |
30 | + agency: "B복지관", | |
31 | + protect: "박길동", | |
32 | + temp: "10°C", | |
33 | + }, | |
34 | + ]; | |
35 | + return ( | |
36 | + <main> | |
37 | + <div className="content-wrap"> | |
38 | + <ContentTitle contentTitle={"댁내 온도 조회"} /> | |
39 | + <DetailSearch /> | |
40 | + <div className="board-wrap"> | |
41 | + <SubTitle className="margin-bottom" explanation={"대상자 클릭 시 최근 일주일 댁내 온도를 확인할 수 있습니다."}/> | |
42 | + <Table | |
43 | + className={"temperature-table"} | |
44 | + head={thead} | |
45 | + contents={content} | |
46 | + contentKey={key} | |
47 | + onClick={()=>{navigate('/TemperatureManagementSelectOne')}} | |
48 | + /> | |
49 | + </div> | |
50 | + </div> | |
51 | + </main> | |
52 | + ); | |
53 | +} |
+++ client/views/pages/main/230215_backup_Main.jsx
... | ... | @@ -0,0 +1,159 @@ |
1 | +import React from "react"; | |
2 | +import Title from "../../component/Title.jsx"; | |
3 | +import Table from "../../component/Table.jsx"; | |
4 | +import Map from "../../component/chart/Map.jsx"; | |
5 | +import Chart1 from "../../component/chart/Chart1.jsx"; | |
6 | +import Chart2 from "../../component/chart/Chart2.jsx"; | |
7 | +import Calendar from "../../component/Calendar.jsx"; | |
8 | +import AddCircleIcon from '@mui/icons-material/AddCircle'; | |
9 | +import PersonIcon from '@mui/icons-material/Person'; | |
10 | + | |
11 | + | |
12 | +export default function Main2() { | |
13 | + | |
14 | + const tableHead = [ | |
15 | + "연번", | |
16 | + "계약업체명", | |
17 | + "반납/교환", | |
18 | + "담당자 연락처", | |
19 | + "주소", | |
20 | + ]; | |
21 | + const Key = [ | |
22 | + "name", | |
23 | + "level_of_care", | |
24 | + "birth", | |
25 | + "phone", | |
26 | + "address", | |
27 | + ]; | |
28 | + const content = [ | |
29 | + { | |
30 | + name: "1", | |
31 | + level_of_care: "A복지관", | |
32 | + birth: "교환", | |
33 | + phone: "010-1234-5678", | |
34 | + address: "경상북도 군위군 삼국유사면", | |
35 | + }, | |
36 | + { | |
37 | + name: "2", | |
38 | + level_of_care: "B병원", | |
39 | + birth: "반납", | |
40 | + phone: "010-3333-3333", | |
41 | + address: "경상북도 군위군 삼국유사면", | |
42 | + }, | |
43 | + { | |
44 | + name: "3", | |
45 | + level_of_care: "C복지관", | |
46 | + birth: "교환", | |
47 | + phone: "010-3333-4444", | |
48 | + address: "경상북도 군위군 삼국유사면", | |
49 | + }, | |
50 | + { | |
51 | + name: "4", | |
52 | + level_of_care: "D복지관", | |
53 | + birth: "교환", | |
54 | + phone: "010-3333-5555", | |
55 | + address: "경상북도 군위군 삼국유사면", | |
56 | + }, | |
57 | + { | |
58 | + name: "5", | |
59 | + level_of_care: "E복지관", | |
60 | + birth: "반납", | |
61 | + phone: "010-3333-6666", | |
62 | + address: "경상북도 군위군 삼국유사면", | |
63 | + }, | |
64 | + ]; | |
65 | + const tableHead2 = [ | |
66 | + "연번", | |
67 | + "계약업체명", | |
68 | + "반납/교환", | |
69 | + "담당자 연락처", | |
70 | + "주소", | |
71 | + ]; | |
72 | + const Key2 = [ | |
73 | + "name", | |
74 | + "level_of_care", | |
75 | + "birth", | |
76 | + "phone", | |
77 | + "address", | |
78 | + ]; | |
79 | + const content2 = [ | |
80 | + { | |
81 | + name: "1", | |
82 | + level_of_care: "A복지관", | |
83 | + birth: "교환", | |
84 | + phone: "010-1234-5678", | |
85 | + address: "경상북도 군위군 삼국유사면", | |
86 | + }, | |
87 | + { | |
88 | + name: "2", | |
89 | + level_of_care: "B병원", | |
90 | + birth: "반납", | |
91 | + phone: "010-3333-3333", | |
92 | + address: "경상북도 군위군 삼국유사면", | |
93 | + }, | |
94 | + { | |
95 | + name: "3", | |
96 | + level_of_care: "C복지관", | |
97 | + birth: "교환", | |
98 | + phone: "010-3333-4444", | |
99 | + address: "경상북도 군위군 삼국유사면", | |
100 | + }, | |
101 | + { | |
102 | + name: "4", | |
103 | + level_of_care: "D복지관", | |
104 | + birth: "교환", | |
105 | + phone: "010-3333-5555", | |
106 | + address: "경상북도 군위군 삼국유사면", | |
107 | + }, | |
108 | + { | |
109 | + name: "5", | |
110 | + level_of_care: "E복지관", | |
111 | + birth: "반납", | |
112 | + phone: "010-3333-6666", | |
113 | + address: "경상북도 군위군 삼국유사면", | |
114 | + }, | |
115 | + ]; | |
116 | + | |
117 | + return ( | |
118 | + <main> | |
119 | + <div className="main-grid"> | |
120 | + <ul className="content-box statistics flex combine-left"> | |
121 | + <li> | |
122 | + <p>전체 장비 대여수</p> | |
123 | + <p>200개</p> | |
124 | + </li> | |
125 | + <li> | |
126 | + <p>계약 업체 수</p> | |
127 | + <p>20개 </p> | |
128 | + </li> | |
129 | + <li> | |
130 | + <p>교환 예정 장비 수</p> | |
131 | + <p>3개</p> | |
132 | + </li> | |
133 | + <li> | |
134 | + <p>반납 예정 장비 수</p> | |
135 | + <p>10개</p> | |
136 | + </li> | |
137 | + </ul> | |
138 | + <div className="content-box combine-left"> | |
139 | + <div className="flex margin-bottom"> | |
140 | + <Title title={"금일 반납/교환 예정 리스트"} explanation={"장비 반납/교환 리스트를 확인하세요."} /> | |
141 | + <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} /> | |
142 | + </div> | |
143 | + <div className="flex" > | |
144 | + <div style={{ width:"50%" }}><Calendar /></div> | |
145 | + <div style={{ width:"50%" }}><Table head={tableHead} contents={content} contentKey={Key} /></div> | |
146 | + </div> | |
147 | + | |
148 | + </div> | |
149 | + <div className="content-box combine-left"> | |
150 | + <div className="flex margin-bottom"> | |
151 | + <Title title={"약상자 추가 예정 리스트"} explanation={"장비 반납/교환 리스트를 확인하세요."} /> | |
152 | + <AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} /> | |
153 | + </div> | |
154 | + <Table head={tableHead2} contents={content2} contentKey={Key2} /> | |
155 | + </div> | |
156 | + </div> | |
157 | + </main> | |
158 | + ); | |
159 | +} |
--- client/views/pages/main/Main.jsx
+++ client/views/pages/main/Main.jsx
... | ... | @@ -127,17 +127,17 @@ |
127 | 127 |
<p>20개 </p> |
128 | 128 |
</li> |
129 | 129 |
<li> |
130 |
- <p>교환 예정 장비 수</p> |
|
131 |
- <p>3개</p> |
|
130 |
+ <p>교환/수리 장비 수</p> |
|
131 |
+ <p>13개</p> |
|
132 | 132 |
</li> |
133 | 133 |
<li> |
134 |
- <p>반납 예정 장비 수</p> |
|
135 |
- <p>10개</p> |
|
134 |
+ <p>불량 장비 수</p> |
|
135 |
+ <p>1개</p> |
|
136 | 136 |
</li> |
137 | 137 |
</ul> |
138 | 138 |
<div className="content-box combine-left"> |
139 | 139 |
<div className="flex margin-bottom"> |
140 |
- <Title title={"금일 반납/교환 예정 리스트"} explanation={"장비 반납/교환 리스트를 확인하세요."} /> |
|
140 |
+ <Title title={"교환/수리 리스트"} explanation={"장비 교환/수리 리스트를 확인하세요."} /> |
|
141 | 141 |
<AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} /> |
142 | 142 |
</div> |
143 | 143 |
<div className="flex" > |
... | ... | @@ -148,7 +148,7 @@ |
148 | 148 |
</div> |
149 | 149 |
<div className="content-box combine-left"> |
150 | 150 |
<div className="flex margin-bottom"> |
151 |
- <Title title={"약상자 추가 예정 리스트"} explanation={"장비 반납/교환 리스트를 확인하세요."} /> |
|
151 |
+ <Title title={"장비 추가 리스트"} explanation={"장비 추가 리스트를 확인하세요."} /> |
|
152 | 152 |
<AddCircleIcon sx={{ fontSize: 20, color: "#1976d2" }} /> |
153 | 153 |
</div> |
154 | 154 |
<Table head={tableHead2} contents={content2} contentKey={Key2} /> |
+++ client/views/pages/senior_management/230215_backup_SeniorInsert.jsx
... | ... | @@ -0,0 +1,101 @@ |
1 | +import React from "react"; | |
2 | +import Button from "../../component/Button.jsx"; | |
3 | +import ContentTitle from "../../component/ContentTitle.jsx"; | |
4 | +import { useNavigate } from "react-router"; | |
5 | + | |
6 | +export default function SeniorInsert() { | |
7 | + const navigate = useNavigate(); | |
8 | + return ( | |
9 | + <main> | |
10 | + <div className="content-wrap row"> | |
11 | + <ContentTitle contentTitle={"시니어 등록"} /> | |
12 | + <table className="margin-bottom2 senior-insert"> | |
13 | + <tr> | |
14 | + <th>이름</th> | |
15 | + <td> | |
16 | + <input type="text" /> | |
17 | + </td> | |
18 | + <th>생년월일</th> | |
19 | + <td> | |
20 | + <div className="flex"> | |
21 | + <select name="year" id="year"> | |
22 | + <option value="">년</option> | |
23 | + </select> | |
24 | + <select name="month" id="month"> | |
25 | + <option value="">월</option> | |
26 | + </select> | |
27 | + <select name="days" id="days"> | |
28 | + <option value="">일</option> | |
29 | + </select> | |
30 | + </div> | |
31 | + </td> | |
32 | + </tr> | |
33 | + <tr> | |
34 | + <th>성별</th> | |
35 | + <td className="flex-start gender"> | |
36 | + <div className="flex-start"> | |
37 | + <input type="checkbox"></input> | |
38 | + <label for="gender">남</label> | |
39 | + </div> | |
40 | + <div className="flex-start"> | |
41 | + <input type="checkbox"></input> | |
42 | + <label for="gender">여</label> | |
43 | + </div> | |
44 | + </td> | |
45 | + | |
46 | + </tr> | |
47 | + <tr> | |
48 | + <th>연락처</th> | |
49 | + <td colSpan={3}> | |
50 | + <input type="text" /> | |
51 | + </td> | |
52 | + </tr> | |
53 | + <tr> | |
54 | + <th>주소</th> | |
55 | + <td colSpan={3}> | |
56 | + <input type="text" /> | |
57 | + </td> | |
58 | + </tr> | |
59 | + <tr> | |
60 | + <th>시니어등록번호</th> | |
61 | + <td colSpan={3} className="flex"> | |
62 | + <input type="text" placeholder="생성하기 버튼 클릭 시 자동으로 생성됩니다."/> | |
63 | + <Button | |
64 | + className={"btn-large gray-btn"} | |
65 | + btnName={"생성하기"} | |
66 | + /> | |
67 | + </td> | |
68 | + </tr> | |
69 | + {/* <tr> | |
70 | + <th>복용중인 약</th> | |
71 | + <td colSpan={3}> | |
72 | + <textarea className="medicine" cols="30" rows="2"></textarea> | |
73 | + </td> | |
74 | + </tr> | |
75 | + <tr> | |
76 | + <th>기저질환</th> | |
77 | + <td colSpan={3}> | |
78 | + <textarea cols="30" rows="10"></textarea> | |
79 | + </td> | |
80 | + </tr> */} | |
81 | + </table> | |
82 | + <div className="btn-wrap flex-center"> | |
83 | + <Button | |
84 | + className={"btn-large gray-btn"} | |
85 | + btnName={"이전"} | |
86 | + onClick={() => { | |
87 | + navigate("/SeniorSelect"); | |
88 | + }} | |
89 | + /> | |
90 | + <Button | |
91 | + className={"btn-large green-btn"} | |
92 | + btnName={"등록"} | |
93 | + onClick={() => { | |
94 | + navigate("/SeniorSelect"); | |
95 | + }} | |
96 | + /> | |
97 | + </div> | |
98 | + </div> | |
99 | + </main> | |
100 | + ); | |
101 | +} |
--- client/views/pages/senior_management/SeniorInsert.jsx
+++ client/views/pages/senior_management/SeniorInsert.jsx
... | ... | @@ -84,7 +84,7 @@ |
84 | 84 |
className={"btn-large gray-btn"} |
85 | 85 |
btnName={"이전"} |
86 | 86 |
onClick={() => { |
87 |
- navigate("/SeniorSelect"); |
|
87 |
+ navigate("/UserAuthoriySelect_admin"); |
|
88 | 88 |
}} |
89 | 89 |
/> |
90 | 90 |
<Button |
+++ client/views/pages/user_management/230215_backup_UserAuthoriySelect_admin.jsx
... | ... | @@ -0,0 +1,239 @@ |
1 | +import React from "react"; | |
2 | +import Table from "../../component/Table.jsx"; | |
3 | +import Button from "../../component/Button.jsx"; | |
4 | +import SubTitle from "../../component/SubTitle.jsx"; | |
5 | +import Modal from "../../component/Modal.jsx"; | |
6 | +import { useNavigate } from "react-router"; | |
7 | + | |
8 | +export default function UserAuthoriySelect_admin() { | |
9 | + const navigate = useNavigate(); | |
10 | + const [modalOpen, setModalOpen] = React.useState(false); | |
11 | + const openModal = () => { | |
12 | + setModalOpen(true); | |
13 | + }; | |
14 | + const closeModal = () => { | |
15 | + setModalOpen(false); | |
16 | + }; | |
17 | + | |
18 | + const thead1 = [ | |
19 | + "No", | |
20 | + "시니어 이름", | |
21 | + "시니어 등록번호", | |
22 | + "시니어 연락처", | |
23 | + "성별", | |
24 | + "생년월일", | |
25 | + "주소", | |
26 | + "대상자 관리", | |
27 | + ]; | |
28 | + const key1 = ["No", "name", "Id","call", "gender", "birth", "address", "management"]; | |
29 | + const content1 = [ | |
30 | + { | |
31 | + No: 1, | |
32 | + name: "김복남", | |
33 | + Id: "20230131", | |
34 | + call: "010-1234-1234", | |
35 | + gender: "여", | |
36 | + birth: "1948.11.15", | |
37 | + address: "경상북도 군위군 삼국유사면", | |
38 | + management: ( | |
39 | + <Button | |
40 | + className={"btn-small gray-btn"} | |
41 | + btnName={"보호자(가족) 보기"} | |
42 | + onClick={openModal} | |
43 | + /> | |
44 | + ), | |
45 | + }, | |
46 | + ]; | |
47 | + | |
48 | + const thead2 = [ | |
49 | + "No", | |
50 | + "시니어 이름", | |
51 | + "시니어 등록번호", | |
52 | + "시니어 연락처", | |
53 | + "성별", | |
54 | + "생년월일", | |
55 | + "주소", | |
56 | + "담당 복지사(연락처)", | |
57 | + "대상자 관리", | |
58 | + ]; | |
59 | + const key2 = [ | |
60 | + "No", "name", "Id","call", "gender", "birth", "address", "protect","management" | |
61 | + ]; | |
62 | + const content2 = [ | |
63 | + { | |
64 | + No: 1, | |
65 | + name: "김복남", | |
66 | + Id: "20230131", | |
67 | + call:"010-1234-1234", | |
68 | + gender: "여", | |
69 | + birth: "1948.11.15", | |
70 | + address: "경상북도 군위군 삼국유사면", | |
71 | + protect: "홍길동(010-1234-1234)", | |
72 | + management: ( | |
73 | + <Button | |
74 | + className={"btn-small gray-btn"} | |
75 | + btnName={"보호자(가족) 보기"} | |
76 | + onClick={openModal} | |
77 | + /> | |
78 | + ), | |
79 | + }, | |
80 | + ]; | |
81 | + const thead3 = [ | |
82 | + "No", | |
83 | + "사용자명", | |
84 | + "사용자ID", | |
85 | + "대상자와의 관계", | |
86 | + "보호자 연락처", | |
87 | + ]; | |
88 | + const key3 = [ | |
89 | + "No", | |
90 | + "name", | |
91 | + "Id", | |
92 | + "relationship", | |
93 | + "phone", | |
94 | + ]; | |
95 | + const content3 = [ | |
96 | + { | |
97 | + No: 1, | |
98 | + name: "김훈", | |
99 | + Id: "admin2", | |
100 | + relationship: "아들", | |
101 | + phone: "010-1234-1234", | |
102 | + }, | |
103 | + ]; | |
104 | + const thead4 = [ | |
105 | + "No", | |
106 | + "어르신 성함", | |
107 | + "사용자등록번호", | |
108 | + "성별", | |
109 | + "생년월일", | |
110 | + "주소", | |
111 | + "관계", | |
112 | + ]; | |
113 | + const key4 = ["No", "name", "Id", "gender", "birth", "address", "management"]; | |
114 | + const content4 = [ | |
115 | + { | |
116 | + No: 1, | |
117 | + name: "김복남", | |
118 | + Id: "20230131", | |
119 | + gender: "여", | |
120 | + birth: "1948.11.15", | |
121 | + address: "경상북도 군위군 삼국유사면", | |
122 | + management: "부" | |
123 | + }, | |
124 | + ]; | |
125 | + | |
126 | + | |
127 | + | |
128 | + const data = [ | |
129 | + { | |
130 | + id: 1, | |
131 | + title: "내가 관리하는 시니어(노인)", | |
132 | + description: ( | |
133 | + <Table | |
134 | + className={"protector-user"} | |
135 | + head={thead1} | |
136 | + contents={content1} | |
137 | + contentKey={key1} | |
138 | + /> | |
139 | + ), | |
140 | + }, | |
141 | + { | |
142 | + id: 2, | |
143 | + title: "전체 시니어(노인)", | |
144 | + description: ( | |
145 | + <Table | |
146 | + className={"caregiver-user"} | |
147 | + head={thead2} | |
148 | + contents={content2} | |
149 | + contentKey={key2} | |
150 | + /> | |
151 | + ), | |
152 | + }, | |
153 | + ]; | |
154 | + const [index, setIndex] = React.useState(1); | |
155 | + return ( | |
156 | + <main> | |
157 | + <Modal open={modalOpen} close={closeModal} header="'김복남'님의 가족"> | |
158 | + <div className="board-wrap"> | |
159 | + <div className="btn-wrap flex-end margin-bottom"> | |
160 | + <Button | |
161 | + className={"btn-small green-btn"} | |
162 | + btnName={"등록"} | |
163 | + onClick={() => { | |
164 | + navigate("/SeniorInsert"); | |
165 | + }} | |
166 | + /> | |
167 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
168 | + </div> | |
169 | + <div> | |
170 | + <Table | |
171 | + className={"caregiver-user"} | |
172 | + head={thead3} | |
173 | + contents={content3} | |
174 | + contentKey={key3} | |
175 | + /> | |
176 | + </div> | |
177 | + <div> | |
178 | + <Button | |
179 | + className={"btn-100 green-btn"} | |
180 | + btnName={"닫기"} | |
181 | + onClick={closeModal} | |
182 | + /> | |
183 | + </div> | |
184 | + </div> | |
185 | + </Modal> | |
186 | + | |
187 | + <div className="tab-container"> | |
188 | + <ul className="tab-menu"> | |
189 | + {data.map((item) => ( | |
190 | + <li | |
191 | + key={item.id} | |
192 | + className={index === item.id ? "active" : null} | |
193 | + onClick={() => setIndex(item.id)} | |
194 | + > | |
195 | + {item.title} | |
196 | + </li> | |
197 | + ))} | |
198 | + </ul> | |
199 | + <div className="content-wrap"> | |
200 | + <div className="search-management flex-start margin-bottom2"> | |
201 | + <select name="management-agency"> | |
202 | + <option value="기관전체">전체</option> | |
203 | + <option value="군위군청">시니어</option> | |
204 | + <option value="대구보훈병원">복지사</option> | |
205 | + <option value="대구보훈병원">보호자</option> | |
206 | + </select> | |
207 | + <select> | |
208 | + <option value="이름">이름</option> | |
209 | + <option value="아이디">아이디</option> | |
210 | + <option value="아이디">등록번호</option> | |
211 | + </select> | |
212 | + <input type="text" /> | |
213 | + <Button | |
214 | + className={"btn-small gray-btn"} | |
215 | + btnName={"검색"} | |
216 | + /> | |
217 | + </div> | |
218 | + <div className="btn-wrap flex-end"> | |
219 | + <Button | |
220 | + className={"btn-small green-btn"} | |
221 | + btnName={"등록"} | |
222 | + onClick={() => { | |
223 | + navigate("/SeniorInsert"); | |
224 | + }} | |
225 | + /> | |
226 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
227 | + </div> | |
228 | + <ul className="tab-content"> | |
229 | + {data | |
230 | + .filter((item) => index === item.id) | |
231 | + .map((item) => ( | |
232 | + <li>{item.description}</li> | |
233 | + ))} | |
234 | + </ul> | |
235 | + </div> | |
236 | + </div> | |
237 | + </main> | |
238 | + ); | |
239 | +} |
--- client/views/pages/user_management/UserAuthoriySelect.jsx
+++ client/views/pages/user_management/UserAuthoriySelect.jsx
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 |
className = `${className} sub-nav ${open}`; //[className, 'sub-nav', open].join(' ') |
21 | 21 |
return <li className={className}> |
22 | 22 |
<a href={href ?? '#'} onClick={() => setOpend(open ? '' : 'open')} className="max-agency"> |
23 |
- <span>{title}</span><button>추가</button> |
|
23 |
+ <span>{title}</span><button>관리기관 추가</button> |
|
24 | 24 |
</a> |
25 | 25 |
{open && <ul id="venue-scope-options"> |
26 | 26 |
{children} |
... | ... | @@ -211,7 +211,7 @@ |
211 | 211 |
<Menu className="customer-lvl" href="#" title="올잇메디"> |
212 | 212 |
<li class="group-lvl sub-nav open"> |
213 | 213 |
<a href="#" className="top-agency"> |
214 |
- <span>지자체</span><button>추가</button> |
|
214 |
+ <span>지자체</span><button>시행기관 추가</button> |
|
215 | 215 |
</a> |
216 | 216 |
<ul id="venue-scope-options" className="low-agency"> |
217 | 217 |
<Menu href="#" title={`${agencyName}`} /> |
... | ... | @@ -222,7 +222,7 @@ |
222 | 222 |
</li> |
223 | 223 |
<li class="group-lvl sub-nav open"> |
224 | 224 |
<a href="#" class="active top-agency"> |
225 |
- <span>관리 병원</span><button>추가</button> |
|
225 |
+ <span>관리 병원</span><button>시행기관 추가</button> |
|
226 | 226 |
</a> |
227 | 227 |
<ul className="low-agency"> |
228 | 228 |
<Menu href="#" title="병원1" /> |
--- client/views/pages/user_management/UserAuthoriySelect_admin.jsx
+++ client/views/pages/user_management/UserAuthoriySelect_admin.jsx
... | ... | @@ -14,6 +14,28 @@ |
14 | 14 |
const closeModal = () => { |
15 | 15 |
setModalOpen(false); |
16 | 16 |
}; |
17 |
+ |
|
18 |
+ const [modalOpen2, setModalOpen2] = React.useState(false); |
|
19 |
+ const openModal2 = () => { |
|
20 |
+ setModalOpen2(true); |
|
21 |
+ }; |
|
22 |
+ const closeModal2 = () => { |
|
23 |
+ setModalOpen2(false); |
|
24 |
+ }; |
|
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 |
+ }; |
|
17 | 39 |
|
18 | 40 |
const thead1 = [ |
19 | 41 |
"No", |
... | ... | @@ -23,7 +45,7 @@ |
23 | 45 |
"성별", |
24 | 46 |
"생년월일", |
25 | 47 |
"주소", |
26 |
- "대상자 관리", |
|
48 |
+ "시니어 보호자", |
|
27 | 49 |
]; |
28 | 50 |
const key1 = ["No", "name", "Id","call", "gender", "birth", "address", "management"]; |
29 | 51 |
const content1 = [ |
... | ... | @@ -53,13 +75,36 @@ |
53 | 75 |
"성별", |
54 | 76 |
"생년월일", |
55 | 77 |
"주소", |
56 |
- "담당 복지사(연락처)", |
|
57 |
- "대상자 관리", |
|
58 |
- ]; |
|
78 |
+ "시니어 담당자", |
|
79 |
+ "시니어 보호자", |
|
80 |
+ ]; |
|
59 | 81 |
const key2 = [ |
60 |
- "No", "name", "Id","call", "gender", "birth", "address", "protect","management" |
|
82 |
+ "No", "name", "Id","call", "gender", "birth", "address", "worker", "guardian" |
|
61 | 83 |
]; |
62 | 84 |
const content2 = [ |
85 |
+ { |
|
86 |
+ No: 2, |
|
87 |
+ name: "송창덕", |
|
88 |
+ Id: "20230202", |
|
89 |
+ call:"010-5555-3573", |
|
90 |
+ gender: "남", |
|
91 |
+ birth: "1951.08.12", |
|
92 |
+ address: "경상북도 경산시 삼풍로", |
|
93 |
+ worker: ( |
|
94 |
+ <Button |
|
95 |
+ className={"btn-small"} |
|
96 |
+ btnName={"매칭"} |
|
97 |
+ // onClick={openModal2} |
|
98 |
+ /> |
|
99 |
+ ), |
|
100 |
+ guardian: ( |
|
101 |
+ <Button |
|
102 |
+ className={"btn-small"} |
|
103 |
+ btnName={"등록"} |
|
104 |
+ // onClick={openModal} |
|
105 |
+ /> |
|
106 |
+ ), |
|
107 |
+ }, |
|
63 | 108 |
{ |
64 | 109 |
No: 1, |
65 | 110 |
name: "김복남", |
... | ... | @@ -68,11 +113,17 @@ |
68 | 113 |
gender: "여", |
69 | 114 |
birth: "1948.11.15", |
70 | 115 |
address: "경상북도 군위군 삼국유사면", |
71 |
- protect: "홍길동(010-1234-1234)", |
|
72 |
- management: ( |
|
116 |
+ worker: ( |
|
73 | 117 |
<Button |
74 | 118 |
className={"btn-small gray-btn"} |
75 |
- btnName={"보호자(가족) 보기"} |
|
119 |
+ btnName={"담당 보호사 보기"} |
|
120 |
+ onClick={openModal2} |
|
121 |
+ /> |
|
122 |
+ ), |
|
123 |
+ guardian: ( |
|
124 |
+ <Button |
|
125 |
+ className={"btn-small gray-btn"} |
|
126 |
+ btnName={"보호자 보기"} |
|
76 | 127 |
onClick={openModal} |
77 | 128 |
/> |
78 | 129 |
), |
... | ... | @@ -101,7 +152,39 @@ |
101 | 152 |
phone: "010-1234-1234", |
102 | 153 |
}, |
103 | 154 |
]; |
155 |
+ |
|
104 | 156 |
const thead4 = [ |
157 |
+ "No", |
|
158 |
+ "보호사 명", |
|
159 |
+ "보호사 ID", |
|
160 |
+ "보호사 연락처", |
|
161 |
+ "매칭 일자", |
|
162 |
+ ]; |
|
163 |
+ const key4 = [ |
|
164 |
+ "No", |
|
165 |
+ "name", |
|
166 |
+ "Id", |
|
167 |
+ "phone", |
|
168 |
+ "date", |
|
169 |
+ ]; |
|
170 |
+ const content4 = [ |
|
171 |
+ { |
|
172 |
+ No: 1, |
|
173 |
+ name: "정복지", |
|
174 |
+ Id: "worker5", |
|
175 |
+ phone: "010-9876-5432", |
|
176 |
+ date: "2023-01-10", |
|
177 |
+ }, |
|
178 |
+ { |
|
179 |
+ No: 2, |
|
180 |
+ name: "문간호", |
|
181 |
+ Id: "worker13", |
|
182 |
+ phone: "010-1357-2468", |
|
183 |
+ date: "2023-02-07", |
|
184 |
+ }, |
|
185 |
+ ]; |
|
186 |
+ |
|
187 |
+ const thead5 = [ |
|
105 | 188 |
"No", |
106 | 189 |
"어르신 성함", |
107 | 190 |
"사용자등록번호", |
... | ... | @@ -110,8 +193,8 @@ |
110 | 193 |
"주소", |
111 | 194 |
"관계", |
112 | 195 |
]; |
113 |
- const key4 = ["No", "name", "Id", "gender", "birth", "address", "management"]; |
|
114 |
- const content4 = [ |
|
196 |
+ const key5 = ["No", "name", "Id", "gender", "birth", "address", "management"]; |
|
197 |
+ const content5 = [ |
|
115 | 198 |
{ |
116 | 199 |
No: 1, |
117 | 200 |
name: "김복남", |
... | ... | @@ -122,8 +205,6 @@ |
122 | 205 |
management: "부" |
123 | 206 |
}, |
124 | 207 |
]; |
125 |
- |
|
126 |
- |
|
127 | 208 |
|
128 | 209 |
const data = [ |
129 | 210 |
{ |
... | ... | @@ -151,6 +232,7 @@ |
151 | 232 |
), |
152 | 233 |
}, |
153 | 234 |
]; |
235 |
+ |
|
154 | 236 |
const [index, setIndex] = React.useState(1); |
155 | 237 |
return ( |
156 | 238 |
<main> |
... | ... | @@ -158,11 +240,11 @@ |
158 | 240 |
<div className="board-wrap"> |
159 | 241 |
<div className="btn-wrap flex-end margin-bottom"> |
160 | 242 |
<Button |
161 |
- className={"btn-small green-btn"} |
|
162 |
- btnName={"등록"} |
|
163 |
- onClick={() => { |
|
243 |
+ className={"btn-small green-btn"} |
|
244 |
+ btnName={"등록"} |
|
245 |
+ onClick={() => { |
|
164 | 246 |
navigate("/SeniorInsert"); |
165 |
- }} |
|
247 |
+ }} |
|
166 | 248 |
/> |
167 | 249 |
<Button className={"btn-small green-btn"} btnName={"삭제"} /> |
168 | 250 |
</div> |
... | ... | @@ -179,6 +261,36 @@ |
179 | 261 |
className={"btn-100 green-btn"} |
180 | 262 |
btnName={"닫기"} |
181 | 263 |
onClick={closeModal} |
264 |
+ /> |
|
265 |
+ </div> |
|
266 |
+ </div> |
|
267 |
+ </Modal> |
|
268 |
+ |
|
269 |
+ <Modal open={modalOpen2} close={closeModal2} header="'김복남'님의 담당 보호사"> |
|
270 |
+ <div className="board-wrap"> |
|
271 |
+ <div className="btn-wrap flex-end margin-bottom"> |
|
272 |
+ <Button |
|
273 |
+ className={"btn-small green-btn"} |
|
274 |
+ btnName={"등록"} |
|
275 |
+ onClick={() => { |
|
276 |
+ navigate("/SeniorInsert"); |
|
277 |
+ }} |
|
278 |
+ /> |
|
279 |
+ <Button className={"btn-small green-btn"} btnName={"삭제"} /> |
|
280 |
+ </div> |
|
281 |
+ <div> |
|
282 |
+ <Table |
|
283 |
+ className={"caregiver-user"} |
|
284 |
+ head={thead4} |
|
285 |
+ contents={content4} |
|
286 |
+ contentKey={key4} |
|
287 |
+ /> |
|
288 |
+ </div> |
|
289 |
+ <div> |
|
290 |
+ <Button |
|
291 |
+ className={"btn-100 green-btn"} |
|
292 |
+ btnName={"닫기"} |
|
293 |
+ onClick={closeModal2} |
|
182 | 294 |
/> |
183 | 295 |
</div> |
184 | 296 |
</div> |
... | ... | @@ -216,13 +328,7 @@ |
216 | 328 |
/> |
217 | 329 |
</div> |
218 | 330 |
<div className="btn-wrap flex-end"> |
219 |
- <Button |
|
220 |
- className={"btn-small green-btn"} |
|
221 |
- btnName={"등록"} |
|
222 |
- onClick={() => { |
|
223 |
- navigate("/SeniorInsert"); |
|
224 |
- }} |
|
225 |
- /> |
|
331 |
+ {data.filter((item) => index === item.id).map((item) => insertBtn(item.id))} |
|
226 | 332 |
<Button className={"btn-small green-btn"} btnName={"삭제"} /> |
227 | 333 |
</div> |
228 | 334 |
<ul className="tab-content"> |
+++ client/views/pages/visit/visit/VisitSelect_government.jsx
... | ... | @@ -0,0 +1,80 @@ |
1 | +import React from "react"; | |
2 | +import DetailSearch from "../../../component/DetailSearch.jsx"; | |
3 | +import Button from "../../../component/Button.jsx"; | |
4 | +import Table from "../../../component/Table.jsx"; | |
5 | +import { useNavigate } from "react-router"; | |
6 | +import ContentTitle from "../../../component/ContentTitle.jsx"; | |
7 | +import SubTitle from "../../../component/SubTitle.jsx"; | |
8 | + | |
9 | +export default function VisitSelect_government() { | |
10 | + const navigate = useNavigate(); | |
11 | + | |
12 | + //게시판 | |
13 | + const thead = [ | |
14 | + "No", "이름", "생년월일", "연락처", "주소", "관리기관","보호사","최근 방문일","방문목적","방문사유", | |
15 | + ]; | |
16 | + const key = [ | |
17 | + "No", "name", "birth", "phone", "address","agency","protect","visit","reason" ,"reason_detail" | |
18 | + ]; | |
19 | + const content = [ | |
20 | + { | |
21 | + No: 1, | |
22 | + name: "김복남", | |
23 | + birth: "1948.11.15", | |
24 | + phone: "010-1234-5678", | |
25 | + address: "경상북도 군위군 삼국유사면", | |
26 | + agency: "A복지관", | |
27 | + protect: "홍길동", | |
28 | + visit: "2023.02.08", | |
29 | + reason: "정기방문", | |
30 | + reason_detail: "정기방문일", | |
31 | + }, | |
32 | + { | |
33 | + No: 2, | |
34 | + name: "박영남", | |
35 | + birth: "1948.11.15", | |
36 | + phone: "010-1234-5678", | |
37 | + address: "경상북도 군위군 삼국유사면", | |
38 | + agency: "A복지관", | |
39 | + protect: "홍길동", | |
40 | + visit: "2023.02.08", | |
41 | + reason: "병원동행", | |
42 | + reason_detail: "두통을 호소하심", | |
43 | + }, | |
44 | + ]; | |
45 | + return ( | |
46 | + <main> | |
47 | + <div className="content-wrap"> | |
48 | + <ContentTitle contentTitle={"방문 조회"} /> | |
49 | + <DetailSearch /> | |
50 | + <div className="board-wrap"> | |
51 | + <SubTitle | |
52 | + className="margin-bottom" | |
53 | + explanation={"대상자 클릭 시 상세페이지로 이동합니다."} | |
54 | + /> | |
55 | + <div className="visit-table"> | |
56 | + <Table | |
57 | + className={"visit-table"} | |
58 | + head={thead} | |
59 | + contents={content} | |
60 | + contentKey={key} | |
61 | + onClick={() => { | |
62 | + navigate("/VisitSelectOne"); | |
63 | + }} | |
64 | + /> | |
65 | + </div> | |
66 | + {/* <div className="btn-wrap flex-end"> | |
67 | + <Button | |
68 | + className={"btn-small green-btn"} | |
69 | + btnName={"등록"} | |
70 | + onClick={() => { | |
71 | + navigate("/VisitInsert"); | |
72 | + }} | |
73 | + /> | |
74 | + <Button className={"btn-small green-btn"} btnName={"삭제"} /> | |
75 | + </div> */} | |
76 | + </div> | |
77 | + </div> | |
78 | + </main> | |
79 | + ); | |
80 | +} |
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?