<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 權限驗證 在[手摸手,帶你用 vue 擼后臺 系列二(登錄權限篇)](https://juejin.im/post/591aa14f570c35006961acac)這篇文章中其實已經詳細介紹過了。 該項目中權限的實現方式是:通過獲取當前用戶的權限去比對路由表,生成當前用戶具的權限可訪問的路由表,通過`router.addRoutes`動態掛載到`router`上。 但其實很多公司的業務邏輯可能不是這樣的,舉一個例子來說,很多公司的需求是每個頁面的權限是動態配置的,不像本項目中是寫死預設的。但其實原理是相同的。如:你可以在后臺通過一個 tree 控件或者其它展現形式給每一個頁面動態配置權限,之后將這份路由表存儲到后端。當用戶登錄后得到`roles`,前端根據`roles`去向后端請求可訪問的路由表,從而動態生成可訪問頁面,之后就是 router.addRoutes 動態掛載到 router 上,你會發現原來是相同的,萬變不離其宗。 只是多了一步將后端返回路由表和本地的組件映射到一起。相關[issue](https://github.com/PanJiaChen/vue-element-admin/issues/293) ~~~ const map={ login:require('login/index').default // 同步的方式 login:()=>import('login/index') // 異步的方式 } //你存在服務端的map類似于 const serviceMap=[ { path: '/login', component: 'login', hidden: true } ] //之后遍歷這個map,動態生成asyncRoutes 并將 component 替換為 map[component] ~~~ Ps:不排除之后本項目會增加權限控制面板支持真正的動態配置權限。 ## [#](https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/permission.html#%E9%80%BB%E8%BE%91%E4%BF%AE%E6%94%B9)邏輯修改 現在路由層面權限的控制代碼都在`@/permission.js`中,如果想修改邏輯,直接在適當的判斷邏輯中`next()`釋放鉤子即可。 ## [#](https://panjiachen.github.io/vue-element-admin-site/zh/guide/essentials/permission.html#%E6%8C%87%E4%BB%A4%E6%9D%83%E9%99%90)指令權限 封裝了一個指令權限,能簡單快速的實現按鈕級別的權限判斷。[v-permission](https://github.com/PanJiaChen/vue-element-admin/tree/master/src/directive/permission) **使用** ~~~ <template> <!-- Admin can see this --> <el-tag v-permission="['admin']">admin</el-tag> <!-- Editor can see this --> <el-tag v-permission="['editor']">editor</el-tag> <!-- Editor can see this --> <el-tag v-permission="['admin','editor']">Both admin or editor can see this</el-tag> </template> <script> // 當然你也可以為了方便使用,將它注冊到全局 import permission from '@/directive/permission/index.js' // 權限判斷指令 export default{ directives: { permission } } </script> ~~~ **局限** In some cases it is not suitable to use v-permission, such as element Tab component which can only be achieved by manually setting the v-if. 可以使用全局權限判斷函數,用法和指令`v-permission`類似。 ~~~ <template> <el-tab-pane v-if="checkPermission(['admin'])" label="Admin">Admin can see this</el-tab-pane> <el-tab-pane v-if="checkPermission(['editor'])" label="Editor">Editor can see this</el-tab-pane> <el-tab-pane v-if="checkPermission(['admin','editor'])" label="Admin-OR-Editor">Both admin or editor can see this</el-tab-pane> </template> <script> import checkPermission from '@/utils/permission' // 權限判斷函數 export default{ methods: { checkPermission } } </script> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看