|
@@ -1,26 +1,33 @@
|
|
|
-import {defineStore} from 'pinia';
|
|
|
import { book_item_data } from '../data/data';
|
|
|
import { config } from '../config/config';
|
|
|
import { util } from '../framework/util';
|
|
|
-export const ReadHistory = defineStore('read-history',()=>{
|
|
|
- let book_list:book_item_data[] = null
|
|
|
- function getBookList():book_item_data[]{
|
|
|
- if(book_list) {
|
|
|
- return book_list
|
|
|
+
|
|
|
+export class ReadHistoryManager {
|
|
|
+ private static book_list:book_item_data[] = null
|
|
|
+
|
|
|
+ // 获取书列表
|
|
|
+ public static getBookList():book_item_data[] {
|
|
|
+ if(ReadHistoryManager.book_list) {
|
|
|
+ return ReadHistoryManager.book_list
|
|
|
}
|
|
|
- book_list = []
|
|
|
+ ReadHistoryManager.book_list = []
|
|
|
let string = util.getStorage(config.storage_key.READ_HISTORY)
|
|
|
if(string) {
|
|
|
- // book_list = JSON.parse(string) 响应式对象无法被改变
|
|
|
- Object.assign(book_list,JSON.parse(string)) // 使用此方法赋值给相应对象
|
|
|
+ ReadHistoryManager.book_list = JSON.parse(string)
|
|
|
}
|
|
|
- return book_list
|
|
|
+ return ReadHistoryManager.book_list
|
|
|
}
|
|
|
|
|
|
- async function checkBookOnReadHistory(book_id:number, cb:Function) {
|
|
|
+ // 保存本地书列表
|
|
|
+ private static saveLocalBookList() {
|
|
|
+ util.setStorage(config.storage_key.READ_HISTORY, JSON.stringify(ReadHistoryManager.book_list))
|
|
|
+ }
|
|
|
+
|
|
|
+ // 检查在书架
|
|
|
+ public static async checkBookOnReadHistory(book_id:number, cb:Function) {
|
|
|
let index = -1
|
|
|
- for (let i = 0; i < getBookList().length; i++) {
|
|
|
- let element = getBookList()[i]
|
|
|
+ for (let i = 0; i < ReadHistoryManager.getBookList().length; i++) {
|
|
|
+ let element = ReadHistoryManager.getBookList()[i]
|
|
|
if(element.book_id == book_id) {
|
|
|
index = i
|
|
|
break
|
|
@@ -29,44 +36,40 @@ export const ReadHistory = defineStore('read-history',()=>{
|
|
|
cb && cb(index)
|
|
|
}
|
|
|
|
|
|
- async function addBook(book_data:book_item_data, cb:Function) {
|
|
|
+ // 添加书
|
|
|
+ public static async addBook(book_data:book_item_data, cb:Function) {
|
|
|
let read_hisroty_time = util.formatDate(new Date())
|
|
|
book_data.read_hisroty_time = read_hisroty_time
|
|
|
|
|
|
- checkBookOnReadHistory(book_data.book_id, (index:number)=>{
|
|
|
+ ReadHistoryManager.checkBookOnReadHistory(book_data.book_id, (index:number)=>{
|
|
|
if(index>-1) {
|
|
|
- getBookList().splice(index,1)
|
|
|
+ ReadHistoryManager.getBookList().splice(index,1)
|
|
|
}
|
|
|
- getBookList().unshift(book_data)
|
|
|
- // console.log('Readhistory-getBookList()=',getBookList())
|
|
|
- saveBookList()
|
|
|
+ ReadHistoryManager.getBookList().unshift(book_data)
|
|
|
+ // console.log('Readhistory-getBookList()=',ReadHistoryManager.getBookList())
|
|
|
+ ReadHistoryManager.saveLocalBookList()
|
|
|
cb && cb()
|
|
|
})
|
|
|
}
|
|
|
|
|
|
- async function deleteBook(book_id_list:number[]) {
|
|
|
- for (let i = 0; i < getBookList().length; i++) {
|
|
|
- let i_element = getBookList()[i]
|
|
|
+ // 删除书
|
|
|
+ public static deleteBook(book_id_list:number[]) {
|
|
|
+ for (let i = 0; i < ReadHistoryManager.getBookList().length; i++) {
|
|
|
+ let i_element = ReadHistoryManager.getBookList()[i]
|
|
|
if(book_id_list.length==1) {
|
|
|
if(book_id_list.indexOf(i_element.book_id)>-1) {
|
|
|
- getBookList().splice(i,1)
|
|
|
+ ReadHistoryManager.getBookList().splice(i,1)
|
|
|
break
|
|
|
}
|
|
|
} else {
|
|
|
for (let j = 0; j < book_id_list.length; j++) {
|
|
|
let j_element = book_id_list[i]
|
|
|
if(i_element.book_id = j_element) {
|
|
|
- getBookList().splice(i,1)
|
|
|
+ ReadHistoryManager.getBookList().splice(i,1)
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- saveBookList()
|
|
|
- }
|
|
|
-
|
|
|
- function saveBookList() {
|
|
|
- util.setStorage(config.storage_key.READ_HISTORY, JSON.stringify(getBookList()))
|
|
|
+ ReadHistoryManager.saveLocalBookList()
|
|
|
}
|
|
|
-
|
|
|
- return {book_list,getBookList,checkBookOnReadHistory,addBook,deleteBook,saveBookList}
|
|
|
-})
|
|
|
+}
|