박정하 박정하 04-16
250416 박정하 썸네일 체크박스 수정
@329dcd5d73031f4ce51351debbc29eca4096245e
client/resources/css/user/sub.css
--- client/resources/css/user/sub.css
+++ client/resources/css/user/sub.css
@@ -485,7 +485,7 @@
         p,
         li {
             font-family: "Pretendard-L";
-            
+
         }
 
         .text {
@@ -507,7 +507,7 @@
             font-family: "Pretendard-B";
             font-size: 25px;
             margin-bottom: 20px;
-            
+
         }
 
         .address {
@@ -615,14 +615,14 @@
         padding: 60px 0;
         border-bottom: 1px solid #ddd;
         border-top: 1px solid #ddd;
-       
+
     }
     .no-results p:first-of-type {
         font-size: 32px;
         font-family: "Pretendard-B";
         margin-top: 45px;
     }
-    
+
     .no-results p:last-of-type {
         font-size: 18px;
         line-height: 30px;
@@ -949,7 +949,8 @@
                     background-clip: content-box, border-box;
                     border: 3px solid transparent;
                 }
-                .swiper-slide:hover{
+                .swiper-slide:hover,
+                .active-thumb {
                     background-image: linear-gradient(#fff, #fff),
                     linear-gradient(-45deg, #ca3e49, #3d355d);
                 }
@@ -980,7 +981,7 @@
         .swiper-button-next {
             right: 20px;
         }
-        
+
 
     }
 
client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
--- client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
+++ client/views/pages/bbsDcry/photo/PicHistoryDetail.vue
@@ -26,7 +26,7 @@
       <div>
         <div class="gallery">
           <div class="main-swiper">
-            <swiper :style="{ '--swiper-navigation-color': '#fff', '--swiper-pagination-color': '#fff' }" :loop="true" :spaceBetween="10" :thumbs="{ swiper: thumbsSwiper }" :modules="modules" class="mySwiper2">
+            <swiper :style="{ '--swiper-navigation-color': '#fff', '--swiper-pagination-color': '#fff' }" :loop="true" :spaceBetween="10" :thumbs="{ swiper: thumbsSwiper }" :modules="modules" class="mySwiper2" @slideChange="handleMainSlideChange">
               <swiper-slide v-for="(item, idx) of findResult.files" :key="idx">
                 <img :src="item.filePath" :alt="item.fileNm" />
               </swiper-slide>
@@ -34,14 +34,9 @@
           </div>
           <div class="thumbnail">
             <swiper @swiper="setThumbsSwiper" :spaceBetween="20" :slidesPerView="4" :freeMode="true" :watchSlidesProgress="true" :modules="modules" :navigation="true" class="mySwiper">
-              <swiper-slide v-for="(item, idx) of findResult.files" :key="idx">
-                <div class="thumbnail-wrapper">
-                  <div class="checkbox-container" @click.stop>
-                    <input type="checkbox" :id="'photo_' + idx" :value="item" v-model="selectedFiles" />
-                    <label :for="'photo_' + idx"></label>
-                  </div>
-                  <img :src="item.filePath" :alt="item.fileNm" />
-                </div>
+              <swiper-slide v-for="(item, idx) of findResult.files" :key="idx" :class="{ 'active-thumb': activeIndex === idx }">
+                <input type="checkbox" :id="'photo_' + idx" :value="item" v-model="selectedFiles" @click.stop />
+                <img :src="item.filePath" :alt="item.fileNm" />
               </swiper-slide>
             </swiper>
           </div>
@@ -97,15 +92,17 @@
   </div>
 </template>
 <script>
-// Swiper
 import { ref } from 'vue';
-import { Swiper, SwiperSlide } from 'swiper/vue';
-import { FreeMode, Navigation, Thumbs } from 'swiper/modules';
+// Import Swiper Vue components
 import { CaretRightOutlined, PauseOutlined } from '@ant-design/icons-vue';
+import { Swiper, SwiperSlide } from 'swiper/vue';
+// Import Swiper styles
 import 'swiper/css';
 import 'swiper/css/free-mode';
 import 'swiper/css/navigation';
 import 'swiper/css/thumbs';
+// import required modules
+import { FreeMode, Navigation, Thumbs } from 'swiper/modules';
 // COMPONENT
 import ViewerComponent from '../../../component/editor/ViewerComponent.vue';
 // API
@@ -114,10 +111,10 @@
 
 export default {
   components: {
-    Swiper,
-    SwiperSlide,
     PauseOutlined,
     CaretRightOutlined,
+    Swiper,
+    SwiperSlide,
     ViewerComponent,
   },
 
@@ -129,9 +126,9 @@
     };
 
     return {
-      modules: [FreeMode, Navigation, Thumbs],
       thumbsSwiper,
       setThumbsSwiper,
+      modules: [FreeMode, Navigation, Thumbs],
     };
   },
 
@@ -150,6 +147,8 @@
       findResult: {},
       selectedFiles: [],
       loading: false,
+
+      activeIndex: 0,
     };
   },
 
@@ -166,6 +165,10 @@
   },
 
   methods: {
+    handleMainSlideChange(swiper) {
+      this.activeIndex = swiper.realIndex;
+    },
+
     // 상세 조회
     async fnFindDcry() {
       try {
Add a comment
List