
--- client/resources/css/common.css
+++ client/resources/css/common.css
... | ... | @@ -20,6 +20,7 @@ |
20 | 20 |
font-style: normal; |
21 | 21 |
} |
22 | 22 |
.grid{display: grid;} |
23 |
+.grid2{display: grid; grid-template-columns: 1fr 1fr;} |
|
23 | 24 |
.flex { |
24 | 25 |
display: flex; |
25 | 26 |
align-items: center; |
... | ... | @@ -141,6 +142,9 @@ |
141 | 142 |
.bg-green { |
142 | 143 |
background: #6dba67; |
143 | 144 |
} |
145 |
+.green{color: #a7d292;} |
|
146 |
+.black{color: #333;} |
|
147 |
+.lined{text-decoration: underline;} |
|
144 | 148 |
.bg-yellow { |
145 | 149 |
background: #e6c772; |
146 | 150 |
} |
... | ... | @@ -152,7 +156,9 @@ |
152 | 156 |
} |
153 | 157 |
|
154 | 158 |
.m-b{margin-bottom: 1rem;} |
159 |
+.m-b3{margin-bottom: 3rem;} |
|
155 | 160 |
.m-r{margin-right: 1rem;} |
161 |
+.m-r3{margin-right: 3rem;} |
|
156 | 162 |
.gap{gap: 1rem;} |
157 | 163 |
.gap5{gap: 5rem;} |
158 | 164 |
button{padding: 0.3rem 2rem;} |
+++ client/resources/images/dg_logo.png
Binary file is not shown |
+++ client/resources/images/icon/icon1.png
Binary file is not shown |
+++ client/resources/images/icon/icon2.png
Binary file is not shown |
+++ client/resources/images/icon/icon3.png
Binary file is not shown |
+++ client/resources/images/icon/icon4.png
Binary file is not shown |
+++ client/resources/images/icon/icon5.png
Binary file is not shown |
+++ client/resources/images/icon/icon6.png
Binary file is not shown |
--- client/views/layout/Header.vue
+++ client/views/layout/Header.vue
... | ... | @@ -51,7 +51,7 @@ |
51 | 51 |
</router-link> |
52 | 52 |
</div> |
53 | 53 |
<div class="header_menu"> |
54 |
- <nav class="flex"> |
|
54 |
+ <nav class="flex gap"> |
|
55 | 55 |
<router-link to="/Introduction.page"> |
56 | 56 |
<span |
57 | 57 |
@mouseover="showDropdown = true" |
... | ... | @@ -65,7 +65,7 @@ |
65 | 65 |
@mouseover="showDropdown = true" |
66 | 66 |
@mouseleave="showDropdown = false" |
67 | 67 |
> |
68 |
- <div class="menu flex-end"> |
|
68 |
+ <div class="menu flex-end gap"> |
|
69 | 69 |
<ul> |
70 | 70 |
<li |
71 | 71 |
v-for="option in dropdownOptions" |
... | ... | @@ -441,7 +441,7 @@ |
441 | 441 |
header { |
442 | 442 |
position: relative; |
443 | 443 |
} |
444 |
- |
|
444 |
+nav{position: relative;} |
|
445 | 445 |
nav a { |
446 | 446 |
width: 16rem; |
447 | 447 |
text-align: center; |
... | ... | @@ -450,27 +450,26 @@ |
450 | 450 |
padding: 2.7rem 0; |
451 | 451 |
/* border: 1px solid blue; */ |
452 | 452 |
} |
453 |
+.nav{position: absolute; |
|
454 |
+ left: 0; |
|
455 |
+ top: 65px; |
|
456 |
+ z-index: 500; |
|
457 |
+ width: -webkit-fill-available; |
|
458 |
+ padding: -1rem; |
|
459 |
+ height: 14rem;} |
|
453 | 460 |
.menu { |
454 | 461 |
position: absolute; |
455 |
- background: #ffffffd1; |
|
456 |
- left: 0; |
|
457 |
- top: 0rem; |
|
458 |
- z-index: 500; |
|
459 |
- width: 100%; |
|
460 |
- /* border: 1px solid red */ |
|
461 |
- padding: 1rem 34rem 1rem 1rem; |
|
462 |
- text-align: center; |
|
462 |
+ left: 0; |
|
463 |
+ top: 0rem; |
|
464 |
+ z-index: 500; |
|
465 |
+ width: fit-content; |
|
466 |
+ /* border: 1px solid red; */ |
|
467 |
+ /* padding: 1rem 25.5rem 1rem 1rem; */ |
|
468 |
+ text-align: center; |
|
463 | 469 |
} |
464 | 470 |
.menu li:hover{background: #13833b; } |
465 | 471 |
.menu li:hover a{color: #fff;} |
466 |
-.nav { |
|
467 |
- position: absolute; |
|
468 |
- left: -148rem; |
|
469 |
- top: 7rem; |
|
470 |
- z-index: 500; |
|
471 |
- width: -webkit-fill-available; |
|
472 |
- padding: 1rem; |
|
473 |
-} |
|
472 |
+ |
|
474 | 473 |
ul { |
475 | 474 |
width: 16rem; |
476 | 475 |
} |
--- client/views/pages/Introduction/Introduction.vue
+++ client/views/pages/Introduction/Introduction.vue
... | ... | @@ -1,38 +1,105 @@ |
1 | 1 |
<template> |
2 |
- <div><h2>플랫폼 소개</h2> |
|
3 |
- <h3 style="margin-top: 3rem;">1. AI 안정통합 횡단보도 플랫폼이란?</h3> |
|
4 |
- <p>AI 영상감지, 실시간 신호개방 등 최첨단 기술을 적용하여 횡단보도를 이용하는 보행자 보호를 위한 보행신호 자동연장, |
|
5 |
-무단횡단 방지, 우회전 차량사고등을 예방하고 주행중인 차량 내비게이션에 실시간으로 횡단보도 내 위험 정보를 제공하여 |
|
6 |
-교통안전 예방정책을 추진하고, 횡단보도 사고를 줄이는데 목표를 둔 플랫폼 |
|
7 |
-</p> |
|
8 |
- <h3 style="margin-top: 3rem;">2. 주요 서비스</h3> |
|
9 |
- <p>① 보행약자를 위한 보행신호 자동연장 서비스 |
|
10 |
-</p> |
|
11 |
-<p>- AI 영상인식으로 사람, 목발, 우산, 휠체어, 유모차 등 보행자를 판별하고 보행자의 상태 정 보를 식별하여 |
|
12 |
- 신호제어기에 신호연장 신호를 전달</p> |
|
13 |
- <p>② 무단횡단 방지 및 무단횡단 사고 예방 서비스</p> |
|
14 |
- <p>- 차량 및 보행신호, 횡단보도 대기공간의 보행대기자를 판별하여 보행신호 시 우회전 차량의 진입 상황을 현장 음향신호 장비로 |
|
15 |
- 안내</p> |
|
16 |
- <p>③ 우회전 차량 교통사고 예방 서비스</p> |
|
17 |
- <p>- 신호대기 상태에서 보행 대기자 판별 및 횡단보도 진입 여부를 인식하고 보행자 무단횡단 발생 시 음향 신호방비로 정보를 전달</p> |
|
18 |
- <p>④ 차량 운전자 안내를 위한 실시간 내비게이션 안내 서비스</p> |
|
19 |
- <p>- 횡단보도 대기 공간의 보행대기자를 판별하고 횡단보도 내 무단횡단 및 우회전 준법 주행이 가능한지에 대한 정보를 |
|
20 |
- 내비게이션을 통해 안내 할 수 있도록 정보 제공</p> |
|
21 |
- <p>⑤ 실시간 관제 시스템</p> |
|
22 |
- <p>- 현장 실시간 CCTV 영상을 제공하고, 발생하는 위험/사고현황을 한눈에 쉽게 볼 수 있는 서비스를 제공</p> |
|
23 |
- <p>⑥ GIS기반 분석 시스템</p> |
|
24 |
- <p>- 실시간으로 발생하는 위험/사고 정보를 수집하고 수집된 데이터를 활용하여 상황발생 테마별로 데이터를 분석, 시각화 하여 |
|
25 |
- 현황파악 및 해결책 도출에 도움을 주는 서비스를 제공</p> |
|
2 |
+ <div class="wrap"> |
|
3 |
+ <div> |
|
4 |
+ <h2 style="color: #10833b;">플랫폼 소개</h2> |
|
5 |
+ <h3 style="margin-top: 3rem; color: #72be65;" >1. AI 안정통합 횡단보도 플랫폼이란?</h3> |
|
6 |
+ <p> |
|
7 |
+ AI 영상감지, 실시간 신호개방 등 최첨단 기술을 적용하여 횡단보도를 이용하는 |
|
8 |
+ 보행자 보호를 위한 보행신호 자동연장, 무단횡단 방지, 우회전 차량사고등을 |
|
9 |
+ 예방하고 주행중인 차량 내비게이션에 실시간으로 횡단보도 내 위험 정보를 |
|
10 |
+ 제공하여 교통안전 예방정책을 추진하고, 횡단보도 사고를 줄이는데 목표를 둔 |
|
11 |
+ 플랫폼 |
|
12 |
+ </p> |
|
13 |
+ <h3 style="margin-top: 3rem; color: #72be65;" class="m-b3">2. 주요 서비스</h3> |
|
14 |
+ </div> |
|
15 |
+ <div class="grid2 gap "> |
|
16 |
+ <div class="flex gap m-b3"> |
|
17 |
+ <img src="../../../resources/images/icon/icon1.png" alt="" class="m-r3"> |
|
18 |
+ <div class="box"> |
|
19 |
+ <p class="m-b green">보행약자를 위한 보행신호 자동연장 서비스</p> |
|
20 |
+ <p> |
|
21 |
+ AI 영상인식으로 사람, 목발, 우산, 휠체어, 유모차 등 보행자를 |
|
22 |
+ 판별하고 보행자의 상태 정 보를 식별하여 신호제어기에 신호연장 신호를 |
|
23 |
+ 전달 |
|
24 |
+ </p> |
|
25 |
+ </div> |
|
26 |
+ </div> |
|
27 |
+ <div class="flex gap m-b3"> |
|
28 |
+ <img src="../../../resources/images/icon/icon2.png" alt="" class="m-r3"> |
|
29 |
+ <div class="box"> |
|
30 |
+ <p class="m-b green">무단횡단 방지 및 무단횡단 사고 예방 서비스</p> |
|
31 |
+ <p> |
|
32 |
+ 차량 및 보행신호, 횡단보도 대기공간의 보행대기자를 판별하여 보행신호 |
|
33 |
+ 시 우회전 차량의 진입 상황을 현장 음향신호 장비로 안내 |
|
34 |
+ </p> |
|
35 |
+ </div> |
|
36 |
+ </div> |
|
37 |
+ <div class="flex gap m-b3"> |
|
38 |
+ <img src="../../../resources/images/icon/icon3.png" alt="" class="m-r3"> |
|
39 |
+ <div class="box"> |
|
40 |
+ <p class="m-b green">우회전 차량 교통사고 예방 서비스</p> |
|
41 |
+ <p> |
|
42 |
+ 신호대기 상태에서 보행 대기자 판별 및 횡단보도 진입 여부를 인식하고 |
|
43 |
+ 보행자 무단횡단 발생 시 음향 신호방비로 정보를 전달 |
|
44 |
+ </p> |
|
45 |
+ </div> |
|
46 |
+ </div> |
|
47 |
+ <div class="flex gap m-b3"> |
|
48 |
+ <img src="../../../resources/images/icon/icon4.png" alt="" class="m-r3"> |
|
49 |
+ <div class="box"> |
|
50 |
+ <p class="m-b green">차량 운전자 안내를 위한 실시간 내비게이션 안내 서비스</p> |
|
51 |
+ <p> |
|
52 |
+ 횡단보도 대기 공간의 보행대기자를 판별하고 횡단보도 내 무단횡단 및 |
|
53 |
+ 우회전 준법 주행이 가능한지에 대한 정보를 내비게이션을 통해 안내 할 수 |
|
54 |
+ 있도록 정보 제공 |
|
55 |
+ </p> |
|
56 |
+ </div> |
|
57 |
+ </div> |
|
58 |
+ <div class="flex gap "> |
|
59 |
+ <img src="../../../resources/images/icon/icon5.png" alt="" class="m-r3"> |
|
60 |
+ <div class="box"> |
|
61 |
+ <p class="m-b green">실시간 관제 시스템</p> |
|
62 |
+ <p> |
|
63 |
+ 현장 실시간 CCTV 영상을 제공하고, 발생하는 위험/사고현황을 한눈에 |
|
64 |
+ 쉽게 볼 수 있는 서비스를 제공 |
|
65 |
+ </p> |
|
66 |
+ </div> |
|
67 |
+ </div> |
|
68 |
+ <div class="flex gap"> |
|
69 |
+ <img src="../../../resources/images/icon/icon6.png" alt="" class="m-r3"> |
|
70 |
+ <div class="box"> |
|
71 |
+ <p class="m-b green">GIS기반 분석 시스템</p> |
|
72 |
+ <p> |
|
73 |
+ 실시간으로 발생하는 위험/사고 정보를 수집하고 수집된 데이터를 |
|
74 |
+ 활용하여 상황발생 테마별로 데이터를 분석, 시각화 하여 현황파악 및 |
|
75 |
+ 해결책 도출에 도움을 주는 서비스를 제공 |
|
76 |
+ </p> |
|
77 |
+ </div> |
|
78 |
+ </div> |
|
79 |
+ </div> |
|
26 | 80 |
</div> |
27 | 81 |
</template> |
28 | 82 |
<style scoped> |
29 | 83 |
@media all and (max-width: 479px) { |
30 |
- div{padding: 3rem 1rem !important;} |
|
84 |
+ /* div { |
|
85 |
+ padding: 3rem 1rem !important; |
|
86 |
+ } */ |
|
31 | 87 |
} |
32 |
- div{padding: 3rem 15rem; line-height: 4rem;} |
|
33 |
- h2{font-size: 2rem;} |
|
34 |
- h3{font-size: 1.8rem;} |
|
35 |
- p{font-size: 1.6rem;} |
|
88 |
+.box{ width: 80%; |
|
89 |
+ line-height: 2.5rem;} |
|
90 |
+.wrap { |
|
91 |
+ padding: 5rem 15rem; |
|
92 |
+ line-height: 4rem; |
|
93 |
+} |
|
94 |
+h2 { |
|
95 |
+ font-size: 2rem; |
|
96 |
+} |
|
97 |
+h3 { |
|
98 |
+ font-size: 1.8rem; |
|
99 |
+} |
|
100 |
+p { |
|
101 |
+ font-size: 1.6rem; |
|
102 |
+} |
|
36 | 103 |
</style> |
37 | 104 |
|
38 | 105 |
<script> |
--- client/views/pages/main/Login.vue
+++ client/views/pages/main/Login.vue
... | ... | @@ -1,25 +1,23 @@ |
1 | 1 |
<template> |
2 | 2 |
<div class="wrap"> |
3 | 3 |
<div> |
4 |
- <div> |
|
5 |
- <h2 class="page-title">Login</h2> |
|
4 |
+ <div class="flex-center m-b3"> |
|
5 |
+ <img src="../../../resources/images/dg_logo.png" alt=""> |
|
6 | 6 |
</div> |
7 |
- <hr class="margin"> |
|
8 | 7 |
<div class="form-wrap"> |
9 | 8 |
<form action=""> |
10 | 9 |
<div class="flex-center m-b"> |
11 |
- <label for="id">아이디</label> |
|
12 |
- <input type="text" name="" id="" ref="user_id" placeholder="ID" v-model="userLogin.user_id" @keyup.enter="login"> |
|
10 |
+ <!-- <label for="id">아이디</label> --> |
|
11 |
+ <input type="text" name="" id="" ref="user_id" placeholder="아이디를 입력하세요" v-model="userLogin.user_id" @keyup.enter="login"> |
|
13 | 12 |
</div> |
14 | 13 |
<div class="flex-center m-b"> |
15 |
- <label for="password">비밀번호</label> |
|
16 |
- <input type="password" name="" id="" ref="user_pw" placeholder="Password" v-model="userLogin.user_pw" @keyup.enter="login"> |
|
17 |
- </div> |
|
18 |
- |
|
14 |
+ <!-- <label for="password">비밀번호</label> --> |
|
15 |
+ <input type="password" name="" id="" ref="user_pw" placeholder="비밀번호를 입력하세요" v-model="userLogin.user_pw" @keyup.enter="login"> |
|
16 |
+ </div> |
|
19 | 17 |
|
18 |
+ <router-link to="/IdFind.page"> <span class="black flex-center"><em class="lined">아이디</em>를 잊어버리셨나요?</span></router-link> |
|
20 | 19 |
<div class="btn-wrap"> |
21 | 20 |
<button type="button" class="green-btn btn-l loginbtn" @click="login">로그인</button> |
22 |
- <router-link to="/IdFind.page"> <span class="">아이디 찾기</span></router-link> |
|
23 | 21 |
</div> |
24 | 22 |
</form> |
25 | 23 |
</div> |
... | ... | @@ -112,8 +110,8 @@ |
112 | 110 |
.btn-wrap span{font-size: 13px; margin-top: 2rem; color: #333;} |
113 | 111 |
.loginbtn{padding: 1rem 0; margin-bottom: 1rem;} |
114 | 112 |
.wrap { |
115 |
- width: 155rem; |
|
116 |
- margin: 100px auto; |
|
113 |
+ padding: 19rem ; |
|
114 |
+ background: #f7f7f6; |
|
117 | 115 |
} |
118 | 116 |
|
119 | 117 |
.tab-wrap { |
... | ... | @@ -180,7 +178,7 @@ |
180 | 178 |
} |
181 | 179 |
|
182 | 180 |
.form-wrap input:not([type="radio"]) { |
183 |
- min-width: 30rem; |
|
181 |
+ width: -webkit-fill-available; |
|
184 | 182 |
min-height: 4rem; |
185 | 183 |
} |
186 | 184 |
|
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?