import { getStorage, removeStorage, setStorage } from "../storage" export interface URLQuery { agent_id: number site_id: number queryStr: string gdt_vid: string weixinadinfo: string } const STORAGE_KEY = "urlQuery" const DEFAULT_URL_QUERY: URLQuery = { agent_id: 0, site_id: 0, queryStr: "", gdt_vid: "", weixinadinfo: "" } class URLQueryModel { private static instance: URLQueryModel | null = null; private data: URLQuery; private constructor() { this.data = getStorage(STORAGE_KEY, DEFAULT_URL_QUERY) ?? DEFAULT_URL_QUERY; } static getInstance(): URLQueryModel { if (!URLQueryModel.instance) { URLQueryModel.instance = new URLQueryModel(); } return URLQueryModel.instance; } get(): URLQuery { return this.data; } save(urlQuery: URLQuery): boolean { this.data = urlQuery; return setStorage(STORAGE_KEY, urlQuery); } clear(): boolean { this.data = { ...DEFAULT_URL_QUERY }; return removeStorage(STORAGE_KEY); } } export default URLQueryModel;