
--- client/resources/css/Main.css
+++ client/resources/css/Main.css
... | ... | @@ -97,25 +97,31 @@ |
97 | 97 |
box-shadow: 1px 1px 20px #3a3a3a; |
98 | 98 |
background-color: white; |
99 | 99 |
} |
100 |
-.main-popup-div .swiper-wrapper { |
|
101 |
- padding: 0 0 3rem; |
|
102 |
-} |
|
100 |
+ |
|
103 | 101 |
.main-popup-div { |
104 | 102 |
border-radius: 2rem; |
105 | 103 |
} |
104 |
+ |
|
105 |
+.main-popup-div a{ |
|
106 |
+ display: block; |
|
107 |
+ width: 100%; |
|
108 |
+ height: auto; |
|
109 |
+} |
|
106 | 110 |
.main-popup img { |
107 | 111 |
width: 100%; |
108 |
- /* margin: 2rem; */ |
|
109 | 112 |
border-top-right-radius: 2rem; |
110 | 113 |
border-top-left-radius: 2rem; |
114 |
+ object-fit: cover; |
|
111 | 115 |
} |
112 | 116 |
.main-popup-input { |
113 |
- padding: 0.5rem 1.7rem; |
|
117 |
+ padding: 2rem 1.7rem; |
|
114 | 118 |
display: flex; |
115 | 119 |
justify-content: space-between; |
116 | 120 |
text-align: center; |
117 | 121 |
} |
118 |
- |
|
122 |
+.main-popup-input p{ |
|
123 |
+ cursor: pointer; |
|
124 |
+} |
|
119 | 125 |
.modal-news-title { |
120 | 126 |
font-size: 2rem; |
121 | 127 |
font-weight: 600; |
--- client/views/component/chart/BarChart.vue
+++ client/views/component/chart/BarChart.vue
... | ... | @@ -14,12 +14,15 @@ |
14 | 14 |
props: { |
15 | 15 |
chartData: { |
16 | 16 |
type: Array, |
17 |
- default:[], |
|
17 |
+ default: [], |
|
18 | 18 |
}, |
19 | 19 |
mapping: { |
20 | 20 |
type: Array, |
21 | 21 |
required: true, |
22 | 22 |
}, |
23 |
+ columnX:{ |
|
24 |
+ type:String |
|
25 |
+ } |
|
23 | 26 |
}, |
24 | 27 |
data() { |
25 | 28 |
return { |
... | ... | @@ -27,7 +30,7 @@ |
27 | 30 |
}; |
28 | 31 |
}, |
29 | 32 |
methods: { |
30 |
- chartCreate: function (data, mapping) { |
|
33 |
+ chartCreate: function (data, columnX ,mapping) { |
|
31 | 34 |
let chartWarp = this.$refs["chartdiv"]; // 차트 상위 div ref 매칭 |
32 | 35 |
chartWarp.innerHTML = ""; // 차트 상위 div 내용 초기화 (기존 차트 삭제) |
33 | 36 |
let div = document.createElement("div"); // 차트를 담을 빈 div 생성 (차트 하위 div) |
... | ... | @@ -76,7 +79,7 @@ |
76 | 79 |
}) |
77 | 80 |
|
78 | 81 |
let xAxis = chart.xAxes.push(am5xy.CategoryAxis.new(root, { |
79 |
- categoryField: "date", |
|
82 |
+ categoryField: columnX, |
|
80 | 83 |
renderer: xRenderer, |
81 | 84 |
tooltip: am5.Tooltip.new(root, {}) |
82 | 85 |
})); |
... | ... | @@ -102,7 +105,7 @@ |
102 | 105 |
xAxis: xAxis, |
103 | 106 |
yAxis: yAxis, |
104 | 107 |
valueYField: fieldName, |
105 |
- categoryXField: "date" |
|
108 |
+ categoryXField: columnX |
|
106 | 109 |
})); |
107 | 110 |
|
108 | 111 |
series.columns.template.setAll({ |
... | ... | @@ -135,10 +138,12 @@ |
135 | 138 |
} |
136 | 139 |
|
137 | 140 |
let keys = Object.keys(data[0]); // 데이터 객체의 모든 키를 가져옵니다. |
138 |
- for (let i = 0; i < keys.length; i++) { // 첫 번째 키인 'year'는 제외하고 반복합니다. |
|
141 |
+ for (let i = 0; i < keys.length; i++) { |
|
139 | 142 |
let key = keys[i]; |
140 |
- let koreanKey = mapping[key]; // 영어 키를 한글로 맵핑합니다. |
|
141 |
- makeSeries(koreanKey, key); |
|
143 |
+ if (key !== 'stats_date') { // 'stats_date'를 제외하고 차트를 생성합니다. |
|
144 |
+ let koreanKey = mapping[key]; // 영어 키를 한글로 맵핑합니다. |
|
145 |
+ makeSeries(koreanKey, key); |
|
146 |
+ } |
|
142 | 147 |
} |
143 | 148 |
|
144 | 149 |
|
... | ... | @@ -150,9 +155,9 @@ |
150 | 155 |
}, |
151 | 156 |
watch: { |
152 | 157 |
'chartData': function (newData) { |
153 |
- console.log('pageList - ',newData); |
|
158 |
+ console.log('pageList - ', newData); |
|
154 | 159 |
console.log('mapping - ', this.mapping) |
155 |
- this.chartCreate(newData, this.mapping) |
|
160 |
+ this.chartCreate(newData,this.columnX, this.mapping) |
|
156 | 161 |
} |
157 | 162 |
}, |
158 | 163 |
computed: { |
... | ... | @@ -162,7 +167,6 @@ |
162 | 167 |
|
163 | 168 |
}, |
164 | 169 |
mounted() { |
165 |
- |
|
166 | 170 |
} |
167 | 171 |
} |
168 | 172 |
|
--- client/views/pages/admin/statistics/MatchingStatistics.vue
+++ client/views/pages/admin/statistics/MatchingStatistics.vue
... | ... | @@ -41,18 +41,19 @@ |
41 | 41 |
</div> |
42 | 42 |
<table class="statistics-table"> |
43 | 43 |
<colgroup> |
44 |
- <col style="width: 20%;" /> |
|
45 | 44 |
<col style="width: 16%;" /> |
46 |
- <col style="width: 16%;" /> |
|
47 |
- <col style="width: 16%;" /> |
|
48 |
- <col style="width: 16%;" /> |
|
49 |
- <col style="width: 16%;" /> |
|
45 |
+ <col style="width: 14%;" /> |
|
46 |
+ <col style="width: 14%;" /> |
|
47 |
+ <col style="width: 14%;" /> |
|
48 |
+ <col style="width: 14%;" /> |
|
49 |
+ <col style="width: 14%;" /> |
|
50 |
+ <col style="width: 14%;" /> |
|
50 | 51 |
</colgroup> |
51 | 52 |
<thead> |
52 | 53 |
<tr> |
53 | 54 |
<th rowspan="2">기업별</th> |
54 |
- <th colspan="5" v-if="selectedOption1 === 'pick'">Pick</th> |
|
55 |
- <th colspan="5" v-else-if="selectedOption1 === 'matching'">Matching</th> |
|
55 |
+ <th colspan="6" v-if="selectedOption1 === 'pick'">Pick</th> |
|
56 |
+ <th colspan="6" v-else-if="selectedOption1 === 'matching'">Matching</th> |
|
56 | 57 |
</tr> |
57 | 58 |
<tr> |
58 | 59 |
<th>성공건수</th> |
--- client/views/pages/admin/statistics/MenuStatistics.vue
+++ client/views/pages/admin/statistics/MenuStatistics.vue
... | ... | @@ -21,7 +21,7 @@ |
21 | 21 |
</div> |
22 | 22 |
</div> |
23 | 23 |
</div> |
24 |
- <BarChart :chartData="pageLogListByDate" :mapping="keyMapping" /> |
|
24 |
+ <BarChart :chartData="pageLogListByDate" :mapping="keyMapping" columnX="stats_date"/> |
|
25 | 25 |
<div class="table-zone"> |
26 | 26 |
<div class="btn-wrap"> |
27 | 27 |
<button class="blue-border-bnt">Excel 다운로드</button> |
... | ... | @@ -84,7 +84,7 @@ |
84 | 84 |
data() { |
85 | 85 |
return { |
86 | 86 |
keyMapping: { |
87 |
- stats_date: "date", |
|
87 |
+ stats_date: "날짜", |
|
88 | 88 |
info: "통합지원센터", |
89 | 89 |
technology: "기술문서", |
90 | 90 |
databook: "자료집", |
... | ... | @@ -92,6 +92,7 @@ |
92 | 92 |
notice: "공지사항", |
93 | 93 |
news: "홍보뉴스", |
94 | 94 |
wg: "전문가협의체", |
95 |
+ total:"전체" |
|
95 | 96 |
}, |
96 | 97 |
|
97 | 98 |
pageListSearch: { |
--- client/views/pages/user/main/Main.vue
+++ client/views/pages/user/main/Main.vue
... | ... | @@ -326,31 +326,30 @@ |
326 | 326 |
|
327 | 327 |
|
328 | 328 |
|
329 |
- <!-- <div class="main-popup" v-if="showPopup"> |
|
329 |
+ <div class="main-popup" v-show="popupList.length > 0"> |
|
330 | 330 |
<div> |
331 |
- |
|
332 | 331 |
<div class="main-popup-div"> |
333 |
- <swiper style="margin: 2rem;" :spaceBetween="30" :centeredSlides="true" :autoplay="{ |
|
332 |
+ <swiper :spaceBetween="30" :centeredSlides="true" :autoplay="{ |
|
334 | 333 |
delay: 3000, |
335 | 334 |
disableOnInteraction: false, |
336 | 335 |
}" :pagination="{ |
337 | 336 |
clickable: true, |
338 | 337 |
}" :navigation="false" :modules="modules" class="mySwiper"> |
339 | 338 |
|
340 |
- <swiper-slide><img src="../../../../resources/jpg/main-popup-img.jpg" alt=""></swiper-slide> |
|
341 |
- <swiper-slide><img src="../../../../resources/jpg/main-popup-img.jpg" alt=""></swiper-slide> |
|
342 |
- <swiper-slide><img src="../../../../resources/jpg/main-popup-img.jpg" alt=""></swiper-slide> |
|
343 |
- <swiper-slide><img src="../../../../resources/jpg/main-popup-img.jpg" alt=""></swiper-slide> |
|
339 |
+ <swiper-slide v-for="(item, index) in popupList" :key="index"> |
|
340 |
+ <a :href="item.shortcuts_url" target="_blank"> |
|
341 |
+ <img :src="getFilePath(item.file_path, item.file_nm, item.file_extn_nm)" alt=""> |
|
342 |
+ </a> |
|
343 |
+ </swiper-slide> |
|
344 | 344 |
|
345 | 345 |
</swiper> |
346 | 346 |
</div> |
347 | 347 |
<div class="main-popup-input" :class="{ active: doNotShow }"> |
348 | 348 |
<p @click="closeForDay">오늘 하루동안 열지 않기</p> |
349 | 349 |
<p @click="closeNow">닫기</p> |
350 |
- |
|
351 | 350 |
</div> |
352 | 351 |
</div> |
353 |
- </div> --> |
|
352 |
+ </div> |
|
354 | 353 |
</template> |
355 | 354 |
|
356 | 355 |
<script> |
... | ... | @@ -386,9 +385,6 @@ |
386 | 385 |
swiper: null, |
387 | 386 |
store: useStore(), |
388 | 387 |
popupList: [] |
389 |
- // showPopup: true, |
|
390 |
- // doNotShow: false, |
|
391 |
- // doNotShow: this.checkPopup() |
|
392 | 388 |
} |
393 | 389 |
}, |
394 | 390 |
methods: { |
... | ... | @@ -398,10 +394,9 @@ |
398 | 394 |
// localStorage.setItem('popupClosed', now); |
399 | 395 |
// this.doNotShow = true; |
400 | 396 |
// }, |
401 |
- // closeNow: function () { |
|
402 |
- // this.doNotShow = true; |
|
403 |
- |
|
404 |
- // }, |
|
397 |
+ closeNow: function () { |
|
398 |
+ this.popupList = []; |
|
399 |
+ }, |
|
405 | 400 |
// checkPopup: function () { |
406 | 401 |
// const popupClosedTime = localStorage.getItem('popupClosed'); |
407 | 402 |
// if (popupClosedTime) { |
... | ... | @@ -416,7 +411,9 @@ |
416 | 411 |
// return false; |
417 | 412 |
// }, |
418 | 413 |
|
419 |
- |
|
414 |
+ getFilePath: function (filePath, fileName,fileExt) { |
|
415 |
+ return `http://localhost:8080${filePath}/${fileName}.${fileExt}`; |
|
416 |
+ }, |
|
420 | 417 |
|
421 | 418 |
|
422 | 419 |
showAlert: function () { |
... | ... | @@ -529,10 +526,10 @@ |
529 | 526 |
'Content-Type': "application/json; charset=UTF-8", |
530 | 527 |
}, |
531 | 528 |
data: { "page_nm": "공지사항" } |
532 |
- }).then(function(){ |
|
529 |
+ }).then(function () { |
|
533 | 530 |
vm.$router.push({ path: '/NoticeOne.page', query: { 'post_id': item.post_id, 'file_id': item.file_id, 'bbs_id': item.bbs_id } }); |
534 | 531 |
}) |
535 |
- |
|
532 |
+ |
|
536 | 533 |
}).catch(function (error) { |
537 | 534 |
console.log(error) |
538 | 535 |
alert("공지사항 상세보기 오류, 관리자에게 문의바랍니다."); |
... | ... | @@ -540,16 +537,16 @@ |
540 | 537 |
}, |
541 | 538 |
|
542 | 539 |
/** 사이트 방문자 통계 */ |
543 |
- visitLogInsert: function() { |
|
540 |
+ visitLogInsert: function () { |
|
544 | 541 |
const vm = this; |
545 |
- console.log("vm.store.state.loginUser ",vm.store.state.loginUser) |
|
542 |
+ console.log("vm.store.state.loginUser ", vm.store.state.loginUser) |
|
546 | 543 |
axios({ |
547 | 544 |
url: '/statistics/visitLogInsert.json', |
548 | 545 |
method: 'post', |
549 | 546 |
hearder: { |
550 | 547 |
'Content-Type': "application/json; charset=UTF-8", |
551 | 548 |
}, |
552 |
- data: {'user' : vm.store.state.loginUser} |
|
549 |
+ data: { 'user': vm.store.state.loginUser } |
|
553 | 550 |
}) |
554 | 551 |
}, |
555 | 552 |
|
... | ... | @@ -564,7 +561,7 @@ |
564 | 561 |
}, |
565 | 562 |
}).then(function (response) { |
566 | 563 |
vm.popupList = response.data; |
567 |
- console.log("vm.popupList",vm.popupList) |
|
564 |
+ console.log("vm.popupList", vm.popupList) |
|
568 | 565 |
}).catch(function (error) { |
569 | 566 |
alert('팝업 목록 조회 오류, 관리자에게 문의하세요.'); |
570 | 567 |
}) |
... | ... | @@ -572,12 +569,6 @@ |
572 | 569 |
|
573 | 570 |
}, |
574 | 571 |
watch: { |
575 |
- doNotShow(newValue) { |
|
576 |
- if (newValue) { |
|
577 |
- this.showPopup = false; |
|
578 |
- localStorage.setItem('doNotShow', true); |
|
579 |
- } |
|
580 |
- } |
|
581 | 572 |
}, |
582 | 573 |
computed: { |
583 | 574 |
|
... | ... | @@ -598,10 +589,6 @@ |
598 | 589 |
this.noticeListForMain(); |
599 | 590 |
this.noticeBannerListForMain(); |
600 | 591 |
this.visitLogInsert(); |
601 |
- this.initSwiper(); |
|
602 |
- if (localStorage.getItem('doNotShow')) { |
|
603 |
- this.showPopup = false; |
|
604 |
- } |
|
605 | 592 |
} |
606 | 593 |
} |
607 | 594 |
</script> |
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?