Skip to content

Commit

Permalink
feat(web): 试看搜索书籍后返回书架时提示是否加入书架
Browse files Browse the repository at this point in the history
  • Loading branch information
Xwite committed Sep 30, 2024
1 parent c88849b commit 797bfd9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 4 deletions.
1 change: 1 addition & 0 deletions modules/web/src/store/bookStore.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ export const useBookStore = defineStore("book", {
connectStatus: "正在连接后端服务器……",
connectType: "",
newConnect: true,
/**@type {Array<{respondTime:number}>} */
searchBooks: [],
shelf: [],
catalog: [],
Expand Down
28 changes: 27 additions & 1 deletion modules/web/src/views/BookChapter.vue
Original file line number Diff line number Diff line change
Expand Up @@ -492,7 +492,7 @@ onMounted(() => {
bookAuthor: bookAuthor,
bookUrl: bookUrl,
index: chapterIndex,
chapterPos: chapterPos,
chapterPos: chapterPos
};
localStorage.setItem(bookUrl, JSON.stringify(book));
}
Expand Down Expand Up @@ -532,6 +532,7 @@ onMounted(() => {
);
});
onUnmounted(() => {
window.removeEventListener("keyup", handleKeyPress);
window.removeEventListener("keydown", ignoreKeyPress);
Expand All @@ -541,6 +542,31 @@ onUnmounted(() => {
readSettingsVisible.value = false;
popCataVisible.value = false;
scrollObserver?.disconnect();
scrollObserver = null;
});
onBeforeRouteLeave(async ()=> {
let bookUrl = sessionStorage.getItem("bookUrl");
let bookName = sessionStorage.getItem("bookName");
let isSeachBook = sessionStorage.getItem("isSeachBook");
var book = JSON.parse(localStorage.getItem(bookUrl));
// 阅读的是搜索的书籍 并未在书架
if (isSeachBook) {
await ElMessageBox.confirm(
`是否将《${bookName}》放入书架?`,
"放入书架",
{
confirmButtonText: "确认",
cancelButtonText: "",
type: "info"
}
).then(() => {
//选择是,无动作
}).catch(()=>{
//选择否,删除书籍
API.deleteBook(book);
})
}
});
</script>
Expand Down
8 changes: 5 additions & 3 deletions modules/web/src/views/BookShelf.vue
Original file line number Diff line number Diff line change
Expand Up @@ -211,18 +211,20 @@ const handleBookClick = async (book) => {
durChapterPos = 0,
} = book;
// 判断是否为 searchBook
if (book.durChapterIndex === undefined) {
const isSeachBook = "respondTime" in book
if (isSeachBook) {
await API.saveBook(book);
}
toDetail(bookUrl, name, author, durChapterIndex, durChapterPos);
toDetail(bookUrl, name, author, durChapterIndex, durChapterPos, isSeachBook);
};
const toDetail = (bookUrl, bookName, bookAuthor, chapterIndex, chapterPos) => {
const toDetail = (bookUrl, bookName, bookAuthor, chapterIndex, chapterPos, isSeachBook) => {
if (bookName === "尚无阅读记录") return;
sessionStorage.setItem("bookUrl", bookUrl);
sessionStorage.setItem("bookName", bookName);
sessionStorage.setItem("bookAuthor", bookAuthor);
sessionStorage.setItem("chapterIndex", chapterIndex);
sessionStorage.setItem("chapterPos", chapterPos);
sessionStorage.setItem("isSeachBook", isSeachBook);
readingRecent.value = {
name: bookName,
author: bookAuthor,
Expand Down

0 comments on commit 797bfd9

Please sign in to comment.