const getDomain = () => {
const host = window.location.host
if(host==='localhost:8080') {
return ''
}
const arr = host.split('.')
if (arr.length > 2) {
const len = arr.length
return `${arr[len - 2]}.${arr[len - 1]}`
}
return host
}
const Cookie = {
get: function (name: string) {
let arr
const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)')
if ((arr = document.cookie.match(reg))) {
return unescape(arr[2])
} else {
return null
}
},
getObj: function () {
const arr = document.cookie.split(';')
let jsonStr = '{'
for (let i = 0; i < arr.length; i++) {
const cookie = arr[i].split('=')
jsonStr +=
'"' +
cookie[0].replace(/\s+/g, '') +
'":"' +
decodeURIComponent(cookie[1]) +
'",'
}
jsonStr = jsonStr.slice(0, -1)
jsonStr += '}'
return JSON.parse(jsonStr)
},
set: function (name: string, value: any, time: any, domain: string = getDomain(), path: string = '/') {
let str = name + '=' + encodeURIComponent(value)
if (time) {
const date = (new Date(time) as any).toGMTString()
str += ';expires=' + date
}
str = domain ? str + ';domain=' + domain : str
str = path ? str + ';path=' + path : str
document.cookie = str
},
del: function (name: string, domain: string = getDomain(), path: string = '/') {
const date = new Date('1970-01-01')
let str = name + '=null;expires=' + (date as any).toGMTString()
str = domain ? str + ';domain=' + domain : str
str = path ? str + ';path=' + path : str
document.cookie = str
},
}
export default Cookie