

231201 김성훈 교육과정표준체계 조회 로그 추가
@83662a77c114a7edc19723d034ee60ba60fe0304
--- client/views/layout/Menu.vue
+++ client/views/layout/Menu.vue
... | ... | @@ -38,7 +38,7 @@ |
38 | 38 |
@mouseover="menuItem.isHovered = true" @mouseout="menuItem.isHovered = false"> |
39 | 39 |
<router-link v-if="shouldRenderMenuItem(menuItem) && menuItem.text !== '교육과정 표준체계'" :to="menuItem.link">{{ menuItem.text |
40 | 40 |
}}</router-link> |
41 |
- <a v-else-if="menuItem.text === '교육과정 표준체계'" :href="menuItem.link" target="_blank">{{ menuItem.text }}</a> |
|
41 |
+ <a v-else-if="menuItem.text === '교육과정 표준체계'" target="_blank" @click="postSelectOnePage(menuItem)">{{ menuItem.text }}</a> |
|
42 | 42 |
<ul class="sub-menu sub-menu-1"> |
43 | 43 |
<li v-for="subMenuItem in menuItem.subMenu" :key="subMenuItem.text" @click="navClose(menuItem)"> |
44 | 44 |
<router-link v-if="shouldRenderSubMenuItem(subMenuItem)" :to="subMenuItem.link">{{ subMenuItem.text }}</router-link> |
... | ... | @@ -53,6 +53,8 @@ |
53 | 53 |
|
54 | 54 |
<script> |
55 | 55 |
import { useStore } from "vuex"; |
56 |
+import axios from 'axios'; |
|
57 |
+ |
|
56 | 58 |
export default { |
57 | 59 |
data() { |
58 | 60 |
return { |
... | ... | @@ -98,6 +100,9 @@ |
98 | 100 |
{ |
99 | 101 |
text:"교육과정 표준체계", |
100 | 102 |
link: "http://211.253.31.234/", |
103 |
+ post_id: "POST_0000000098", |
|
104 |
+ bbs_id: "3", |
|
105 |
+ ctgry_nm: "service" |
|
101 | 106 |
}, |
102 | 107 |
{ |
103 | 108 |
text: "마이페이지", |
... | ... | @@ -142,7 +147,33 @@ |
142 | 147 |
} |
143 | 148 |
// 다른 서브 메뉴 항목은 항상 표시 |
144 | 149 |
return true; |
145 |
- } |
|
150 |
+ }, |
|
151 |
+ |
|
152 |
+ //게시글 상세조회 페이지로 이동 |
|
153 |
+ postSelectOnePage: function (item) { |
|
154 |
+ const vm = this; |
|
155 |
+ |
|
156 |
+ axios({ |
|
157 |
+ url: '/post/postViewCount.json', |
|
158 |
+ method: 'post', |
|
159 |
+ hearder: { |
|
160 |
+ 'Content-Type': "application/json; charset=UTF-8", |
|
161 |
+ }, |
|
162 |
+ data: { 'post_id': item.post_id, 'bbs_id': item.bbs_id } |
|
163 |
+ }).then(function (response) { |
|
164 |
+ axios({ |
|
165 |
+ url: '/statistics/postLogInsert.json', |
|
166 |
+ method: 'post', |
|
167 |
+ hearder: { |
|
168 |
+ 'Content-Type': "application/json; charset=UTF-8", |
|
169 |
+ }, |
|
170 |
+ data: item |
|
171 |
+ }).then(function (response) { |
|
172 |
+ window.location.href = item.link; |
|
173 |
+ }) |
|
174 |
+ |
|
175 |
+ }) |
|
176 |
+ }, |
|
146 | 177 |
}, |
147 | 178 |
watch: { |
148 | 179 |
|
--- client/views/pages/admin/statistics/MatchingStatistics.vue
+++ client/views/pages/admin/statistics/MatchingStatistics.vue
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 |
</div> |
38 | 38 |
<div class="table-zone"> |
39 | 39 |
<div class="btn-wrap"> |
40 |
- <button class="blue-border-bnt">Excel 다운로드</button> |
|
40 |
+ <button class="blue-border-bnt" @click="statisticsLogExcel()">Excel 다운로드</button> |
|
41 | 41 |
</div> |
42 | 42 |
<table class="statistics-table"> |
43 | 43 |
<colgroup> |
... | ... | @@ -134,11 +134,11 @@ |
134 | 134 |
</div> |
135 | 135 |
<div class="table-zone"> |
136 | 136 |
<div class="flex middle-zone"> |
137 |
- <select name="" id=""> |
|
137 |
+ <select name="" id="" v-model="company_id" @change="detailTypeCheck()"> |
|
138 | 138 |
<option v-for="(item, idx) in companyList" :key="idx" :value=item.company_id>{{ |
139 | 139 |
item.company_nm }}</option> |
140 | 140 |
</select> |
141 |
- <button class="blue-border-bnt">Excel 다운로드</button> |
|
141 |
+ <button class="blue-border-bnt" @click="detailLogExcel()">Excel 다운로드</button> |
|
142 | 142 |
</div> |
143 | 143 |
<table class="statistics-table"> |
144 | 144 |
<colgroup> |
... | ... | @@ -160,10 +160,10 @@ |
160 | 160 |
</thead> |
161 | 161 |
<tbody> |
162 | 162 |
<tr> |
163 |
- <td>{{ item.date }}</td> |
|
164 |
- <td>{{ item.total }}</td> |
|
165 |
- <td>{{ item.company }}</td> |
|
166 |
- <td>{{ item.common }}</td> |
|
163 |
+ <td></td> |
|
164 |
+ <td></td> |
|
165 |
+ <td></td> |
|
166 |
+ <td></td> |
|
167 | 167 |
</tr> |
168 | 168 |
</tbody> |
169 | 169 |
</table> |
... | ... | @@ -214,11 +214,15 @@ |
214 | 214 |
}, |
215 | 215 |
// oneMonthLater: COMMON_UTIL.today(), |
216 | 216 |
yesterDay: COMMON_UTIL.yesterday(), |
217 |
- companyList: [], |
|
217 |
+ |
|
218 | 218 |
companyStatisticsList: [], |
219 | 219 |
companySelectListCount: 0, |
220 | 220 |
totalCount: {}, |
221 |
+ |
|
222 |
+ company_id: null, |
|
223 |
+ companyList: [], |
|
221 | 224 |
companyDetailStatistics: [], |
225 |
+ detailTotalCount: {}, |
|
222 | 226 |
}; |
223 | 227 |
}, |
224 | 228 |
methods: { |
... | ... | @@ -234,10 +238,10 @@ |
234 | 238 |
console.log(clickedRadioName); |
235 | 239 |
if (clickedRadioName == "pickMatching1") { |
236 | 240 |
this.selectedOption1 = option; |
237 |
- this.listDateCheck(); |
|
241 |
+ this.listTypeCheck(); |
|
238 | 242 |
} else if (clickedRadioName == "pickMatching2") { |
239 | 243 |
this.selectedOption2 = option; |
240 |
- this.detailDateCheck(); |
|
244 |
+ this.detailTypeCheck(); |
|
241 | 245 |
} |
242 | 246 |
}, |
243 | 247 |
|
... | ... | @@ -284,6 +288,8 @@ |
284 | 288 |
/** 선택기업 픽 세부통계 */ |
285 | 289 |
companyDetailPickStatistics: function () { |
286 | 290 |
const vm = this; |
291 |
+ vm.listSearch.company_id = vm.company_id; |
|
292 |
+ |
|
287 | 293 |
axios({ |
288 | 294 |
url: '/statistics/companyDetailPickStatistics.json', |
289 | 295 |
method: 'post', |
... | ... | @@ -292,8 +298,8 @@ |
292 | 298 |
}, |
293 | 299 |
data: vm.listSearch |
294 | 300 |
}).then(function (response) { |
295 |
- vm.companyStatisticsList = response.data.companyPickStatistics; |
|
296 |
- vm.companySelectListCount = response.data.companySelectListCount; |
|
301 |
+ vm.companyDetailStatistics = response.data.companyDetailStatistics; |
|
302 |
+ vm.detailTotalCount = response.data.data.totalCount; |
|
297 | 303 |
}).catch(function (error) { |
298 | 304 |
console.log("error - ", error) |
299 | 305 |
alert("PICK 통계 조회 오류, 관리자에게 문의하세요."); |
... | ... | @@ -311,8 +317,8 @@ |
311 | 317 |
}, |
312 | 318 |
data: vm.listSearch |
313 | 319 |
}).then(function (response) { |
314 |
- vm.companyStatisticsList = response.data.companyMatchingStatistics; |
|
315 |
- vm.companySelectListCount = response.data.companySelectListCount; |
|
320 |
+ vm.companyDetailStatistics = response.data.companyMatchingStatistics; |
|
321 |
+ vm.detailTotalCount = response.data.data.totalCount; |
|
316 | 322 |
}).catch(function (error) { |
317 | 323 |
console.log("error - ", error) |
318 | 324 |
alert("MATCHING 통계 조회 오류, 관리자에게 문의하세요."); |
... | ... | @@ -376,11 +382,53 @@ |
376 | 382 |
data: vm.listSearch |
377 | 383 |
}).then(function (response) { |
378 | 384 |
vm.companyList = response.data |
385 |
+ vm.company_id = vm.companyList[0].company_id; |
|
386 |
+ vm.companyDetailPickStatistics(); |
|
379 | 387 |
}).catch(function (error) { |
380 | 388 |
console.log("error - ", error) |
381 | 389 |
alert("기업 리스트 조회 오류, 관리자에게 문의하세요."); |
382 | 390 |
}) |
383 | 391 |
}, |
392 |
+ |
|
393 |
+ /** 기업 별 pick 통계 엑셀 다운로드 */ |
|
394 |
+ statisticsLogExcel: function() { |
|
395 |
+ const vm = this; |
|
396 |
+ |
|
397 |
+ if(vm.companySelectListCount === 0) { |
|
398 |
+ alert("데이터가 없어 EXCEL 다운로드를 실행할 수 없습니다.") |
|
399 |
+ return |
|
400 |
+ } |
|
401 |
+ |
|
402 |
+ vm.listSearch.selectedOption1 = vm.selectedOption1; |
|
403 |
+ |
|
404 |
+ axios({ |
|
405 |
+ url: "/statistics/pickStatisticsLogExcel.json", |
|
406 |
+ method: "post", |
|
407 |
+ herders: { |
|
408 |
+ "Content-Type": "application/json; charset=UTF-8", |
|
409 |
+ }, |
|
410 |
+ responseType: 'arraybuffer', |
|
411 |
+ data: vm.listSearch, |
|
412 |
+ }) |
|
413 |
+ .then(function (response) { |
|
414 |
+ const url = window.URL.createObjectURL(new Blob([response.data], { type: response.headers["content-type"] })); |
|
415 |
+ const link = document.createElement("a"); |
|
416 |
+ link.href = url; |
|
417 |
+ let today = COMMON_UTIL.today(); |
|
418 |
+ if(vm.selectedOption1 == 'pick') { |
|
419 |
+ link.download = '[' + today + ']' + '기업별 pick 통계'; |
|
420 |
+ } else { |
|
421 |
+ link.download = '[' + today + ']' + '기업별 matching 통계'; |
|
422 |
+ } |
|
423 |
+ |
|
424 |
+ link.click(); |
|
425 |
+ window.URL.revokeObjectURL(url); |
|
426 |
+ }) |
|
427 |
+ .catch(function (error) { |
|
428 |
+ console.log("userAccessLogExcel - error : ", error); |
|
429 |
+ alert("통계 Excel 다운로드 오류, 관리자에게 문의해주세요."); |
|
430 |
+ }); |
|
431 |
+ }, |
|
384 | 432 |
}, |
385 | 433 |
watch: { |
386 | 434 |
// 'listSearch.startDate': function (newValue) { |
--- client/views/pages/user/Data/Technology.vue
+++ client/views/pages/user/Data/Technology.vue
... | ... | @@ -211,7 +211,17 @@ |
211 | 211 |
}, |
212 | 212 |
data: { 'post_id': item.post_id, 'bbs_id': item.bbs_id } |
213 | 213 |
}).then(function (response) { |
214 |
- window.location.href = item.link_url; |
|
214 |
+ axios({ |
|
215 |
+ url: '/statistics/postLogInsert.json', |
|
216 |
+ method: 'post', |
|
217 |
+ hearder: { |
|
218 |
+ 'Content-Type': "application/json; charset=UTF-8", |
|
219 |
+ }, |
|
220 |
+ data: item |
|
221 |
+ }).then(function (response) { |
|
222 |
+ window.location.href = item.link_url; |
|
223 |
+ }) |
|
224 |
+ |
|
215 | 225 |
}).catch(function (error) { |
216 | 226 |
alert("기술문서 상세보기 오류, 관리자에게 문의바랍니다."); |
217 | 227 |
}) |
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?