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

vue權(quán)限管理——按鈕控制

這篇具有很好參考價(jià)值的文章主要介紹了vue權(quán)限管理——按鈕控制。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1.按鈕根據(jù)后端返回?cái)?shù)據(jù)決定展示與否

根據(jù)right中的數(shù)據(jù)對(duì)應(yīng)增刪改查按鈕

const menuList = [
    {'id': 1, path:'/uploadSpec','authName': "上傳spec", icon: 'User', children:[], rights:['view','add','edit','delete']},
    {'id': 2, path:'/showSpec', 'authName': "Spec預(yù)覽", icon: 'DataAnalysis',children:[], rights:['view','add','edit','delete']},
    {'id': 3, path:'/generateTxt', 'authName': "生成測(cè)試數(shù)據(jù)", icon: 'DataAnalysis',children:[], rights:['view','add','edit','delete']},
    {'id': 4, path:'/generateCronjob', 'authName': "生成轉(zhuǎn)碼程序", icon: 'Promotion',children:[], rights:['view','add','edit','delete']},
    {'id': 5, path:'/pdfCompare', 'authName': "PDF文檔對(duì)比", icon: 'DocumentCopy',children:[], rights:['view','add','edit','delete']},
    {'id': 6, path:'/resourceUpdate', 'authName': "資源更新管理", icon: 'Management',children:[], rights:['view','add','edit','delete']},
    {'id': 7, path:'/generateTestCase', 'authName': "自動(dòng)生成ST/SIT案例", icon: 'Files',children:[], rights:['view','add','edit','delete']},
    {'id': 8, path:'/userManagement', 'authName': "用戶管理", icon: 'User', rights:['view']},
    {'id': 9, path:'/roleManagement', 'authName': "角色管理", icon: 'Stamp', rights:['view']},
]

2.在設(shè)置動(dòng)態(tài)路由時(shí),將rights權(quán)限數(shù)據(jù)設(shè)置到路由元數(shù)據(jù)中meta

?initDynamicRoutes給用戶對(duì)應(yīng)的router中動(dòng)態(tài)添加meta元數(shù)據(jù)后,permission.js中通過router.currentRoute就可以獲取

export const initDynamicRoutes = async () => {
    const menuList = Store.state.user.menuList;;
    const rights = Store.state.user.rights;;

    menuList.length > 0 && menuList.forEach(item => {
        if (item.path) {
            const temp = routeMapping[item.path];
            // 動(dòng)態(tài)添加rights到meta中,使用自定義指令時(shí)通過rights鑒別其是否有該權(quán)限
            temp.meta.rights = item.rights;
            router.addRoute("Home", temp);
        }
    });
    router.addRoute({ name: 'NotFound', path: '/404', title: "頁面不存在", component: NotFound });
    router.addRoute({ path: '/:pathMatch(.*)', redirect: '/404' });
}

3.按鈕上通過自定義指令控制

directives/permission.js

獲取路由元數(shù)據(jù)中的rights權(quán)限和按鈕上的action記錄權(quán)限做比較:如果包含則有該權(quán)限,否則無權(quán)限,進(jìn)行刪除元素或者設(shè)置disabled文章來源地址http://www.zghlxwxcb.cn/news/detail-677397.html

import router from "@/route/route"
import { nextTick } from 'vue'

export const vHas = {
    created(el, binding, vnode, prevVnode) {
        let metaRights = router.currentRoute.value.meta.rights;
        let action = binding.value.action;
        let effect = binding.value.effect;

        if (!metaRights.includes(action)) {
            // 注意要使用nextTick,才能立即修改DOM
            nextTick(() => {
                if (effect === "disabled") {
                    el.ariaDisabled = 'true';
                    el.classList.add('is-disabled')
                } else {
                    if (el.parentNode)
                        el.parentNode.removeChild(el)
                    else
                        el.remove();
                }
            });
        }
    }
}

4.頁面中使用v-has指令

<template>
<div>
    <el-button type="primary" v-has="{action:'add',effect:'disabled'}">增加角色</el-button>
    <el-button type="success" v-has="{action:'edit'}">修改角色</el-button>
    <el-button type="info" v-has="{action:'view'}">查看角色</el-button>
    <el-button type="warning" v-has="{action:'delete',effect:'disabled'}">刪除角色</el-button>
</div>
   
</template>
<script setup>
import { vHas } from "@/directives/permission"

</script>

到了這里,關(guān)于vue權(quán)限管理——按鈕控制的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(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)文章

  • vue前端自定按鈕控制手動(dòng)上傳文件

    vue前端自定按鈕控制手動(dòng)上傳文件

    首先element-ui中的上傳組件是這樣的 數(shù)據(jù)結(jié)構(gòu): { action:“”//上傳的連接 filelist:\\\'‘’//選種的文件集合 } 點(diǎn)擊按鈕后就自動(dòng)根據(jù)action的地址上傳,實(shí)際上是element-ui自動(dòng)發(fā)送了post請(qǐng)求給action連接,但是我想要通過自己手動(dòng)上傳文件(圖片/excel) 直接發(fā)送這個(gè)文件體 游覽器發(fā)現(xiàn)無負(fù)載

    2024年04月25日
    瀏覽(41)
  • Vue.js 2.0 自定義指令

    除了默認(rèn)設(shè)置的核心指令(?v-model?和?v-show?),Vue 也允許注冊(cè)自定義指令。注意,在 Vue2.0 里面,代碼復(fù)用的主要形式和抽象是組件——然而,有的情況下,你仍然需要對(duì)純 DOM 元素進(jìn)行底層操作,這時(shí)候就會(huì)用到自定義指令。下面這個(gè)例子將聚焦一個(gè) input 元素,像這樣: 當(dāng)頁面

    2023年04月19日
    瀏覽(27)
  • vue權(quán)限管理——請(qǐng)求和響應(yīng)權(quán)限控制

    每次請(qǐng)求請(qǐng)求頭都攜帶token,沒有token或者token失效后端會(huì)返回錯(cuò)誤 防止一些在瀏覽器上強(qiáng)制將按鈕改成可用(如將disabled改為true就可用),然后發(fā)起請(qǐng)求后發(fā)送后端 響應(yīng)控制:請(qǐng)求返回401,token無效或者后期,則需要跳轉(zhuǎn)到登錄界面

    2024年02月11日
    瀏覽(16)
  • 前端Vue:權(quán)限管理,給角色分配權(quán)限

    前端Vue:權(quán)限管理,給角色分配權(quán)限

    ??前端-Vue權(quán)限控制,菜單權(quán)限,按鈕權(quán)限_一人創(chuàng)客的博客-CSDN博客 目錄 介紹: 前端權(quán)限的概念: 前端權(quán)限的意義: Vue權(quán)限管理的代碼實(shí)現(xiàn): 菜單 刷新界?菜單消失 標(biāo)識(shí)?戶名, ?便查看當(dāng)前?戶 退出登陸:? 界面: 1.判斷當(dāng)前是否登陸 2.控制是否可以訪問角色界面 (

    2024年02月11日
    瀏覽(18)
  • 前端Vue自定義數(shù)字輸入框 帶加減按鈕的數(shù)字輸入框組件

    前端Vue自定義數(shù)字輸入框 帶加減按鈕的數(shù)字輸入框組件

    隨著軟件開發(fā)的復(fù)雜度不斷提高,傳統(tǒng)開發(fā)方式逐漸顯露出其弊端。一處小小的改動(dòng)或功能的增加往往需要我們對(duì)整個(gè)系統(tǒng)的邏輯進(jìn)行修改,不僅增加了開發(fā)難度,還可能導(dǎo)致維護(hù)成本的上升。然而,組件化開發(fā)的出現(xiàn)有效地解決了這些問題,它不僅可以實(shí)現(xiàn)獨(dú)立開發(fā)、維護(hù)

    2024年02月10日
    瀏覽(33)
  • 前端Vue入門-day05-自定義指令、插槽、路由入門

    前端Vue入門-day05-自定義指令、插槽、路由入門

    (創(chuàng)作不易,感謝有你,你的支持,就是我前行的最大動(dòng)力,如果看完對(duì)你有幫助,請(qǐng)留下您的足跡) 目錄 自定義指令? 基本語法 (全局局部注冊(cè)) 全局注冊(cè)? 局部注冊(cè) 指令的值? v-loading 指令封裝 插槽 默認(rèn)插槽 后備內(nèi)容(默認(rèn)值)? 具名插槽? 作用域插槽? 路由入門 單頁應(yīng)

    2024年02月13日
    瀏覽(53)
  • Vue + Element UI 前端篇(十三):頁面權(quán)限控制

    Vue + Element UI 前端篇(十三):頁面權(quán)限控制

    既然是后臺(tái)權(quán)限管理系統(tǒng),當(dāng)然少不了權(quán)限控制啦,至于權(quán)限控制,前端方面當(dāng)然就是對(duì)頁面資源的訪問和操作控制啦。 前端資源權(quán)限主要又分為兩個(gè)部分,即導(dǎo)航菜單的查看權(quán)限和頁面增刪改操作按鈕的操作權(quán)限。 我們的設(shè)計(jì)把頁面導(dǎo)航菜單和頁面操作按鈕統(tǒng)一存儲(chǔ)在菜

    2024年01月25日
    瀏覽(52)
  • 前端Vue自定義等分底部菜單導(dǎo)航按鈕 自適應(yīng)文字寬度 可更改組件位置

    前端Vue自定義等分底部菜單導(dǎo)航按鈕 自適應(yīng)文字寬度 可更改組件位置

    隨著技術(shù)的發(fā)展,開發(fā)的復(fù)雜度也越來越高,傳統(tǒng)開發(fā)方式將一個(gè)系統(tǒng)做成了整塊應(yīng)用,經(jīng)常出現(xiàn)的情況就是一個(gè)小小的改動(dòng)或者一個(gè)小功能的增加可能會(huì)引起整體邏輯的修改,造成牽一發(fā)而動(dòng)全身。 通過組件化開發(fā),可以有效實(shí)現(xiàn)單獨(dú)開發(fā),單獨(dú)維護(hù),而且他們之間可以隨

    2024年02月12日
    瀏覽(21)
  • 頁面/按鈕 - 權(quán)限控制(前端)

    什么是權(quán)限控制 在項(xiàng)目中,尤其是在后臺(tái)管理系統(tǒng)中,不同人員登陸,看到的頁面菜單是不一樣的,比如,一個(gè)公司的辦公系統(tǒng),老板登陸可以看到所有的頁面,而普通員工登錄可能無法看到公司業(yè)績,營收情況的頁面,比如公司的員工個(gè)人資料頁面只有人力資源部門有權(quán)利

    2024年02月13日
    瀏覽(20)
  • vue3用戶權(quán)限管理(導(dǎo)航欄權(quán)限控制)2

    vue3用戶權(quán)限管理(導(dǎo)航欄權(quán)限控制)2

    上一節(jié)我們說到,通過后端的用戶權(quán)限來進(jìn)行路由的動(dòng)態(tài)添加,實(shí)現(xiàn)權(quán)限控制,這一節(jié)我們通過遞歸導(dǎo)航欄組件,實(shí)現(xiàn)后臺(tái)權(quán)限控制導(dǎo)航欄,接上一節(jié)所說我們?cè)趘uex中存儲(chǔ)了一個(gè)路由數(shù)組[\\\"/\\\",\\\"*\\\"]進(jìn)行權(quán)限控制,這一節(jié)還是要使用這個(gè)路由數(shù)組進(jìn)行導(dǎo)航欄的控制,開始吧。 ?

    2024年02月03日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包