111
k94314517
2025-06-18 153404ffa0a9c6d23d2c2732b46fa6929e86294f
admin/src/directives/v-permissions.js
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
export default {
  inserted: function (el, binding, vnode) {
    // èŽ·å–ç”¨æˆ·ä¿¡æ¯
    const userInfo = vnode.context.$store.state.userInfo
    if (userInfo == null) {
      el.parentNode && el.parentNode.removeChild(el)
      return
    }
    // èŽ·å–é…ç½®æƒé™
    const configPermissions = binding.value
    if (configPermissions == null) {
      return
    }
    if (!(configPermissions instanceof Array)) {
      throw new Error('v-permissions的值必须为一个数组')
    }
    // éªŒè¯æƒé™
    if (configPermissions.findIndex(code => userInfo.permissions.findIndex(p => p === code) > -1) === -1) {
      el.parentNode && el.parentNode.removeChild(el)
    }
  }
}