2 lines
3.0 KiB
JavaScript
2 lines
3.0 KiB
JavaScript
import{u as e}from"./user-b861888c.js";import{S as i}from"./SwitchRoles-762fa555.js";import{x as s,as as a,aw as r,ax as n,ak as o,m as t,u as l,n as d,b4 as m,t as p,b2 as c,k as u,aS as f,l as v}from"./runtime-core.esm-bundler-1857aef3.js";import{_}from"./_plugin-vue_export-helper-1b428a4d.js";import"./vue-router-5ddbd26f.js";import"./index-98eefc51.js";const y=i=>{if(i&&i instanceof Array&&i.length>0){const s=e().roles,a=i;return s.some((e=>a.includes(e)))}return console.error("need roles! Like v-permission=\"['admin','editor']\""),!1},b={class:"app-container"},k={class:"permission-alert"},g={class:"permission-alert"},h={class:"permission-alert"},j=_(s({__name:"directive",setup(e){const s=a(1),_=()=>{s.value++};return(e,a)=>{const j=r("el-tag"),x=r("el-tab-pane"),P=r("el-tabs"),z=n("permission");return o(),t("div",b,[l(i,{onChange:_}),(o(),t("div",{key:s.value,class:"margin-top"},[d("div",null,[m((o(),t("span",k,[p(" 只有 "),l(j,null,{default:c((()=>[p("admin")])),_:1}),p("可以看见这个 ")])),[[z,["admin"]]]),m((o(),u(j,{class:"permission-code",type:"info",size:"large"},{default:c((()=>[p(" v-permission=\"['admin']\" ")])),_:1})),[[z,["admin"]]])]),d("div",null,[m((o(),t("span",g,[p(" 只有 "),l(j,null,{default:c((()=>[p("editor")])),_:1}),p("可以看见这个 ")])),[[z,["editor"]]]),m((o(),u(j,{class:"permission-code",type:"info",size:"large"},{default:c((()=>[p(" v-permission=\"['editor']\" ")])),_:1})),[[z,["editor"]]])]),d("div",null,[m((o(),t("span",h,[p(" 两者 "),l(j,null,{default:c((()=>[p("admin")])),_:1}),p("和 "),l(j,null,{default:c((()=>[p("editor")])),_:1}),p("都可以看见这个 ")])),[[z,["admin","editor"]]]),m((o(),u(j,{class:"permission-code",type:"info",size:"large"},{default:c((()=>[p(" v-permission=\"['admin', 'editor']\" ")])),_:1})),[[z,["admin","editor"]]])])])),(o(),t("div",{key:"checkPermission"+s.value,class:"margin-top"},[l(j,{type:"info",size:"large"},{default:c((()=>[p(" 在某些情况下,不适合使用 v-permission。例如: Element Plus 的 el-tab-pane 或 el-table-column 以及其它动态渲染 Dom 的场景。你只能通过手动设置 v-if 来实现。 ")])),_:1}),l(P,{type:"border-card",class:"margin-top"},{default:c((()=>[f(y)(["admin"])?(o(),u(x,{key:0,label:"admin"},{default:c((()=>[p(" admin 可以看见这个 "),l(j,{class:"permission-code",type:"info"},{default:c((()=>[p(" v-if=\"checkPermission(['admin'])\" ")])),_:1})])),_:1})):v("",!0),f(y)(["editor"])?(o(),u(x,{key:1,label:"editor"},{default:c((()=>[p(" editor 可以看见这个 "),l(j,{class:"permission-code",type:"info"},{default:c((()=>[p(" v-if=\"checkPermission(['editor'])\" ")])),_:1})])),_:1})):v("",!0),f(y)(["admin","editor"])?(o(),u(x,{key:2,label:"admin 和 editor"},{default:c((()=>[p(" 两者 admin 和 editor 都可以看见这个 "),l(j,{class:"permission-code",type:"info"},{default:c((()=>[p(" v-if=\"checkPermission(['admin', 'editor'])\" ")])),_:1})])),_:1})):v("",!0)])),_:1})]))])}}}),[["__scopeId","data-v-4e49b14c"]]);export{j as default};
|