# 按钮权限

import store from '@/store/index'
export function permit (e) {
  let permissions = store.state.d2admin.user.info.info.permissions
  let perList = []
  permissions.forEach(item => { perList.push(item.permission) })
  return perList.includes(e)
}
1
2
3
4
5
6
7

src/pages/test.vue

<template>
    <el-button type="primary" size="mini" v-if="basePermit('rs:stock:inStock')">权限控制</el-button>
</template>
1
2
3
import { permit } from '../utils'
export default{
    methods:{
         basePermit (e) {
      return permit(e)
    }
    }
}
1
2
3
4
5
6
7
8
import Vue from 'vue'
import store from '@/store/index'
let permissions = store.state.d2admin.user.info.info.permissions
let perList = []
permissions.forEach(item => { perList.push(item.permission) })

Vue.directive('permit', {
  inserted: function (el, binding) {
    if (Array.isArray(perList) && perList.length > 0) {
      let allow = binding.value.some(item => {
        return perList.includes(item)
      })
      if (!allow) {
        if (el.parentNode) {
          el.parentNode.removeChild(el)
        }
      }
    }
  }
})
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

src/pages/test.vue

 <el-button type="primary" size="mini" v-permit="['rs:stock:inStock']">权限控制</el-button>
1
import '../utils/directive.js'
1
lastUpdate: 5/13/2021, 5:35:14 PM