뒤로가기 수정
This commit is contained in:
parent
12297153e4
commit
551569c1c6
@ -582,7 +582,7 @@
|
|||||||
|
|
||||||
/* commuters */
|
/* commuters */
|
||||||
.commuter-list {
|
.commuter-list {
|
||||||
max-height: 358px;
|
max-height: 450px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
scrollbar-width: none;
|
scrollbar-width: none;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
<!-- 뒤로가기 -->
|
<!-- 뒤로가기 -->
|
||||||
<button
|
<button
|
||||||
@click="goBack"
|
@click="goBack"
|
||||||
|
:disabled="!canGoBack"
|
||||||
:class="{ 'shifted': showButton }"
|
:class="{ 'shifted': showButton }"
|
||||||
class="back-btn rounded-pill btn-icon btn-secondary position-fixed shadow z-5 border-0">
|
class="back-btn rounded-pill btn-icon btn-secondary position-fixed shadow z-5 border-0">
|
||||||
<i class='bx bx-chevron-left'></i>
|
<i class='bx bx-chevron-left'></i>
|
||||||
@ -18,29 +19,54 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, onMounted, onUnmounted } from "vue";
|
import { ref, onMounted, onUnmounted, watch } from "vue";
|
||||||
|
import { useRoute, useRouter } from "vue-router";
|
||||||
|
|
||||||
const showButton = ref(false);
|
const showButton = ref(false);
|
||||||
|
const canGoBack = ref(false);
|
||||||
|
const route = useRoute();
|
||||||
|
const router = useRouter();
|
||||||
|
const loginPage = "/login"; // 로그인 페이지 경로
|
||||||
|
|
||||||
|
// 스크롤 이벤트 핸들러
|
||||||
const handleScroll = () => {
|
const handleScroll = () => {
|
||||||
showButton.value = window.scrollY > 200;
|
showButton.value = window.scrollY > 200;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 최상단으로 스크롤 이동
|
||||||
const scrollToTop = () => {
|
const scrollToTop = () => {
|
||||||
window.scrollTo({ top: 0, behavior: "smooth" });
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 뒤로 가기 처리
|
||||||
const goBack = () => {
|
const goBack = () => {
|
||||||
window.history.back();
|
if (canGoBack.value) {
|
||||||
|
router.back();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 뒤로 가기 가능 여부 확인 함수
|
||||||
|
const updateCanGoBack = () => {
|
||||||
|
const historyBack = router.options.history.state.back;
|
||||||
|
const previousPage = document.referrer;
|
||||||
|
|
||||||
|
canGoBack.value = !!historyBack && historyBack !== loginPage && !previousPage.includes(loginPage);
|
||||||
|
};
|
||||||
|
|
||||||
|
// 마운트 시 한 번 실행
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
window.addEventListener("scroll", handleScroll);
|
window.addEventListener("scroll", handleScroll);
|
||||||
|
updateCanGoBack();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 라우트가 변경될 때마다 `canGoBack` 업데이트
|
||||||
|
watch(route, () => {
|
||||||
|
updateCanGoBack();
|
||||||
|
});
|
||||||
|
|
||||||
|
// 언마운트 시 이벤트 제거
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
window.removeEventListener("scroll", handleScroll);
|
window.removeEventListener("scroll", handleScroll);
|
||||||
});
|
});
|
||||||
</script>
|
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|||||||
@ -1,5 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<div class="container-xxl flex-grow-1 container-p-y pb-0">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
<div class="card app-calendar-wrapper">
|
<div class="card app-calendar-wrapper">
|
||||||
<div class="row g-0">
|
<div class="row g-0">
|
||||||
<div class="col-3 border-end text-center" id="app-calendar-sidebar">
|
<div class="col-3 border-end text-center" id="app-calendar-sidebar">
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user