src/page/permission/directive.vue

(开头部分) 2KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

<template>
  <div class="fillcontain">
    <div class="contain" ref="contain">
      <switch-roles @change="handleRolesChange" />
      <div :key="key" class="cflex">
        <span v-permission="['admin']" class="permission-alert">
          Only admin can see this
          <el-button type="warning">admin</el-button>
          <el-button type="danger">危险按钮</el-button>
        </span>

        <span  v-permission="['editor']"  class="permission-alert">
          Only editor can see this
          <el-button type="success">编辑</el-button>
          <el-button type="info">信息按钮</el-button>
        </span>

        <span v-permission="['admin','editor']" class="permission-alert">
          Both adminand editor can see this
          <el-button type="primary">主要按钮</el-button>
          <el-button type="success">成功按钮</el-button>
          <el-button type="info">信息按钮</el-button>
          <el-button type="warning">警告按钮</el-button>
          <el-button type="danger">危险按钮</el-button>
        </span>
      </div>
    </div>
  </div>
</template>

<script>
import permission from '@/directive/permission/index.js' // 权限判断指令
import SwitchRoles from './components/SwitchRoles'
import * as mutils from '@/utils/mUtils'

export default {
  name: 'directivePermission',
  components: { SwitchRoles },
  directives: { permission },
  data() {
    return {
      key: 1 // 为了能每次切换权限的时候重新初始化指令
    }
  },
  mounted(){
    mutils.setContentHeight(this,this.$refs.contain,210);
  },
  methods: {
    handleRolesChange() {
      this.key++
    }
  }
}

/**
 * 添加按钮权限的业务逻辑:
 * 1、在需要添加权限的按钮上或按钮区域内,注册全局指令v-permission="['admin']",接收的值为数组形式;
 * 2、指令内部的计算逻辑(参考directive/permission/permisson.js):
 *   通过inserted函数,当被绑定的元素插入到DOM中时,如果指令的value为数组形式并传入roles信息时,
 *   用户当前roles与指令roles,进行循环匹配,只要能匹配到就返回true;不能匹配,则隐藏该元素;
后面还有 21 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。