首页 > 其他分享 >vue 权限 permission.js

vue 权限 permission.js

时间:2024-12-31 10:54:28浏览次数:1  
标签:vue return permission value js && const store

import store from '@/store'

/**
 * 字符权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkPermi(value) {
  if (value && value instanceof Array && value.length > 0) {
    const permissions = store.getters && store.getters.permissions
    const permissionDatas = value
    const all_permission = "*:*:*";

    const hasPermission = permissions.some(permission => {
      return all_permission === permission || permissionDatas.includes(permission)
    })

    if (!hasPermission) {
      return false
    }
    return true
  } else {
    console.error(`need roles! Like checkPermi="['system:user:add','system:user:edit']"`)
    return false
  }
}

/**
 * 角色权限校验
 * @param {Array} value 校验值
 * @returns {Boolean}
 */
export function checkRole(value) {
  if (value && value instanceof Array && value.length > 0) {
    const roles = store.getters && store.getters.roles
    const permissionRoles = value
    const super_admin = "admin";

    const hasRole = roles.some(role => {
      return super_admin === role || permissionRoles.includes(role)
    })

    if (!hasRole) {
      return false
    }
    return true
  } else {
    console.error(`need roles! Like checkRole="['admin','editor']"`)
    return false
  }
}

 

标签:vue,return,permission,value,js,&&,const,store
From: https://www.cnblogs.com/dianzan/p/18643465

相关文章

  • 一、安装Node.js
    文章目录一、Node.js详解二、下载Node.js三、安装Node.js四、设置node_global和node_cache五、设置环境变量六、常用npm命令一、Node.js详解  Node.js是当下编程领域极具影响力的工具,官方定义其为“anopen-source,cross-platformJavaScriptruntime......
  • 请说说js中运算符的优先级
    在JavaScript中,运算符的优先级决定了表达式中各个部分的计算顺序。理解运算符的优先级对于编写准确、可预测的代码至关重要。以下是JavaScript中运算符的优先级,从高到低排列:一元运算符:递增/递减:++、--(作为前缀或后缀)一元加/减:+、-逻辑非:!按位非:~类型运算符:typeof、void、......
  • 使用js写个方法检测用户在5分钟内无任何操作则退出登录
    在前端开发中,你可以通过监听用户的各种交互事件来判断用户是否在活动。如果用户5分钟内没有任何操作,你可以触发一个函数来进行退出登录的操作。以下是一个简单的示例,使用JavaScript和setTimeout来实现这个功能:letuserActivityTimeout;constINACTIVITY_TIMEOUT=5*60*1000......
  • js的变量命名需要遵循什么规则?
    在JavaScript(以及大多数其他编程语言)中,变量命名需要遵循一些基本规则以确保代码的可读性和可维护性。以下是在前端开发中命名JavaScript变量时应遵循的一些关键规则:使用有意义的名称:变量名应描述其存储的数据。避免使用如a、b、c这样的无意义名称,而应选择更具描述性的名称,如user......
  • 你有看过vue的nextTick源码吗?
    是的,我了解过Vue的$nextTick源码。$nextTick是Vue中一个非常重要的机制,它允许我们在DOM更新后执行某些操作,确保我们可以获取到更新后的DOM状态。下面我将对$nextTick的源码进行简要的解析和归纳:$nextTick的基本原理:Vue在更新DOM时是异步执行的。当数据发生变化时,Vue会将这个......
  • 使用js写一个方法对字符串进行16进制编码
    在JavaScript中,你可以使用encodeURIComponent函数配合toString方法来进行字符串的16进制编码。但是,encodeURIComponent本身并不直接支持16进制编码,所以我们需要先将字符串转换为UTF-8,然后对每个字符进行16进制编码。以下是一个简单的函数,它接受一个字符串作为输入,并返回该字符串......
  • 在js中importScripts方法有什么作用?
    importScripts()是WebWorkersAPI中的一个函数,它允许你在WebWorker中加载和执行外部的JavaScript文件。WebWorkers是一种能让你在浏览器中进行后台处理的技术,这样即使在进行大量计算时,也不会阻塞主线程,从而提高页面的响应性。importScripts()函数接受一个或多个URI......
  • 使用js写一个方法对16进制解码
    在前端开发中,你可以使用JavaScript的内置方法来解码16进制字符串。以下是一个简单的函数,它接受一个16进制字符串作为输入,并返回解码后的字符串:functionhexDecode(hexString){letdecodedString='';leti;for(i=0;i<hexString.length;i+=2){......
  • 在js中开启worker线程后,如何销毁?
    在JavaScript中,WebWorkers提供了在后台线程中运行脚本的能力,这样就不会阻塞主线程。当你创建了一个worker线程后,你可能需要在某个时刻销毁它,以释放资源。销毁worker线程非常简单,只需调用其terminate()方法即可。以下是一个简单的示例,展示了如何创建和销毁一个worker线......
  • 在js中,worker如何与主线程通信?
    在JavaScript中,WebWorkers提供了一种在浏览器后台线程中运行脚本的方法,这样就不会阻塞或影响页面的UI渲染。主线程和工作线程之间的通信主要通过postMessage()方法和onmessage事件处理器来实现。以下是一个简单的例子来说明如何实现这种通信:1.创建一个新的Worker首先,你需要在......