按钮权限设置

2019-10-17  本文已影响0人  caiyiii

在进行后台管理的项时需要对按钮进行权限控制,非admin用户的某些按钮不能进行展示,这该如何开展呢?

首先,权限控制离不开后台的配合,需要后台进行权限的编码

(这个咱也不懂,咱也不敢问)如图就行


按钮权限表

然后就是前端的事情了

  1. 第一步需要在登录的时候,将后台返回的菜单权限编码保存起来
//登录接口,获取menuCode
setStorage('btn-code', JSON.stringify(response.data.menuCodes))
  1. 可以在 utils 里面写一个公用的方法
// src > utils > validate.js

// 判断字符串里是否包含某个字符串
export function strContainStr(str, val) {
  let flags = false
  if (str.find((n) => n === val)) {
    flags = true
  }
  return flags
}

// 设置按钮权限是否展示
export function btnVisible(item) {
  const arr = JSON.parse(getStorage('btn-code'))
  if (item) {
    if (strContainStr(arr, item)) {
      return true
    }
    return false
  }
}

  1. 做好前期的准备工作之后呢,就可以在按钮页面上使用了
import { btnVisible } from '../../../utils/validate'
import { SYS_GATEWAY_FRONT_CHANNEL_ADD, SYS_GATEWAY_FRONT_CHANNEL_DEL, SYS_GATEWAY_FRONT_CHANNEL_EDIT } from '../../../utils/btn-config'
data() {
    return {
      addCode: SYS_GATEWAY_FRONT_CHANNEL_ADD,
      delCode: SYS_GATEWAY_FRONT_CHANNEL_DEL,
      editCode: SYS_GATEWAY_FRONT_CHANNEL_EDIT
      }
    }
  },
isShows(value) {
      return btnVisible(value)
    }
<template slot-scope="scope">
      <el-button type="text" @click="handleEdit(scope.row)" v-if="isShows(editCode)">修改</el-button>
      <span style="margin: 0 5px;color: #cdd1d5;">|</span>
      <el-button type="text" @click="handleDelete(scope.row)" v-if="isShows(delCode)">删除</el-button>
  </template>
就这样。。。
上一篇下一篇

猜你喜欢

热点阅读