readHistoryManager.ts 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import { book_item_data } from '../data/data';
  2. import { config } from '../config/config';
  3. import { util } from '../framework/util';
  4. export class ReadHistoryManager {
  5. private static book_list:book_item_data[] = null
  6. // 获取书列表
  7. public static getBookList():book_item_data[] {
  8. if(ReadHistoryManager.book_list) {
  9. return ReadHistoryManager.book_list
  10. }
  11. ReadHistoryManager.book_list = []
  12. let string = util.getStorage(config.storage_key.READ_HISTORY)
  13. if(string) {
  14. ReadHistoryManager.book_list = JSON.parse(string)
  15. }
  16. return ReadHistoryManager.book_list
  17. }
  18. // 保存本地书列表
  19. private static saveLocalBookList() {
  20. util.setStorage(config.storage_key.READ_HISTORY, JSON.stringify(ReadHistoryManager.book_list))
  21. }
  22. // 检查在书架
  23. public static async checkBookOnReadHistory(book_id:number, cb:Function) {
  24. let index = -1
  25. for (let i = 0; i < ReadHistoryManager.getBookList().length; i++) {
  26. let element = ReadHistoryManager.getBookList()[i]
  27. if(element.book_id == book_id) {
  28. index = i
  29. break
  30. }
  31. }
  32. cb && cb(index)
  33. }
  34. // 添加书
  35. public static async addBook(book_data:book_item_data, cb:Function) {
  36. let read_hisroty_time = util.formatDate(new Date())
  37. book_data.read_hisroty_time = read_hisroty_time
  38. ReadHistoryManager.checkBookOnReadHistory(book_data.book_id, (index:number)=>{
  39. if(index>-1) {
  40. ReadHistoryManager.getBookList().splice(index,1)
  41. }
  42. ReadHistoryManager.getBookList().unshift(book_data)
  43. // console.log('Readhistory-getBookList()=',ReadHistoryManager.getBookList())
  44. ReadHistoryManager.saveLocalBookList()
  45. cb && cb()
  46. })
  47. }
  48. // 删除书
  49. public static deleteBook(book_id_list:number[]) {
  50. for (let i = 0; i < book_id_list.length; i++) {
  51. let element = book_id_list[i]
  52. for (let j = 0; j < ReadHistoryManager.getBookList().length; j++) {
  53. let j_element = ReadHistoryManager.getBookList()[j]
  54. if(element==j_element.book_id) {
  55. ReadHistoryManager.getBookList().splice(j,1)
  56. }
  57. }
  58. }
  59. ReadHistoryManager.saveLocalBookList()
  60. }
  61. // 重置数据
  62. public static resetData(book_list:book_item_data[]) {
  63. ReadHistoryManager.book_list = book_list
  64. ReadHistoryManager.saveLocalBookList()
  65. }
  66. }