/**
 * 设置cookie - setCookie(option)
 * @param {Object}   option                   参数
 * @param {String}   option -- key            键
 * @param {String}   option -- value          值
 * @param {Number}   option -- expireDays     过期时间
 * @param {Number}   option -- domain         域
 * @param {Number}   option -- routing        路径
 */
interface CookieType {
  key: string
  value: string
  expireDays?: number
  domain?: string
  routing?: string
}
export const setCookie = function (option: CookieType) {
  let optionDefault: CookieType = {
    key: '',
    value: '',
    expireDays: 3,
    domain: '',
    routing: '/',
  }
  optionDefault = { ...option }
  const exdate = new Date()
  let cookie
  cookie = `${optionDefault.key}=${encodeURIComponent(optionDefault.value)}`
  optionDefault.domain && (cookie += `; domain=${optionDefault.domain}`)
  optionDefault.routing && (cookie += `; routing=${optionDefault.routing}`)
  optionDefault.expireDays && exdate.setDate(exdate.getDate() + optionDefault.expireDays);
  optionDefault.expireDays && (cookie += `; expires=${exdate}`)
  console.log('cookie', cookie)
  document.cookie = cookie
}

/**
 * 获取cookie - getCookie(key)
 * @param  {Object}   key                 键
 * @result {*}        result              返回cookie值,没有就返回空
 */
export const getCookie = function (key: string) {
  const _cookie = document.cookie
  const itemsArr = _cookie.split('; ')
  let item = []
  for (let i = 0; i < itemsArr.length; i++) {
    item = itemsArr[i].split('=')
    if (key === item[0] && item.length === 2) {
      return decodeURIComponent(item[1])
    }
  }
  return ''
}

/**
 * 删除cookie - removeCookie(key)
 * @param  {Object}   key                 键
 */
export const removeCookie = function (key: string) {
  const date = new Date()
  date.setDate(date.getDate() - 10000 * 3600 * 31)
  document.cookie = `${key}=; path=/; domain=winshangdata.com; expires = ${date.toString()}`
}

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐