fix(web/addToBookShelfConfirm): set ElMessageBox.closeOnHashChange to false

This commit is contained in:
Xwite
2024-10-05 08:26:57 +08:00
parent 28f11e148b
commit 83d2cf43dc
2 changed files with 45 additions and 47 deletions
@@ -20,8 +20,8 @@ import { useSourceStore } from "@/store";
const store = useSourceStore(); const store = useSourceStore();
const current_tab = computed({ const current_tab = computed({
get:() => store.currentTab, get: () => store.currentTab,
set:(val) => store.currentTab = val set: (val) => (store.currentTab = val),
}); });
const tabData = ref([ const tabData = ref([
+43 -45
View File
@@ -146,7 +146,32 @@ const chapterIndex = computed({
set: (value) => (store.readingBook.index = value), set: (value) => (store.readingBook.index = value),
}); });
// 无限滚动
const infiniteLoading = computed(() => store.config.infiniteLoading); const infiniteLoading = computed(() => store.config.infiniteLoading);
let scrollObserver;
const loading = ref();
watchEffect(() => {
if (!infiniteLoading.value) {
scrollObserver?.disconnect();
} else {
scrollObserver?.observe(loading.value);
}
});
const loadMore = () => {
let index = chapterData.value.slice(-1)[0].index;
if (catalog.value.length - 1 > index) {
getContent(index + 1, false);
store.saveBookProgress(); // 保存的是上一章的进度,不是预载的本章进度
}
};
// IntersectionObserver回调 底部加载
const onReachBottom = (entries) => {
if (isLoading.value) return;
for (let { isIntersecting } of entries) {
if (!isIntersecting) return;
loadMore();
}
};
// 字体 // 字体
const fontFamily = computed(() => { const fontFamily = computed(() => {
@@ -388,32 +413,6 @@ const toPreChapter = () => {
} }
}; };
// 无限滚动
let scrollObserver;
const loading = ref();
watchEffect(() => {
if (!infiniteLoading.value) {
scrollObserver?.disconnect();
} else {
scrollObserver?.observe(loading.value);
}
});
const loadMore = () => {
let index = chapterData.value.slice(-1)[0].index;
if (catalog.value.length - 1 > index) {
getContent(index + 1, false);
store.saveBookProgress(); // 保存的是上一章的进度,不是预载的本章进度
}
};
// IntersectionObserver回调 底部加载
const onReachBottom = (entries) => {
if (isLoading.value) return;
for (let { isIntersecting } of entries) {
if (!isIntersecting) return;
loadMore();
}
};
let canJump = true; let canJump = true;
// 监听方向键 // 监听方向键
const handleKeyPress = (event) => { const handleKeyPress = (event) => {
@@ -548,25 +547,24 @@ const addToBookShelfConfirm = async () => {
sessionStorage.removeItem("isSeachBook"); sessionStorage.removeItem("isSeachBook");
// 阅读的是搜索的书籍 并未在书架 // 阅读的是搜索的书籍 并未在书架
if (isSeachBook === "true") { if (isSeachBook === "true") {
await ElMessageBox.confirm(`是否将《${bookName}》放入书架?`, "放入书架", {
const addtoshelf = window.confirm(`是否将《${bookName}》放入书架?`); confirmButtonText: "确认",
if (!addtoshelf) await API.deleteBook(book); cancelButtonText: "否",
type: "info",
/* //按下返回键时不能触发 ElMessageBox.confirm /*
await ElMessageBox.confirm( ElMessageBox.confirm默认在触发hashChange事件时自动关闭
`是否将《${bookName}》放入书架?`, 按下物理返回键时触发hashChange事件
"放入书架", 使用router.push("/")则不会触发hashChange事件
{ */
confirmButtonText: "确认", closeOnHashChange: false,
cancelButtonText: "否", })
type: "info" .then(() => {
} //选择是,无动作
).then(() => { })
//选择是,无动作 .catch(async () => {
}).catch(async () => { //选择否,删除书籍
//选择否,删除书籍 await API.deleteBook(book);
await API.deleteBook(book); });
}) */
} }
}; };
onBeforeRouteLeave(async (to, from, next) => { onBeforeRouteLeave(async (to, from, next) => {