최정임 최정임 03-19
250319 최정임 퍼블리싱
@7596fbda9f67bd40e3e382e62a613d1e26faa105
client/resources/css/common/common.css
--- client/resources/css/common/common.css
+++ client/resources/css/common/common.css
@@ -1,5 +1,5 @@
 *{
-    padding: 0; margin: 0;  color: #333;
+    padding: 0; margin: 0;  color: #000;
     font-family: "Pretendard-R";
 }
 
@@ -14,6 +14,8 @@
     width: 15px;
     height: 15px;
 }
+
+
 input[readonly] {
     background-color: #f6f6f6 !important; 
     color: #999;
@@ -37,15 +39,21 @@
 .w1500{width: 1500px; margin: 0 auto;}
 .wfull{width: -webkit-fill-available;}
 
+.flex{display: flex;}
 .flex-end{
     display: flex;
     justify-content: end;
+}
+.flex-sp-bw{
+    display: flex;
+    justify-content: space-between;
 }
 
 .mt-5{margin-top: 5px;}
 
 .mb-10{margin-bottom: 10px;}
 .mb-25{margin-bottom: 25px;}
+.mb-30{margin-bottom: 30px;}
 .mb-50{margin-bottom: 50px;}
 .mb-60{margin-bottom: 60px;}
 .mb-110{margin-bottom: 110px;}
client/resources/css/user/main.css
--- client/resources/css/user/main.css
+++ client/resources/css/user/main.css
@@ -3,7 +3,14 @@
     color: #fff;
     font-size: 20px;
     position: absolute;
-
+    bottom: 10.5rem;
+    right: 58rem;
+    z-index: 50;
+    display: flex;
+    .page-count{color: #fff;}
+    button .anticon {
+        font-size: 20px;  color: #fff;
+    }
 }
 .search-wrap{
     position: absolute;
@@ -36,14 +43,16 @@
     }
     input{font-size: 20px; font-family: "Pretendard-L";}
     input::placeholder{color: #555;}
-    .total-btn{
-        font-family: "Pretendard-B";
-        color: #fff;
-        font-size: 20px;
+    .total-btn{        
         border-radius: 37.5px;
         width: 150px;
         height: 75px;
-        background: linear-gradient(-45deg,#1865c8, #4037aa )
+        background: linear-gradient(-45deg,#1865c8, #4037aa );
+        a{
+        font-family: "Pretendard-B";
+        color: #fff;
+        font-size: 20px;
+        }
     }
 
 }
@@ -109,7 +118,89 @@
             
     }
 }
+.new-update{
+    .title{
+        display: flex;
+        align-items: flex-end;
+        justify-content: space-between;
+        h4{font-family: "HAPPINESS-SANS-title";; font-size: 26px;}
+    }
 
+    .info{
+        padding: 24px;
+        display: flex;
+        justify-content: space-between;
+        p{
+            width: 250px;
+            font-family: "Pretendard-M";
+            font-size: 20px;
+            white-space: nowrap;      
+            overflow: hidden; 
+            text-overflow: ellipsis; 
+        }
+        span{
+            width: 89px;
+            font-family: "Pretendard-L";
+            font-size: 16px;
+            color: #666666;
+            padding-left: 25px;
+            position: relative;
+        }
+        span::before{
+            content: '';
+            background-image: url(../../images/icon/date.png);
+            display: block;
+            width: 19px;
+            height: 19px;
+            position: absolute;
+            left: 0;
+        }
+    }
+    .gopage{
+        font-family: "Pretendard-M";
+        font-size: 18px;
+        text-align: right;
+        
+    }
+    .gopage::after{
+        content: '\002B';
+        font-size: 18px;
+    }
+   .new-pic, .new-video{
+    display: flex; justify-content: space-between;
+    margin-top: 50px;
+    
+   }
+   .media-wrap{
+    display: flex;
+    justify-content: space-between;
+    gap: 30px;
+   }
+   .media-box{
+    width: 420px;
+    border: 1px solid #eeeeee;
+    border-radius: 22px;
+    .media-image{
+        width: 100%;
+        height: 231px;
+        border-radius: 22px;
+    }
+   }
+   .new-bodo{
+    width: 560px;
+    margin-left: 70px;
+    .info{
+        padding: 18px 7px;
+        border-top: 1px solid #eeeeee;
+        align-items: center;
+        &:last-child{ border-bottom: 1px solid #eeeeee;}
+        p{width: 412px;}
+        span::before{
+            background-image:none;
+        }
+    }
+   }
+}
 .tabs{
     ul{display: flex;
         justify-content: center;
@@ -135,15 +226,47 @@
        
     }
     .tab-title.active p{
-        color: #000;
         b{
             color: #ff4141;
         }
+        
+    }
+    .tab-content{
+        .content-wrap{
+            margin-top: -23px;
+        }
+        .box-wrap{
+            width: 454px;
+            height: 370px;
+            .box { 
+                background-image: linear-gradient(#fff, #fff), 
+                linear-gradient(-45deg, #fff, #fff);
+                background-origin: border-box;
+                background-clip: content-box, border-box;
+                border: 3px solid transparent;
+                border-radius: 32px;
+            }
+        
+            .box:hover {
+                background-image: linear-gradient(#fff, #fff), 
+                linear-gradient(-45deg, #ca3e49, #3d355d);
+            }
+            .tab-image{
+                width: 100%;
+                height: 297px;
+                object-fit: cover;
+                border-radius: 30px;
+            }
+           
+        }
+        
     }
 
 }
 
 
+
+
 /* swiper */
 
 .swiper {
client/resources/css/user/sub.css
--- client/resources/css/user/sub.css
+++ client/resources/css/user/sub.css
@@ -1,13 +1,21 @@
-.content{    
+.content {
     width: 1500px;
     margin: 0 auto;
     padding-top: 56px;
-    h2{ font-family: "HAPPINESSSANSVF"; font-size: 40px;}
-    h3{ font-family: "Pretendard-B"; font-size: 25px;
+
+    h2 {
+        font-family: "HAPPINESSSANSVF";
+        font-size: 40px;
+    }
+
+    h3 {
+        font-family: "Pretendard-B";
+        font-size: 25px;
         position: relative;
         padding-left: 20px;
         margin-bottom: 20px;
-        &::before{
+
+        &::before {
             content: '';
             background: url(../../images/icon/subtitle.png);
             width: 7px;
@@ -20,77 +28,186 @@
     }
 }
 
-.sub-title-area{display: flex; justify-content: space-between; align-items: flex-end;}
-.breadcrumb-list{
-    ul{display: flex; align-items: center; gap: 15px;}
-    li{font-size: 16px; font-family: "Pretendard-SB"; color: #000;}
+.sub-title-area {
+    display: flex;
+    justify-content: space-between;
+    align-items: flex-end;
 }
-form{
+
+.breadcrumb-list {
+    ul {
+        display: flex;
+        align-items: center;
+        gap: 15px;
+    }
+
+    li {
+        font-size: 16px;
+        font-family: "Pretendard-SB";
+        color: #000;
+    }
+}
+
+form {
     margin: 0 auto;
     border: 1px solid #dddddd;
     border-radius: 20px;
-    input{padding: 15px; border: 1px solid #dddddd; border-radius: 5px; 
-        font-size: 16px; 
+
+    input {
+        padding: 15px;
+        border: 1px solid #dddddd;
+        border-radius: 5px;
+        font-size: 16px;
     }
 }
-.login-form{
-    width: 600px;    
+
+/* 로그인 */
+.login-form {
+    width: 600px;
     padding: 50px 60px;
-    label{
+
+    label {
         color: #666;
         font-size: 16px;
         display: block;
         margin-bottom: 6px;
     }
-   
-    button{font-size: 22px; font-family: "Pretendard-B"; background: linear-gradient(132deg,#3e355c, #763954 );
-        width: 100%; padding: 19px 0; border-radius: 15px; margin-top: 10px;
-        img{margin: 0 12px 0 0;}
-        span{color: #fff;}
+
+    button {
+        font-size: 22px;
+        font-family: "Pretendard-B";
+        background: linear-gradient(132deg, #3e355c, #763954);
+        width: 100%;
+        padding: 19px 0;
+        border-radius: 15px;
+        margin-top: 10px;
+
+        img {
+            margin: 0 12px 0 0;
+        }
+
+        span {
+            color: #fff;
+        }
     }
-    .check-area{
-        input{margin-right: 5px;}
+
+    .check-area {
+        input {
+            margin-right: 5px;
+        }
     }
 }
 
-.info-form, .pwchange-form{
-    dd{display: flex; align-items: center;}
+/* 내정보 */
+.info-form,
+.pwchange-form {
+    dd {
+        display: flex;
+        align-items: center;
+    }
+
     padding: 30px 50px;
-    label{
+
+    label {
         position: relative;
         width: 200px;
         display: block;
-        color: #000;
         font-size: 18px;
+
         &.require::after {
             position: absolute;
             top: 5px;
             padding-left: 3px;
             content: "*";
             color: #df2d2d;
-          }
+        }
     }
-    .hr{background-color: #eeeeee; margin: 10px 0;
+
+    .hr {
+        background-color: #eeeeee;
+        margin: 10px 0;
         width: 100%;
         height: 1px;
     }
-   
+
 }
-.pwchange-form{
-    input{
-        width:40%;
-     }
+
+.pwchange-form {
+    input {
+        width: 40%;
+    }
 }
+
 .invalid-feedback {
-    display: flex; align-items: center; gap: 4px;
+    display: flex;
+    align-items: center;
+    gap: 4px;
     background-color: #fbf1f2;
     border: 1px solid #ce3e48;
     border-radius: 20px;
     padding: 8px 24px;
     margin-left: 20px;
-    span{font-size: 14px; color: #e22d2d; font-family: "Pretendard-EL"; }
+
+    span {
+        font-size: 14px;
+        color: #e22d2d;
+        font-family: "Pretendard-EL";
+    }
 }
 
-.btn-group{
+.btn-group {
     gap: 10px;
-}
(파일 끝에 줄바꿈 문자 없음)
+}
+
+/* 통합검색 */
+.search-form {
+    background-image: linear-gradient(#fff, #fff),
+        linear-gradient(-45deg, #ca3e49, #3f355c);
+    background-origin: border-box;
+    background-clip: content-box, border-box;
+    border: 3px solid transparent;
+    border-radius: 32px;
+
+    label {
+        font-size: 18px;
+        font-family: "Pretendard-SB";
+    }
+
+    input[type="checkbox"] {
+        position: relative;
+        width: 22px;
+        height: 22px;
+        padding: 0;
+        accent-color: #544483;
+        /* This will change the checkbox color when checked */
+        border: 1px solid #cccccc;
+        /* This controls the border color */
+        border-radius: 4px;
+        /* Optional: rounded corners */
+        background-color: #fff;
+        /* Default background */
+        appearance: none;
+        /* Remove the default checkbox appearance */
+        cursor: pointer;
+        /* Optional: cursor pointer to indicate it is clickable */
+    }
+
+    /* Checked state of the checkbox */
+    input[type="checkbox"]:checked {
+        background-color: #544483;
+        /* Custom background when checked */
+        border-color: #544483;
+        /* Custom border color when checked */
+    }
+    input[type="checkbox"]:checked::before {
+        content: '';
+        background-image: url(../../images/check.png);
+        background-repeat: no-repeat;
+        position: absolute;
+        left: 2px;
+        top: 5px;
+        width: 15px;
+        height: 11px;
+    }
+}
+
client/resources/images/check.png (Binary) (Renamed from client/resources/images/video-btn.png (Binary))
--- client/resources/images/video-btn.png
+++ client/resources/images/check.png
Binary file is not shown
client/resources/images/icon/date.png (Binary) (copied from client/resources/images/video-btn.png (Binary))
--- client/resources/images/video-btn.png
+++ client/resources/images/icon/date.png
Binary file is not shown
 
client/resources/images/img1.png (Binary) (added)
+++ client/resources/images/img1.png
Binary file is not shown
 
client/resources/images/img2.png (Binary) (added)
+++ client/resources/images/img2.png
Binary file is not shown
 
client/resources/images/img3.png (Binary) (added)
+++ client/resources/images/img3.png
Binary file is not shown
 
client/resources/images/img4.png (Binary) (added)
+++ client/resources/images/img4.png
Binary file is not shown
 
client/resources/images/img5.png (Binary) (added)
+++ client/resources/images/img5.png
Binary file is not shown
 
client/resources/images/mCont_ico1_off.png (Binary) (added)
+++ client/resources/images/mCont_ico1_off.png
Binary file is not shown
 
client/resources/images/mCont_ico1_on.png (Binary) (added)
+++ client/resources/images/mCont_ico1_on.png
Binary file is not shown
 
client/resources/images/mCont_ico2_off.png (Binary) (added)
+++ client/resources/images/mCont_ico2_off.png
Binary file is not shown
 
client/resources/images/mCont_ico2_on.png (Binary) (added)
+++ client/resources/images/mCont_ico2_on.png
Binary file is not shown
 
client/resources/images/pic-btn-click.png (Binary) (deleted)
--- client/resources/images/pic-btn-click.png
Binary file is not shown
client/views/pages/AppRouter.js
--- client/views/pages/AppRouter.js
+++ client/views/pages/AppRouter.js
@@ -7,11 +7,17 @@
 import Main from "./main/Main.vue";
 import NotFound from "./etc/NotFound.vue";
 
+import TotalSearch from "./user/TotalSearch.vue";
+
 const routes = [
   { path: "/", name: "MainPage", component: Main, meta: { authorization: ['ROLE_ADMIN', 'ROLE_USER']} },
   { path: "/Login.page", name: "Login", component: Login },
   { path: "/MyInfo.page", name: "MyInfo", component: MyInfo, meta: { authorization: ['ROLE_ADMIN', 'ROLE_USER']} },
   { path: "/notFound.page", name: "NotFoundPage", component: NotFound },
+
+  { path: "/TotalSearch.page", name: "TotalSearch", component: TotalSearch },
+
+
 ];
 
 const AppRouter = createRouter({
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -1,32 +1,45 @@
 <template>
   <div class="visual mb-50">
-    <swiper :loop="true" :spaceBetween="30" :centeredSlides="true" :pagination="{
+    
+    <swiper 
+    ref="swiper"
+    :loop="true" 
+    :spaceBetween="30" 
+    :centeredSlides="true" 
+    :autoplay="{
+      delay: 2500,
+      disableOnInteraction: false,
+    }"
+    :pagination="{
       type: 'progressbar',
-    }" :navigation="true" :modules="modules" class="mySwiper ">
-      <swiper-slide v-for="(item, index) in slides" :key="index" >
+    }" :navigation="true" :modules="modules"  @slideChange="onSlideChange" class="mySwiper ">
+      <swiper-slide v-for="(item, index) in slides" :key="index">
         <img :src="item.img" :alt="item.alt" />
       </swiper-slide>
       <div class="pagination">
-        <div class="page-count">1/3</div>
-
+      <div class="page-count">{{ currentSlide }} / {{ totalSlides }}</div>
+      <div class="btn-control">
+        <button @click="play"><CaretRightOutlined /></button>
+        <button @click="stop"><PauseOutlined /></button>
       </div>
+    </div>
     </swiper>
     <div class="search-wrap">
 
       <div class="search-area">
         <select name="" id="">
-          <option value="" selected>전체</option>
-          <option value="">사진</option>
-          <option value="">영상</option>
-          <option value="">미디어 영상</option>
-          <option value="">보도자료</option>
+          <option value="all" selected>전체</option>
+          <option value="pic">사진</option>
+          <option value="video">영상</option>
+          <option value="media">미디어 영상</option>
+          <option value="bodo">보도자료</option>
         </select>
         <div class="line"></div>
         <input type="text" placeholder="검색어를 입력하세요">
         <button class="search-btn"><img :src="search" alt=""></button>
       </div>
       <div class="total-search">
-        <button class="total-btn">상세검색</button>
+        <button class="total-btn"><router-link :to="{path : '/TotalSearch.page'}" >상세검색</router-link></button>
       </div>
     </div>
   </div>
@@ -61,27 +74,77 @@
       <div class="current-btn"> <button><span>기록물 현황</span><img :src="direct" alt=""></button></div>
     </div>
   </div>
-  <div class="new-update w1500">
+  <div class="new-update w1500 mb-50">
     <div class="tabs">
-        <ul>
-          <li v-for="(tab, index) in tabs" :key="index" class="tab-title" :class="{ active: selectedTab === index }"
-            @click="selectTab(index)">
-            <img
-            :src="selectedTab === index ? tab.activeImage : tab.inactiveImage"
-            :alt="tab.title"
-            class="tab-icon"
-          />
-            <p><b>{{ tab.title }}</b>&nbsp;기록물</p>
-          </li>
-        </ul>
+      <ul class="">
+        <li v-for="(tab, index) in tabs" :key="index" class="tab-title" :class="{ active: selectedTab === index }"
+          @click="selectTab(index)">
+          <img :src="selectedTab === index ? tab.activeImage : tab.inactiveImage" :alt="tab.title" class="tab-icon" />
+          <p><b>{{ tab.title }}</b>&nbsp;기록물</p>
+        </li>
+      </ul>
+
       <div class="tab-content">
-        <div v-if="selectedTab === 0" class="new-pic">
-          <p>{{ tabs[0].content }}</p>
+        <div v-if="selectedTab === 0" class="content-wrap">
+          <router-link :to="{ path: '/' }" class="gopage">더보기</router-link>
+          <div class="new-pic">
+            <div v-for="(contentItem, index) in tabs[0].contentArray" :key="index" class="box-wrap">
+              <div class="box">
+                <img :src="contentItem.image" :alt="tabs[0].title" class="tab-image" />
+                <div class="info">
+                  <p>{{ contentItem.content }}</p>
+                  <span>{{ contentItem.date }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
         </div>
-        <div v-if="selectedTab === 1" class="new-video">
-          <p>{{ tabs[1].content }}</p>
+        <div v-if="selectedTab === 1" class="content-wrap">
+          <router-link :to="{ path: '/' }" class="gopage">더보기</router-link>
+          <div class="new-video">
+            <div v-for="(contentItem, index) in tabs[1].contentArray" :key="index" class="box-wrap">
+              <div class="box">
+                <img :src="contentItem.image" :alt="tabs[1].title" class="tab-image" />
+                <div class="info">
+                  <p>{{ contentItem.content }}</p>
+                  <span>{{ contentItem.date }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
         </div>
       </div>
+
+
+    </div>
+  </div>
+  <div class="new-update w1500 mb-50 flex-sp-bw">
+    <div class="new-media">
+      <div class="title mb-30">
+        <h4>신규 미디어 영상</h4>
+        <router-link :to="{ path: '/' }" class="gopage">더보기</router-link>
+      </div>
+      <div class="media-wrap">
+        <div v-for="(mediacontent, index) in mediacontent" :key="index" class="media-box">
+          <img :src="mediacontent.image" :alt="mediacontent.title" class="media-image" />
+          <div class="info">
+            <p>{{ mediacontent.content }}</p>
+            <span>{{ mediacontent.date }}</span>
+          </div>
+        </div>
+      </div>
+    </div>
+    <div class="new-bodo">
+      <div class="title mb-30">
+        <h4>신규 미디어 영상</h4>
+        <router-link :to="{ path: '/' }" class="gopage">더보기</router-link>
+      </div>
+      <ul>
+        <li v-for="(bodocontent, index) in bodocontent" :key="index" class="info">
+            <p>{{ bodocontent.content }}</p>
+            <span>{{ bodocontent.date }}</span>
+        </li>
+      </ul>
     </div>
   </div>
 </template>
@@ -96,6 +159,7 @@
 
 import 'swiper/css/pagination';
 import 'swiper/css/navigation';
+import { CaretRightOutlined, PauseOutlined } from '@ant-design/icons-vue';
 
 
 // import required modules
@@ -104,6 +168,8 @@
   components: {
     Swiper,
     SwiperSlide,
+    PauseOutlined,
+    CaretRightOutlined,
   },
   setup() {
     return {
@@ -114,10 +180,35 @@
     return {
       selectedTab: 0, // Set initial tab index to 0 (first tab)
       tabs: [
-        { title: "신규 사진", content: "This is the content for Tab 1", activeImage: "client/resources/images/pic-btn-click.png", // Active tab image
-        inactiveImage: "client/resources/images/pic-btn-click.png"},
-        { title: "신규 영상", content: "This is the content for Tab 2",activeImage: "client/resources/images/video-btn.png", // Active tab image
-        inactiveImage: "client/resources/images/video-btn.png"},
+        {
+          title: "신규 사진", activeImage: "client/resources/images/mCont_ico1_on.png", // Active tab image
+          inactiveImage: "client/resources/images/mCont_ico1_off.png",
+          contentArray: [
+            { content: '문수사', date: '2025-03-18', image: 'client/resources/images/img1.png' },
+            { content: '신평벽화마을', date: '2025-03-19', image: 'client/resources/images/img2.png' },
+            { content: '박정희대통령역사자료관', date: '2025-03-20', image: 'client/resources/images/img3.png' }
+          ],
+        },
+        {
+          title: "신규 영상", activeImage: "client/resources/images/mCont_ico2_on.png", // Active tab image
+          inactiveImage: "client/resources/images/mCont_ico2_off.png",
+          contentArray: [
+            { content: '제목1', date: '2025-03-18', image: 'client/resources/images/img1.png' },
+            { content: '제목2', date: '2025-03-19', image: 'client/resources/images/img2.png' },
+            { content: '제목3', date: '2025-03-20', image: 'client/resources/images/img3.png' }
+          ],
+        },
+      ],
+      mediacontent: [
+        { content: '문수사', date: '2025-03-18', image: 'client/resources/images/img4.png' },
+        { content: '신평벽화마을', date: '2025-03-19', image: 'client/resources/images/img5.png' },
+      ],
+      bodocontent: [
+        { content: '구미시장 우리동네 온(溫)데이', date: '2025-03-18',  },
+        { content: "구미 청년 창업, 지난해 성과 '쏠쏠'…올해도 새 도전자", date: '2025-03-19', },
+        { content: "구미시여성단체협의회 신경은 회장 부부, 1,000만 원", date: '2025-03-19', },
+        { content: "초보 기술 공무원도 전문가로! 구미시, 실무 역량 향상", date: '2025-03-19', },
+        { content: "구미시, 청렴도 1등급 목표…반부패·청렴 시책 강화", date: '2025-03-19', },
       ],
       direct: 'client/resources/images/direct-btn.png',
       search: 'client/resources/images/icon/search.png',
@@ -132,20 +223,44 @@
         { img: 'client/resources/images/visual.png', alt: 'Slide 3' },
         // Add more slides as needed
       ],
-      autoplay: {
-        delay: 2500, // Delay in milliseconds
-        disableOnInteraction: false, // Autoplay won't stop when interacting
-      },
-      pagination: {
-        clickable: true, // Allow clicking pagination
-      },
+      currentSlide: 1,   // To track the current slide
+      totalSlides: 3,
+      
       navigation: true, // Enable navigation buttons (prev/next)
     };
+  },
+  mounted() {
+    // Store the swiper instance when it's ready
+    this.totalSlides = this.slides.length;
   },
   methods: {
     selectTab(index) {
       this.selectedTab = index; // Update the selected tab index
     },
+    play() {
+      const swiper = this.$refs.swiper.swiper;
+      if (swiper && swiper.autoplay) {
+        swiper.autoplay.start(); // Start autoplay
+      } else {
+        console.warn('Swiper instance or autoplay is not available');
+      }
+    },
+    // Method to stop autoplay
+    stop() {
+      const swiper = this.$refs.swiper.swiper;
+      if (swiper && swiper.autoplay) {
+        swiper.autoplay.stop();  // Stop autoplay
+      } else {
+        console.warn('Swiper instance or autoplay is not available');
+      }
+    },
+    // Method to update the current slide and total slides
+    onSlideChange() {
+      const swiper = this.$refs.swiper.swiper;
+      if (swiper) {
+        this.currentSlide = swiper.realIndex + 1; // Get current slide (1-based index)
+      }
+    },
   },
 };
 </script>
client/views/pages/user/TotalSearch.vue
--- client/views/pages/user/TotalSearch.vue
+++ client/views/pages/user/TotalSearch.vue
@@ -11,21 +11,16 @@
                 </ul>
             </div>
       </div>
-        <form action="login" class="login-form">
+        <form action="search" class="search-form">
             <dl>
                 <dd class="mb-25">
-                    <label for="id">아이디</label>
-                    <input type="text" id="id" class="wfull" placeholder="아이디를 입력하세요.">
+                    
+                    <input type="checkbox" id="check_button" name="">
+                    <label for="check_button">선택1</label>
+
                 </dd>
                 
-                <dd class="mb-10">
-                    <label for="pw">비밀번호</label>
-                    <input type="text" id="pw" class="wfull" placeholder="비밀번호를 입력하세요.">
-                </dd>
-                <dd class="check-area flex-end mb-25">
-                    <input type="checkbox" class="margin-top">
-                    <label for="save">아이디 저장</label>
-                </dd>
+              
             </dl>
             <!-- Bind the image source dynamically for loginicon -->
             <button><img :src="loginicon" alt="Login Icon"><span>로그인</span></button>
package.json
--- package.json
+++ package.json
@@ -1,5 +1,7 @@
 {
   "dependencies": {
+    "@ant-design/icons": "^5.6.1",
+    "@ant-design/icons-vue": "^7.0.1",
     "@babel/cli": "^7.22.10",
     "@babel/core": "^7.22.10",
     "axios": "^1.6.8",
Add a comment
List