首页 前端知识 功能:cookie与vue:完成双系统切换(jQuery老系统与vue新系统切换)

功能:cookie与vue:完成双系统切换(jQuery老系统与vue新系统切换)

2024-08-07 00:08:40 前端知识 前端哥 417 895 我要收藏

一、需求说明

1、A系统B系统切换跳转,两个系统框架不同。
2、需求1:实现从A系统切换到B系统时,关闭A系统所有页面,跳转B系统链接首页,反过来同理。
3、需求2:点击系统切换按钮时,弹出提示,若取消系统切换,系统切换按钮应还原为本系统。
4、需求3:若从A系统退出登录时,再次登录的话,进入的是A系统首页,反过来同理。
5、项目框架:A系统jQuery框架,B系统vue框架。

二、功能实现

1、系统切换按钮:

A、B系统都要有

// 按钮页面.vue

<el-select size="small" @change="systemChange" v-model="systemId">
   <el-option :key="index" label="A系统" value="1" />
   <el-option :key="index" label="B系统" value="2" />
 </el-select>

在这里插入图片描述

2、按钮点击,系统切换跳转事件:

A、B系统都要有
下拉选择:弹出提示警告
【确定】:更新cookie当前系统id、跳转对应系统链接
【取消】:下拉码表还原为当前系统id

// 按钮页面.vue

import { setSystem } from 'system.js' // 引入cookie设置

systemChange() {
  this.$confirm(`切换系统后,您当前打开的功能将全部关闭`, '提示', {
    type: 'warning',
  }).then((rs) => { // 【确定】切换系统
    setSystem(this.systemId) // cookie更新为要跳转的系统id
    if (this.systemId === '2') { // 根据下拉值选择跳转链接
      window.location.href = 'B页面首页地址链接'
    } else {
      window.location.href = 'A页面首页地址链接'
    }
  }, () => { // 【取消】切换系统
    this.systemId = this.oldSystemId // 将下拉值还原为目前系统id
  }).catch(res => {})
},

在这里插入图片描述

3、cookie记住当前系统id:目的:下次登录时跳转我当前退出去的系统

// system.js

import VueCookie from 'vue-cookie' // 引入vue的cookie

export const SYSTEM = 'System' // 系统cookie名称

export function getSystem() { // 获取cookie
  return VueCookie.get(SYSTEM)
}

export function setSystem(system) { // 设置系统cookie值
  return VueCookie.set(SYSTEM, system)
}

export function removeSystem() { // 移除系统cookie
  return VueCookie.remove(SYSTEM)
}

在这里插入图片描述

4、登录:登录上次退出的系统

// login.vue/js

import { getSystem, setSystem } from 'system.js' // 引入cookie设置

const systemId = getSystem()
if (systemId === '2') {
  window.location.href = 'B页面首页地址链接'
} else {
  if (!systemId) setSystem('1') // 如果没有获取到名为System的cookie值,则默认跳转A系统,并设置cookie值为'1'
  window.location.href = 'A页面首页地址链接'
}

三、踩坑记录

1、cookie设置一直出现重复cookie,导致cookie值一直存储报错,导致再次登录系统时,跳转链接不对。
2、重复原因:第一个cookie是A系统设置,没有path;第二个cookie是B系统设置,唯一区别是有一个path。
3、Cookie属性:名称、值、域(domain)、路径(path)。不同的域、不同的路径下可以存在同样名字的cookie。
4、所以AB系统要设置同一个cookie,就需要名称、domain、path相同,值不同,才能完成cookie的更新,否则就会新增加一个cookie。
在这里插入图片描述
《功能:cookie与vue:完成双系统切换(jQuery老系统与vue新系统切换)》jQuery系统的cookie设置才是要了老命哇~

转载请注明出处或者链接地址:https://www.qianduange.cn//article/14977.html
标签
评论
发布的文章

安装Nodejs后,npm无法使用

2024-11-30 11:11:38

大家推荐的文章
会员中心 联系我 留言建议 回顶部
复制成功!