readRecordManager.ts 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. import {defineStore} from 'pinia';
  2. import { book_item_data, book_read_data, read_record_data } from '../data/data';
  3. import { config } from '../config/config';
  4. import { util } from '../framework/util';
  5. export const ReadRecord = defineStore('read-record',()=>{
  6. let data:Map<string,string> = null
  7. function getData():Map<string,string> {
  8. // util.removeStorageForKey(config.storage_key.READ_RECORD)
  9. if(data) {
  10. return data
  11. }
  12. data = new Map<string,string>()
  13. let string = util.getStorage(config.storage_key.READ_RECORD)
  14. if(string) {
  15. let json_obj = JSON.parse(string)
  16. let map_obj:Map<string,string> = new Map(Object.entries(json_obj))
  17. data = map_obj
  18. }
  19. return data
  20. }
  21. function addData(book_data:book_item_data, read_data:book_read_data){
  22. let record_data = new read_record_data()
  23. record_data.chapter_id = read_data.book_chapter_id
  24. record_data.chapter_name = read_data.book_chapter_name
  25. let key = `${book_data.book_id}`
  26. getData().set(key, JSON.stringify(record_data))
  27. let data_string = JSON.stringify(Object.fromEntries(data))
  28. util.setStorage(config.storage_key.READ_RECORD, data_string)
  29. }
  30. function getReadRecordData(book_id:number):read_record_data {
  31. let value = getData().get(`${book_id}`)
  32. if(value) {
  33. let book_data = JSON.parse(value)
  34. return book_data
  35. }
  36. return null
  37. }
  38. function deleteReadRecordData(book_id_list:number[]) {
  39. let is_delete:boolean = false
  40. for (let i = 0; i < book_id_list.length; i++) {
  41. let id = book_id_list[i]
  42. let key = `${id}`
  43. if(getData().has(key)) {
  44. console.log('删除的book_id=',id)
  45. getData().delete(key)
  46. is_delete = true
  47. }
  48. }
  49. if(is_delete) {
  50. let data_string = JSON.stringify(Object.fromEntries(getData()))
  51. util.setStorage(config.storage_key.READ_RECORD, data_string)
  52. }
  53. }
  54. return {data,getData,addData,getReadRecordData,deleteReadRecordData}
  55. })