박정하 박정하 04-03
250403 박정하 버튼 액션 범위 수정
@70022817a3170a95c99890b3d8999efee974538f
client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
--- client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
+++ client/views/pages/bbsDcry/photo/PicHistoryInsert.vue
@@ -42,8 +42,7 @@
             <p>카테고리</p><button type="button" class="category-add" @click="fnToggleModal">추가하기</button>
           </label>
           <ul class="category">
-            <li v-for="(item, idx) of selectedCtgries" :key="idx">{{ item.ctgryNm }} <button type="button"
-                class="cancel" @click="fnDelCtgry(item.ctgryId)"><b>✕</b></button></li>
+            <li v-for="(item, idx) of selectedCtgries" :key="idx">{{ item.ctgryNm }} <button type="button" class="cancel" @click="fnDelCtgry(item.ctgryId)"><b>✕</b></button></li>
           </ul>
         </dd>
         <div class="hr"></div>
@@ -56,10 +55,8 @@
               </div>
             </li>
             <li class="file-insert">
-              <input type="file" id="fileInput" class="file-input" multiple
-                accept="image/jpeg,image/png,image/gif,image/jpg" @change="handleFileSelect">
-              <label for="fileInput" class="file-label mb-20" @dragover.prevent="handleDragOver"
-                @dragleave.prevent="handleDragLeave" @drop.prevent="handleDrop" :class="{ 'drag-over': isDragging }">
+              <input type="file" id="fileInput" class="file-input" multiple accept="image/jpeg,image/png,image/gif,image/jpg" @change="handleFileSelect">
+              <label for="fileInput" class="file-label mb-20" @dragover.prevent="handleDragOver" @dragleave.prevent="handleDragLeave" @drop.prevent="handleDrop" :class="{ 'drag-over': isDragging }">
                 <div class="flex-center align-center">
                   <img :src="fileicon" alt="">
                   <p>파일첨부하기</p>
@@ -92,15 +89,14 @@
       </dl>
     </form>
     <div class="btn-group flex-center">
-      <button type="button" class="cancel" @click="fnMoveTo('PicHistorySearch')">취소</button>
+      <button type="button" class="cancel" @click="fnMoveTo('list')">취소</button>
       <button type="button" class="register" @click="submitForm">
         <span v-if="$isEmpty(pageId)">등록</span>
         <span v-else>수정</span>
       </button>
     </div>
   </div>
-  <CategorySelectModal v-if="isModalOpen" :selectedCtgries="selectedCtgries" @toggleModal="fnToggleModal"
-    @addCtgries="fnAddCtgries" />
+  <CategorySelectModal v-if="isModalOpen" :selectedCtgries="selectedCtgries" @toggleModal="fnToggleModal" @addCtgries="fnAddCtgries" />
 </template>
 <script>
 import { DoubleLeftOutlined, LeftOutlined, RightOutlined, DoubleRightOutlined } from '@ant-design/icons-vue';
@@ -169,13 +165,13 @@
 
         if (response.data.data.dcry.ty !== 'P') {
           alert('올바른 접근이 아닙니다.');
-          this.fnMoveTo('VideoHistorySearch'); // 목록으로 이동
+          this.fnMoveTo('list'); // 목록으로 이동
         }
 
         this.copyToDcryReqDTO(response.data.data.dcry);
       } catch (error) {
         alert('조회중 오류가 발생했습니다.');
-        this.fnMoveTo('PicHistorySearch'); // 목록으로 이동
+        this.fnMoveTo('list'); // 목록으로 이동
 
         if (error.response) {
           alert(error.response.data.message);
@@ -330,12 +326,11 @@
 
         // API 통신
         const response = this.$isEmpty(this.pageId) ? await saveDcry(formData) : await updateDcry(formData);
-        let result = response.data;
-        let id = result.data.dcryId;
+        let id = response.data.data.dcryId;
         alert(this.$isEmpty(this.pageId) ? "등록되었습니다." : "수정되었습니다.");
 
         // 상세 페이지로 이동
-        this.fnMoveTo('PicHistoryDetail', id);
+        this.fnMoveTo('view', id);
       } catch (error) {
         if (error.response) {
           alert(error.response.data.message);
@@ -347,13 +342,20 @@
     },
 
     // 페이지 이동
-    fnMoveTo(page, id) {
-      if (this.$isEmpty(id)) {
-        this.$router.push({ name: page });
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'PicHistorySearch' },
+        'view': { name: 'PicHistoryDetail', query: { id } },
+        'edit': { name: 'PicHistoryInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
       } else {
-        this.$router.push({ name: page, query: { id: id } });
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
       }
-    }
+    },
   }
 };
 </script>
client/views/pages/bbsDcry/photo/PicHistorySearch.vue
--- client/views/pages/bbsDcry/photo/PicHistorySearch.vue
+++ client/views/pages/bbsDcry/photo/PicHistorySearch.vue
@@ -109,7 +109,7 @@
           </div>
         </div>
       </div>
-      <div class="btn-group flex-end mt-40"><button class="register"> <router-link :to="{ path: '/PicHistoryInsert.page' }">등록</router-link></button></div>
+      <div class="btn-group flex-end mt-40"><button type="button" class="register" @click="fnMoveTo('edit')">등록</button></div>
       <DefaultPagination class="mt-40" :search="searchReqDTO" @onChange="fnChangeCurrentPage" />
     </div>
   </div>
@@ -308,6 +308,22 @@
     selectTab(tabId) {
       this.selectedTabId = tabId;
     },
+
+    // 페이지 이동
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'PicHistorySearch' },
+        'view': { name: 'PicHistoryDetail', query: { id } },
+        'edit': { name: 'PicHistoryInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
+      } else {
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
+      }
+    },
   },
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsDcry/video/VideoHistoryDetail.vue
--- client/views/pages/bbsDcry/video/VideoHistoryDetail.vue
+++ client/views/pages/bbsDcry/video/VideoHistoryDetail.vue
@@ -71,7 +71,7 @@
 import ViewerComponent from '../../../component/editor/ViewerComponent.vue';
 // API
 import { findDcryProc, deleteDcryProc } from '@/resources/api/dcry';
-import { fileDownloadProc, multiFileDownloadProc } from '@/resources/api/file';
+import { fileDownloadProc } from '@/resources/api/file';
 
 export default {
   components: {
client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
--- client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
+++ client/views/pages/bbsDcry/video/VideoHistoryInsert.vue
@@ -87,7 +87,7 @@
       </dl>
     </form>
     <div class="btn-group flex-center">
-      <button type="button" class="cancel" @click="fnMoveTo('VideoHistorySearch')">취소</button>
+      <button type="button" class="cancel" @click="fnMoveTo('list')">취소</button>
       <button type="button" class="register" @click="submitForm">
         <span v-if="$isEmpty(pageId)">등록</span>
         <span v-else>수정</span>
@@ -163,13 +163,13 @@
 
         if (response.data.data.dcry.ty !== 'V') {
           alert('올바른 접근이 아닙니다.');
-          this.fnMoveTo('VideoHistorySearch'); // 목록으로 이동
+          this.fnMoveTo('list'); // 목록으로 이동
         }
 
         this.copyToDcryReqDTO(response.data.data.dcry);
       } catch (error) {
         alert('조회중 오류가 발생했습니다.');
-        this.fnMoveTo('VideoHistorySearch'); // 목록으로 이동
+        this.fnMoveTo('list'); // 목록으로 이동
 
         if (error.response) {
           alert(error.response.data.message);
@@ -330,12 +330,11 @@
 
         // API 통신
         const response = this.$isEmpty(this.pageId) ? await saveDcry(formData) : await updateDcry(formData);
-        let result = response.data;
-        let id = result.data.dcryId;
+        let id = response.data.data.dcryId;
         alert(this.$isEmpty(this.pageId) ? "등록되었습니다." : "수정되었습니다.");
 
         // 상세 페이지로 이동
-        this.fnMoveTo('VideoHistoryDetail', id);
+        this.fnMoveTo('view', id);
       } catch (error) {
         if (error.response) {
           alert(error.response.data.message);
@@ -347,13 +346,20 @@
     },
 
     // 페이지 이동
-    fnMoveTo(page, id) {
-      if (this.$isEmpty(id)) {
-        this.$router.push({ name: page });
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'VideoHistorySearch' },
+        'view': { name: 'VideoHistoryDetail', query: { id } },
+        'edit': { name: 'VideoHistoryInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
       } else {
-        this.$router.push({ name: page, query: { id: id } });
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
       }
-    }
+    },
   }
 };
 </script>
client/views/pages/bbsDcry/video/VideoHistorySearch.vue
--- client/views/pages/bbsDcry/video/VideoHistorySearch.vue
+++ client/views/pages/bbsDcry/video/VideoHistorySearch.vue
@@ -109,7 +109,7 @@
           </div>
         </div>
       </div>
-      <div class="btn-group flex-end mt-40"><button class="register"> <router-link :to="{ path: '/VideoHistoryInsert.page' }">등록</router-link></button></div>
+      <div class="btn-group flex-end mt-40"><button type="button" class="register" @click="fnMoveTo('edit')">등록</button></div>
       <DefaultPagination class="mt-40" :search="searchReqDTO" @onChange="fnChangeCurrentPage" />
     </div>
   </div>
@@ -308,6 +308,22 @@
     selectTab(tabId) {
       this.selectedTabId = tabId;
     },
+
+    // 페이지 이동
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'VideoHistorySearch' },
+        'view': { name: 'VideoHistoryDetail', query: { id } },
+        'edit': { name: 'VideoHistoryInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
+      } else {
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
+      }
+    },
   },
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsMediaVido/MediaVideoInsert.vue
--- client/views/pages/bbsMediaVido/MediaVideoInsert.vue
+++ client/views/pages/bbsMediaVido/MediaVideoInsert.vue
@@ -47,7 +47,7 @@
       </dl>
     </form>
     <div class="btn-group flex-center">
-      <button type="button" class="cancel" @click="fnMoveTo('MediaVideoSearch')">취소</button>
+      <button type="button" class="cancel" @click="fnMoveTo('list')">취소</button>
       <button type="button" class="register" @click="submitForm">
         <span v-if="$isEmpty(pageId)">등록</span>
         <span v-else>수정</span>
@@ -116,7 +116,7 @@
         this.copyToMediaVidoReqDTO(response.data.data.mediaVido);
       } catch (error) {
         alert('조회중 오류가 발생했습니다.');
-        this.fnMoveTo('MediaVideoSearch'); // 목록으로 이동
+        this.fnMoveTo('list'); // 목록으로 이동
 
         if (error.response) {
           alert(error.response.data.message);
@@ -169,9 +169,10 @@
 
         // API 통신
         const response = this.$isEmpty(this.pageId) ? await saveMediaVidoProc(this.requestDTO) : await updateMediaVidoDcry(this.requestDTO);
+        let id = response.data.data.mediaVidoId;
         alert(this.$isEmpty(this.pageId) ? "등록되었습니다." : "수정되었습니다.");
 
-        this.fnMoveTo('MediaVideoDetail', response.data.data.mediaVidoId); // 상세 페이지로 이동
+        this.fnMoveTo('view', id); // 상세 페이지로 이동
       } catch (error) {
         if (error.response) {
           alert(error.response.data.message);
@@ -183,13 +184,20 @@
     },
 
     // 페이지 이동
-    fnMoveTo(page, id) {
-      if (this.$isEmpty(id)) {
-        this.$router.push({ name: page });
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'MediaVideoSearch' },
+        'view': { name: 'MediaVideoDetail', query: { id } },
+        'edit': { name: 'MediaVideoInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
       } else {
-        this.$router.push({ name: page, query: { id: id } });
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
       }
-    }
+    },
   }
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsMediaVido/MediaVideoSearch.vue
--- client/views/pages/bbsMediaVido/MediaVideoSearch.vue
+++ client/views/pages/bbsMediaVido/MediaVideoSearch.vue
@@ -104,7 +104,7 @@
           </div>
         </div>
       </div>
-      <div class="btn-group flex-end mt-40"><button class="register"> <router-link :to="{ path: '/MediaVideoInsert.page' }">등록</router-link></button></div>
+      <div class="btn-group flex-end mt-40"><button type="button" class="register" @click="fnMoveTo('edit')">등록</button></div>
       <DefaultPagination class="mt-40" :search="searchReqDTO" @onChange="fnChangeCurrentPage" />
     </div>
   </div>
@@ -298,6 +298,22 @@
     selectTab(tabId) {
       this.selectedTabId = tabId;
     },
+
+    // 페이지 이동
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'MediaVideoSearch' },
+        'view': { name: 'MediaVideoDetail', query: { id } },
+        'edit': { name: 'MediaVideoInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
+      } else {
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
+      }
+    },
   },
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/bbsNesDta/NewsReleaseSearch.vue
--- client/views/pages/bbsNesDta/NewsReleaseSearch.vue
+++ client/views/pages/bbsNesDta/NewsReleaseSearch.vue
@@ -105,7 +105,7 @@
           </div>
         </div>
       </div>
-      <div class="btn-group flex-end mt-40"><button class="register"> <router-link :to="{ path: '/NewsReleaseInsert.page' }">등록</router-link></button></div>
+      <div class="btn-group flex-end mt-40"><button type="button" class="register" @click="fnMoveTo('edit')">등록</button></div>
       <DefaultPagination class="mt-40" :search="searchReqDTO" @onChange="fnChangeCurrentPage" />
     </div>
   </div>
@@ -299,6 +299,22 @@
     selectTab(tabId) {
       this.selectedTabId = tabId;
     },
+
+    // 페이지 이동
+    fnMoveTo(type, id) {
+      const routes = {
+        'list': { name: 'NewsReleaseSearch' },
+        'view': { name: 'NewsReleaseDetail', query: { id } },
+        'edit': { name: 'NewsReleaseInsert', query: this.$isEmpty(id) ? {} : { id } },
+      };
+
+      if (routes[type]) {
+        this.$router.push(routes[type]);
+      } else {
+        alert("올바르지 않은 경로를 요청하여 목록으로 이동합니다.");
+        this.$router.push(routes['list']);
+      }
+    },
   },
 };
 </script>
(파일 끝에 줄바꿈 문자 없음)
client/views/pages/main/Main.vue
--- client/views/pages/main/Main.vue
+++ client/views/pages/main/Main.vue
@@ -66,7 +66,9 @@
       <div class="tab-content">
         <template v-for="(tabContent, idx1) of tabContents" :key="idx1">
           <div v-show="tabContent.id === selectedTab" class="content-wrap">
-            <router-link :to="{ name: tabContent.search }" class="gopage">더보기</router-link>
+            <div style="text-align: right;">
+              <button type="button" class="gopage" @click="fnMoveTo(tabContent.search)">더보기</button>
+            </div>
             <div class="new-pic">
               <div v-for="(item, idx2) in tabContent.list" :key="idx2" class="box-wrap">
                 <div class="box" @click="fnMoveTo(tabContent.view, item.dcryId)">
Add a comment
List