readHistoryManager.ts 2.3 KB

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