yjryu / KERIS star
이세현 이세현 2023-11-12
231112 이세현 사용자 홍보/뉴스
@338f9f4d761c15b90cb8d07739aba65966d8402d
client/views/pages/admin/news/NewsSelectList.vue
--- client/views/pages/admin/news/NewsSelectList.vue
+++ client/views/pages/admin/news/NewsSelectList.vue
@@ -3,7 +3,7 @@
         <div class="content-box">
             <div class="title-wrap">
                 <div class="flex-start">
-                    <img src="../../../../resources/jpg/info-logo.png" alt="공지사항 아이콘" class="title-icon">
+                    <img src="../../../../resources/jpg/info-logo.png" alt="홍보뉴스 아이콘" class="title-icon">
                     <h2 class="main-title">홍보 / news</h2>
                 </div>
             </div>
client/views/pages/user/community/News.vue
--- client/views/pages/user/community/News.vue
+++ client/views/pages/user/community/News.vue
@@ -3,65 +3,31 @@
         <div class="w1400">
             <div class="news">
                 <div class="page-logo flex-start">
-                    <img src="../../../../resources/jpg/info-logo.png" alt="">
+                    <img src="../../../../resources/jpg/info-logo.png" alt="홍보뉴스 아이콘">
                     <h1>홍보/뉴스</h1>
                 </div>
                 <ul class="news-bos">
-                    <li class="news-bos-box">
+                    <li class="news-bos-box" v-for="(item, idx) in postList" :key="idx">
                         <div class="modal-img"
-                            @click="openModal('https://www.youtube.com/embed/rCu7WIxf5P8?si=1KRKYGkd8uh6pe9h')">
-                            <img src="https://img.youtube.com/vi/rCu7WIxf5P8/0.jpg" alt="Thumbnail 2">
+                            @click="openModal(item)">
+                            <img :src="'http://localhost:8088'+ item.file_path +'\\thumbnail_'+ item.file_nm + '.' + item.file_extn_nm" alt="thumbnail" />      
                         </div>
                         <div>
-                            <h3>학교알리미</h3>
+                            <h3>{{ item.post_title }}</h3>
                         </div>
                         <div class="news-box-sed">
                             <p>[사립유치원K-에듀파인] 사립유치원회계, 어떻게 하면 투명하게 운영할 수 있을까요?</p>
                         </div>
                         <div class="news-box-end">
-                            <p>작성자 <span>케리스</span></p>
-                            <p>조회수 <span>100</span></p>
-                        </div>
-                    </li>
-                    <li class="news-bos-box">
-                        <div class="modal-img"
-                            @click="openModal('https://www.youtube.com/embed/rCu7WIxf5P8?si=1KRKYGkd8uh6pe9h')">
-                            <img src="https://img.youtube.com/vi/rCu7WIxf5P8/0.jpg" alt="Thumbnail 2">
-                        </div>
-                        <div>
-                            <h3>학교알리미</h3>
-                        </div>
-                        <div class="news-box-sed">
-                            <p>[사립유치원K-에듀파인] 사립유치원회계, 어떻게 하면 투명하게 운영할 수 있을까요?</p>
-                        </div>
-                        <div class="news-box-end">
-                            <p>작성자 <span>케리스</span></p>
-                            <p>조회수 <span>100</span></p>
-                        </div>
-                    </li>
-                    <li class="news-bos-box">
-                        <div class="modal-img"
-                            @click="openModal('https://www.youtube.com/embed/rCu7WIxf5P8?si=1KRKYGkd8uh6pe9h')">
-                            <img src="https://img.youtube.com/vi/rCu7WIxf5P8/0.jpg" alt="Thumbnail 2">
-                        </div>
-                        <div>
-                            <h3>학교알리미</h3>
-                        </div>
-                        <div class="news-box-sed">
-                            <p>[사립유치원K-에듀파인] 사립유치원회계, 어떻게 하면 투명하게 운영할 수 있을까요?</p>
-                        </div>
-                        <div class="news-box-end">
-                            <p>작성자 <span>케리스</span></p>
-                            <p>조회수 <span>100</span></p>
+                            <p>작성자 <span>{{ item.rgtr_id }}</span></p>
+                            <p>조회수 <span>{{ item.view_cnt }}</span></p>
                         </div>
                     </li>
                 </ul>
             </div>
-            <div v-if="isModalOpen" class="modal">
+            <div v-show="isModalOpen" class="modal">
                 <div class="modal-content">
-                    <iframe width="100%" height="80%" :src="videoUrl" title="YouTube video player" frameborder="0"
-                        allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
-                        allowfullscreen></iframe>
+                    <div ref="modalInner"></div>
                     <!-- 모달 닫기 버튼 -->
                     <button @click="closeModal">닫기</button>
                 </div>
@@ -71,21 +37,66 @@
 </template>
 
 <script>
+import axios from 'axios';
+import COMMON_UTIL from '../../../../resources/js/commonUtil.js';
+
 export default {
     data() {
         return {
             isModalOpen: false,
             videoUrl: '',
+            postList: [],
+            postListCount: 0,
+            postIdx: 0,
+            postListSearch: {
+                currentPage: 1,
+                perPage: 10,
+                searchType: null,
+                searchText: null,
+                bbs_id : '1'
+            },
         }
     },
     methods: {
-        openModal(url) {
-            this.videoUrl = url;
+        openModal: function(item){
             this.isModalOpen = true;
+            this.videoUrl = item.post_content;
+            this.urlHTML(this.videoUrl)
         },
+
+        urlHTML: function(content) {
+            let divRef = this.$refs['modalInner'];
+            divRef.innerHTML = content;
+        },
+        
         closeModal() {
             this.isModalOpen = false;
         },
+
+        postSelectList: function() {
+            const vm = this;
+            
+            axios({
+                url: '/post/newsSelectListForMain.json',
+                method: 'post',
+                hearder: {
+                    'Content-Type': "application/json; charset=UTF-8",
+                },
+                data: vm.postListSearch
+            }).then(function(response) {
+                vm.postList = response.data.postSelectList;
+                vm.postListCount = response.data.postSelectListCount;
+                vm.postIdx = vm.postListCount - (vm.postListSearch.currentPage - 1) * vm.postListSearch.perPage;
+            }).catch(function(error) {
+                alert('홍보/뉴스 목록 조회 오류, 관리자에게 문의하세요.');
+            })
+        },
+
+         //날짜 시,분,초 자르기
+         yyyymmdd: function (date) {
+            return COMMON_UTIL.yyyymmdd(date);
+        },
+
     },
     watch: {
 
@@ -94,7 +105,8 @@
 
     },
     mounted() {
-        console.log('Login mounted');
+        console.log('User News mounted');
+        this.postSelectList();
     }
 }
 </script>
client/views/pages/user/main/Main.vue
--- client/views/pages/user/main/Main.vue
+++ client/views/pages/user/main/Main.vue
@@ -465,14 +465,11 @@
             return COMMON_UTIL.yyyymmdd(date);
         },
         openModal: function(item){
-            console.log('item!!', item);
-
             this.isModalOpen = true;
             this.videoUrl = item.post_content;
             this.urlHTML(this.videoUrl)
         },
         urlHTML: function(content) {
-            console.log("content: ", content);
             /* this.$nextTick(() => {
                 let divRef = this.$refs['modalInner'];
                 if (divRef) {
@@ -481,9 +478,6 @@
             }); */
             let divRef = this.$refs['modalInner'];
             divRef.innerHTML = content;
-
-            console.log(divRef);
-            // divUrl.innerTEXT(content);
         }
     },
     watch: {
Add a comment
List