urlQuery.model.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. import { getStorage, removeStorage, setStorage } from "../storage"
  2. export interface URLQuery {
  3. agent_id: number
  4. site_id: number
  5. queryStr: string
  6. gdt_vid: string
  7. weixinadinfo: string
  8. }
  9. const STORAGE_KEY = "urlQuery"
  10. const DEFAULT_URL_QUERY: URLQuery = {
  11. agent_id: 0,
  12. site_id: 0,
  13. queryStr: "",
  14. gdt_vid: "",
  15. weixinadinfo: ""
  16. }
  17. class URLQueryModel {
  18. private static instance: URLQueryModel | null = null;
  19. private data: URLQuery;
  20. private constructor() {
  21. this.data = getStorage<URLQuery>(STORAGE_KEY, DEFAULT_URL_QUERY) ?? DEFAULT_URL_QUERY;
  22. }
  23. static getInstance(): URLQueryModel {
  24. if (!URLQueryModel.instance) {
  25. URLQueryModel.instance = new URLQueryModel();
  26. }
  27. return URLQueryModel.instance;
  28. }
  29. get(): URLQuery {
  30. return this.data;
  31. }
  32. save(urlQuery: URLQuery): boolean {
  33. this.data = urlQuery;
  34. return setStorage(STORAGE_KEY, urlQuery);
  35. }
  36. clear(): boolean {
  37. this.data = { ...DEFAULT_URL_QUERY };
  38. return removeStorage(STORAGE_KEY);
  39. }
  40. }
  41. export default URLQueryModel;