
--- client/views/layout/Menu.jsx
+++ client/views/layout/Menu.jsx
... | ... | @@ -40,7 +40,7 @@ |
40 | 40 |
}, |
41 | 41 |
{ |
42 | 42 |
title: "장비 추가 요청", |
43 |
- path: "/EquipmentManagementSelectReturn", |
|
43 |
+ path: "/EquipmentManagementSelectAdd", |
|
44 | 44 |
}, |
45 | 45 |
], |
46 | 46 |
}, |
--- client/views/pages/App.jsx
+++ client/views/pages/App.jsx
... | ... | @@ -22,7 +22,7 @@ |
22 | 22 |
|
23 | 23 |
const getLogin = () => { |
24 | 24 |
setIsLogin(true); |
25 |
- navigate("/Main"); |
|
25 |
+ navigate(""); |
|
26 | 26 |
}; |
27 | 27 |
|
28 | 28 |
const { title } = items.find( |
--- client/views/pages/AppRoute.jsx
+++ client/views/pages/AppRoute.jsx
... | ... | @@ -30,6 +30,7 @@ |
30 | 30 |
import CallSelectOne from "./callcenter/CallSelectOne.jsx"; |
31 | 31 |
import CallUpdate from "./callcenter/CallUpdate.jsx"; |
32 | 32 |
import EquipmentManagementSelectReturn from "./equipment/EquipmentManagementSelectReturn.jsx"; |
33 |
+import EquipmentManagementSelectAdd from "./equipment/EquipmentManagementSelectAdd.jsx"; |
|
33 | 34 |
import RiskInsert from "./authority/RiskInsert.jsx"; |
34 | 35 |
import AuthorityManagement from "./authority/AuthorityManagement.jsx"; |
35 | 36 |
|
... | ... | @@ -86,6 +87,7 @@ |
86 | 87 |
<Route path="/CallSelect" element={<CallSelect />}></Route> |
87 | 88 |
<Route path="/CallSelectOne" element={<CallSelectOne />}></Route> |
88 | 89 |
<Route path="/EquipmentManagementSelectReturn" element={<EquipmentManagementSelectReturn />}></Route> |
90 |
+ <Route path="/EquipmentManagementSelectAdd" element={<EquipmentManagementSelectAdd />}></Route> |
|
89 | 91 |
<Route path="/RiskInsert" element={<RiskInsert />}></Route> |
90 | 92 |
<Route path="/AuthorityManagement" element={<AuthorityManagement />}></Route> |
91 | 93 |
</Routes> |
+++ client/views/pages/equipment/EquipmentManagementSelectAdd.jsx
... | ... | @@ -0,0 +1,77 @@ |
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 EquipmentManagementSelectAdd() { | |
9 | + const navigate = useNavigate(); | |
10 | + //게시판 | |
11 | + const thead = [ | |
12 | + "No", | |
13 | + "기관명", | |
14 | + "요청일자", | |
15 | + "요청수량", | |
16 | + "처리여부", | |
17 | + ]; | |
18 | + const key = [ | |
19 | + "No", | |
20 | + "name", | |
21 | + "date", | |
22 | + "period_of_use", | |
23 | + "visit", | |
24 | + ]; | |
25 | + const content = [ | |
26 | + { | |
27 | + No: 1, | |
28 | + name: "A복지관", | |
29 | + date: "2023-01-27", | |
30 | + period_of_use: "1대", | |
31 | + visit:( | |
32 | + <div className="btn-wrap"> | |
33 | + <Button | |
34 | + className={"btn-small green-btn"} | |
35 | + btnName={"승인"} | |
36 | + /> | |
37 | + <Button className={"btn-small green-btn"} btnName={"보류"} /> | |
38 | + </div> | |
39 | + ), | |
40 | + }, | |
41 | + { | |
42 | + No: 2, | |
43 | + name: "B복지관", | |
44 | + date: "2023-01-27", | |
45 | + period_of_use: "2대", | |
46 | + visit:( | |
47 | + <div className="btn-wrap"> | |
48 | + <Button | |
49 | + className={"btn-small green-btn"} | |
50 | + btnName={"승인"} | |
51 | + /> | |
52 | + <Button className={"btn-small green-btn"} btnName={"보류"} /> | |
53 | + </div> | |
54 | + ), | |
55 | + }, | |
56 | + ]; | |
57 | + return ( | |
58 | + <main> | |
59 | + <div className="content-wrap"> | |
60 | + <ContentTitle contentTitle={"장비 추가 요청"} /> | |
61 | + <div className="board-wrap"> | |
62 | + {/*<div className="btn-wrap flex-end margin-bottom"> | |
63 | + <Button | |
64 | + className={"btn-small green-btn"} | |
65 | + btnName={"등록"} | |
66 | + onClick={() => { | |
67 | + navigate("/SeniorInsert"); | |
68 | + }} | |
69 | + /> | |
70 | + <Button className={"btn-small green-btn "} btnName={"삭제"} /> | |
71 | + </div> */} | |
72 | + <Table className="equipment-detail" head={thead} contents={content} contentKey={key} /> | |
73 | + </div> | |
74 | + </div> | |
75 | + </main> | |
76 | + ); | |
77 | +} |
--- server/modules/web/Server.js
+++ server/modules/web/Server.js
... | ... | @@ -88,7 +88,14 @@ |
88 | 88 |
webServer.get('*.*', function (request, response, next) { |
89 | 89 |
response.sendFile(`${BASE_DIR}${request.params['0']}.${request.params['1']}`); |
90 | 90 |
}) |
91 |
- |
|
91 |
+/** |
|
92 |
+ * @author : 류윤주 |
|
93 |
+ * @since : 2022.11.06 |
|
94 |
+ * @dscription : React Router처리 |
|
95 |
+ */ |
|
96 |
+webServer.get('*', function (request, response, next) { |
|
97 |
+ response.sendFile(`${BASE_DIR}/client/views/index.html`); |
|
98 |
+}) |
|
92 | 99 |
/** |
93 | 100 |
* @author : 최정우 |
94 | 101 |
* @since : 2022.09.21 |
... | ... | @@ -100,4 +107,4 @@ |
100 | 107 |
let message = `[Error:${errorCode}] ${request.url}\n ${error.stack}\n`; |
101 | 108 |
Logger.logging(message); |
102 | 109 |
//next(); |
103 |
-})(No newline at end of file) |
|
110 |
+}) |
--- z. [참고자료] 설치 및 실행방법.txt
+++ z. [참고자료] 설치 및 실행방법.txt
... | ... | @@ -4,7 +4,7 @@ |
4 | 4 |
1. nodejs 최신 버전 다운로드 |
5 | 5 |
2. VSCode 최신 버전 다운로드(개발시 필요) |
6 | 6 |
끝. |
7 |
- |
|
7 |
+3. watch 오류시 npm install |
|
8 | 8 |
★ 실행 |
9 | 9 |
- 개발 환경(VSCode 필요) |
10 | 10 |
1. VSCode 터미널 2개 띄우기(터미널1, 터미널2) |
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?