2 lines
2.5 KiB
JavaScript
2 lines
2.5 KiB
JavaScript
import{ay as e,e as a,a as i,i as s,an as n,j as r,k as t,m as l,l as d,aa as o,p as m,n as c,H as u,q as p,G as f,_ as v}from"./index-71a5bbac.js";import{S as _}from"./SwitchRoles-54cee3da.js";const k=a=>{if(Array.isArray(a)&&a.length>0){const{roles:i}=e();return i.some((e=>a.includes(e)))}return console.error("need roles! Like checkPermission(['admin','editor'])"),!1},y={class:"app-container"},g={class:"margin-top-15"},b=v(a({__name:"directive",setup(e){const a=i(1),v=()=>{a.value++};return(e,i)=>{const b=s("el-tag"),h=s("el-tab-pane"),P=s("el-tabs"),z=n("permission");return r(),t("div",y,[l(_,{onChange:v}),(r(),t("div",{key:a.value,class:"margin-top-30"},[d("div",null,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['admin']\" 所以只有 admin 可以看见这句话 ")])),_:1})),[[z,["admin"]]])]),d("div",null,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['editor']\" 所以只有 editor 可以看见这句话 ")])),_:1})),[[z,["editor"]]])]),d("div",g,[o((r(),m(b,{type:"success",size:"large",effect:"plain"},{default:c((()=>[u(" 这里采用了 v-permission=\"['admin', 'editor']\" 所以 admin 和 editor 都可以看见这句话 ")])),_:1})),[[z,["admin","editor"]]])])])),(r(),t("div",{key:`checkPermission${a.value}`,class:"margin-top-30"},[l(b,{type:"warning",size:"large"},{default:c((()=>[u(" 例如 Element Plus 的 el-tab-pane 或 el-table-column 以及其它动态渲染 Dom 的场景不适合使用 v-permission,这种情况下你可以通过 v-if 和 checkPermission 来实现: ")])),_:1}),l(P,{type:"border-card",class:"margin-top-15"},{default:c((()=>[p(k)(["admin"])?(r(),m(h,{key:0,label:"admin"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['admin'])\"")])),_:1}),u(" 所以只有 admin 可以看见这句话 ")])),_:1})):f("",!0),p(k)(["editor"])?(r(),m(h,{key:1,label:"editor"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['editor'])\"")])),_:1}),u(" 所以只有 editor 可以看见这句话 ")])),_:1})):f("",!0),p(k)(["admin","editor"])?(r(),m(h,{key:2,label:"admin 和 editor"},{default:c((()=>[u(" 这里采用了 "),l(b,null,{default:c((()=>[u("v-if=\"checkPermission(['admin', 'editor'])\"")])),_:1}),u(" 所以 admin 和 editor 都可以看见这句话 ")])),_:1})):f("",!0)])),_:1})]))])}}}),[["__scopeId","data-v-6d704b73"]]);export{b as default};
|