searchManager.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import { search_item_data } from '../data/data';
  2. import { config } from '../config/config';
  3. import { util } from '../framework/util';
  4. export class SearchManager {
  5. private static data_list:search_item_data[] = null
  6. private static max_count = 20
  7. // 获取书列表
  8. public static getList():search_item_data[] {
  9. if(SearchManager.data_list) {
  10. return SearchManager.data_list
  11. }
  12. SearchManager.data_list = []
  13. let string = util.getStorage(config.storage_key.SEARCH_RECORD)
  14. if(string) {
  15. SearchManager.data_list = JSON.parse(string)
  16. }
  17. return SearchManager.data_list
  18. }
  19. // 保存列表
  20. private static saveLocalList() {
  21. util.setStorage(config.storage_key.SEARCH_RECORD, JSON.stringify(SearchManager.data_list))
  22. }
  23. // 异步检查
  24. public static async asyncCheckNameOnSearch(name:string, cb:Function) {
  25. let index = -1
  26. for (let i = 0; i < SearchManager.getList().length; i++) {
  27. let element = SearchManager.getList()[i]
  28. if(element.name == name) {
  29. index = i
  30. break
  31. }
  32. }
  33. cb && cb(index)
  34. }
  35. // 同步检查
  36. public static syncCheckNameOnSearch(name:string):number {
  37. let index = -1
  38. for (let i = 0; i < SearchManager.getList().length; i++) {
  39. let element = SearchManager.getList()[i]
  40. if(element.name == name) {
  41. index = i
  42. break
  43. }
  44. }
  45. return index
  46. }
  47. // 添加
  48. public static addName(name:string):search_item_data[] {
  49. let index = SearchManager.syncCheckNameOnSearch(name)
  50. if(index>-1) {
  51. SearchManager.getList().splice(index,1)
  52. } else {
  53. if(SearchManager.getList().length >= SearchManager.max_count) {
  54. SearchManager.getList().pop()
  55. }
  56. }
  57. let data = new search_item_data()
  58. data.name = name
  59. SearchManager.getList().unshift(data)
  60. SearchManager.saveLocalList()
  61. return SearchManager.getList()
  62. }
  63. // 删除
  64. public static deleteName(data_name_list:string[]) {
  65. for (let i = 0; i < data_name_list.length; i++) {
  66. let element = data_name_list[i]
  67. for (let j = 0; j < SearchManager.getList().length; j++) {
  68. let j_element = SearchManager.getList()[j]
  69. if(element==j_element.name) {
  70. SearchManager.getList().splice(j,1)
  71. }
  72. }
  73. }
  74. SearchManager.saveLocalList()
  75. }
  76. // 重置数据
  77. public static resetData(data_list:search_item_data[]) {
  78. SearchManager.data_list = data_list
  79. SearchManager.saveLocalList()
  80. }
  81. }