doum
2025-09-26 9057e04efad1b7d61c77a72e5c37a504d0aee935
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)
    }
  }
}