/*
 *    Copyright (c) 2018-2025, lengleng All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are met:
 *
 * Redistributions of source code must retain the above copyright notice,
 * this list of conditions and the following disclaimer.
 * Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * Neither the name of the pig4cloud.com developer nor the names of its
 * contributors may be used to endorse or promote products derived from
 * this software without specific prior written permission.
 * Author: lengleng (wangiegie@gmail.com)
 */

import { validatenull } from '@/utils/validate'
/**
 * 存储localStorage
 */
export const setStore = (params) => {
//		console.log(params);
		const {name,content,type,datetime} = params
		const obj = {
			dataType: typeof(content),
			content: content,
			type: type,
			datetime: new Date().getTime()
		}
//		console.log(obj);
		if(type) window.sessionStorage.setItem(name, JSON.stringify(obj))
		else window.localStorage.setItem(name, JSON.stringify(obj))
	}
	/**
	 * 获取localStorage
	 */
export const getStore = (params) => {
		const {name,type} = params
		let obj = {}
		let content
		obj = window.localStorage.getItem(name)
//		console.log(obj);
		if(validatenull(obj)) obj = window.sessionStorage.getItem(name)
		if(validatenull(obj)) return
		obj = JSON.parse(obj)
		if(obj.dataType === 'string') {
			content = obj.content
		} else if(obj.dataType === 'number') {
			content = Number(obj.content)
		} else if(obj.dataType === 'boolean') {
			content = eval(obj.content)
		} else if(obj.dataType === 'object') {
			content = obj.content
		}
//		console.log("content:"+content);
		return content
	}
	/**
	 * 删除localStorage
	 */
export const removeStore = params => {
	let { name } = params
	window.localStorage.removeItem(name)
	window.sessionStorage.removeItem(name)
}