• Y
  • List All
  • Feedback
    • This Project
    • All Projects
Profile Account settings Log out
  • Favorite
  • Project
  • All
Loading...
  • Log in
  • Sign up
jhpark / cms_frontend star
  • Project homeH
  • CodeC
  • IssueI
  • Pull requestP
  • Review R
  • MilestoneM
  • BoardB 1
  • Files
  • Commit
  • Branches
cms_frontendclientviewspagesusergovernmentmainMain_v2.vue
Download as .zip file
File name
Commit message
Commit date
client
250317 방선주 search-bar css 변경
03-17
server/modules
250108 박정하 서브디렉토리 수정
01-08
.gitignore
250108 박정하 서브디렉토리 수정
01-08
Global.js
250108 박정하 서브디렉토리 수정
01-08
package-lock.json
250114 최정임 테마1,2 헤더1,2 추가
01-14
package.json
250114 최정임 테마1,2 헤더1,2 추가
01-14
vetur.config.js
250108 박정하 최초 커밋
01-08
webpack.config.js
250108 박정하 서브디렉토리 수정
01-08
File name
Commit message
Commit date
ckeditor
250108 박정하 서브디렉토리 수정
01-08
resources
250317 방선주 미사용 코드 삭제
03-17
theme
250317 방선주 search-bar css 변경
03-17
views
250317 방선주 search-bar css 변경
03-17
favicon.ico
250108 박정하 서브디렉토리 수정
01-08
File name
Commit message
Commit date
common
250108 박정하 서브디렉토리 수정
01-08
component
250108 박정하 서브디렉토리 수정
01-08
layout
250114 최정임 테마1,2 헤더1,2 추가
01-14
pages
250317 방선주 search-bar css 변경
03-17
index.html
250117 최정임
01-17
index.js
250108 박정하 서브디렉토리 수정
01-08
robots.txt
250108 박정하 서브디렉토리 수정
01-08
File name
Commit message
Commit date
adm
250317 방선주 미사용 코드 삭제
03-17
login
250108 박정하 서브디렉토리 수정
01-08
popup
250108 박정하 서브디렉토리 수정
01-08
user
250317 방선주 search-bar css 변경
03-17
App.vue
250108 박정하 서브디렉토리 수정
01-08
AppRouter.js
250114 최정임 테마1,2 헤더1,2 추가
01-14
AppStore.js
250108 박정하 서브디렉토리 수정
01-08
File name
Commit message
Commit date
company
250114 최정임 css 수정
01-14
etc
250108 박정하 서브디렉토리 수정
01-08
government
250317 방선주 search-bar css 변경
03-17
intro
250110 최정임 폰트 크기, 너비 css수정
01-10
File name
Commit message
Commit date
community
250114 최정임 css 수정
01-14
companyInfo
250114 최정임 css 수정
01-14
main
250317 방선주 search-bar css 변경
03-17
myPage
250114 최정임 css 수정
01-14
searchPage
250317 방선주 search-bar css 변경
03-17
statistics
250114 최정임 css 수정
01-14
File name
Commit message
Commit date
Main.vue
250317 방선주 search-bar css 변경
03-17
Main_v0.vue
250114 최정임 테마1,2 헤더1,2 추가
01-14
Main_v1.vue
250114 최정임 css 수정2
01-14
Main_v2.vue
250117 최정임
01-17
jlchoi 01-17 9a5faa2 250117 최정임 UNIX
Raw Open in browser Change history
<template> <div class="content main "> <div class="w1400"> <!-- 공지사항 및 배너 --> <div class="community-zone flex mb30"> <div class="visual-zone gd-8 pl0"> <div class="swiper-container"> <div class="swiper-wrapper"> <div class="swiper-slide" v-for="(item, index) in visualSlides" :key="index"> <img :src="item.img" :alt="item.alt" /> </div> </div> </div> <div class="swiper-pagination"></div> <div class="swiper-button-prev button"></div> <div class="swiper-button-next button"></div> </div> <div class="gd-4 pr0 "> <!-- 검색창 --> <div class="community-zone mb20"> <div class="box-out-title flex justify-between align-center"> </div> <div class="search-bar text-ct" tabindex="0"> <div class="box"> <p>통합검색</p> <div class="bar"></div> <input type="text" class="search-input" placeholder="검색어를 입력하세요." v-model="search.searchText" @keyup.enter="totalSearch" /> <button class="icon-button search-button" @click="totalSearch"> <svg-icon type="mdi" :path="this.$iconPath()" class="search-icon"></svg-icon> </button> </div> </div> </div> <div class=""> <div class="box-out-title flex justify-between align-center"> <p>공지사항(목록형)</p> <router-link to="/government/BBS_MNG_000000000000027/list.page" class=" flex align-center"> <p class="mr5">바로가기</p> <svg-icon type="mdi" :width="15" :height="15" :path="this.$iconPath('mdiArrowRight')"></svg-icon> </router-link> </div> <div class="box"> <div class="tab-nav mb15"> <ul class="flex align-center" style="gap: 30px;"> <li v-for="(item, idx) in codeList" :key="idx" :value="item.cd" :class="{ ' ': true, activeTab: activeTab === item.cd, }" @click="showTab(item.cd)"> <p>{{ item.cdNm }}</p> </li> </ul> </div> <div class="tab-content"> <div> <div class="list_news flex justify-between" style="gap: 20px;"> <ul> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> </ul> <ul> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> <li class="leli"> <a href="" title="천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)">천안청년센터 이음 매니저 채용 공고(청년인턴, 청년도전지원사업)</a> <span>2025.01.08</span> </li> </ul> </div> </div> </div> </div> </div> </div> </div> <!-- 바로가기 --> <div class="community-zone mb20"> <div class="box-out-title flex justify-between align-center"> <p>바로가기</p> </div> <ul class="quick-link"> <li><a href="/yeyak.do" target="_blank" title="새창열림" class="link"><i class="icon n1"></i>통합예약</a></li> <li><a href="/yeyak.do" target="_blank" title="새창열림" class="link"><i class="icon n1"></i>통합예약</a></li> <li><a href="/yeyak.do" target="_blank" title="새창열림" class="link"><i class="icon n1"></i>통합예약</a></li> <li><a href="/yeyak.do" target="_blank" title="새창열림" class="link"><i class="icon n1"></i>통합예약</a></li> <li><a href="/yeyak.do" target="_blank" title="새창열림" class="link"><i class="icon n1"></i>통합예약</a></li> </ul> </div> <!-- 배너 --> <div class="community-zone mb30"> <div class="best_service"> <h4><span>BEST1</span><strong>대제목</strong> 1</h4> <div class="service_wrap"> <div class="left_cont best1"> <a href="#"><img src="../../../../../../client/resources/img/img1.png" alt=""></a> <div class="txt"> <span class="label_tag etc_tag">키워드</span> <h5>부제목</h5> <div class="sub_info">배너내용</div> <div class="point_info"><strong>배너내용 강조</strong></div> </div> <!-- <div class="btn_set"> <a href="" class="btn_small btn_bg_blue">신청하기</a> </div> --> </div> <div class="right_cont"> <ul class="product_list"> <li> <div class="pdt_info"> <strong class="pdt_name">제목</strong> <span class="label_tag blue_tag">키워드</span> <div class="pdt_simple_info"> 내용 </div> <a href="" class="btn_small btn_bg_green">바로가기</a> </div> </li> <li> <div class="pdt_info"> <strong class="pdt_name">제목</strong> <span class="label_tag blue_tag">키워드</span> <div class="pdt_simple_info">내용 </div> <a href="" class="btn_small btn_bg_green">바로가기</a> </div> </li> <li> <div class="pdt_info"> <strong class="pdt_name">제목</strong><span class="label_tag green_tag">키워드</span><span class="label_tag blue_tag">키워드</span> <div class="pdt_simple_info">내용</div> <a href="" class="btn_small btn_bg_blue">신청하기</a> </div> </li> </ul> </div> </div> </div> </div> <!-- 카드뉴스 --> <div class="cardnews-zone mb30"> <div class=" "> <div class="box-out-title flex justify-between align-center"> <p>카드뉴스</p> </div> <div class="swiper-container"> <ul class="swiper-wrapper search-list"> <li class="li box swiper-slide" v-for="(item, index) in slides" :key="index" > <a :href="item.link"> <div class="img-wrap" :class="item.imgClass"> <img :src="item.img" :alt="item.alt" /> </div> <div class="conts-wrap"> <h4 class="tit">{{ item.title }}</h4> <p class="desc">{{ item.description }}</p> <div class="full-input flex justify-end"> <div class="btn-wrap flex align-center"> <p class="mr5">바로가기</p> <svg-icon type="mdi" :width="15" :height="15" :path="this.$iconPath('mdiArrowRight')"></svg-icon> </div> </div> </div> </a> </li> </ul> </div> <div class="swiper-button-prev button"></div> <div class="swiper-button-next button"></div> </div> </div> <!-- 배너존 --> <div class="chart-zone mb30"> <div class="box-out-title flex justify-between align-center"> <p>배너</p> </div> <div class="banner-zone"> <div class="banner_txt"> <span>해당페이지</span> <!-- 230808 문구 수정 --> <span class="b_txt"><strong>해당페이지</strong>을 이용해 보세요.</span> <!-- // 230808 문구 수정 --> </div> <a href="" class="btn_link" title="새창열림">바로 체험하기</a> </div> </div> </div> </div> </template> <script> import ClusteredColumnChart from "../../../../component/chart/ClusteredColumnChart.vue"; import store from "../../../AppStore"; // 통합검색 관련 import queryParams from "../../../../../resources/js/queryParams"; import { defaultTotalSearchParams } from "../../../../../resources/js/defaultTotalSearchParams.js"; // API import { governmentMainProc } from "../../../../../resources/api/main"; import { sysListByPageProc } from "../../../../../resources/api/popup"; import { findFiveNotice } from "../../../../../resources/api/bbsCn"; import Swiper from 'swiper'; export default { name: 'SwiperComponent', mixins: [queryParams], components: { ClusteredColumnChart: ClusteredColumnChart, }, data() { return { visualSlides: [ { img: 'https://via.placeholder.com/600x300?text=Slide+1', alt: 'Slide 1' }, { img: 'https://via.placeholder.com/600x300?text=Slide+2', alt: 'Slide 2' }, { img: 'https://via.placeholder.com/600x300?text=Slide+3', alt: 'Slide 3' }, ], slides: [ { img: 'https://via.placeholder.com/600x300?text=Slide+1', alt: 'Slide 1', title: '컴포넌트 1', description: '디지털 정부서비스 UI를 구성하는 공통 요소 기반으로 일관성 있는 구현이 용이한 컴포넌트 가이드디지털 정부서비스 UI를 구성하는 공통 요소 기반으로 일관성 있는 구현이 용이한 컴포넌트 가이드디지털 정부서비스 UI를 구성하는 공통 요소 기반으로 일관성 있는 구현이 용이한 컴포넌트 가이드디지털 정부서비스 UI를 구성하는 공통 요소 기반으로 일관성 있는 구현이 용이한 컴포넌트 가이드', link: 'component/component_02_01.html', imgClass: 'main_1' // 각 슬라이드에 고유한 클래스 적용 }, { img: 'https://via.placeholder.com/600x300?text=Slide+2', alt: 'Slide 2', title: '컴포넌트 2', description: '두 번째 컴포넌트 설명', link: 'component/component_02_02.html', imgClass: 'main_2' }, { img: 'https://via.placeholder.com/600x300?text=Slide+3', alt: 'Slide 3', title: '컴포넌트 3', description: '세 번째 컴포넌트 설명', link: 'component/component_02_03.html', imgClass: 'main_3' } ], search: { ...defaultTotalSearchParams }, mbrId: store.state.mbrId || null, // 사용자 아이디 roles: store.state.roles.map((auth) => auth.authority) || [], // 사용자 권한 menuType: store.state.userType || null, // 메뉴 타입 // 공지사항 top5 noticeTop5: [], // 검색조건 codeList: [], activeTab: "categoryTab", searchKeyword: "day", // 통계 chartData: [], popupList: [], // 기업정보 companyInfoList: [], }; }, created() { // 쿠키 초기화 const today = new Date(); let tomorrow = new Date(today.setDate(today.getDate() + 1)); tomorrow.setHours(0, 0, 0, 0); tomorrow = new Date(tomorrow); if (this.$cookies.get("popup") == null) { this.$cookies.set("popup", [], tomorrow); } this.fnPopupList(); this.fnCompanyInfo(); this.fnFiveNotice(); }, methods: { showTab: function (tabName) { this.activeTab = tabName; this.searchKeyword = "day"; this.fnCompanyInfo(); }, // 통합검색 totalSearch() { if (this.search.searchText === "") { alert("검색어를 입력해주세요."); return; } this.search.mbrId = this.mbrId; this.search.roles = this.roles; this.search.menuType = this.menuType; this.saveQueryParams("totalSearchQueryParams", this.search); // 검색조건 저장 this.$router.push({ path: "/government/search.page", }); }, // 통계 조회 async fnCompanyInfo() { let data = { activeTab: this.activeTab, searchKeyword: this.searchKeyword, }; try { const response = await governmentMainProc(data); this.codeList = response.data.data.codeList; this.chartData = response.data.data.governmentStats; this.companyInfoList = response.data.data.companyInfo; } catch (error) { alert("에러가 발생했습니다.\n시스템관리자에게 문의하세요."); } }, // 기업정보 상세 조회 fnCompanyInfoViewDetail(entId) { this.$router.push({ path: "/government/companyInfo/view.page", query: { pageId: entId }, }); }, // 팝업조회(상세) async fnPopupList() { let data = { pageType: this.$store.state.userType, }; try { const response = await sysListByPageProc(data); let popupList = response.data.data; if (popupList != null && popupList.length > 0) { this.fnShowPopup(popupList); } } catch (error) { alert("에러가 발생했습니다.\n시스템관리자에게 문의하세요."); } }, // 팝업 표시 fnShowPopup(popupList) { for (let popup of popupList) { let count = false; const popupCookies = this.$cookies.get("popup"); if (popupCookies.length > 0) { for (let cookie of popupCookies) { if (popup.popupId == cookie) { count = true; } } } if (!count) { let size = "width=" + popup.wdthLen + ", height=" + popup.vrtcLen; window.open( "/cmmn/popup.page?popupId=" + popup.popupId, "_blank", size + ", scrollbars=no, resizable=no, toolbars=no, menubar=no" ); } } }, // 공지사항 최신 5개 조회 async fnFiveNotice() { try { const params = { bbsMngId: "BBS_MNG_000000000000004", }; const response = await findFiveNotice(params); this.noticeTop5 = response.data.data; } catch (error) { alert("에러가 발생했습니다.\n시스템관리자에게 문의하세요."); } }, // 공지사항 상세페이지 이동 fnNoticeViewDetail(bbsId) { this.$router.push({ path: "/government/BBS_MNG_000000000000004/view.page", query: { pageId: bbsId, }, }); }, stopAutoplay() { if (this.visualSlide) { this.visualSlide.autoplay.stop(); } }, // 자동 슬라이드 전환 시작하기 startAutoplay() { if (this.visualSlide) { this.visualSlide.autoplay.start(); this.visualSlide.update(); } }, }, mounted() { // Swiper 인스턴스 초기화 this.visualSlide = new Swiper('.visual-zone .swiper-container', { loop: true, // 슬라이드 반복 여부 autoplay: { delay: 2500, // 2.5초마다 자동으로 슬라이드 전환 disableOnInteraction: false, // 사용자가 슬라이드 조작 후에도 자동 전환 유지 }, pagination: { el: '.swiper-pagination', // 페이지네이션 요소 clickable: true, // 페이지네이션 클릭 가능 }, navigation: { nextEl: '.swiper-button-next', // 다음 버튼 prevEl: '.swiper-button-prev', // 이전 버튼 }, }); this.cardnewsSlide = new Swiper('.cardnews-zone .swiper-container', { loop: true, // 슬라이드 반복 여부 slidesPerView: 3, // 한 번에 보여줄 슬라이드 개수 spaceBetween: 25, navigation: { nextEl: '.swiper-button-next', // 다음 버튼 prevEl: '.swiper-button-prev', // 이전 버튼 }, }); } }; </script>

          
        
    
    
Copyright Yona authors & © NAVER Corp. & NAVER LABS Supported by NAVER CLOUD PLATFORM

or
Sign in with github login with Google Sign in with Google
Reset password | Sign up