国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

若依框架登錄后跳轉(zhuǎn)其他頁(yè)面&獲取不同的菜單&登錄進(jìn)入后跳轉(zhuǎn)至動(dòng)態(tài)路由的第一個(gè)路由

這篇具有很好參考價(jià)值的文章主要介紹了若依框架登錄后跳轉(zhuǎn)其他頁(yè)面&獲取不同的菜單&登錄進(jìn)入后跳轉(zhuǎn)至動(dòng)態(tài)路由的第一個(gè)路由。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

最近碰到的需求是登錄進(jìn)入后,先跳轉(zhuǎn)至一個(gè)自己定義的頁(yè)面,在這個(gè)頁(yè)面選擇一個(gè)系統(tǒng)后,進(jìn)入若依的系統(tǒng),根據(jù)選擇的系統(tǒng)獲取相應(yīng)的菜單,進(jìn)入頁(yè)面后默認(rèn)跳轉(zhuǎn)至后端返回的動(dòng)態(tài)路由的第一個(gè)路由

1.首先在登錄頁(yè)面login.vue做如下改動(dòng)

寫成你要跳轉(zhuǎn)過(guò)去的頁(yè)面:(這個(gè)路由如果是自己定義的,要記得在router文件夾下聲明一下路由)

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript
若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

在你自定義的頁(yè)面內(nèi),把原本寫在登錄頁(yè)面跳轉(zhuǎn)的路由,寫到你在自定義頁(yè)面要跳轉(zhuǎn)的地方,這個(gè)地方我沒(méi)有寫原本的redirect,不知道有沒(méi)有影響.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

這樣在你登錄后,頁(yè)面就不會(huì)按照之前默認(rèn)的跳到系統(tǒng)首頁(yè)了,而是會(huì)跳轉(zhuǎn)至你定義的路由;

?2.找到src目錄下permission.js文件,作如下改動(dòng):

這里主要設(shè)置的就是跳轉(zhuǎn)至自定義頁(yè)面,設(shè)置跳轉(zhuǎn)的默認(rèn)首頁(yè).

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

router.beforeEach((to, from, next) => {
  NProgress.start()
  if (getToken()) {
    to.meta.title && store.dispatch('settings/setTitle', to.meta.title)
    /* has token*/
    if (to.path === '/login') {
  // 意思是如果你已經(jīng)登錄了,而且現(xiàn)在還可以獲取到token即登錄沒(méi)有過(guò)期,你要去登錄頁(yè)的話是去不了的, 
   // 但是去其他頁(yè)面是放行的,去其他頁(yè)面就會(huì)走下面的else。
      // 登錄后不可再返回至登錄頁(yè),此處next不放行
      next({ path: '/' })
      NProgress.done()
    } else {
      if (from.path === '/login') {
        // 如果是從登錄頁(yè)過(guò)來(lái),就直接放行到要去的路由,什么都不做
        // 在這里只有一種可能性,就是從/login來(lái),去/channel路由,即跳轉(zhuǎn)至自定義頁(yè)面,在這里因?yàn)槭?        //么都沒(méi)做,所以目前為止,還沒(méi)有獲取到系統(tǒng)的菜單
        next();
        return;
      }
      // 我看了下這里只有登錄后跳轉(zhuǎn)的時(shí)候以及刷新系統(tǒng)頁(yè)面的時(shí)候會(huì)進(jìn)來(lái),
      // 在我們跳轉(zhuǎn)自定義頁(yè)面的時(shí)候并不會(huì)進(jìn)來(lái),走的是上面的if,
      // 只有從自定義頁(yè)面往其他頁(yè)面跳轉(zhuǎn)的時(shí)候才會(huì)走這里
      if (store.getters.roles.length === 0) {
        isRelogin.show = true
        // 判斷當(dāng)前用戶是否已拉取完user_info信息
        store.dispatch('GetInfo').then(() => {
          isRelogin.show = false
         // 確認(rèn)當(dāng)前已經(jīng)登錄了,能獲取到登錄的用戶信息
         // 進(jìn)入到這里的時(shí)候,我已經(jīng)選擇了自己接下來(lái)要進(jìn)入的系統(tǒng),要把系統(tǒng)的
         // 標(biāo)志id先存起來(lái),然后獲取菜單的時(shí)候傳過(guò)去
          let systemId=sessionStorage.getItem("systemId");
          store.dispatch('GenerateRoutes',{systemId}).then(accessRoutes => {
            // 根據(jù)roles權(quán)限生成可訪問(wèn)的路由表
            router.addRoutes(accessRoutes) // 動(dòng)態(tài)添加可訪問(wèn)路由表
            // 接下來(lái)是設(shè)置默認(rèn)跳轉(zhuǎn)的頁(yè)面
            let path="";
            // 設(shè)置動(dòng)態(tài)路由的第一個(gè)路由為跳轉(zhuǎn)的默認(rèn)頁(yè)面
            path=accessRoutes[0].path+"/"+accessRoutes[0].children[0].path;
            if(from.path=="/channel"){
              // 如果是從自定義頁(yè)面跳轉(zhuǎn)過(guò)去,就跳轉(zhuǎn)至動(dòng)態(tài)路由的第一個(gè)路由
              next({path,replace:true})
            }else{
      // 如果是點(diǎn)擊了一個(gè)菜單,然后刷新的頁(yè)面,就保持在當(dāng)前的頁(yè)面,防止刷新后跳轉(zhuǎn)到了自己定義的頁(yè)面
              next({ ...to, replace: true }) // hack方法 確保addRoutes已完成
            }
          })
        }).catch(err => {
          store.dispatch('LogOut').then(() => {
            Message.error(err)
            next({ path: '/' })
          })
        })
      } else {
        next()
      }
    }
  } else {
    // 沒(méi)有token
    if (whiteList.indexOf(to.path) !== -1) {
      // 在免登錄白名單,直接進(jìn)入
      next()
    } else {
      next(`/login?redirect=${to.fullPath}`) // 否則全部重定向到登錄頁(yè)
      NProgress.done()
    }
  }
})

3.在store文件夾下找到permission.js文件,作如下變動(dòng):

這里主要設(shè)置的就是獲取路由的時(shí)候根據(jù)傳遞的參數(shù)獲取相應(yīng)的路由菜單,以及默認(rèn)首頁(yè)的設(shè)置.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript
若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

  state: {
    routes: [],
    addRoutes: [],
    defaultRoutes: [],
    topbarRouters: [],
    sidebarRouters: [],
    indexPage:"",// 修改跳轉(zhuǎn)首頁(yè)
  },
  mutations: {
    SET_ROUTES: (state, routes) => {
      state.addRoutes = routes
      state.routes = constantRoutes.concat(routes)
    },
    SET_DEFAULT_ROUTES: (state, routes) => {
      state.defaultRoutes = constantRoutes.concat(routes)
    },
    SET_TOPBAR_ROUTES: (state, routes) => {
      state.topbarRouters = routes
    },
    SET_SIDEBAR_ROUTERS: (state, routes) => {
      state.sidebarRouters = routes
    },
    SET_INDEX_PAGE:(state,routes)=>{
      state.indexPage=routes
    }
  },
  actions: {
    // 生成路由
    GenerateRoutes({ commit }, param) {
      return new Promise(resolve => {
        // 向后端請(qǐng)求路由數(shù)據(jù)
        getRouters({ menuFlag: param.systemId }).then(res => {
          const sdata = JSON.parse(JSON.stringify(res.data))
          const rdata = JSON.parse(JSON.stringify(res.data))
          const firstPage=res.data[0].path+"/"+res.data[0].children[0].path;
          const sidebarRoutes = filterAsyncRouter(sdata)
          const rewriteRoutes = filterAsyncRouter(rdata, false, true)
          const asyncRoutes = filterDynamicRoutes(dynamicRoutes);
          rewriteRoutes.push({ path: '*', redirect: '/404', hidden: true })
          router.addRoutes(asyncRoutes);
          commit('SET_ROUTES', rewriteRoutes)
          commit('SET_SIDEBAR_ROUTERS', constantRoutes.concat(sidebarRoutes))
          commit('SET_DEFAULT_ROUTES', sidebarRoutes)
          commit('SET_TOPBAR_ROUTES', sidebarRoutes)
          commit('SET_INDEX_PAGE',firstPage)
          resolve(rewriteRoutes)
        })
      })
    }
  }

4.找到src/layout/components/Sidebar/logo.vue文件,作如下改動(dòng):

這里主要設(shè)置的就是進(jìn)入系統(tǒng)后點(diǎn)擊若依的logo跳轉(zhuǎn)的頁(yè)面,改成我們?cè)O(shè)置的默認(rèn)首頁(yè).?

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?5.找到src/layout/components/TagsView/index.vue,作如下改動(dòng):
這里主要設(shè)置的是關(guān)閉所有tagview后,會(huì)展示默認(rèn)頁(yè)面,防止關(guān)閉所有的tagview后頁(yè)面空掉,不然太不美觀.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript?這里設(shè)置的是當(dāng)展示的是默認(rèn)頁(yè)面時(shí),tagview是不允許關(guān)閉的,即下面的效果:

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

這里設(shè)置的是所有能被關(guān)閉的tagview被關(guān)閉后,會(huì)跳轉(zhuǎn)至默認(rèn)頁(yè)面.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?6.找到src/plugns/tab.js,作如下改動(dòng):

這里設(shè)置的是編輯完個(gè)人中心后點(diǎn)擊關(guān)閉后跳轉(zhuǎn)的頁(yè)面,防止點(diǎn)擊關(guān)閉后頁(yè)面空掉.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?7.找到src/components/BredCrumb/.index.vue,作如下變動(dòng):

這里設(shè)置的是隱藏掉若依原本面包屑導(dǎo)航中的首頁(yè)

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?8.找到src/views/error/401.vue和404.vue,作如下改動(dòng):

這里設(shè)置的是從401和404頁(yè)面返回首頁(yè),返回至默認(rèn)首頁(yè);

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?大概就是以上步驟,有遺漏的再補(bǔ)充,因?yàn)楸救藳](méi)有完全理解吃透若依的框架,而且有些地方是借鑒的別的大佬的,所以有那些說(shuō)的不清楚的地方,還請(qǐng)見(jiàn)諒.

若依項(xiàng)目啟動(dòng)時(shí)如何自動(dòng)打開(kāi)指定的頁(yè)面,Vue,前端,javascript

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-788635.html

?

?

?

?

到了這里,關(guān)于若依框架登錄后跳轉(zhuǎn)其他頁(yè)面&獲取不同的菜單&登錄進(jìn)入后跳轉(zhuǎn)至動(dòng)態(tài)路由的第一個(gè)路由的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 代碼模版-登錄成功后跳轉(zhuǎn)首頁(yè)

    默認(rèn)已經(jīng)安裝了 vue-router 路由依賴 已經(jīng)寫好了 src/router/index.js 和 src/views/login.vue 組件了 在 src/views/login.vue 組件中添加這樣的 js

    2024年02月15日
    瀏覽(21)
  • vue 發(fā)現(xiàn)頁(yè)面找不到3秒后跳轉(zhuǎn)到本頁(yè)面

    vue 發(fā)現(xiàn)頁(yè)面找不到3秒后跳轉(zhuǎn)到本頁(yè)面

    這個(gè)路由跳轉(zhuǎn)用到的是編程式跳轉(zhuǎn) this.$router.push 兩種寫法: 第一種可以通過(guò) path 來(lái)跳轉(zhuǎn) goto(\\\'/find\\\') find是路由里邊的路徑 通過(guò)goto來(lái)綁定一個(gè)方法 里邊傳參 倒計(jì)時(shí)3秒 第二種通過(guò)name來(lái)跳轉(zhuǎn)頁(yè)面 在路由里邊多寫一行 name屬性;并 修改goto里邊的參數(shù) ,其他都一樣

    2024年02月12日
    瀏覽(22)
  • 學(xué)習(xí)若依框架----之----獲取登錄登錄系統(tǒng)、ip、瀏覽器信息

    學(xué)習(xí)若依框架----之----獲取登錄登錄系統(tǒng)、ip、瀏覽器信息

    若依里面,創(chuàng)建登錄日志是根據(jù)異步任務(wù)進(jìn)行新增,設(shè)置的有一個(gè)延時(shí)任務(wù),登錄之后,創(chuàng)建登錄日志。本文章是非異步任務(wù)新增。大概思路是:在登錄、注冊(cè)、退出登錄完成返回之前,調(diào)用日志工具,進(jìn)行新增日志操作。 備注: 重點(diǎn)是日志工具邏輯,先判斷是不是內(nèi)網(wǎng),

    2023年04月15日
    瀏覽(208)
  • Vue項(xiàng)目啟動(dòng)后跳轉(zhuǎn)到制定路由頁(yè)面

    Vue項(xiàng)目啟動(dòng)后跳轉(zhuǎn)到制定路由頁(yè)面

    今天把自己的項(xiàng)目布局完成了,但是想在項(xiàng)目啟動(dòng)的時(shí)候默認(rèn)跳轉(zhuǎn)到登錄頁(yè)面。 這其實(shí)需要借助路由實(shí)現(xiàn)跳轉(zhuǎn) 開(kāi)始編寫之前,大家可以看下我的布局: 關(guān)于如何安裝并使用路由,可以參考:Vue安裝并使用路由和路由器 需要對(duì)index.js進(jìn)行修改,根據(jù)需求配置需要跳轉(zhuǎn)的那個(gè)組

    2024年01月18日
    瀏覽(26)
  • 【自用】VUE 獲取登錄用戶名 顯示在其他頁(yè)面上

    【自用】VUE 獲取登錄用戶名 顯示在其他頁(yè)面上

    步驟1: 安裝 js-cookie 依賴 步驟2: 在登錄頁(yè)面中引入 js-cookie 依賴 步驟1: 步驟1: 在其他頁(yè)面中引入 js-cookie 依賴 步驟2: 設(shè)定一個(gè) computed 計(jì)算屬性,并在其中寫入獲取登錄界面 cookies 的方法: 步驟3: 在需要使用的地方使用 插值表達(dá)式 {{xxx}} 來(lái)使用它! (請(qǐng)注意,我們需

    2024年02月01日
    瀏覽(21)
  • uni-app小程序跳轉(zhuǎn)其他小程序、獲取目標(biāo)小程序的頁(yè)面地址

    uni-app小程序跳轉(zhuǎn)其他小程序、獲取目標(biāo)小程序的頁(yè)面地址

    一、小程序中跳轉(zhuǎn)其他小程序 1、在manifest.json中的mp-weixin目錄下添加配置(替換目標(biāo)小程序appid) 2、在需要跳轉(zhuǎn)的頁(yè)面添加按鈕點(diǎn)擊事件,替換path以及傳參 二、獲取其他小程序頁(yè)面地址 微信小程序中官方文檔獲取地址入口已經(jīng)關(guān)閉不能用了(https://kf.qq.com/faq/180725biaAn21807

    2024年02月12日
    瀏覽(22)
  • 若依框架 - 短時(shí)間內(nèi)斷開(kāi)連接,重復(fù)跳轉(zhuǎn)至登錄界面問(wèn)題的解決方法(docker 與 redis)、令牌超時(shí)問(wèn)題

    在很短的時(shí)間內(nèi)不去操作系統(tǒng),就會(huì)自動(dòng)提示, 登錄狀態(tài)已過(guò)期,您可以繼續(xù)留在該頁(yè)面,或者重新登錄 ,所以老是要跳轉(zhuǎn)到登錄界面,這一點(diǎn)很麻煩,非常影響用戶體驗(yàn)。 令牌設(shè)置超時(shí)時(shí)間,過(guò)于短暫; redis 服務(wù)的啟動(dòng)配置文件有問(wèn)題,沒(méi)有配置密碼登錄,而是默認(rèn)配置

    2024年02月13日
    瀏覽(20)
  • Django實(shí)現(xiàn)用戶注冊(cè)登錄,表單提交后跳轉(zhuǎn)網(wǎng)頁(yè)(學(xué)習(xí)筆記)

    Django實(shí)現(xiàn)用戶注冊(cè)登錄,表單提交后跳轉(zhuǎn)網(wǎng)頁(yè)(學(xué)習(xí)筆記)

    效果圖如下: ? 使用命令提示符,進(jìn)入想存放項(xiàng)目的目錄: 在項(xiàng)目coco目錄下新建static文件夾,用于存放網(wǎng)頁(yè)文件的css,js,imgs 在coco_app目錄下新建文件夾templates,用于存放需要用到的HTML網(wǎng)頁(yè) 打開(kāi)coco文件夾中的settings.py注冊(cè)coco_app 引用templates 連接數(shù)據(jù)庫(kù),這里我用的MySQL數(shù)據(jù)

    2023年04月11日
    瀏覽(53)
  • dede織夢(mèng)自定義表單提交成功后跳轉(zhuǎn)頁(yè)面實(shí)現(xiàn)方法

    今天我們碰到一位客戶,想要完成織夢(mèng)表單提交后,跳轉(zhuǎn)到一個(gè)頁(yè)面顯示:已提交成功,請(qǐng)耐心等待回復(fù)。處理到這里,我們想到了這個(gè)功能還是很容易完成的,需要對(duì)plus/diy.php處理提示頁(yè)面。 修改方法 默認(rèn)的是:“發(fā)布成功,請(qǐng)等待管理員處理...”,默認(rèn)跳轉(zhuǎn)頁(yè)面是網(wǎng)站

    2024年02月03日
    瀏覽(21)
  • uniapp實(shí)現(xiàn)掃一掃功能,掃碼成功后跳轉(zhuǎn)頁(yè)面

    uniapp實(shí)現(xiàn)掃一掃功能,掃碼成功后跳轉(zhuǎn)頁(yè)面

    uniapp官方有提供的相關(guān)api實(shí)現(xiàn)跳轉(zhuǎn)到web網(wǎng)頁(yè)(h5)的功能,在開(kāi)發(fā)小程序中,是一項(xiàng)很常見(jiàn)的功能開(kāi)發(fā)。該功能使用到的api uni.scanCode 詳細(xì)步驟如下: 1.在ui庫(kù)中找到掃碼icon,以u(píng)ViewUI為例 綁定點(diǎn)擊事件@click 2. 在事件clickScan中處理邏輯 3. 在src文件夾中寫一個(gè)組件,我定義為w

    2024年02月07日
    瀏覽(34)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包