
--- client/resources/css/Main.css
+++ client/resources/css/Main.css
... | ... | @@ -395,7 +395,6 @@ |
395 | 395 |
.main-history-wrap h1 { |
396 | 396 |
text-align: center; |
397 | 397 |
font-size: 3rem; |
398 |
- padding: 5rem; |
|
399 | 398 |
font-family: SBaggroM; |
400 | 399 |
color: #3f87f7; |
401 | 400 |
} |
... | ... | @@ -983,7 +982,7 @@ |
983 | 982 |
} |
984 | 983 |
|
985 | 984 |
.data-btn-wrap { |
986 |
- padding: 4rem 0 0 !important; |
|
985 |
+ /* padding: 4rem 0 0 !important; */ |
|
987 | 986 |
} |
988 | 987 |
|
989 | 988 |
.data-b { |
... | ... | @@ -1562,9 +1561,14 @@ |
1562 | 1561 |
|
1563 | 1562 |
color: #848484; |
1564 | 1563 |
} |
1565 |
-/* .tech-search-box{ |
|
1566 |
- padding: 3rem 0; |
|
1567 |
-} */ |
|
1564 |
+.tech-search-box{ |
|
1565 |
+ display: flex; |
|
1566 |
+ flex-wrap: wrap; |
|
1567 |
+ justify-content: end; |
|
1568 |
+} |
|
1569 |
+.sort-wrap{ |
|
1570 |
+ width: 100%; |
|
1571 |
+} |
|
1568 | 1572 |
.tech-box-category{ |
1569 | 1573 |
width: 100%; |
1570 | 1574 |
display: grid; |
... | ... | @@ -2988,9 +2992,9 @@ |
2988 | 2992 |
} |
2989 | 2993 |
|
2990 | 2994 |
.notice-search { |
2991 |
- width: 30%; |
|
2995 |
+ width: 22%; |
|
2992 | 2996 |
display: flex; |
2993 |
- gap: 1rem; |
|
2997 |
+ gap: 0.5rem; |
|
2994 | 2998 |
} |
2995 | 2999 |
|
2996 | 3000 |
.notice-search input:nth-child(2) { |
--- client/views/pages/user/Data/Data.vue
+++ client/views/pages/user/Data/Data.vue
... | ... | @@ -35,7 +35,7 @@ |
35 | 35 |
<div class="data-table"> |
36 | 36 |
<div class="data-b"> |
37 | 37 |
|
38 |
- <div class="btn-wrap data-btn-wrap"> |
|
38 |
+ <div class="btn-wrap data-btn-wrap " > |
|
39 | 39 |
<div class="data-bos"> |
40 | 40 |
|
41 | 41 |
|
... | ... | @@ -43,7 +43,7 @@ |
43 | 43 |
|
44 | 44 |
<p class="category">자료집> <span>{{ categoryName }}</span></p> |
45 | 45 |
</div> |
46 |
- <div class="data-wrap-search"> |
|
46 |
+ <div class="tech-search-box"> |
|
47 | 47 |
<select v-model="postListSearch.searchType" name="data-table-sild" id="data-table-sild" |
48 | 48 |
class="data-table-search"> |
49 | 49 |
<option v-for="(item, idx) in option" :key="idx" :value=item.value> |
--- client/views/pages/user/Data/Technology.vue
+++ client/views/pages/user/Data/Technology.vue
... | ... | @@ -41,9 +41,9 @@ |
41 | 41 |
</div> |
42 | 42 |
|
43 | 43 |
|
44 |
- <div class="tech-search-box"> |
|
44 |
+ |
|
45 | 45 |
|
46 |
- <div class="data-wrap-search"> |
|
46 |
+ <div class="btn-wrap data-btn-wrap" style="padding: 0px;"> |
|
47 | 47 |
<select v-model="postListSearch.searchType" name="data-table-sild" id="data-table-sild" |
48 | 48 |
class="data-table-search"> |
49 | 49 |
<option v-for="(item, idx) in option" :key="idx" :value=item.value> |
... | ... | @@ -57,7 +57,7 @@ |
57 | 57 |
@click="postSelectList()"> |
58 | 58 |
</div> |
59 | 59 |
</div> |
60 |
- </div> |
|
60 |
+ |
|
61 | 61 |
</div> |
62 | 62 |
<!-- 최신순 조회순 --> |
63 | 63 |
<div class="sort-wrap"> |
+++ client/views/pages/user/login/Login copy.vue
... | ... | @@ -0,0 +1,183 @@ |
1 | +<template> | |
2 | + <div class="w1400"> | |
3 | + <div class=" login-sec"> | |
4 | + <section class="login-logo"> | |
5 | + <div class="login-logo-d"> | |
6 | + <h1>AI 디지털교과서 통합지원센터</h1> | |
7 | + </div> | |
8 | + </section> | |
9 | + | |
10 | + <section class="login-input"> | |
11 | + <div class="login-input-d"> | |
12 | + <div class="ID"> | |
13 | + <input type="text" class="id" ref="user_id" placeholder="아이디를 입력하세요." v-model="userLogin.user_id" | |
14 | + @keyup.enter="login"> | |
15 | + </div> | |
16 | + <div class="PW"> | |
17 | + <input type="password" class="password" ref="user_pw" placeholder="비밀번호를 입력하세요." | |
18 | + v-model="userLogin.user_pw" @keyup.enter="login"> | |
19 | + </div> | |
20 | + </div> | |
21 | + </section> | |
22 | + | |
23 | + <section class="login-checkbox"> | |
24 | + <div class="login-checkbox-i"> | |
25 | + <input type="checkbox"> | |
26 | + <span> | |
27 | + 로그인상태 유지 | |
28 | + </span> | |
29 | + </div> | |
30 | + <div class="login-checkbox-b"> | |
31 | + | |
32 | + <router-link :to="{ path: '/userIDsearch.page', query: { mode: 'id' } }"> | |
33 | + <button class="login-bu-after">아이디 찾기</button> | |
34 | + </router-link> | |
35 | + <router-link :to="{ path: '/userIDsearch.page', query: { mode: 'pw' } }"> | |
36 | + <button class="login-bu-after">비밀번호찾기</button> | |
37 | + </router-link> | |
38 | + <router-link to="/Join.page"> | |
39 | + <button>회원가입</button> | |
40 | + </router-link> | |
41 | + </div> | |
42 | + </section> | |
43 | + | |
44 | + <div class="flex " style="margin: 1.5rem 0.5rem ;"> | |
45 | + <div class="login-checkbox-i"> | |
46 | + <input type="checkbox"> | |
47 | + <span> | |
48 | + 로그인상태 유지 | |
49 | + </span> | |
50 | + </div> | |
51 | + <router-link to="/Join.page"> | |
52 | + <button style="background-color: rgba(255, 228, 196, 0);">회원가입</button> | |
53 | + </router-link> | |
54 | + | |
55 | + </div> | |
56 | + <section class="login-button"> | |
57 | + <button @click="login">로그인</button> | |
58 | + </section> | |
59 | + </div> | |
60 | + </div> | |
61 | + | |
62 | + | |
63 | + <!-- 로그인 모달 회원가입 승인중일때 노출--> | |
64 | + | |
65 | + <div class="modal-wrapper" v-if="isVisible"> | |
66 | + <div class="modal-container"> | |
67 | + <div class="login-modal"> | |
68 | + <p class="modal-text"> | |
69 | + 가입 승인 중인 회원입니다.<br /> | |
70 | + 회원가입 승인 전까지 특정 서비스는 이용하실 수 없으며,<br /> | |
71 | + 승인 이후 모든 서비스를 이용하실 수 있습니다. | |
72 | + </p> | |
73 | + <button class="blue-btn small-btn" @click="hideDiv">확인</button> | |
74 | + </div> | |
75 | + </div> | |
76 | + </div> | |
77 | +</template> | |
78 | + | |
79 | +<script> | |
80 | +import axios from 'axios'; | |
81 | +import crypto from "crypto-js"; | |
82 | +import { useStore } from 'vuex'; | |
83 | +export default { | |
84 | + data() { | |
85 | + return { | |
86 | + isVisible: false, | |
87 | + userLogin: { | |
88 | + user_id: null, | |
89 | + user_pw: null | |
90 | + }, | |
91 | + store: useStore(), | |
92 | + isVisible: false, | |
93 | + }; | |
94 | + }, | |
95 | + methods: { | |
96 | + hideDiv() { | |
97 | + this.isVisible = false; | |
98 | + }, | |
99 | + closeOnEnter(e) { | |
100 | + if (e.key === 'Enter' && this.isVisible) { | |
101 | + this.hideDiv(); | |
102 | + } | |
103 | + }, | |
104 | + //아스크 변환 | |
105 | + asc: function (data) { | |
106 | + let ascii = ''; | |
107 | + for (let i = 0; i < data.length; i++) { | |
108 | + ascii += data.charCodeAt(i); | |
109 | + } | |
110 | + console.log('ascii', ascii) | |
111 | + return ascii | |
112 | + }, | |
113 | + //로그인 | |
114 | + login: function () { | |
115 | + let vm = this; | |
116 | + //Encrypt | |
117 | + // let iv = this.store.state.key.iv; | |
118 | + // var salt = this.store.state.key.salt; | |
119 | + // var passPhrase = this.store.state.key.ENC_KEY; | |
120 | + // console.log('this.asc(iv) - ', this.asc(iv)); | |
121 | + // console.log('this.asc(salt) - ', this.asc(salt)); | |
122 | + // console.log('this.asc(passPhrase) - ', this.asc(passPhrase)); | |
123 | + // var keySize = 128; | |
124 | + // var iterationCount = 1000; | |
125 | + // var key128Bits100Iterations = crypto.PBKDF2(passPhrase, crypto.enc.Hex.parse(salt), { keySize: keySize / 32, iterations: iterationCount }); | |
126 | + | |
127 | + // var encrypted = CryptoJS.AES.encrypt( | |
128 | + // this.userLogin.user_id = crypto.AES.encrypt(this.userLogin.user_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); | |
129 | + // this.userLogin.user_pw = crypto.AES.encrypt(this.userLogin.user_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); | |
130 | + | |
131 | + // let encryptedUserId = crypto.AES.encrypt(this.userLogin.user_id, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); | |
132 | + // let encryptedUserPw = crypto.AES.encrypt(this.userLogin.user_pw, key128Bits100Iterations, { iv: crypto.enc.Hex.parse(iv) }).toString(); | |
133 | + | |
134 | + // var loginData = { | |
135 | + // user_id: encryptedUserId, | |
136 | + // user_pw: encryptedUserPw | |
137 | + // }; | |
138 | + axios({ | |
139 | + url: '/user/login.json', | |
140 | + method: 'post', | |
141 | + headers: { | |
142 | + 'Content-Type': 'application/json; charset=UTF-8' | |
143 | + }, | |
144 | + // data: vm.userLogin | |
145 | + data: vm.userLogin | |
146 | + }).then(function (response) { | |
147 | + // console.log("login - response : ", response); | |
148 | + if (response.data.isLoginSuccess == true) { | |
149 | + if (response.data.create_account_approval === 'N') { | |
150 | + vm.$refs['user_pw'].blur(); | |
151 | + vm.isVisible = true; | |
152 | + } else { | |
153 | + vm.$router.push({ path: '/', query: {} }); | |
154 | + } | |
155 | + | |
156 | + } else { | |
157 | + alert('로그인 정보를 다시 확인해주세요.'); | |
158 | + vm.$refs['user_id'].focus(); | |
159 | + } | |
160 | + }).catch(function (error) { | |
161 | + console.log("login - error : ", error); | |
162 | + }); | |
163 | + }, | |
164 | + | |
165 | + hideDiv: function () { | |
166 | + this.isVisible = false; | |
167 | + this.$router.push({ path: '/', query: {} }); | |
168 | + }, | |
169 | + }, | |
170 | + watch: {}, | |
171 | + computed: {}, | |
172 | + mounted() { | |
173 | + console.log("login mounted"); | |
174 | + window.addEventListener('keyup', this.closeOnEnter); | |
175 | + }, | |
176 | + beforeDestroy() { | |
177 | + window.removeEventListener('keyup', this.closeOnEnter); | |
178 | + }, | |
179 | +}; | |
180 | + | |
181 | +</script> | |
182 | + | |
183 | + |
--- client/views/pages/user/login/Login.vue
+++ client/views/pages/user/login/Login.vue
... | ... | @@ -20,7 +20,7 @@ |
20 | 20 |
</div> |
21 | 21 |
</section> |
22 | 22 |
|
23 |
- <!-- <section class="login-checkbox"> |
|
23 |
+ <section class="login-checkbox"> |
|
24 | 24 |
<div class="login-checkbox-i"> |
25 | 25 |
<input type="checkbox"> |
26 | 26 |
<span> |
... | ... | @@ -39,7 +39,7 @@ |
39 | 39 |
<button>회원가입</button> |
40 | 40 |
</router-link> |
41 | 41 |
</div> |
42 |
- </section> --> |
|
42 |
+ </section> |
|
43 | 43 |
|
44 | 44 |
<div class="flex " style="margin: 1.5rem 0.5rem ;"> |
45 | 45 |
<div class="login-checkbox-i"> |
--- client/views/pages/user/main/Main.vue
+++ client/views/pages/user/main/Main.vue
... | ... | @@ -163,12 +163,12 @@ |
163 | 163 |
</div> |
164 | 164 |
|
165 | 165 |
</section> |
166 |
- <!-- <section class="main-sec sec1"> |
|
166 |
+ <section class="main-sec sec1"> |
|
167 | 167 |
|
168 |
- <div class=" flex"> --> |
|
168 |
+ <div class=" flex"> |
|
169 | 169 |
<!-- 히스토리 --> |
170 | 170 |
|
171 |
- <!-- <div class="main-history"> |
|
171 |
+ <div class="main-history"> |
|
172 | 172 |
<div class="w1400"> |
173 | 173 |
<div class="main-history-wrap"> |
174 | 174 |
<h1>History</h1> |
... | ... | @@ -210,7 +210,7 @@ |
210 | 210 |
|
211 | 211 |
</div> |
212 | 212 |
|
213 |
- </section> --> |
|
213 |
+ </section> |
|
214 | 214 |
|
215 | 215 |
|
216 | 216 |
<section class="main-sec sec1"> |
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?